summaryrefslogtreecommitdiff
path: root/org.fox.ttrss
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttrss')
-rwxr-xr-xorg.fox.ttrss/build.gradle107
-rw-r--r--org.fox.ttrss/libs/YouTubeAndroidPlayerApi.jarbin106412 -> 0 bytes
-rw-r--r--org.fox.ttrss/libs/dashclock-api-r1.1.jarbin16279 -> 0 bytes
-rwxr-xr-xorg.fox.ttrss/src/main/AndroidManifest.xml13
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/Application.java20
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java184
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java33
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java216
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java37
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java34
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java113
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java177
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java110
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java20
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java26
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java406
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java42
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java96
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/NetworkPreferencesFragment.java13
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java764
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java14
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java28
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java23
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java144
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java649
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java87
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java16
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java25
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java61
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java39
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java210
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineMasterActivity.java21
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java4
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java56
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java10
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java4
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java39
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java224
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java2
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenSwitchPreference.java77
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java37
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/util/ScrimInsetsFrameLayout.java142
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/dashclock.pngbin3054 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header.pngbin18004 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_amber.pngbin17915 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_dark.pngbin17698 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down.pngbin819 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down_dark.pngbin768 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat.pngbin545 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat_dark.pngbin549 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up.pngbin858 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up_dark.pngbin753 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.pngbin608 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive.pngbin577 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive_dark.pngbin533 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment.pngbin729 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_dark.pngbin653 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert.pngbin762 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert_dark.pngbin660 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked.pngbin607 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked_dark.pngbin563 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download.pngbin795 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download_dark.pngbin727 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload.pngbin811 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload_dark.pngbin735 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_content_copy.pngbin473 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical.pngbin307 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle.pngbin1038 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle_dark.pngbin927 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_dark.pngbin272 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_email.pngbin642 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_email_open.pngbin739 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant.pngbin261 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant_dark.pngbin232 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline.pngbin363 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline_dark.pngbin336 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh.pngbin1038 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh_dark.pngbin920 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back.pngbin890 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back_dark.pngbin783 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_image_album.pngbin571 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox.pngbin496 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox_dark.pngbin460 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_login.pngbin527 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_logout.pngbin521 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_play_circle.pngbin806 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_refresh.pngbin830 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore.pngbin1061 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore_dark.pngbin943 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box.pngbin801 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box_dark.pngbin730 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_search.pngbin890 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_select.pngbin496 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings.pngbin892 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings_dark.pngbin799 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_share.pngbin821 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_share_dark.pngbin745 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_sort.pngbin1012 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_star.pngbin823 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_dark.pngbin745 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline.pngbin1047 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline_dark.pngbin916 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-hdpi/ic_youtube_play.pngbin625 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down.pngbin501 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down_dark.pngbin486 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat.pngbin336 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat_dark.pngbin337 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up.pngbin509 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up_dark.pngbin480 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_web_site.pngbin355 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive.pngbin335 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive_dark.pngbin310 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment.pngbin423 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_dark.pngbin373 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert.pngbin439 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert_dark.pngbin399 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked.pngbin414 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked_dark.pngbin384 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download.pngbin456 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download_dark.pngbin411 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload.pngbin463 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload_dark.pngbin420 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_content_copy.pngbin269 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical.pngbin224 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle.pngbin695 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle_dark.pngbin613 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_dark.pngbin210 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_email.pngbin366 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_email_open.pngbin564 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant.pngbin176 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant_dark.pngbin175 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline.pngbin247 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline_dark.pngbin233 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh.pngbin601 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh_dark.pngbin540 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back.pngbin619 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back_dark.pngbin548 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_image_album.pngbin347 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox.pngbin271 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox_dark.pngbin267 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_login.pngbin432 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_logout.pngbin433 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_play_circle.pngbin362 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_refresh.pngbin441 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore.pngbin528 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore_dark.pngbin477 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box.pngbin528 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box_dark.pngbin481 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_search.pngbin489 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_select.pngbin410 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings.pngbin409 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings_dark.pngbin374 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_share.pngbin453 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_share_dark.pngbin405 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_sort.pngbin590 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_star.pngbin455 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_dark.pngbin425 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline.pngbin571 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline_dark.pngbin505 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-mdpi/ic_youtube_play.pngbin506 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/dashclock.pngbin3482 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down.pngbin839 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down_dark.pngbin836 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat.pngbin617 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat_dark.pngbin570 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up.pngbin858 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up_dark.pngbin836 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.pngbin536 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive.pngbin585 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive_dark.pngbin544 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment.pngbin842 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_dark.pngbin769 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert.pngbin932 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert_dark.pngbin826 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked.pngbin760 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked_dark.pngbin716 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download.pngbin879 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download_dark.pngbin808 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload.pngbin943 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload_dark.pngbin848 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_content_copy.pngbin507 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical.pngbin432 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle.pngbin1571 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle_dark.pngbin1391 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_dark.pngbin412 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email.pngbin735 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email_open.pngbin1153 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant.pngbin272 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant_dark.pngbin269 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline.pngbin421 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline_dark.pngbin409 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh.pngbin1214 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh_dark.pngbin1125 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back.pngbin1342 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back_dark.pngbin1208 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_image_album.pngbin641 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox.pngbin483 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox_dark.pngbin475 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_login.pngbin751 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_logout.pngbin756 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_play_circle.pngbin684 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_refresh.pngbin919 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore.pngbin1118 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore_dark.pngbin1008 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box.pngbin1173 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box_dark.pngbin1070 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_search.pngbin973 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_select.pngbin655 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings.pngbin865 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings_dark.pngbin795 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share.pngbin980 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share_dark.pngbin850 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_sort.pngbin1234 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star.pngbin961 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_dark.pngbin884 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline.pngbin1307 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline_dark.pngbin1159 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xhdpi/ic_youtube_play.pngbin1041 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header.pngbin36635 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_amber.pngbin35712 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_dark.pngbin35541 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down.pngbin1385 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down_dark.pngbin1351 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat.pngbin966 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat_dark.pngbin882 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up.pngbin1415 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up_dark.pngbin1334 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_web_site.pngbin881 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive.pngbin990 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive_dark.pngbin919 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment.pngbin1415 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_dark.pngbin1283 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert.pngbin1654 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert_dark.pngbin1471 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked.pngbin1129 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked_dark.pngbin1012 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download.pngbin1518 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download_dark.pngbin1384 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload.pngbin1631 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload_dark.pngbin1480 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_content_copy.pngbin786 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical.pngbin582 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle.pngbin2243 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle_dark.pngbin1986 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_dark.pngbin530 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email.pngbin1305 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email_open.pngbin1474 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant.pngbin397 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant_dark.pngbin376 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline.pngbin661 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline_dark.pngbin631 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh.pngbin2177 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh_dark.pngbin1941 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back.pngbin1849 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back_dark.pngbin1658 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_image_album.pngbin1168 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox.pngbin850 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox_dark.pngbin780 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_login.pngbin904 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_logout.pngbin895 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_play_circle.pngbin1672 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_refresh.pngbin1716 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore.pngbin2215 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore_dark.pngbin1955 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box.pngbin1636 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box_dark.pngbin1479 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_search.pngbin1806 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_select.pngbin721 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings.pngbin1935 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings_dark.pngbin1719 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share.pngbin1721 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share_dark.pngbin1601 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_sort.pngbin2189 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star.pngbin1686 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_dark.pngbin1541 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline.pngbin2359 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline_dark.pngbin2106 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_youtube_play.pngbin1322 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down.pngbin1425 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down_dark.pngbin1403 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat.pngbin1063 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat_dark.pngbin1120 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up.pngbin1467 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up_dark.pngbin1429 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_web_site.pngbin990 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive.pngbin1140 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive_dark.pngbin1130 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment.pngbin1804 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_dark.pngbin1626 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert.pngbin2019 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert_dark.pngbin1821 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked.pngbin1544 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked_dark.pngbin1424 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download.pngbin1835 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download_dark.pngbin1705 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload.pngbin2016 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload_dark.pngbin1807 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_content_copy.pngbin1082 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical.pngbin957 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle.pngbin3284 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle_dark.pngbin2923 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_dark.pngbin899 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email.pngbin1586 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email_open.pngbin2354 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant.pngbin546 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant_dark.pngbin524 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline.pngbin900 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline_dark.pngbin812 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh.pngbin2636 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh_dark.pngbin2429 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back.pngbin2710 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back_dark.pngbin2432 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_image_album.pngbin1451 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox.pngbin1101 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox_dark.pngbin1047 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_login.pngbin1356 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_logout.pngbin1375 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_play_circle.pngbin1601 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_refresh.pngbin1939 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore.pngbin2370 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore_dark.pngbin2141 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box.pngbin2526 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box_dark.pngbin2293 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_search.pngbin2115 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_select.pngbin1158 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings.pngbin2008 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings_dark.pngbin1789 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share.pngbin2066 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share_dark.pngbin1888 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_sort.pngbin2499 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star.pngbin2029 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_dark.pngbin1886 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline.pngbin2699 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline_dark.pngbin2473 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_youtube_play.pngbin1974 -> 0 bytes
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_archive_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_arrow_back_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_attach_file_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_attachment_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_check_box_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_cloud_download_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_cloud_upload_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_content_copy_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_email_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_filter_alt_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_folder_open_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_inbox_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_local_fire_department_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_login_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_mark_as_unread_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_mark_email_read_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_more_vert_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_note_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_open_in_browser_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_photo_album_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_play_circle_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_play_circle_outline_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_refresh_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_restore_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_rss_feed_24.xml7
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_search_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_select_all_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_settings_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_share_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_sort_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_sort_by_alpha_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_star_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_star_outline_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_trending_down_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_trending_flat_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/baseline_trending_up_24.xml5
-rw-r--r--org.fox.ttrss/src/main/res/drawable/outline_more_24.xml11
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml (renamed from org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml)33
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml52
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_master.xml62
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_detail.xml9
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml50
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_gallery.xml20
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/activity_logcat.xml1
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/activity_login.xml1
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/activity_master.xml2
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_master_phone.xml67
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/activity_preferences.xml2
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_tasker_settings.xml36
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_youtube_player.xml29
-rw-r--r--org.fox.ttrss/src/main/res/layout/drawer_divider.xml15
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/drawer_header.xml48
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/feeds_goback.xml9
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/feeds_row.xml116
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/feeds_row_selected.xml121
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml15
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_article.xml181
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_article_pager.xml (renamed from org.fox.ttrss/src/main/res/layout/article_pager.xml)5
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_cats.xml20
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_feeds.xml4
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_headlines.xml2
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_headlines_offline.xml5
-rw-r--r--org.fox.ttrss/src/main/res/layout/headlines_footer.xml2
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row.xml279
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_compact.xml21
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_compact_selected.xml (renamed from org.fox.ttrss/src/main/res/layout/headlines_row_selected_compact.xml)22
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_compact_selected_unread.xml (renamed from org.fox.ttrss/src/main/res/layout/headlines_row_selected_unread_compact.xml)26
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml (renamed from org.fox.ttrss/src/main/res/layout/headlines_row_unread_compact.xml)36
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_loadmore.xml2
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/headlines_row_unread.xml283
-rw-r--r--org.fox.ttrss/src/main/res/layout/layout_detail_phone.xml39
-rw-r--r--org.fox.ttrss/src/main/res/layout/layout_master_phone.xml53
-rw-r--r--org.fox.ttrss/src/main/res/layout/preference_material_switch.xml9
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/toolbar.xml9
-rw-r--r--org.fox.ttrss/src/main/res/menu/action_mode_headlines.xml9
-rwxr-xr-xorg.fox.ttrss/src/main/res/menu/activity_logcat.xml6
-rwxr-xr-xorg.fox.ttrss/src/main/res/menu/activity_main.xml50
-rw-r--r--org.fox.ttrss/src/main/res/menu/activity_offline.xml16
-rw-r--r--org.fox.ttrss/src/main/res/menu/activity_share.xml2
-rw-r--r--org.fox.ttrss/src/main/res/menu/activity_youtube_player.xml19
-rwxr-xr-xorg.fox.ttrss/src/main/res/menu/content_gallery_entry.xml9
-rw-r--r--org.fox.ttrss/src/main/res/values-night-v21/style.xml12
-rw-r--r--org.fox.ttrss/src/main/res/values-night/colors.xml143
-rw-r--r--org.fox.ttrss/src/main/res/values-night/style.xml66
-rw-r--r--org.fox.ttrss/src/main/res/values-night/theme_overlays.xml98
-rw-r--r--org.fox.ttrss/src/main/res/values-night/themes.xml76
-rw-r--r--org.fox.ttrss/src/main/res/values-v11/style.xml6
-rwxr-xr-xorg.fox.ttrss/src/main/res/values-v21/style.xml20
-rwxr-xr-xorg.fox.ttrss/src/main/res/values/attrs.xml30
-rw-r--r--[-rwxr-xr-x]org.fox.ttrss/src/main/res/values/colors.xml147
-rw-r--r--[-rwxr-xr-x]org.fox.ttrss/src/main/res/values/style.xml168
-rw-r--r--org.fox.ttrss/src/main/res/values/theme_overlays.xml98
-rw-r--r--org.fox.ttrss/src/main/res/values/themes.xml77
-rwxr-xr-xorg.fox.ttrss/src/main/res/xml/preferences.xml82
431 files changed, 3503 insertions, 3837 deletions
diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle
index 4cc14660..b9ccb805 100755
--- a/org.fox.ttrss/build.gradle
+++ b/org.fox.ttrss/build.gradle
@@ -1,9 +1,6 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 33
- buildToolsVersion "30.0.2"
-
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -12,20 +9,22 @@ android {
defaultConfig {
applicationId "org.fox.ttrss"
buildConfigField "long", "TIMESTAMP", System.currentTimeMillis() + "L"
- buildConfigField "boolean", "ENABLE_UPDATER", "false"
minSdkVersion 24
+ //noinspection ExpiredTargetSdkVersion
targetSdkVersion 31
- versionCode 557
- versionName "1.322"
+ compileSdk 35
+ versionCode 560
+ versionName getVersion()
+ vectorDrawables.useSupportLibrary = true
}
signingConfigs {
- fdroid {
- if (project.hasProperty("FDROID_STORE_FILE")) {
- storeFile file(FDROID_STORE_FILE)
- storePassword FDROID_STORE_PASSWORD
- keyAlias FDROID_KEY_ALIAS
- keyPassword FDROID_KEY_PASSWORD
+ signed {
+ if (project.hasProperty("SIGNING_STORE_FILE")) {
+ storeFile file(SIGNING_STORE_FILE)
+ storePassword SIGNING_STORE_PASSWORD
+ keyAlias SIGNING_KEY_ALIAS
+ keyPassword SIGNING_KEY_PASSWORD
}
}
}
@@ -42,19 +41,66 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
- fdroid {
+ signed {
minifyEnabled false
- versionNameSuffix "-fdroid"
+ versionNameSuffix "-signed"
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
- buildConfigField "boolean", "ENABLE_UPDATER", "true"
- signingConfig signingConfigs.fdroid
+ signingConfig signingConfigs.signed
matchingFallbacks = ['release']
}
}
+ namespace 'org.fox.ttrss'
+ buildFeatures {
+ buildConfig true
+ }
+}
+
+def getGitTimestamp() {
+ // gitlab CI iso-8601 timestamp
+ if (System.getenv("CI_COMMIT_TIMESTAMP")) {
+ return Date.parse("yyyy-MM-dd'T'HH:mm:ssXXX", System.getenv("CI_COMMIT_TIMESTAMP")).format('YY.MM')
+ }
+
+ // try to get version from git repo in current dir
+ try {
+ def stdout = new ByteArrayOutputStream()
+ exec {
+ commandLine 'git', '--no-pager', 'log', '--pretty=%ct', '-n1', 'HEAD'
+ standardOutput = stdout
+ }
+
+ return new Date(stdout.toString().trim().toLong() * 1000).format('YY.MM')
+ }
+ catch (ignored) {
+ return 0;
+ }
+
+}
+
+def getGitCommitHash() {
+ // gitlab CI
+ if (System.getenv("CI_COMMIT_SHORT_SHA"))
+ return System.getenv("CI_COMMIT_SHORT_SHA");
+
+ // try to get version from git repo in current dir
+ try {
+ def stdout = new ByteArrayOutputStream()
+ exec {
+ commandLine 'git', '--no-pager', 'log', '--pretty=%h', '-n1', 'HEAD'
+ standardOutput = stdout
+ }
+ return stdout.toString().trim()
+ }
+ catch (ignored) {
+ return 'UNKNOWN';
+ }
+}
+
+def getVersion() {
+ return getGitTimestamp() + '-' + getGitCommitHash();
}
dependencies {
- implementation files('libs/dashclock-api-r1.1.jar')
implementation 'com.squareup.okhttp3:okhttp:3.12.5'
implementation('com.github.bumptech.glide:okhttp3-integration:1.5.0') {
exclude group: 'glide-parent'
@@ -63,22 +109,25 @@ dependencies {
implementation 'com.bogdwellers:pinchtozoom:0.1'
implementation 'com.github.bumptech.glide:glide:3.8.0'
implementation files('libs/glide-transformations-2.0.2.jar')
- implementation 'androidx.recyclerview:recyclerview:1.3.2'
+ implementation 'androidx.recyclerview:recyclerview:1.4.0'
+ implementation 'androidx.activity:activity:1.10.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'androidx.appcompat:appcompat:1.6.0'
- implementation 'androidx.browser:browser:1.4.0'
- implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
+ implementation 'androidx.appcompat:appcompat:1.7.0'
+ implementation 'androidx.appcompat:appcompat-resources:1.7.0'
+ implementation 'androidx.browser:browser:1.8.0'
+ implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0'
implementation 'com.github.natario1:NestedScrollCoordinatorLayout:5a33a7dbd8'
- implementation 'com.google.android.material:material:1.6.0'
- implementation 'com.google.code.gson:gson:2.8.5'
+ implementation 'com.google.android.material:material:1.12.0'
+ implementation 'com.google.code.gson:gson:2.10.1'
implementation 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar'
implementation 'me.relex:circleindicator:1.2.2@aar'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.github.amulyakhare:TextDrawable:558677ea31'
- implementation 'frankiesardo:icepick:3.2.0'
- compileOnly 'frankiesardo:icepick-processor:3.2.0'
- annotationProcessor 'frankiesardo:icepick-processor:3.2.0'
- implementation 'com.github.livefront:bridge:v1.1.1'
- implementation files('libs/YouTubeAndroidPlayerApi.jar')
- implementation 'com.github.javiersantos:AppUpdater:2.7'
+ implementation 'com.telefonica:nestedscrollwebview:0.1.6'
+ implementation 'androidx.preference:preference:1.2.1'
+}
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(17)
+ }
}
diff --git a/org.fox.ttrss/libs/YouTubeAndroidPlayerApi.jar b/org.fox.ttrss/libs/YouTubeAndroidPlayerApi.jar
deleted file mode 100644
index 1dc2b822..00000000
--- a/org.fox.ttrss/libs/YouTubeAndroidPlayerApi.jar
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/libs/dashclock-api-r1.1.jar b/org.fox.ttrss/libs/dashclock-api-r1.1.jar
deleted file mode 100644
index 3a4e00d0..00000000
--- a/org.fox.ttrss/libs/dashclock-api-r1.1.jar
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml
index d2d1a779..b79e3b05 100755
--- a/org.fox.ttrss/src/main/AndroidManifest.xml
+++ b/org.fox.ttrss/src/main/AndroidManifest.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="org.fox.ttrss">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<queries>
<intent>
@@ -99,7 +98,7 @@
android:excludeFromRecents="true"
android:label="@string/app_name"
android:exported="true"
- android:theme="@style/DarkDialogTheme" >
+ android:theme="@style/MaterialAlertDialog.Material3" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
@@ -113,7 +112,7 @@
android:excludeFromRecents="true"
android:label="@string/subscribe_name"
android:exported="true"
- android:theme="@style/DarkDialogTheme" >
+ android:theme="@style/MaterialAlertDialog.Material3" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
@@ -251,12 +250,6 @@
android:label="Article Images" >
</activity>
- <activity
- android:name=".YoutubePlayerActivity"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:label="@string/title_activity_video_player" >
- </activity>
-
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="org.fox.ttrss.SharedFileProvider"
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
index 94857855..ae6eaef6 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/Application.java
@@ -2,19 +2,11 @@ package org.fox.ttrss;
import android.os.Bundle;
-import com.livefront.bridge.Bridge;
-import com.livefront.bridge.SavedStateHandler;
-
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
import java.util.LinkedHashMap;
-import icepick.Icepick;
-
public class Application extends android.app.Application {
private static Application m_singleton;
@@ -34,18 +26,6 @@ public class Application extends android.app.Application {
public final void onCreate() {
super.onCreate();
- Bridge.initialize(getApplicationContext(), new SavedStateHandler() {
- @Override
- public void saveInstanceState(@NonNull Object target, @NonNull Bundle state) {
- Icepick.saveInstanceState(target, state);
- }
-
- @Override
- public void restoreInstanceState(@NonNull Object target, @Nullable Bundle state) {
- Icepick.restoreInstanceState(target, state);
- }
- });
-
m_singleton = this;
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index 995e0074..f2fbce2c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
@@ -6,13 +6,12 @@ import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.Color;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
-import android.text.Html;
import android.util.Log;
import android.util.TypedValue;
import android.view.ContextMenu;
@@ -29,11 +28,13 @@ import android.webkit.WebView.HitTestResult;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.FrameLayout;
-import android.widget.ImageView;
import android.widget.TextView;
import androidx.core.text.HtmlCompat;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.Attachment;
@@ -43,13 +44,11 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import icepick.State;
-
-public class ArticleFragment extends StateSavedFragment {
+public class ArticleFragment extends androidx.fragment.app.Fragment {
private final String TAG = this.getClass().getSimpleName();
private SharedPreferences m_prefs;
- @State protected Article m_article;
+ protected Article m_article;
private DetailActivity m_activity;
private WebView m_web;
protected View m_customView;
@@ -155,6 +154,15 @@ public class ArticleFragment extends StateSavedFragment {
}
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_article = savedInstanceState.getParcelable("m_article");
+ }
+ }
+
@SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
@@ -171,7 +179,6 @@ public class ArticleFragment extends StateSavedFragment {
view.findViewById(R.id.article_scrollview).setVisibility(View.INVISIBLE);
} */
- m_contentView = view.findViewById(R.id.article_scrollview);
m_customViewContainer = view.findViewById(R.id.article_fullscreen_video);
/* if (m_article.id == HeadlinesFragment.ARTICLE_SPECIAL_TOP_CHANGED) {
@@ -185,7 +192,7 @@ public class ArticleFragment extends StateSavedFragment {
return view;
} */
- m_articleFontSize = Integer.parseInt(m_prefs.getString("article_font_size_sp", "16"));
+ m_articleFontSize = m_prefs.getInt("article_font_size_sp_int", 16);
m_articleSmallFontSize = Math.max(10, Math.min(18, m_articleFontSize - 2));
TextView title = view.findViewById(R.id.title);
@@ -217,97 +224,6 @@ public class ArticleFragment extends StateSavedFragment {
}
- final ImageView scoreView = view.findViewById(R.id.score);
-
- if (scoreView != null) {
- setScoreImage(scoreView, m_article.score);
-
- Resources.Theme theme = m_activity.getTheme();
- TypedValue tv = new TypedValue();
- theme.resolveAttribute(R.attr.headlineTitleHighScoreUnreadTextColor, tv, true);
- int titleHighScoreUnreadColor = tv.data;
-
- if (m_article.score > Article.SCORE_HIGH)
- scoreView.setColorFilter(titleHighScoreUnreadColor);
- else
- scoreView.setColorFilter(null);
-
- if (m_activity.getApiLevel() >= 16) {
- scoreView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- final EditText edit = new EditText(getActivity());
- edit.setText(String.valueOf(m_article.score));
-
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
- .setTitle(R.string.score_for_this_article)
- .setPositiveButton(R.string.set_score,
- new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- try {
- int newScore = Integer.parseInt(edit.getText().toString());
-
- m_article.score = newScore;
-
- m_activity.saveArticleScore(m_article);
-
- setScoreImage(scoreView, newScore);
- } catch (NumberFormatException e) {
- m_activity.toast(R.string.score_invalid);
- e.printStackTrace();
- }
- }
- })
- .setNegativeButton(getString(R.string.cancel),
- new DialogInterface.OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- //
-
- }
- }).setView(edit);
-
- Dialog dialog = builder.create();
- dialog.show();
- }
- });
- }
- }
-
- ImageView attachments = view.findViewById(R.id.attachments);
-
- if (attachments != null) {
- if (m_article.attachments != null && m_article.attachments.size() > 0) {
- attachments.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- m_activity.displayAttachments(m_article);
- }
- });
-
- } else {
- attachments.setVisibility(View.GONE);
- }
- }
-
- ImageView share = view.findViewById(R.id.share);
-
- if (share != null) {
- share.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- m_activity.shareArticle(m_article);
- }
- });
- }
-
TextView comments = view.findViewById(R.id.comments);
if (comments != null) {
@@ -337,31 +253,17 @@ public class ArticleFragment extends StateSavedFragment {
}
}
- TextView host = view.findViewById(R.id.host);
- if (host != null) {
- try {
- URL inurl = new URL(m_article.site_url != null ? m_article.site_url : m_article.comments_link);
- URL outurl = new URL(m_article.link);
- String inhost = inurl.getHost();
- String outhost = outurl.getHost();
- if (!inhost.equals(outhost)) {
- host.setText(outhost.replaceFirst("^www\\.", ""));
- host.setTextSize(TypedValue.COMPLEX_UNIT_SP, m_articleSmallFontSize);
- host.setVisibility(View.VISIBLE);
- }
- } catch (MalformedURLException ignored) {}
- }
-
TextView note = view.findViewById(R.id.note);
+ View noteContainer = view.findViewById(R.id.note_container);
- if (note != null) {
- if (m_article.note != null && !"".equals(m_article.note)) {
+ if (note != null && noteContainer != null) {
+ if (m_article.note != null && m_article.note.length() > 0) {
note.setTextSize(TypedValue.COMPLEX_UNIT_SP, m_articleSmallFontSize);
note.setText(m_article.note);
+ noteContainer.setVisibility(View.VISIBLE);
} else {
- note.setVisibility(View.GONE);
+ noteContainer.setVisibility(View.GONE);
}
-
}
TextView dv = view.findViewById(R.id.date);
@@ -446,7 +348,7 @@ public class ArticleFragment extends StateSavedFragment {
return view;
}
- private void setScoreImage(ImageView scoreView, int score) {
+ private void setScoreImage(MaterialButton scoreView, int score) {
TypedValue tv = new TypedValue();
int scoreAttr = R.attr.ic_action_trending_flat;
@@ -457,7 +359,10 @@ public class ArticleFragment extends StateSavedFragment {
m_activity.getTheme().resolveAttribute(scoreAttr, tv, true);
- scoreView.setImageResource(tv.resourceId);
+ scoreView.setIconResource(tv.resourceId);
+
+ TypedValue tvPrimary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorPrimary, tvPrimary, true);
}
protected void renderContent(Bundle savedInstanceState) {
@@ -468,42 +373,30 @@ public class ArticleFragment extends StateSavedFragment {
WebSettings ws = m_web.getSettings();
ws.setSupportZoom(false);
- TypedValue tvBackground = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.articleBackground, tvBackground, true);
-
- String backgroundHexColor = String.format("#%06X", (0xFFFFFF & tvBackground.data));
-
- String cssOverride = "";
-
- cssOverride = "body { background : "+ backgroundHexColor+"; }";
-
TypedValue tvTextColor = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.articleTextColor, tvTextColor, true);
+ getActivity().getTheme().resolveAttribute(R.attr.colorOnSurface, tvTextColor, true);
String textColor = String.format("#%06X", (0xFFFFFF & tvTextColor.data));
- cssOverride += "body { color : "+textColor+"; }";
+ String cssOverride = "body { color : "+textColor+"; }";
- TypedValue tvLinkColor = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.linkColor, tvLinkColor, true);
+ TypedValue tvColorPrimary = new TypedValue();
+ getActivity().getTheme().resolveAttribute(R.attr.colorPrimary, tvColorPrimary, true);
- String linkHexColor = String.format("#%06X", (0xFFFFFF & tvLinkColor.data));
+ String linkHexColor = String.format("#%06X", (0xFFFFFF & tvColorPrimary.data));
cssOverride += " a:link {color: "+linkHexColor+";} a:visited { color: "+linkHexColor+";}";
String articleContent = m_article.content != null ? m_article.content : "";
- ws.setJavaScriptEnabled(true);
+ ws.setJavaScriptEnabled(false);
m_chromeClient = new FSVideoChromeClient(getView());
m_web.setWebChromeClient(m_chromeClient);
+ m_web.setBackgroundColor(Color.TRANSPARENT);
ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
ws.setMediaPlaybackRequiresUserGesture(true);
- if (m_activity.isUiNightMode()) {
- m_web.setBackgroundColor(Color.BLACK);
- }
-
if (m_prefs.getBoolean("justify_article_text", true)) {
cssOverride += "body { text-align : justify; } ";
}
@@ -512,12 +405,14 @@ public class ArticleFragment extends StateSavedFragment {
ws.setDefaultFontSize(m_articleFontSize);
+ int margin8dp = CommonActivity.dpToPx(getContext(), 8);
+
StringBuilder content = new StringBuilder("<html>" +
"<head>" +
"<meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\">" +
"<meta name=\"viewport\" content=\"width=device-width, user-scalable=no\" />" +
"<style type=\"text/css\">" +
- "body { padding : 0px; margin : 0px; line-height : 1.3; word-wrap: break-word; }" +
+ "body { padding : 0px; margin : "+margin8dp+"px; line-height : 1.3; word-wrap: break-word; }" +
"h1, h2, h3, h4, h5, h6 { line-height: 1; text-align: initial; }" +
"img, video, iframe { max-width : 100%; width : auto; height : auto; }" +
" table { width : 100%; }" +
@@ -628,4 +523,11 @@ public class ArticleFragment extends StateSavedFragment {
m_activity = (DetailActivity)activity;
}
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_article", m_article);
+ }
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java
index 86feeaed..c94f0c3a 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java
@@ -28,20 +28,18 @@ import org.fox.ttrss.util.HeadlinesRequest;
import java.util.HashMap;
-import icepick.State;
-
-public class ArticlePager extends StateSavedFragment {
+public class ArticlePager extends androidx.fragment.app.Fragment {
private final String TAG = "ArticlePager";
private PagerAdapter m_adapter;
private HeadlinesEventListener m_listener;
- @State protected Article m_article;
- @State protected ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles;
+ protected Article m_article;
+ protected ArticleList m_articles = new ArticleList(); //m_articles = Application.getInstance().m_loadedArticles;
private OnlineActivity m_activity;
private String m_searchQuery = "";
- @State protected Feed m_feed;
+ protected Feed m_feed;
private SharedPreferences m_prefs;
- @State protected int m_firstId = 0;
+ protected int m_firstId = 0;
private boolean m_refreshInProgress;
private boolean m_lazyLoadDisabled;
@@ -112,15 +110,32 @@ public class ArticlePager extends StateSavedFragment {
}
@Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_article", m_article);
+ //out.putParcelable("m_articles", m_articles);
+ out.putParcelable("m_feed", m_feed);
+ out.putInt("m_firstId", m_firstId);
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_article = savedInstanceState.getParcelable("m_article");
+ //m_articles = savedInstanceState.getParcelable("m_articles");
+ m_feed = savedInstanceState.getParcelable("m_feed");
+ m_firstId = savedInstanceState.getInt("m_firstId");
+ }
+
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.article_pager, container, false);
+ View view = inflater.inflate(R.layout.fragment_article_pager, container, false);
if (savedInstanceState != null) {
if (m_activity instanceof DetailActivity) {
@@ -354,7 +369,7 @@ public class ArticlePager extends StateSavedFragment {
m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
}
-
+
@SuppressLint("NewApi")
@Override
public void onResume() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
index b97448fe..0952e7f7 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java
@@ -11,166 +11,126 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.appcompat.widget.SwitchCompat;
+
import org.fox.ttrss.offline.OfflineActivity;
import java.net.MalformedURLException;
import java.net.URL;
-import androidx.appcompat.widget.SwitchCompat;
-
-public abstract class BaseFeedlistFragment extends StateSavedFragment {
+public abstract class BaseFeedlistFragment extends androidx.fragment.app.Fragment {
abstract public void refresh();
public void initDrawerHeader(LayoutInflater inflater, View view, ListView list, final CommonActivity activity, final SharedPreferences prefs, boolean isRoot) {
boolean isOffline = activity instanceof OfflineActivity;
- if (true /*m_activity.findViewById(R.id.headlines_drawer) != null*/) {
- try {
+ try {
+ View layout = inflater.inflate(R.layout.drawer_header, list, false);
+ list.addHeaderView(layout, null, false);
- boolean needSettingsFooter = false;
+ TextView login = view.findViewById(R.id.drawer_header_login);
+ TextView server = view.findViewById(R.id.drawer_header_server);
- if (activity.isSmallScreen()) {
- View layout = inflater.inflate(R.layout.drawer_header, list, false);
- list.addHeaderView(layout, null, false);
+ login.setText(prefs.getString("login", ""));
+ try {
+ server.setText(new URL(prefs.getString("ttrss_url", "")).getHost());
+ } catch (MalformedURLException e) {
+ server.setText("");
+ }
- TextView login = view.findViewById(R.id.drawer_header_login);
- TextView server = view.findViewById(R.id.drawer_header_server);
+ View settings = view.findViewById(R.id.drawer_settings_btn);
- login.setText(prefs.getString("login", ""));
+ settings.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
try {
- server.setText(new URL(prefs.getString("ttrss_url", "")).getHost());
- } catch (MalformedURLException e) {
- server.setText("");
- }
+ Intent intent = new Intent(getActivity(),
+ PreferencesActivity.class);
- View settings = view.findViewById(R.id.drawer_settings_btn);
+ startActivityForResult(intent, 0);
- settings.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- Intent intent = new Intent(getActivity(),
- PreferencesActivity.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
- startActivityForResult(intent, 0);
+ /* deal with ~material~ footers */
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- } else {
- needSettingsFooter = true;
+ // divider
+ final View footer = inflater.inflate(R.layout.drawer_divider, list, false);
+ footer.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //
}
+ });
+ list.addFooterView(footer);
+
+ // unread only checkbox
+ final View rowToggle = inflater.inflate(R.layout.feeds_row_toggle, list, false);
+ list.addFooterView(rowToggle);
+ TextView text = rowToggle.findViewById(R.id.title);
+ text.setText(R.string.unread_only);
+
+ ImageView icon = rowToggle.findViewById(R.id.icon);
+ TypedValue tv = new TypedValue();
+ getActivity().getTheme().resolveAttribute(R.attr.ic_filter_variant, tv, true);
+ icon.setImageResource(tv.resourceId);
+
+ final SwitchCompat rowSwitch = rowToggle.findViewById(R.id.row_switch);
+ rowSwitch.setChecked(activity.getUnreadOnly());
+
+ rowSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton button, boolean isChecked) {
+ activity.setUnreadOnly(isChecked);
+ refresh();
+ }
+ });
- /* deal with ~material~ footers */
+ footer.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ rowSwitch.setChecked(!rowSwitch.isChecked());
+ }
+ });
- // divider
- View footer = inflater.inflate(R.layout.drawer_divider, list, false);
- footer.setOnClickListener(new View.OnClickListener() {
+ // root or subdirectory (i.e. feed category)
+ if (isRoot) {
+ // offline
+ final View offlineFooter = inflater.inflate(R.layout.feeds_row, list, false);
+ offlineFooter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- //
- }
- });
- list.addFooterView(footer);
-
- // unread only checkbox
- footer = inflater.inflate(R.layout.feeds_row_toggle, list, false);
- list.addFooterView(footer);
- TextView text = footer.findViewById(R.id.title);
- text.setText(R.string.unread_only);
-
- ImageView icon = footer.findViewById(R.id.icon);
- TypedValue tv = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.ic_filter_variant, tv, true);
- icon.setImageResource(tv.resourceId);
-
- final SwitchCompat rowSwitch = footer.findViewById(R.id.row_switch);
- rowSwitch.setChecked(activity.getUnreadOnly());
+ if (activity instanceof OnlineActivity) {
+ ((OnlineActivity)activity).switchOffline();
- rowSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton button, boolean isChecked) {
- activity.setUnreadOnly(isChecked);
- refresh();
+ } else if (activity instanceof OfflineActivity) {
+ ((OfflineActivity)activity).switchOnline();
+ }
}
});
- footer.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- rowSwitch.setChecked(!rowSwitch.isChecked());
- }
- });
+ list.addFooterView(offlineFooter);
+ text = offlineFooter.findViewById(R.id.title);
+ text.setText(isOffline ? R.string.go_online : R.string.go_offline);
- if (isRoot) {
- if (needSettingsFooter) {
- // settings (as a list footer row)
-
- footer = inflater.inflate(R.layout.feeds_row, list, false);
- footer.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- Intent intent = new Intent(getActivity(),
- PreferencesActivity.class);
-
- startActivityForResult(intent, 0);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
-
- list.addFooterView(footer);
- text = footer.findViewById(R.id.title);
- text.setText(R.string.action_settings);
-
- icon = footer.findViewById(R.id.icon);
- tv = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.ic_settings, tv, true);
- icon.setImageResource(tv.resourceId);
-
- TextView counter = footer.findViewById(R.id.unread_counter);
- counter.setText(R.string.blank);
- }
-
- // offline
- footer = inflater.inflate(R.layout.feeds_row, list, false);
- footer.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (activity instanceof OnlineActivity) {
- ((OnlineActivity)activity).switchOffline();
-
- } else if (activity instanceof OfflineActivity) {
- ((OfflineActivity)activity).switchOnline();
- }
- }
- });
-
- list.addFooterView(footer);
- text = footer.findViewById(R.id.title);
- text.setText(isOffline ? R.string.go_online : R.string.go_offline);
-
- icon = footer.findViewById(R.id.icon);
- tv = new TypedValue();
- getActivity().getTheme().resolveAttribute(isOffline ? R.attr.ic_cloud_upload : R.attr.ic_cloud_download, tv, true);
- icon.setImageResource(tv.resourceId);
-
- TextView counter = footer.findViewById(R.id.unread_counter);
- counter.setText(R.string.blank);
- }
+ icon = offlineFooter.findViewById(R.id.icon);
+ tv = new TypedValue();
+ getActivity().getTheme().resolveAttribute(isOffline ? R.attr.ic_cloud_upload : R.attr.ic_cloud_download, tv, true);
+ icon.setImageResource(tv.resourceId);
- } catch (InflateException e) {
- // welp couldn't inflate header i guess
- e.printStackTrace();
- } catch (java.lang.UnsupportedOperationException e) {
- e.printStackTrace();
+ TextView counter = offlineFooter.findViewById(R.id.unread_counter);
+ counter.setText(R.string.blank);
}
+
+ } catch (InflateException e) {
+ // welp couldn't inflate header i guess
+ e.printStackTrace();
+ } catch (java.lang.UnsupportedOperationException e) {
+ e.printStackTrace();
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
index 1933fe6a..fad4f8ef 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java
@@ -27,12 +27,14 @@ import android.os.Bundle;
import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.text.TextUtils;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.view.Display;
import android.view.View;
import android.widget.CheckBox;
+import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.browser.customtabs.CustomTabsCallback;
@@ -47,8 +49,8 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
-import com.livefront.bridge.Bridge;
import org.fox.ttrss.util.DatabaseHelper;
import org.fox.ttrss.widget.SmallWidgetProvider;
@@ -63,8 +65,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import icepick.State;
-
public class CommonActivity extends AppCompatActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private final String TAG = this.getClass().getSimpleName();
@@ -91,7 +91,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
//private SQLiteDatabase m_writableDb;
private boolean m_smallScreenMode = true;
- @State protected String m_theme;
+ protected String m_theme;
private boolean m_needRestart;
private static String s_customTabPackageName;
@@ -233,6 +233,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
@Override
public void onCreate(Bundle savedInstanceState) {
+ EdgeToEdge.enable(this);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationManager nmgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
@@ -263,10 +264,10 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
setupWidgetUpdates(this);
- Bridge.restoreInstanceState(this, savedInstanceState);
-
if (savedInstanceState == null) {
m_theme = m_prefs.getString("theme", CommonActivity.THEME_DEFAULT);
+ } else {
+ m_theme = savedInstanceState.getString("m_theme");
}
String customTabPackageName = getCustomTabPackageName(this);
@@ -282,7 +283,8 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
@Override
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
- Bridge.saveInstanceState(this, out);
+
+ out.putString("m_theme", m_theme);
}
public boolean isSmallScreen() {
@@ -454,15 +456,11 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
private void openUriWithCustomTab(Uri uri) {
if (m_customTabClient != null) {
- TypedValue tvBackground = new TypedValue();
- getTheme().resolveAttribute(R.attr.colorPrimary, tvBackground, true);
-
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(getCustomTabSession());
builder.setStartAnimations(this, R.anim.slide_in_right, R.anim.slide_out_left);
builder.setExitAnimations(this, R.anim.slide_in_left, R.anim.slide_out_right);
- builder.setToolbarColor(tvBackground.data);
builder.setShowTitle(true);
Intent shareIntent = getShareIntent(uri.toString(), null);
@@ -470,7 +468,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(),
CommonActivity.PENDING_INTENT_CHROME_SHARE, shareIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
- builder.setActionButton(BitmapFactory.decodeResource(getResources(), R.drawable.ic_share),
+ builder.setActionButton(BitmapFactory.decodeResource(getResources(), R.drawable.baseline_share_24),
getString(R.string.share_article), pendingIntent);
CustomTabsIntent intent = builder.build();
@@ -508,8 +506,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
View dialogView = View.inflate(this, R.layout.dialog_open_link_askcb, null);
final CheckBox askEveryTimeCB = dialogView.findViewById(R.id.open_link_ask_checkbox);
- AlertDialog.Builder builder = new AlertDialog.Builder(
- CommonActivity.this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setView(dialogView)
.setMessage(uri.toString())
.setPositiveButton(R.string.quick_preview,
@@ -564,7 +561,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
}
});*/
- AlertDialog dlg = builder.create();
+ Dialog dlg = builder.create();
dlg.show();
} else {
@@ -616,7 +613,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
if (es.size() > 0) {
if (es.get(0).hasAttr("title")) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setCancelable(true)
.setMessage(es.get(0).attr("title"))
.setPositiveButton(R.string.dialog_close, new DialogInterface.OnClickListener() {
@@ -627,7 +624,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
}
);
- AlertDialog dialog = builder.create();
+ Dialog dialog = builder.create();
dialog.show();
} else {
@@ -656,5 +653,11 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc
JobIntentService.enqueueWork(context.getApplicationContext(), WidgetUpdateService.class, 0, new Intent());
}
+ static public int dpToPx(Context context, int dp) {
+ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+ int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
+ return px;
+ }
+
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
index 97819411..0edd6c10 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
@@ -13,19 +13,18 @@ import android.util.Log;
import android.view.MenuItem;
import android.view.View;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.FragmentTransaction;
+
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
import org.fox.ttrss.types.Feed;
-import androidx.appcompat.widget.Toolbar;
-import androidx.fragment.app.FragmentTransaction;
-import icepick.State;
-
public class DetailActivity extends OnlineActivity implements HeadlinesEventListener {
private final String TAG = this.getClass().getSimpleName();
- @State protected ArticleList m_articles = new ArticleList();
+ protected ArticleList m_articles = new ArticleList();
protected SharedPreferences m_prefs;
private Article m_activeArticle;
@@ -40,6 +39,10 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_articles = savedInstanceState.getParcelable("m_articles");
+ }
+
if (m_prefs.getBoolean("force_phone_layout", false)) {
setContentView(R.layout.activity_detail_phone);
} else {
@@ -111,6 +114,7 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
ArticleList tmp = Application.getInstance().tmpArticleList;
if (tmp != null) {
+ m_articles.clear();
m_articles.addAll(tmp);
}
@@ -166,20 +170,20 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
+ out.putParcelable("m_articles", m_articles);
+
Application.getInstance().save(out);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
+ if (item.getItemId() == android.R.id.home) {
onBackPressed();
- return true;
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ return true;
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
@Override
public void onResume() {
@@ -208,12 +212,12 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
/* if (!isCompatMode() && (isSmallScreen() || !isPortrait())) {
m_menu.findItem(R.id.toggle_attachments).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
} */
- //m_menu.findItem(R.id.toggle_attachments).setVisible(true);
+ m_menu.findItem(R.id.toggle_attachments).setVisible(true);
} else {
/* if (!isCompatMode()) {
m_menu.findItem(R.id.toggle_attachments).setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
} */
- //m_menu.findItem(R.id.toggle_attachments).setVisible(false);
+ m_menu.findItem(R.id.toggle_attachments).setVisible(false);
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
index 0feda5d9..b805ee6a 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
@@ -24,6 +24,10 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -40,17 +44,12 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import icepick.State;
-
public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnItemClickListener, OnSharedPreferenceChangeListener,
LoaderManager.LoaderCallbacks<JsonElement> {
private final String TAG = this.getClass().getSimpleName();
private FeedCategoryListAdapter m_adapter;
private FeedCategoryList m_cats = new FeedCategoryList();
- @State FeedCategory m_selectedCat;
+ FeedCategory m_selectedCat;
private MasterActivity m_activity;
private SwipeRefreshLayout m_swipeLayout;
private ListView m_list;
@@ -216,50 +215,48 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
-
- switch (item.getItemId()) {
- case R.id.browse_headlines:
- if (true) {
- FeedCategory cat = getCategoryAtPosition(info.position);
- if (cat != null) {
- m_activity.onCatSelected(cat, true);
- //setSelectedCategory(cat);
- }
- }
- return true;
- case R.id.browse_feeds:
- if (true) {
- FeedCategory cat = getCategoryAtPosition(info.position);
- if (cat != null) {
- m_activity.onCatSelected(cat, false);
- //cf.setSelectedCategory(cat);
- }
- }
- return true;
- case R.id.create_shortcut:
- if (true) {
- FeedCategory cat = getCategoryAtPosition(info.position);
- if (cat != null) {
- m_activity.createCategoryShortcut(cat);
- //cf.setSelectedCategory(cat);
- }
- }
- return true;
- case R.id.catchup_category:
- if (true) {
- final FeedCategory cat = getCategoryAtPosition(info.position);
- if (cat != null) {
- m_activity.catchupDialog(new Feed(cat.id, cat.title, true));
- }
- }
- return true;
-
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.browse_headlines) {
+ if (true) {
+ FeedCategory cat = getCategoryAtPosition(info.position);
+ if (cat != null) {
+ m_activity.onCatSelected(cat, true);
+ //setSelectedCategory(cat);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.browse_feeds) {
+ if (true) {
+ FeedCategory cat = getCategoryAtPosition(info.position);
+ if (cat != null) {
+ m_activity.onCatSelected(cat, false);
+ //cf.setSelectedCategory(cat);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.create_shortcut) {
+ if (true) {
+ FeedCategory cat = getCategoryAtPosition(info.position);
+ if (cat != null) {
+ m_activity.createCategoryShortcut(cat);
+ //cf.setSelectedCategory(cat);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.catchup_category) {
+ if (true) {
+ final FeedCategory cat = getCategoryAtPosition(info.position);
+
+ if (cat != null) {
+ m_activity.catchupDialog(new Feed(cat.id, cat.title, true));
+ }
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
@@ -290,11 +287,20 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
return null;
}
}
-
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_selectedCat = savedInstanceState.getParcelable("m_selectedCat");
+ }
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_cats, container, false);
+ View view = inflater.inflate(R.layout.fragment_feeds, container, false);
m_swipeLayout = view.findViewById(R.id.feeds_swipe_container);
@@ -474,5 +480,10 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
}
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+ out.putParcelable("m_selectedCat", m_selectedCat);
+ }
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
index 60020086..55c8950b 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
@@ -29,6 +29,11 @@ import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
@@ -45,11 +50,6 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
-import androidx.loader.app.LoaderManager;
-import androidx.loader.content.Loader;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import icepick.State;
-
public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickListener, OnSharedPreferenceChangeListener,
LoaderManager.LoaderCallbacks<JsonElement> {
private final String TAG = this.getClass().getSimpleName();
@@ -57,10 +57,10 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
private FeedListAdapter m_adapter;
private FeedList m_feeds = new FeedList();
private MasterActivity m_activity;
- @State Feed m_selectedFeed;
- @State FeedCategory m_activeCategory;
+ Feed m_selectedFeed;
+ FeedCategory m_activeCategory;
private SwipeRefreshLayout m_swipeLayout;
- @State boolean m_enableParentBtn = false;
+ boolean m_enableParentBtn = false;
private ListView m_list;
public void initialize(FeedCategory cat, boolean enableParentBtn) {
@@ -237,75 +237,72 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
- switch (item.getItemId()) {
- case R.id.browse_headlines:
- if (true) {
- Feed feed = getFeedAtPosition(info.position);
- if (feed != null) {
- m_activity.onFeedSelected(feed);
- }
- }
- return true;
- case R.id.browse_feeds:
- if (true) {
- Feed feed = getFeedAtPosition(info.position);
- if (feed != null) {
- m_activity.onCatSelected(new FeedCategory(feed.id, feed.title, feed.unread), false);
- }
- }
- return true;
- case R.id.unsubscribe_feed:
- if (true) {
- final Feed feed = getFeedAtPosition(info.position);
-
- AlertDialog.Builder builder = new AlertDialog.Builder(
- m_activity)
- .setMessage(getString(R.string.unsubscribe_from_prompt, feed.title))
- .setPositiveButton(R.string.unsubscribe,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- m_activity.unsubscribeFeed(feed);
-
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- }
- });
-
- AlertDialog dlg = builder.create();
- dlg.show();
- }
-
- return true;
- case R.id.create_shortcut:
- if (true) {
- Feed feed = getFeedAtPosition(info.position);
- if (feed != null) {
- m_activity.createFeedShortcut(feed);
- }
- }
- return true;
- case R.id.catchup_feed:
- if (true) {
- Feed feed = getFeedAtPosition(info.position);
-
- if (feed != null) {
- m_activity.catchupDialog(feed);
- }
- }
- return true;
-
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.browse_headlines) {
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+ if (feed != null) {
+ m_activity.onFeedSelected(feed);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.browse_feeds) {
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+ if (feed != null) {
+ m_activity.onCatSelected(new FeedCategory(feed.id, feed.title, feed.unread), false);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.unsubscribe_feed) {
+ if (true) {
+ final Feed feed = getFeedAtPosition(info.position);
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext())
+ .setMessage(getString(R.string.unsubscribe_from_prompt, feed.title))
+ .setPositiveButton(R.string.unsubscribe,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ m_activity.unsubscribeFeed(feed);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dlg = builder.create();
+ dlg.show();
+ }
+
+ return true;
+ } else if (itemId == R.id.create_shortcut) {
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+ if (feed != null) {
+ m_activity.createFeedShortcut(feed);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.catchup_feed) {
+ if (true) {
+ Feed feed = getFeedAtPosition(info.position);
+
+ if (feed != null) {
+ m_activity.catchupDialog(feed);
+ }
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
@@ -334,6 +331,32 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
super.onCreateContextMenu(menu, v, menuInfo);
}
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ ArrayList<Feed> list = savedInstanceState.getParcelableArrayList("m_feeds");
+
+ m_feeds.clear();
+ m_feeds.addAll(list);
+
+ m_selectedFeed = savedInstanceState.getParcelable("m_selectedFeed");
+ m_activeCategory = savedInstanceState.getParcelable("m_activeCategory");
+ m_enableParentBtn = savedInstanceState.getBoolean("m_enableParentBtn");
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelableArrayList("m_feeds", m_feeds);
+ out.putParcelable("m_selectedFeed", m_selectedFeed);
+ out.putParcelable("m_activeCategory", m_activeCategory);
+ out.putBoolean("m_enableParentBtn", m_enableParentBtn);
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
index 9645ad80..ef3797b3 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryActivity.java
@@ -3,18 +3,26 @@ package org.fox.ttrss;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.Window;
import android.widget.PopupMenu;
import android.widget.ProgressBar;
+import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
@@ -34,16 +42,15 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
-import icepick.State;
import me.relex.circleindicator.CircleIndicator;
public class GalleryActivity extends CommonActivity {
private final String TAG = this.getClass().getSimpleName();
- @State protected ArrayList<GalleryEntry> m_items = new ArrayList<>();
- @State protected String m_title;
+ protected ArrayList<GalleryEntry> m_items = new ArrayList<>();
+ protected String m_title;
private ArticleImagesPagerAdapter m_adapter;
- @State public String m_content;
+ public String m_content;
private ViewPager m_pager;
private ProgressBar m_checkProgress;
@@ -234,6 +241,14 @@ public class GalleryActivity extends CommonActivity {
return firstFound;
}
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelableArrayList("m_items", m_items);
+ out.putString("m_title", m_title);
+ out.putString("m_content", m_content);
+ }
+
@Override
public void onCreate(Bundle savedInstanceState) {
ActivityCompat.postponeEnterTransition(this);
@@ -242,19 +257,19 @@ public class GalleryActivity extends CommonActivity {
m_prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
-
- getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
- setTheme(R.style.AppTheme);
+ setAppTheme(m_prefs);
super.onCreate(savedInstanceState);
+ Window window = getWindow();
+ WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(window, window.getDecorView());
+ windowInsetsController.hide(WindowInsetsCompat.Type.statusBars());
+
setContentView(R.layout.activity_gallery);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
- //m_progress = (ProgressBar) findViewById(R.id.gallery_check_progress);
-
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().hide();
@@ -273,6 +288,14 @@ public class GalleryActivity extends CommonActivity {
if (!collectGalleryContents(imgSrcFirst, doc, uncheckedItems))
if (!collectGalleryContents("", doc, uncheckedItems))
m_items.add(new GalleryEntry(imgSrcFirst, GalleryEntry.GalleryEntryType.TYPE_IMAGE, null));
+ } else {
+ ArrayList<GalleryEntry> list = savedInstanceState.getParcelableArrayList("m_items");
+
+ m_items.clear();
+ m_items.addAll(list);
+
+ m_title = savedInstanceState.getString("m_title");
+ m_content = savedInstanceState.getString("m_content");
}
findViewById(R.id.gallery_overflow).setOnClickListener(new View.OnClickListener() {
@@ -361,44 +384,43 @@ public class GalleryActivity extends CommonActivity {
public boolean onImageMenuItemSelected(MenuItem item, GalleryEntry entry) {
String url = entry.url;
- switch (item.getItemId()) {
- case R.id.article_img_open:
- if (url != null) {
- try {
- openUri(Uri.parse(url));
- } catch (Exception e) {
- e.printStackTrace();
- toast(R.string.error_other_error);
- }
- }
- return true;
- case R.id.article_img_copy:
- if (url != null) {
- copyToClipboard(url);
+ int itemId = item.getItemId();
+ if (itemId == R.id.article_img_open) {
+ if (url != null) {
+ try {
+ openUri(Uri.parse(url));
+ } catch (Exception e) {
+ e.printStackTrace();
+ toast(R.string.error_other_error);
}
- return true;
- case R.id.article_img_share:
- if (url != null) {
- if (entry.type == GalleryEntry.GalleryEntryType.TYPE_IMAGE) {
- Log.d(TAG, "image sharing image from URL=" + url);
+ }
+ return true;
+ } else if (itemId == R.id.article_img_copy) {
+ if (url != null) {
+ copyToClipboard(url);
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share) {
+ if (url != null) {
+ if (entry.type == GalleryEntry.GalleryEntryType.TYPE_IMAGE) {
+ Log.d(TAG, "image sharing image from URL=" + url);
- shareImageFromUri(url);
- }
- }
- return true;
- case R.id.article_img_share_url:
- if (url != null) {
- shareText(url);
- }
- return true;
- case R.id.article_img_view_caption:
- if (url != null) {
- displayImageCaption(url, m_content);
+ shareImageFromUri(url);
}
- return true;
- default:
- Log.d(TAG, "onImageMenuItemSelected, unhandled id=" + item.getItemId());
- return false;
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share_url) {
+ if (url != null) {
+ shareText(url);
+ }
+ return true;
+ } else if (itemId == R.id.article_img_view_caption) {
+ if (url != null) {
+ displayImageCaption(url, m_content);
+ }
+ return true;
}
+ Log.d(TAG, "onImageMenuItemSelected, unhandled id=" + item.getItemId());
+ return false;
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
index 338845a2..b35ca9e7 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryBaseFragment.java
@@ -5,7 +5,7 @@ import android.os.Bundle;
import android.view.ContextMenu;
import android.view.View;
-public class GalleryBaseFragment extends StateSavedFragment {
+public class GalleryBaseFragment extends androidx.fragment.app.Fragment {
private final String TAG = this.getClass().getSimpleName();
protected GalleryActivity m_activity;
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
index e058ca7b..addb48d3 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryImageFragment.java
@@ -19,12 +19,19 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
-import icepick.State;
-
public class GalleryImageFragment extends GalleryBaseFragment {
private final String TAG = this.getClass().getSimpleName();
- @State String m_url;
+ String m_url;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_url = savedInstanceState.getString("m_url");
+ }
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -84,6 +91,13 @@ public class GalleryImageFragment extends GalleryBaseFragment {
m_url = url;
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_url", m_url);
+ }
+
/*@Override
public boolean onContextItemSelected(MenuItem item) {
int position = m_pager.getCurrentItem();
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
index c2f8841d..2e2df149 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/GalleryVideoFragment.java
@@ -15,20 +15,36 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.MediaController;
-import java.io.IOException;
-
import androidx.core.app.ActivityCompat;
import androidx.core.view.ViewCompat;
-import icepick.State;
+
+import java.io.IOException;
public class GalleryVideoFragment extends GalleryBaseFragment {
private final String TAG = this.getClass().getSimpleName();
- @State String m_url;
- @State String m_coverUrl;
+ String m_url;
+ String m_coverUrl;
MediaPlayer m_mediaPlayer;
private boolean m_userVisibleHint = false;
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ m_url = savedInstanceState.getString("m_url");
+ m_coverUrl = savedInstanceState.getString("m_coverUrl");
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_url", m_url);
+ out.putString("m_coverUrl", m_coverUrl);
+ }
+
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_gallery_entry, container, false);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
index fb43f7ca..b6953bc6 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java
@@ -2,14 +2,12 @@ package org.fox.ttrss;
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
-import android.content.res.Resources.Theme;
+import android.content.res.ColorStateList;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.SurfaceTexture;
@@ -44,18 +42,17 @@ import android.view.WindowManager;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.CheckBox;
import android.widget.EditText;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.view.ViewCompat;
import androidx.recyclerview.widget.DefaultItemAnimator;
-import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -69,6 +66,9 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.divider.MaterialDividerItemDecoration;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.JsonElement;
@@ -87,14 +87,11 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.TimeZone;
-import java.util.concurrent.TimeUnit;
-import icepick.State;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
-public class HeadlinesFragment extends StateSavedFragment {
+public class HeadlinesFragment extends androidx.fragment.app.Fragment {
public enum ArticlesSelection { ALL, NONE, UNREAD }
@@ -105,23 +102,23 @@ public class HeadlinesFragment extends StateSavedFragment {
private final String TAG = this.getClass().getSimpleName();
- @State Feed m_feed;
- @State Article m_activeArticle;
- @State String m_searchQuery = "";
+ Feed m_feed;
+ Article m_activeArticle;
+ String m_searchQuery = "";
private boolean m_refreshInProgress = false;
- @State int m_firstId = 0;
- @State boolean m_lazyLoadDisabled = false;
+ int m_firstId = 0;
+ boolean m_lazyLoadDisabled = false;
private SharedPreferences m_prefs;
private HeaderViewRecyclerAdapter m_adapter;
- @State ArticleList m_articles = new ArticleList();
+ ArticleList m_articles = new ArticleList();
private ArticleList m_readArticles = new ArticleList();
private HeadlinesEventListener m_listener;
private OnlineActivity m_activity;
private SwipeRefreshLayout m_swipeLayout;
private int m_maxImageSize = 0;
- @State boolean m_compactLayoutMode = false;
+ boolean m_compactLayoutMode = false;
private RecyclerView m_list;
private LinearLayoutManager m_layoutManager;
@@ -159,68 +156,66 @@ public class HeadlinesFragment extends StateSavedFragment {
if (article == null) return false;
- switch (item.getItemId()) {
- case R.id.set_labels:
- m_activity.editArticleLabels(article);
- return true;
- case R.id.article_set_note:
- m_activity.editArticleNote(article);
- return true;
- case R.id.headlines_article_unread:
- article.unread = !article.unread;
- m_activity.saveArticleUnread(article);
- m_adapter.notifyItemChanged(position);
- return true;
- case R.id.headlines_article_link_copy:
- m_activity.copyToClipboard(article.link);
- return true;
- case R.id.headlines_article_link_open:
- m_activity.openUri(Uri.parse(article.link));
-
- if (article.unread) {
- article.unread = false;
- m_activity.saveArticleUnread(article);
-
- m_adapter.notifyItemChanged(position);
- }
- return true;
- case R.id.headlines_share_article:
- m_activity.shareArticle(article);
- return true;
- case R.id.catchup_above:
- if (true) {
-
- final Article fa = article;
-
- AlertDialog.Builder builder = new AlertDialog.Builder(
- m_activity)
- .setMessage(R.string.confirm_catchup_above)
- .setPositiveButton(R.string.dialog_ok,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- catchupAbove(fa);
-
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- }
- });
-
- AlertDialog dialog = builder.create();
- dialog.show();
- }
- return true;
- default:
- Log.d(TAG, "onArticleMenuItemSelected, unhandled id=" + item.getItemId());
- return false;
- }
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.set_labels) {
+ m_activity.editArticleLabels(article);
+ return true;
+ } else if (itemId == R.id.article_set_note) {
+ m_activity.editArticleNote(article);
+ return true;
+ } else if (itemId == R.id.headlines_article_unread) {
+ article.unread = !article.unread;
+ m_activity.saveArticleUnread(article);
+ m_adapter.notifyItemChanged(position);
+ return true;
+ } else if (itemId == R.id.headlines_article_link_copy) {
+ m_activity.copyToClipboard(article.link);
+ return true;
+ } else if (itemId == R.id.headlines_article_link_open) {
+ m_activity.openUri(Uri.parse(article.link));
+
+ if (article.unread) {
+ article.unread = false;
+ m_activity.saveArticleUnread(article);
+
+ m_adapter.notifyItemChanged(position);
+ }
+ return true;
+ } else if (itemId == R.id.headlines_share_article) {
+ m_activity.shareArticle(article);
+ return true;
+ } else if (itemId == R.id.catchup_above) {
+ if (true) {
+
+ final Article fa = article;
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext())
+ .setMessage(R.string.confirm_catchup_above)
+ .setPositiveButton(R.string.dialog_ok,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ catchupAbove(fa);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dialog = builder.create();
+ dialog.show();
+ }
+ return true;
+ }
+ Log.d(TAG, "onArticleMenuItemSelected, unhandled id=" + item.getItemId());
+ return false;
+ }
private void catchupAbove(Article article) {
ArticleList articles = getAllArticles();
@@ -283,12 +278,49 @@ public class HeadlinesFragment extends StateSavedFragment {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (savedInstanceState != null) {
+ m_feed = savedInstanceState.getParcelable("m_feed");
+ m_activeArticle = savedInstanceState.getParcelable("m_activeArticle");
+ m_searchQuery = savedInstanceState.getString("m_searchQuery");
+ m_firstId = savedInstanceState.getInt("m_firstId");
+ m_lazyLoadDisabled = savedInstanceState.getBoolean("m_lazyLoadDisabled");
+
+ /*ArrayList<Article> list = savedInstanceState.getParcelableArrayList("m_articles");
+
+ m_articles.clear(); // ?
+ m_articles.addAll(list);*/
+
+ ArticleList tmp = Application.getInstance().tmpArticleList;
+
+ if (tmp != null) {
+ m_articles.clear();
+ m_articles.addAll(Application.getInstance().tmpArticleList);
+ }
+
+ savedInstanceState.getBoolean("m_compactLayoutMode", m_compactLayoutMode);
+ }
+
setRetainInstance(true);
Glide.get(getContext()).clearMemory();
}
@Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putParcelable("m_feed", m_feed);
+ out.putParcelable("m_activeArticle", m_activeArticle);
+ out.putString("m_searchQuery", m_searchQuery);
+ out.putInt("m_firstId", m_firstId);
+ out.putBoolean("m_lazyLoadDisabled", m_lazyLoadDisabled);
+ //out.putParcelable("m_articles", m_articles);
+ out.putBoolean("m_compactLayoutMode", m_compactLayoutMode);
+
+ Application.getInstance().tmpArticleList = m_articles;
+ }
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (savedInstanceState != null) {
@@ -325,7 +357,13 @@ public class HeadlinesFragment extends StateSavedFragment {
m_layoutManager = new LinearLayoutManager(m_activity.getApplicationContext());
m_list.setLayoutManager(m_layoutManager);
m_list.setItemAnimator(new DefaultItemAnimator());
- m_list.addItemDecoration(new DividerItemDecoration(m_list.getContext(), m_layoutManager.getOrientation()));
+
+ if (m_compactLayoutMode) {
+ MaterialDividerItemDecoration materialDivider = new MaterialDividerItemDecoration(m_list.getContext(), m_layoutManager.getOrientation());
+ materialDivider.setDividerInsetStart(dpToPx(80));
+
+ m_list.addItemDecoration(materialDivider);
+ }
ArticleListAdapter adapter = new ArticleListAdapter(getActivity(), R.layout.headlines_row, m_articles);
@@ -701,16 +739,16 @@ public class HeadlinesFragment extends StateSavedFragment {
public TextView titleView;
public TextView feedTitleView;
- public ImageView markedView;
- public ImageView scoreView;
- public ImageView publishedView;
+ public MaterialButton markedView;
+ public MaterialButton scoreView;
+ public MaterialButton publishedView;
public TextView excerptView;
public ImageView flavorImageView;
public ImageView flavorVideoKindView;
public TextView authorView;
public TextView dateView;
public CheckBox selectionBoxView;
- public ImageView menuButtonView;
+ public MaterialButton menuButtonView;
public ViewGroup flavorImageHolder;
public ProgressBar flavorImageLoadingBar;
public View headlineFooter;
@@ -719,7 +757,7 @@ public class HeadlinesFragment extends StateSavedFragment {
public View headlineHeader;
public View flavorImageOverflow;
public TextureView flavorVideoView;
- public ImageView attachmentsView;
+ public MaterialButton attachmentsView;
//public int position;
public boolean flavorImageEmbedded;
public ProgressTarget<String, GlideDrawable> flavorProgressTarget;
@@ -815,14 +853,12 @@ public class HeadlinesFragment extends StateSavedFragment {
public static final int VIEW_COUNT = VIEW_AMR_FOOTER + 1;
private final Integer[] origTitleColors = new Integer[VIEW_COUNT];
- private final int titleHighScoreUnreadColor;
private ColorGenerator m_colorGenerator = ColorGenerator.DEFAULT;
private TextDrawable.IBuilder m_drawableBuilder = TextDrawable.builder().round();
boolean flavorImageEnabled;
private int m_minimumHeightToEmbed;
- boolean m_youtubeInstalled;
private int m_screenHeight;
private int m_lastAddedPosition;
@@ -859,19 +895,6 @@ public class HeadlinesFragment extends StateSavedFragment {
flavorImageEnabled = "HL_DEFAULT".equals(headlineMode) || "HL_COMPACT".equals(headlineMode);
m_cmgr = (ConnectivityManager) m_activity.getSystemService(Context.CONNECTIVITY_SERVICE);
-
- Theme theme = context.getTheme();
- TypedValue tv = new TypedValue();
- theme.resolveAttribute(R.attr.headlineTitleHighScoreUnreadTextColor, tv, true);
- titleHighScoreUnreadColor = tv.data;
-
- List<ApplicationInfo> packages = m_activity.getPackageManager().getInstalledApplications(0);
- for (ApplicationInfo pi : packages) {
- if (pi.packageName.equals("com.google.android.youtube")) {
- m_youtubeInstalled = true;
- break;
- }
- }
}
@Override
@@ -887,13 +910,13 @@ public class HeadlinesFragment extends StateSavedFragment {
layoutId = R.layout.headlines_row_loadmore;
break;
case VIEW_UNREAD:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_unread_compact : R.layout.headlines_row_unread;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_unread : R.layout.headlines_row_unread;
break;
case VIEW_SELECTED:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_selected_compact : R.layout.headlines_row;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_selected : R.layout.headlines_row;
break;
case VIEW_SELECTED_UNREAD:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_selected_unread_compact : R.layout.headlines_row_unread;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_selected_unread : R.layout.headlines_row_unread;
break;
}
@@ -908,7 +931,7 @@ public class HeadlinesFragment extends StateSavedFragment {
public void onBindViewHolder(final ArticleViewHolder holder, int position) {
holder.article = items.get(position);
- int headlineFontSize = Integer.parseInt(m_prefs.getString("headlines_font_size_sp", "13"));
+ int headlineFontSize = m_prefs.getInt("headlines_font_size_sp_int", 13);
int headlineSmallFontSize = Math.max(10, Math.min(18, headlineFontSize - 2));
final Article article = holder.article;
@@ -1007,19 +1030,23 @@ public class HeadlinesFragment extends StateSavedFragment {
}
- TypedValue tvAccent = new TypedValue();
- m_activity.getTheme().resolveAttribute(R.attr.colorAccent, tvAccent, true);
+ TypedValue tvTertiary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorTertiary, tvTertiary, true);
+
+ TypedValue tvPrimary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorPrimary, tvPrimary, true);
if (holder.markedView != null) {
TypedValue tv = new TypedValue();
m_activity.getTheme().resolveAttribute(article.marked ? R.attr.ic_star : R.attr.ic_star_outline, tv, true);
- holder.markedView.setImageResource(tv.resourceId);
+ holder.markedView.setIconResource(tv.resourceId);
+
if (article.marked)
- holder.markedView.setColorFilter(tvAccent.data);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvTertiary.data));
else
- holder.markedView.setColorFilter(null);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.markedView.setOnClickListener(new OnClickListener() {
@@ -1045,12 +1072,12 @@ public class HeadlinesFragment extends StateSavedFragment {
m_activity.getTheme().resolveAttribute(scoreAttr, tv, true);
- holder.scoreView.setImageResource(tv.resourceId);
+ holder.scoreView.setIconResource(tv.resourceId);
if (article.score > Article.SCORE_HIGH)
- holder.scoreView.setColorFilter(titleHighScoreUnreadColor);
+ holder.scoreView.setIconTint(ColorStateList.valueOf(tvTertiary.data));
else
- holder.scoreView.setColorFilter(null);
+ holder.scoreView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
if (m_activity.getApiLevel() >= 16) {
holder.scoreView.setOnClickListener(new OnClickListener() {
@@ -1059,7 +1086,7 @@ public class HeadlinesFragment extends StateSavedFragment {
final EditText edit = new EditText(getActivity());
edit.setText(String.valueOf(article.score));
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext())
.setTitle(R.string.score_for_this_article)
.setPositiveButton(R.string.set_score,
new DialogInterface.OnClickListener() {
@@ -1103,14 +1130,14 @@ public class HeadlinesFragment extends StateSavedFragment {
if (holder.publishedView != null) {
TypedValue tv = new TypedValue();
- m_activity.getTheme().resolveAttribute(article.published ? R.attr.ic_checkbox_marked : R.attr.ic_rss_box, tv, true);
+ m_activity.getTheme().resolveAttribute(R.attr.ic_rss_box, tv, true);
- holder.publishedView.setImageResource(tv.resourceId);
+ holder.publishedView.setIconResource(tv.resourceId);
if (article.published)
- holder.publishedView.setColorFilter(tvAccent.data);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvTertiary.data));
else
- holder.publishedView.setColorFilter(null);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.publishedView.setOnClickListener(new OnClickListener() {
@@ -1182,7 +1209,6 @@ public class HeadlinesFragment extends StateSavedFragment {
holder.flavorVideoKindView.setVisibility(View.GONE);
holder.flavorImageOverflow.setVisibility(View.GONE);
holder.flavorVideoView.setVisibility(View.GONE);
- holder.headlineHeader.setBackgroundDrawable(null);
Glide.clear(holder.flavorImageView);
@@ -1224,26 +1250,25 @@ public class HeadlinesFragment extends StateSavedFragment {
Uri mediaUri = Uri.parse(article.flavorStreamUri != null ? article.flavorStreamUri : article.flavorImageUri);
- switch (item.getItemId()) {
- case R.id.article_img_open:
- m_activity.openUri(mediaUri);
- return true;
- case R.id.article_img_copy:
- m_activity.copyToClipboard(mediaUri.toString());
- return true;
- case R.id.article_img_share:
- m_activity.shareImageFromUri(mediaUri.toString());
- return true;
- case R.id.article_img_share_url:
- m_activity.shareText(mediaUri.toString());
- return true;
- case R.id.article_img_view_caption:
- m_activity.displayImageCaption(article.flavorImageUri, article.content);
- return true;
- default:
- return false;
- }
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.article_img_open) {
+ m_activity.openUri(mediaUri);
+ return true;
+ } else if (itemId == R.id.article_img_copy) {
+ m_activity.copyToClipboard(mediaUri.toString());
+ return true;
+ } else if (itemId == R.id.article_img_share) {
+ m_activity.shareImageFromUri(mediaUri.toString());
+ return true;
+ } else if (itemId == R.id.article_img_share_url) {
+ m_activity.shareText(mediaUri.toString());
+ return true;
+ } else if (itemId == R.id.article_img_view_caption) {
+ m_activity.displayImageCaption(article.flavorImageUri, article.content);
+ return true;
+ }
+ return false;
+ }
});
popup.show();
@@ -1263,24 +1288,15 @@ public class HeadlinesFragment extends StateSavedFragment {
//Log.d(TAG, "TAG:" + holder.flavorImageOverflow.getTag());
holder.flavorImageView.setVisibility(View.VISIBLE);
+ holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.6f));
- holder.flavorImageView.setMaxHeight((int)(m_screenHeight * 0.8f));
- holder.flavorProgressTarget.setModel(article.flavorImageUri);
-
+ // prevent lower listiew entries from jumping around if this row is modified
if (article.flavorViewHeight > 0) {
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
lp.height = article.flavorViewHeight;
- holder.flavorImageView.setLayoutParams(lp);
}
-
- /* TODO: maybe an option? force height for all images to reduce list jumping around
-
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
- lp.height = (int)(m_screenHeight * 0.5f);
- lp.addRule(RelativeLayout.BELOW, R.id.headline_header);
- holder.flavorImageView.setLayoutParams(lp);
- */
+ holder.flavorProgressTarget.setModel(article.flavorImageUri);
try {
@@ -1306,16 +1322,9 @@ public class HeadlinesFragment extends StateSavedFragment {
if (resource.getIntrinsicWidth() > FLAVOR_IMG_MIN_SIZE && resource.getIntrinsicHeight() > FLAVOR_IMG_MIN_SIZE) {
- //holder.flavorImageView.setVisibility(View.VISIBLE);
+ holder.flavorImageView.setVisibility(View.VISIBLE);
holder.flavorImageOverflow.setVisibility(View.VISIBLE);
- boolean forceDown = !m_activity.isSmallScreen() || article.flavorImage != null && "video".equals(article.flavorImage.tagName().toLowerCase());
-
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
- lp.height = RelativeLayout.LayoutParams.WRAP_CONTENT;
- holder.flavorImageView.setLayoutParams(lp);
-
- maybeRepositionFlavorImage(holder.flavorImageView, resource, holder, forceDown);
adjustVideoKindView(holder, article);
return false;
@@ -1607,20 +1616,7 @@ public class HeadlinesFragment extends StateSavedFragment {
//Log.d(TAG, "openGalleryForType: " + article + " " + holder + " " + transitionView);
if ("iframe".equals(article.flavorImage.tagName().toLowerCase())) {
-
- if (m_youtubeInstalled) {
- Intent intent = new Intent(m_activity, YoutubePlayerActivity.class);
- intent.putExtra("streamUri", article.flavorStreamUri);
- intent.putExtra("vid", article.youtubeVid);
- intent.putExtra("title", article.title);
-
- startActivity(intent);
- m_activity.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
-
- } else {
- m_activity.openUri(Uri.parse(article.flavorStreamUri));
- }
-
+ m_activity.openUri(Uri.parse(article.flavorStreamUri));
} else {
Intent intent = new Intent(m_activity, GalleryActivity.class);
@@ -1664,13 +1660,10 @@ public class HeadlinesFragment extends StateSavedFragment {
private void adjustVideoKindView(ArticleViewHolder holder, Article article) {
if (article.flavorImage != null) {
if (article.flavor_kind == Article.FLAVOR_KIND_YOUTUBE || "iframe".equals(article.flavorImage.tagName().toLowerCase())) {
- holder.flavorVideoKindView.setImageResource(R.drawable.ic_youtube_play);
+ holder.flavorVideoKindView.setImageResource(R.drawable.baseline_play_circle_outline_24);
holder.flavorVideoKindView.setVisibility(View.VISIBLE);
} else if (article.flavor_kind == Article.FLAVOR_KIND_VIDEO || "video".equals(article.flavorImage.tagName().toLowerCase())) {
- holder.flavorVideoKindView.setImageResource(R.drawable.ic_play_circle);
- holder.flavorVideoKindView.setVisibility(View.VISIBLE);
- } else if (article.flavor_kind == Article.FLAVOR_KIND_ALBUM ||article.mediaList.size() > 1) {
- holder.flavorVideoKindView.setImageResource(R.drawable.ic_image_album);
+ holder.flavorVideoKindView.setImageResource(R.drawable.baseline_play_circle_24);
holder.flavorVideoKindView.setVisibility(View.VISIBLE);
} else {
holder.flavorVideoKindView.setVisibility(View.INVISIBLE);
@@ -1680,48 +1673,6 @@ public class HeadlinesFragment extends StateSavedFragment {
}
}
- public int pxToDp(int px) {
- DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
- int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
- return dp;
- }
-
- public int dpToPx(int dp) {
- DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
- int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
- return px;
- }
-
- private void maybeRepositionFlavorImage(View view, GlideDrawable resource, ArticleViewHolder holder, boolean forceDown) {
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams();
-
- int w = resource.getIntrinsicWidth();
- int h = resource.getIntrinsicHeight();
- float r = h != 0 ? (float)w/h : 0;
-
- //Log.d(TAG, "XYR: " + pxToDp(w) + " " + pxToDp(h) + " " + r);
-
- if (forceDown || h < m_minimumHeightToEmbed || r >= 1) {
-
- lp.addRule(RelativeLayout.BELOW, R.id.headline_header);
-
- holder.headlineHeader.setBackgroundDrawable(null);
- holder.flavorImageEmbedded = false;
-
- } else {
- lp.addRule(RelativeLayout.BELOW, 0);
-
- TypedValue tv = new TypedValue();
- if (m_activity.getTheme().resolveAttribute(R.attr.headlineHeaderBackground, tv, true)) {
- holder.headlineHeader.setBackgroundColor(tv.data);
- }
-
- holder.flavorImageEmbedded = true;
- }
-
- view.setLayoutParams(lp);
- }
-
private void adjustTitleTextView(int score, TextView tv, int position) {
int viewType = getItemViewType(position);
if (origTitleColors[viewType] == null)
@@ -1730,9 +1681,6 @@ public class HeadlinesFragment extends StateSavedFragment {
if (score < Article.SCORE_LOW) {
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- } else if (score > Article.SCORE_HIGH) {
- tv.setTextColor(titleHighScoreUnreadColor);
- tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
} else {
tv.setTextColor(origTitleColors[viewType].intValue());
tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
@@ -1874,7 +1822,19 @@ public class HeadlinesFragment extends StateSavedFragment {
m_adapter.notifyDataSetChanged();
}
- @Override
+ public int pxToDp(int px) {
+ DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
+ int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
+ return dp;
+ }
+
+ public int dpToPx(int dp) {
+ DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
+ int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
+ return px;
+ }
+
+ @Override
public void onPause() {
super.onPause();
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
index c9cbcbf9..60fad0ba 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/LogcatActivity.java
@@ -7,19 +7,18 @@ import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.Toolbar;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import icepick.State;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
public class LogcatActivity extends CommonActivity {
private static final int MAX_LOG_ENTRIES = 500;
private final String TAG = this.getClass().getSimpleName();
- @State protected ArrayList<String> m_items = new ArrayList<>();
+ protected ArrayList<String> m_items = new ArrayList<>();
ArrayAdapter<String> m_adapter;
ListView m_list;
@@ -41,6 +40,8 @@ public class LogcatActivity extends CommonActivity {
if (savedInstanceState == null) {
refresh();
+ } else {
+ m_items = savedInstanceState.getStringArrayList("m_items");
}
m_adapter = new ArrayAdapter<>(this, R.layout.logcat_row, m_items);
@@ -59,6 +60,13 @@ public class LogcatActivity extends CommonActivity {
});
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putStringArrayList("m_items", m_items);
+ }
+
private void refresh() {
m_items.clear();
@@ -92,19 +100,17 @@ public class LogcatActivity extends CommonActivity {
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
- switch (id) {
- case android.R.id.home:
- onBackPressed();
- return true;
- case R.id.logcat_copy:
- shareLogcat();
- return true;
- case R.id.logcat_refresh:
- refresh();
- return true;
- default:
- return super.onOptionsItemSelected(item);
+ if (id == android.R.id.home) {
+ onBackPressed();
+ return true;
+ } else if (id == R.id.logcat_copy) {
+ shareLogcat();
+ return true;
+ } else if (id == R.id.logcat_refresh) {
+ refresh();
+ return true;
}
+ return super.onOptionsItemSelected(item);
}
private void shareLogcat() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
index 50a0e7f2..9d9d0901 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
@@ -2,7 +2,6 @@ package org.fox.ttrss;
import android.annotation.SuppressLint;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
@@ -17,11 +16,15 @@ import android.view.View;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.graphics.Insets;
import androidx.core.view.GravityCompat;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.gson.JsonElement;
@@ -34,8 +37,6 @@ import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
-import icepick.State;
-
public class MasterActivity extends OnlineActivity implements HeadlinesEventListener {
private final String TAG = this.getClass().getSimpleName();
@@ -45,8 +46,8 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
protected long m_lastRefresh = 0;
protected long m_lastWidgetRefresh = 0;
- @State protected boolean m_feedIsSelected = false;
- @State protected boolean m_userFeedSelected = false;
+ protected boolean m_feedIsSelected = false;
+ protected boolean m_userFeedSelected = false;
private ActionBarDrawerToggle m_drawerToggle;
private DrawerLayout m_drawerLayout;
@@ -69,6 +70,8 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
setSmallScreen(findViewById(R.id.sw600dp_anchor) == null);
+ applyEdgeToEdgeInsets();
+
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
@@ -196,6 +199,9 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
} else { // savedInstanceState != null
+ m_feedIsSelected = savedInstanceState.getBoolean("m_feedIsSelected");
+ m_userFeedSelected = savedInstanceState.getBoolean("m_userFeedSelected");
+
if (m_drawerLayout != null && !m_feedIsSelected) {
m_drawerLayout.openDrawer(GravityCompat.START);
}
@@ -219,7 +225,32 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
}
}
- protected void onPostCreate(Bundle savedInstanceState) {
+ private void applyEdgeToEdgeInsets() {
+ // https://stackoverflow.com/questions/79018063/trying-to-understand-edge-to-edge-in-android
+ // https://developer.android.com/develop/ui/views/layout/edge-to-edge
+
+ View coordinatorView = findViewById(R.id.headlines_coordinator);
+
+ if (coordinatorView != null) {
+ ViewCompat.setOnApplyWindowInsetsListener(coordinatorView, (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(0, insets.top, 0, insets.bottom);
+ return windowInsets;
+ });
+ }
+
+ View navigationView = findViewById(R.id.modal_navigation_view);
+
+ if (navigationView != null) {
+ ViewCompat.setOnApplyWindowInsetsListener(navigationView, (v, windowInsets) -> {
+ Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(0, insets.top, 0, insets.bottom);
+ return windowInsets;
+ });
+ }
+ }
+
+ protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
if (m_drawerToggle != null) m_drawerToggle.syncState();
@@ -331,44 +362,43 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
return true;
}
- switch (item.getItemId()) {
- case R.id.headlines_toggle_sort_order:
+ if (item.getItemId() == R.id.headlines_toggle_sort_order) {
LinkedHashMap<String, String> sortModes = getSortModes();
- CharSequence[] sortTitles = sortModes.values().toArray(new CharSequence[0]);
- final CharSequence[] sortNames = sortModes.keySet().toArray(new CharSequence[0]);
+ CharSequence[] sortTitles = sortModes.values().toArray(new CharSequence[0]);
+ final CharSequence[] sortNames = sortModes.keySet().toArray(new CharSequence[0]);
- String currentMode = getSortMode();
+ String currentMode = getSortMode();
- int i = 0;
- int selectedIndex = 0;
+ int i = 0;
+ int selectedIndex = 0;
- for (CharSequence tmp : sortNames) {
- if (tmp.equals(currentMode)) {
- selectedIndex = i;
- break;
- }
+ for (CharSequence tmp : sortNames) {
+ if (tmp.equals(currentMode)) {
+ selectedIndex = i;
+ break;
+ }
- ++i;
- }
+ ++i;
+ }
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(getString(R.string.headlines_sort_articles_title))
.setSingleChoiceItems(
- sortTitles,
+ sortTitles,
selectedIndex, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
- try {
+ try {
// Log.d(TAG, "sort selected index:" + which + ": " + sortNames[which]);
- setSortMode((String)sortNames[which]);
+ setSortMode((String) sortNames[which]);
- } catch (IndexOutOfBoundsException e) {
- e.printStackTrace();
- }
+ } catch (IndexOutOfBoundsException e) {
+ e.printStackTrace();
+ }
dialog.cancel();
@@ -380,11 +410,10 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
dialog.show();
return true;
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
@Override
public void onBackPressed() {
@@ -413,6 +442,9 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
public void onSaveInstanceState(Bundle out) {
super.onSaveInstanceState(out);
+ out.putBoolean("m_feedIsSelected", m_feedIsSelected);
+ out.putBoolean("m_userFeedSelected", m_userFeedSelected);
+
Application.getInstance().save(out);
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/NetworkPreferencesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/NetworkPreferencesFragment.java
index 8e0e6519..b279f307 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/NetworkPreferencesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/NetworkPreferencesFragment.java
@@ -1,15 +1,14 @@
package org.fox.ttrss;
import android.os.Bundle;
-import android.preference.PreferenceFragment;
-public class NetworkPreferencesFragment extends PreferenceFragment {
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceFragmentCompat;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+public class NetworkPreferencesFragment extends PreferenceFragmentCompat {
- // Load the preferences from an XML resource
- addPreferencesFromResource(R.xml.preferences_network);
+ @Override
+ public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
+ setPreferencesFromResource(R.xml.preferences_network, rootKey);
}
} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
index 2350187e..3af78ddf 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
@@ -31,8 +31,7 @@ import android.widget.TextView;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.Toolbar;
-import com.github.javiersantos.appupdater.AppUpdater;
-import com.github.javiersantos.appupdater.enums.UpdateFrom;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -91,7 +90,7 @@ public class OnlineActivity extends CommonActivity {
int titleStringId = searchQuery.length() > 0 ? R.string.catchup_dialog_title_search : R.string.catchup_dialog_title;
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(getString(titleStringId, feed.title))
.setSingleChoiceItems(
new String[] {
@@ -135,8 +134,7 @@ public class OnlineActivity extends CommonActivity {
dialog.show();
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setMessage(getString(R.string.catchup_dialog_title, feed.title))
.setPositiveButton(R.string.catchup,
new Dialog.OnClickListener() {
@@ -155,7 +153,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- AlertDialog dialog = builder.create();
+ Dialog dialog = builder.create();
dialog.show();
}
}
@@ -271,23 +269,12 @@ public class OnlineActivity extends CommonActivity {
if (isOffline) {
switchOfflineSuccess();
} else {
- checkUpdates();
-
m_headlinesActionModeCallback = new HeadlinesActionModeCallback();
}
}
- protected void checkUpdates() {
- if (m_prefs.getBoolean("check_for_updates", true) && (BuildConfig.DEBUG || BuildConfig.ENABLE_UPDATER)) {
- new AppUpdater(this)
- .setUpdateFrom(UpdateFrom.JSON)
- .setUpdateJSON(String.format("https://srv.tt-rss.org/fdroid/updates/%1$s.json", this.getPackageName()))
- .start();
- }
- }
-
protected void switchOffline() {
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setMessage(R.string.dialog_offline_switch_prompt)
.setPositiveButton(R.string.dialog_offline_go,
new Dialog.OnClickListener() {
@@ -314,7 +301,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- AlertDialog dlg = builder.create();
+ Dialog dlg = builder.create();
dlg.show();
}
@@ -380,8 +367,8 @@ public class OnlineActivity extends CommonActivity {
setLoadingStatus(R.string.login_need_configure);
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(R.string.dialog_need_configure_prompt)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setMessage(R.string.dialog_need_configure_prompt)
.setCancelable(false)
.setPositiveButton(R.string.dialog_open_preferences, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
@@ -397,7 +384,8 @@ public class OnlineActivity extends CommonActivity {
dialog.cancel();
}
});
- AlertDialog alert = builder.create();
+
+ Dialog alert = builder.create();
alert.show();
} else {
@@ -439,53 +427,52 @@ public class OnlineActivity extends CommonActivity {
.getMenuInfo(); */
final ArticlePager ap = (ArticlePager)getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE);
-
- switch (item.getItemId()) {
- case R.id.article_img_open:
- if (getLastContentImageHitTestUrl() != null) {
- try {
- openUri(Uri.parse(getLastContentImageHitTestUrl()));
- } catch (Exception e) {
- e.printStackTrace();
- toast(R.string.error_other_error);
- }
- }
- return true;
- case R.id.article_img_copy:
- if (getLastContentImageHitTestUrl() != null) {
- copyToClipboard(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_share:
- if (getLastContentImageHitTestUrl() != null) {
- shareImageFromUri(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_share_url:
- if (getLastContentImageHitTestUrl() != null) {
- shareText(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_view_caption:
- if (getLastContentImageHitTestUrl() != null) {
- displayImageCaption(getLastContentImageHitTestUrl(), ap.getSelectedArticle().content);
+
+ int itemId = item.getItemId();
+ if (itemId == R.id.article_img_open) {
+ if (getLastContentImageHitTestUrl() != null) {
+ try {
+ openUri(Uri.parse(getLastContentImageHitTestUrl()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ toast(R.string.error_other_error);
+ }
}
return true;
- case R.id.article_link_share:
- if (ap != null && ap.getSelectedArticle() != null) {
- shareArticle(ap.getSelectedArticle());
- }
- return true;
- case R.id.article_link_copy:
- if (ap != null && ap.getSelectedArticle() != null) {
- copyToClipboard(ap.getSelectedArticle().link);
- }
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+ } else if (itemId == R.id.article_img_copy) {
+ if (getLastContentImageHitTestUrl() != null) {
+ copyToClipboard(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share) {
+ if (getLastContentImageHitTestUrl() != null) {
+ shareImageFromUri(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share_url) {
+ if (getLastContentImageHitTestUrl() != null) {
+ shareText(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_view_caption) {
+ if (getLastContentImageHitTestUrl() != null) {
+ displayImageCaption(getLastContentImageHitTestUrl(), ap.getSelectedArticle().content);
+ }
+ return true;
+ } else if (itemId == R.id.article_link_share) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ shareArticle(ap.getSelectedArticle());
+ }
+ return true;
+ } else if (itemId == R.id.article_link_copy) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ copyToClipboard(ap.getSelectedArticle().link);
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
public void displayAttachments(Article article) {
if (article != null && article.attachments != null && article.attachments.size() > 0) {
@@ -499,8 +486,7 @@ public class OnlineActivity extends CommonActivity {
itemUrls[i] = article.attachments.get(i).content_url;
}
- Dialog dialog = new Dialog(OnlineActivity.this);
- AlertDialog.Builder builder = new AlertDialog.Builder(OnlineActivity.this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(R.string.attachments_prompt)
.setCancelable(true)
.setSingleChoiceItems(items, 0, new OnClickListener() {
@@ -533,7 +519,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- dialog = builder.create();
+ Dialog dialog = builder.create();
dialog.show();
}
}
@@ -543,247 +529,249 @@ public class OnlineActivity extends CommonActivity {
final HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
final ArticlePager ap = (ArticlePager)getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE);
- switch (item.getItemId()) {
- case R.id.subscribe_to_feed:
+ int itemId = item.getItemId();
+ if (itemId == R.id.subscribe_to_feed) {
Intent subscribe = new Intent(OnlineActivity.this, SubscribeActivity.class);
startActivityForResult(subscribe, 0);
return true;
- /*case R.id.toggle_attachments:
- if (true) {
- Article article = ap.getSelectedArticle();
+ } else if (itemId == R.id.toggle_attachments) {
+ Article article = ap.getSelectedArticle();
- if (article != null) {
- displayAttachments(article);
- }
+ if (article != null) {
+ displayAttachments(article);
}
- return true; */
+ return true;
/*case R.id.logout:
logout();
return true;*/
- case R.id.login:
- login();
- return true;
+ } else if (itemId == R.id.login) {
+ login();
+ return true;
/*case R.id.go_offline:
switchOffline();
return true;*/
- case R.id.article_set_note:
- if (ap != null && ap.getSelectedArticle() != null) {
- editArticleNote(ap.getSelectedArticle());
- }
- return true;
- case R.id.preferences:
- Intent intent = new Intent(OnlineActivity.this,
- PreferencesActivity.class);
- startActivityForResult(intent, 0);
- return true;
- case R.id.search:
- if (hf != null) {
- Dialog dialog = new Dialog(this);
+ } else if (itemId == R.id.article_set_note) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ editArticleNote(ap.getSelectedArticle());
+ }
+ return true;
+ } else if (itemId == R.id.preferences) {
+ Intent intent = new Intent(OnlineActivity.this,
+ PreferencesActivity.class);
+ startActivityForResult(intent, 0);
+ return true;
+ } else if (itemId == R.id.search) {
+ if (hf != null) {
+ Dialog dialog = new Dialog(this);
- final EditText edit = new EditText(this);
+ final EditText edit = new EditText(this);
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.search)
- .setPositiveButton(getString(R.string.search),
- new OnClickListener() {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.search)
+ .setPositiveButton(getString(R.string.search),
+ new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- String query = edit.getText().toString().trim();
-
- hf.setSearchQuery(query);
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
- }
- })
- .setNegativeButton(getString(R.string.cancel),
- new OnClickListener() {
+ String query = edit.getText().toString().trim();
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- //
+ hf.setSearchQuery(query);
- }
- }).setView(edit);
-
- dialog = builder.create();
- dialog.show();
- }
- return true;
- case R.id.headlines_mark_as_read:
- if (hf != null) {
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel),
+ new OnClickListener() {
- Feed feed = hf.getFeed();
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
- if (feed != null) {
- catchupDialog(hf.getFeed());
- }
- }
- return true;
- case R.id.headlines_display_mode:
- if (hf != null) {
- Dialog dialog = new Dialog(this);
+ //
- String headlineMode = m_prefs.getString("headline_mode", "HL_DEFAULT");
- String[] headlineModeNames = getResources().getStringArray(R.array.headline_mode_names);
- final String[] headlineModeValues = getResources().getStringArray(R.array.headline_mode_values);
+ }
+ }).setView(edit);
- int selectedIndex = Arrays.asList(headlineModeValues).indexOf(headlineMode);
+ dialog = builder.create();
+ dialog.show();
+ }
+ return true;
+ } else if (itemId == R.id.headlines_mark_as_read) {
+ if (hf != null) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.headlines_set_view_mode)
- .setSingleChoiceItems(headlineModeNames,
- selectedIndex, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- dialog.cancel();
+ Feed feed = hf.getFeed();
- SharedPreferences.Editor editor = m_prefs.edit();
- editor.putString("headline_mode", headlineModeValues[which]);
- editor.apply();
+ if (feed != null) {
+ catchupDialog(hf.getFeed());
+ }
+ }
+ return true;
+ } else if (itemId == R.id.headlines_display_mode) {
+ if (hf != null) {
+ Dialog dialog = new Dialog(this);
- Intent intent = getIntent();
+ String headlineMode = m_prefs.getString("headline_mode", "HL_DEFAULT");
+ String[] headlineModeNames = getResources().getStringArray(R.array.headline_mode_names);
+ final String[] headlineModeValues = getResources().getStringArray(R.array.headline_mode_values);
- Feed feed = hf.getFeed();
+ int selectedIndex = Arrays.asList(headlineModeValues).indexOf(headlineMode);
- if (feed != null) {
- intent.putExtra("feed_id", feed.id);
- intent.putExtra("feed_is_cat", feed.is_cat);
- intent.putExtra("feed_title", feed.title);
- }
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.headlines_set_view_mode)
+ .setSingleChoiceItems(headlineModeNames,
+ selectedIndex, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ dialog.cancel();
- finish();
+ SharedPreferences.Editor editor = m_prefs.edit();
+ editor.putString("headline_mode", headlineModeValues[which]);
+ editor.apply();
- startActivity(intent);
- overridePendingTransition(0, 0);
- }
- });
+ Intent intent = getIntent();
- dialog = builder.create();
- dialog.show();
+ Feed feed = hf.getFeed();
- }
- return true;
- case R.id.headlines_view_mode:
- if (hf != null) {
- Dialog dialog = new Dialog(this);
-
- String viewMode = getViewMode();
-
- //Log.d(TAG, "viewMode:" + getViewMode());
-
- int selectedIndex = 0;
-
- if (viewMode.equals("all_articles")) {
- selectedIndex = 1;
- } else if (viewMode.equals("marked")) {
- selectedIndex = 2;
- } else if (viewMode.equals("published")) {
- selectedIndex = 3;
- } else if (viewMode.equals("unread")) {
- selectedIndex = 4;
- }
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.headlines_set_view_mode)
- .setSingleChoiceItems(
- new String[] {
- getString(R.string.headlines_adaptive),
- getString(R.string.headlines_all_articles),
- getString(R.string.headlines_starred),
- getString(R.string.headlines_published),
- getString(R.string.headlines_unread) },
- selectedIndex, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- switch (which) {
- case 0:
- setViewMode("adaptive");
- break;
- case 1:
- setViewMode("all_articles");
- break;
- case 2:
- setViewMode("marked");
- break;
- case 3:
- setViewMode("published");
- break;
- case 4:
- setViewMode("unread");
- break;
- }
- dialog.cancel();
+ if (feed != null) {
+ intent.putExtra("feed_id", feed.id);
+ intent.putExtra("feed_is_cat", feed.is_cat);
+ intent.putExtra("feed_title", feed.title);
+ }
- refresh();
- }
- });
+ finish();
- dialog = builder.create();
- dialog.show();
+ startActivity(intent);
+ overridePendingTransition(0, 0);
+ }
+ });
- }
- return true;
- case R.id.headlines_select:
- if (hf != null) {
- Dialog dialog = new Dialog(this);
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.headlines_select_dialog)
- .setSingleChoiceItems(
- new String[] {
- getString(R.string.headlines_select_all),
- getString(R.string.headlines_select_unread),
- getString(R.string.headlines_select_none) },
- 0, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- switch (which) {
- case 0:
- hf.setSelection(HeadlinesFragment.ArticlesSelection.ALL);
- break;
- case 1:
- hf.setSelection(HeadlinesFragment.ArticlesSelection.UNREAD);
- break;
- case 2:
- hf.setSelection(HeadlinesFragment.ArticlesSelection.NONE);
- break;
- }
- dialog.cancel();
- invalidateOptionsMenu();
- }
- });
+ dialog = builder.create();
+ dialog.show();
- dialog = builder.create();
- dialog.show();
- }
- return true;
- /* case R.id.share_article:
+ }
+ return true;
+ } else if (itemId == R.id.headlines_view_mode) {
+ if (hf != null) {
+ Dialog dialog = new Dialog(this);
+
+ String viewMode = getViewMode();
+
+ //Log.d(TAG, "viewMode:" + getViewMode());
+
+ int selectedIndex = 0;
+
+ if (viewMode.equals("all_articles")) {
+ selectedIndex = 1;
+ } else if (viewMode.equals("marked")) {
+ selectedIndex = 2;
+ } else if (viewMode.equals("published")) {
+ selectedIndex = 3;
+ } else if (viewMode.equals("unread")) {
+ selectedIndex = 4;
+ }
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.headlines_set_view_mode)
+ .setSingleChoiceItems(
+ new String[]{
+ getString(R.string.headlines_adaptive),
+ getString(R.string.headlines_all_articles),
+ getString(R.string.headlines_starred),
+ getString(R.string.headlines_published),
+ getString(R.string.headlines_unread)},
+ selectedIndex, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ switch (which) {
+ case 0:
+ setViewMode("adaptive");
+ break;
+ case 1:
+ setViewMode("all_articles");
+ break;
+ case 2:
+ setViewMode("marked");
+ break;
+ case 3:
+ setViewMode("published");
+ break;
+ case 4:
+ setViewMode("unread");
+ break;
+ }
+ dialog.cancel();
+
+ refresh();
+ }
+ });
+
+ dialog = builder.create();
+ dialog.show();
+
+ }
+ return true;
+ } else if (itemId == R.id.headlines_select) {
+ if (hf != null) {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.headlines_select_dialog)
+ .setSingleChoiceItems(
+ new String[]{
+ getString(R.string.headlines_select_all),
+ getString(R.string.headlines_select_unread),
+ getString(R.string.headlines_select_none)},
+ 0, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ switch (which) {
+ case 0:
+ hf.setSelection(HeadlinesFragment.ArticlesSelection.ALL);
+ break;
+ case 1:
+ hf.setSelection(HeadlinesFragment.ArticlesSelection.UNREAD);
+ break;
+ case 2:
+ hf.setSelection(HeadlinesFragment.ArticlesSelection.NONE);
+ break;
+ }
+ dialog.cancel();
+ invalidateOptionsMenu();
+ }
+ });
+
+ Dialog dialog = builder.create();
+ dialog.show();
+ }
+ return true;
+ } else if (itemId == R.id.share_article) {
if (ap != null) {
shareArticle(ap.getSelectedArticle());
}
- return true; */
- case R.id.toggle_marked:
- if (ap != null && ap.getSelectedArticle() != null) {
- Article a = ap.getSelectedArticle();
- a.marked = !a.marked;
- saveArticleMarked(a);
- if (hf != null) hf.notifyUpdated();
+ return true;
+ } else if (itemId == R.id.article_set_score) {
+ if (ap != null) {
+ setArticleScore(ap.getSelectedArticle());
}
return true;
- case R.id.toggle_unread:
- if (ap != null && ap.getSelectedArticle() != null) {
- Article a = ap.getSelectedArticle();
- a.unread = !a.unread;
- saveArticleUnread(a);
- if (hf != null) hf.notifyUpdated();
- }
- return true;
+ } else if (itemId == R.id.toggle_marked) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ Article a = ap.getSelectedArticle();
+ a.marked = !a.marked;
+ saveArticleMarked(a);
+ if (hf != null) hf.notifyUpdated();
+ }
+ return true;
+ } else if (itemId == R.id.toggle_unread) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ Article a = ap.getSelectedArticle();
+ a.unread = !a.unread;
+ saveArticleUnread(a);
+ if (hf != null) hf.notifyUpdated();
+ }
+ return true;
/* case R.id.selection_select_none:
if (hf != null) {
ArticleList selected = hf.getSelectedArticles();
@@ -794,105 +782,103 @@ public class OnlineActivity extends CommonActivity {
}
}
return true; */
- case R.id.selection_toggle_unread:
- if (hf != null) {
- ArticleList selected = hf.getSelectedArticles();
+ } else if (itemId == R.id.selection_toggle_unread) {
+ if (hf != null) {
+ ArticleList selected = hf.getSelectedArticles();
- if (selected.size() > 0) {
- for (Article a : selected)
- a.unread = !a.unread;
+ if (selected.size() > 0) {
+ for (Article a : selected)
+ a.unread = !a.unread;
- toggleArticlesUnread(selected);
- hf.notifyUpdated();
- invalidateOptionsMenu();
- }
- }
- return true;
- case R.id.selection_toggle_marked:
- if (hf != null) {
- ArticleList selected = hf.getSelectedArticles();
+ toggleArticlesUnread(selected);
+ hf.notifyUpdated();
+ invalidateOptionsMenu();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.selection_toggle_marked) {
+ if (hf != null) {
+ ArticleList selected = hf.getSelectedArticles();
- if (selected.size() > 0) {
- for (Article a : selected)
- a.marked = !a.marked;
+ if (selected.size() > 0) {
+ for (Article a : selected)
+ a.marked = !a.marked;
- toggleArticlesMarked(selected);
- hf.notifyUpdated();
- invalidateOptionsMenu();
- }
- }
- return true;
- case R.id.selection_toggle_published:
- if (hf != null) {
- ArticleList selected = hf.getSelectedArticles();
+ toggleArticlesMarked(selected);
+ hf.notifyUpdated();
+ invalidateOptionsMenu();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.selection_toggle_published) {
+ if (hf != null) {
+ ArticleList selected = hf.getSelectedArticles();
- if (selected.size() > 0) {
- for (Article a : selected)
- a.published = !a.published;
+ if (selected.size() > 0) {
+ for (Article a : selected)
+ a.published = !a.published;
- toggleArticlesPublished(selected);
- hf.notifyUpdated();
- invalidateOptionsMenu();
- }
- }
- return true;
- case R.id.toggle_published:
- if (ap != null && ap.getSelectedArticle() != null) {
- Article a = ap.getSelectedArticle();
- a.published = !a.published;
- saveArticlePublished(a);
- if (hf != null) hf.notifyUpdated();
- }
- return true;
- case R.id.catchup_above:
- if (hf != null) {
+ toggleArticlesPublished(selected);
+ hf.notifyUpdated();
+ invalidateOptionsMenu();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.toggle_published) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ Article a = ap.getSelectedArticle();
+ a.published = !a.published;
+ saveArticlePublished(a);
+ if (hf != null) hf.notifyUpdated();
+ }
+ return true;
+ } else if (itemId == R.id.catchup_above) {
+ if (hf != null) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- OnlineActivity.this)
- .setMessage(R.string.confirm_catchup_above)
- .setPositiveButton(R.string.dialog_ok,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setMessage(R.string.confirm_catchup_above)
+ .setPositiveButton(R.string.dialog_ok,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
- catchupAbove(hf, ap);
+ catchupAbove(hf, ap);
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
- }
- });
+ }
+ });
- AlertDialog dialog = builder.create();
- dialog.show();
+ Dialog dialog = builder.create();
+ dialog.show();
- }
- return true;
- case R.id.set_labels:
- if (ap != null && ap.getSelectedArticle() != null) {
- if (getApiLevel() != 7) {
- editArticleLabels(ap.getSelectedArticle());
- } else {
- toast(R.string.server_function_not_available);
- }
-
- }
- return true;
+ }
+ return true;
+ } else if (itemId == R.id.set_labels) {
+ if (ap != null && ap.getSelectedArticle() != null) {
+ if (getApiLevel() != 7) {
+ editArticleLabels(ap.getSelectedArticle());
+ } else {
+ toast(R.string.server_function_not_available);
+ }
+
+ }
+ return true;
/*case R.id.update_headlines:
if (hf != null) {
//m_pullToRefreshAttacher.setRefreshing(true);
hf.refresh(false, true);
}
return true;*/
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
private void catchupAbove(HeadlinesFragment hf, ArticlePager ap) {
if (ap != null && ap.getSelectedArticle() != null) {
@@ -952,9 +938,10 @@ public class OnlineActivity extends CommonActivity {
public void editArticleNote(final Article article) {
String note = "";
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(article.title);
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(article.title);
+
final EditText topicEdit = new EditText(this);
topicEdit.setText(note);
builder.setView(topicEdit);
@@ -980,7 +967,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- AlertDialog dialog = builder.create();
+ Dialog dialog = builder.create();
dialog.show();
}
@@ -1003,9 +990,8 @@ public class OnlineActivity extends CommonActivity {
itemIds[i] = labels.get(i).id;
checkedItems[i] = labels.get(i).checked;
}
-
- Dialog dialog = new Dialog(OnlineActivity.this);
- AlertDialog.Builder builder = new AlertDialog.Builder(OnlineActivity.this)
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(OnlineActivity.this)
.setTitle(R.string.article_set_labels)
.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
@@ -1033,7 +1019,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- dialog = builder.create();
+ Dialog dialog = builder.create();
dialog.show();
}
@@ -1075,8 +1061,7 @@ public class OnlineActivity extends CommonActivity {
if (getDatabaseHelper().hasOfflineData()) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- OnlineActivity.this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setMessage(R.string.dialog_offline_prompt)
.setPositiveButton(R.string.dialog_offline_go,
new Dialog.OnClickListener() {
@@ -1093,7 +1078,7 @@ public class OnlineActivity extends CommonActivity {
}
});
- AlertDialog dlg = builder.create();
+ Dialog dlg = builder.create();
dlg.show();
}
}
@@ -1249,6 +1234,45 @@ public class OnlineActivity extends CommonActivity {
}
}
+ public void setArticleScore(Article article) {
+ final EditText edit = new EditText(this);
+ edit.setText(String.valueOf(article.score));
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.score_for_this_article)
+ .setPositiveButton(R.string.set_score,
+ new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ try {
+ article.score = Integer.parseInt(edit.getText().toString());
+
+ saveArticleScore(article);
+ } catch (NumberFormatException e) {
+ toast(R.string.score_invalid);
+ e.printStackTrace();
+ }
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel),
+ new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ //
+
+ }
+ }).setView(edit);
+
+ Dialog dialog = builder.create();
+ dialog.show();
+ }
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
ArticlePager ap = (ArticlePager) getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE);
@@ -1418,14 +1442,14 @@ public class OnlineActivity extends CommonActivity {
Article article = ap.getSelectedArticle();
if (article != null) {
- m_menu.findItem(R.id.toggle_marked).setIcon(article.marked ? R.drawable.ic_star :
- R.drawable.ic_star_outline);
+ m_menu.findItem(R.id.toggle_marked).setIcon(article.marked ? R.drawable.baseline_star_24 :
+ R.drawable.baseline_star_outline_24);
- m_menu.findItem(R.id.toggle_published).setIcon(article.published ? R.drawable.ic_checkbox_marked :
- R.drawable.ic_rss_box);
+ m_menu.findItem(R.id.toggle_published).setIcon(article.published ? R.drawable.baseline_check_box_24 :
+ R.drawable.baseline_rss_feed_24);
- m_menu.findItem(R.id.toggle_unread).setIcon(article.unread ? R.drawable.ic_email :
- R.drawable.ic_email_open);
+ m_menu.findItem(R.id.toggle_unread).setIcon(article.unread ? R.drawable.baseline_mark_as_unread_24 :
+ R.drawable.baseline_email_24);
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java
index af321a5a..9ac9f56c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java
@@ -5,6 +5,7 @@ import android.preference.PreferenceManager;
import android.view.MenuItem;
import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.FragmentTransaction;
public class PreferencesActivity extends CommonActivity {
@Override
@@ -24,10 +25,9 @@ public class PreferencesActivity extends CommonActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
- getSupportActionBar().hide();
if (savedInstanceState == null) {
- android.app.FragmentTransaction ft = getFragmentManager().beginTransaction();
+ FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.preferences_container, new PreferencesFragment());
ft.commit();
@@ -36,13 +36,11 @@ public class PreferencesActivity extends CommonActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- onBackPressed();
- return true;
- default:
- return super.onOptionsItemSelected(item);
+ if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
}
+ return super.onOptionsItemSelected(item);
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java
index 65e0b556..af4c6b44 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java
@@ -5,32 +5,31 @@ import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceManager;
+
+import androidx.activity.EdgeToEdge;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceManager;
import java.text.SimpleDateFormat;
import java.util.Date;
-public class PreferencesFragment extends PreferenceFragment {
+public class PreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- // Load the preferences from an XML resource
- addPreferencesFromResource(R.xml.preferences);
-
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext());
- findPreference("check_for_updates").setEnabled(BuildConfig.DEBUG || BuildConfig.ENABLE_UPDATER);
-
findPreference("ttrss_url").setSummary(prefs.getString("ttrss_url", getString(R.string.ttrss_url_summary)));
findPreference("login").setSummary(prefs.getString("login", getString(R.string.login_summary)));
- findPreference("show_logcat").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ findPreference("show_logcat").setOnPreferenceClickListener(new androidx.preference.Preference.OnPreferenceClickListener() {
@Override
- public boolean onPreferenceClick(Preference preference) {
+ public boolean onPreferenceClick(@NonNull androidx.preference.Preference preference) {
Intent intent = new Intent(getActivity(), LogcatActivity.class);
startActivity(intent);
return false;
@@ -40,7 +39,7 @@ public class PreferencesFragment extends PreferenceFragment {
findPreference("network_settings").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
- getFragmentManager()
+ getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.preferences_container, new NetworkPreferencesFragment() )
.addToBackStack( NetworkPreferencesFragment.class.getSimpleName() )
@@ -76,4 +75,9 @@ public class PreferencesFragment extends PreferenceFragment {
}
}
+
+ @Override
+ public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
+ setPreferencesFromResource(R.xml.preferences,rootKey);
+ }
} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java
deleted file mode 100755
index 08802acd..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/StateSavedFragment.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.fox.ttrss;
-
-import android.os.Bundle;
-
-import com.livefront.bridge.Bridge;
-
-import androidx.fragment.app.Fragment;
-
-public class StateSavedFragment extends Fragment {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Bridge.restoreInstanceState(this, savedInstanceState);
- }
-
- @Override
- public void onSaveInstanceState(Bundle out) {
- super.onSaveInstanceState(out);
-
- Bridge.saveInstanceState(this, out);
- }
-}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java
deleted file mode 100755
index 81afbf0e..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/YoutubePlayerActivity.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.fox.ttrss;
-
-import android.content.res.Configuration;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-
-import com.google.android.youtube.player.YouTubeInitializationResult;
-import com.google.android.youtube.player.YouTubePlayer;
-import com.google.android.youtube.player.YouTubePlayerSupportFragment;
-
-import androidx.appcompat.app.AppCompatDelegate;
-import androidx.appcompat.widget.Toolbar;
-import icepick.State;
-
-
-public class YoutubePlayerActivity extends CommonActivity implements YouTubePlayer.OnInitializedListener {
-
- private final String TAG = this.getClass().getSimpleName();
- private static final String DEVELOPER_KEY = "AIzaSyD8BS4Uj21jg_gHZfP4v0VXrAWiwqd05nk";
-
- @State protected String m_streamUri;
- @State protected String m_videoId;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
-
- getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
- setTheme(R.style.AppTheme);
-
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_youtube_player);
-
- Toolbar toolbar = findViewById(R.id.toolbar);
- setSupportActionBar(toolbar);
-
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-
- if (!isPortrait())
- getSupportActionBar().hide();
-
- setTitle(getIntent().getStringExtra("title"));
-
- if (savedInstanceState == null) {
- m_streamUri = getIntent().getStringExtra("streamUri");
- m_videoId = getIntent().getStringExtra("vid");
- }
-
- YouTubePlayerSupportFragment frag = (YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_youtube_player);
- frag.initialize(DEVELOPER_KEY, this);
- }
-
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
-
- if (!isPortrait())
- getSupportActionBar().hide();
- else
- getSupportActionBar().show();
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.activity_youtube_player, menu);
- return true;
- }
-
-
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenu.ContextMenuInfo menuInfo) {
-
- getMenuInflater().inflate(R.menu.activity_youtube_player, menu);
-
- super.onCreateContextMenu(menu, v, menuInfo);
- }
-
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- return onContextItemSelected(item); // this is really bad :()
- }
-
- @Override
- public boolean onContextItemSelected(android.view.MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- onBackPressed();
- return true;
- case R.id.article_vid_open:
- if (m_streamUri != null) {
- try {
- openUri(Uri.parse(m_streamUri));
- } catch (Exception e) {
- e.printStackTrace();
- toast(R.string.error_other_error);
- }
- }
- return true;
- case R.id.article_vid_share:
- if (m_streamUri != null) {
- shareText(m_streamUri);
- }
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
-
- @Override
- public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
- Log.d(TAG, "youtube: init success");
-
- findViewById(R.id.video_loading).setVisibility(View.GONE);
-
- if (!wasRestored) {
- player.cueVideo(m_videoId);
- }
- }
-
- @Override
- public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult result) {
- Log.d(TAG, "youtube: init failure");
-
- findViewById(R.id.video_loading).setVisibility(View.GONE);
-
- toast(result.toString());
- }
-
- @Override
- public void onPause() {
- super.onPause();
-
- if (isFinishing()) {
- overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
- }
-
- }
-}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java
index 5b63356d..96e0ee34 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java
@@ -24,6 +24,8 @@ import android.widget.EditText;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.Toolbar;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import org.fox.ttrss.CommonActivity;
import org.fox.ttrss.OnlineActivity;
import org.fox.ttrss.PreferencesActivity;
@@ -100,54 +102,53 @@ public class OfflineActivity extends CommonActivity {
.getMenuInfo(); */
final OfflineArticlePager ap = (OfflineArticlePager)getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE);
-
- switch (item.getItemId()) {
- case R.id.article_img_open:
- if (getLastContentImageHitTestUrl() != null) {
- try {
- openUri(Uri.parse(getLastContentImageHitTestUrl()));
- } catch (Exception e) {
- e.printStackTrace();
- toast(R.string.error_other_error);
- }
- }
- return true;
- case R.id.article_img_copy:
- if (getLastContentImageHitTestUrl() != null) {
- copyToClipboard(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_share:
- if (getLastContentImageHitTestUrl() != null) {
- shareImageFromUri(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_share_url:
- if (getLastContentImageHitTestUrl() != null) {
- shareText(getLastContentImageHitTestUrl());
- }
- return true;
- case R.id.article_img_view_caption:
- if (getLastContentImageHitTestUrl() != null) {
- String content = "";
-
- Cursor article = getArticleById(ap.getSelectedArticleId());
-
- if (article != null) {
- content = article.getString(article.getColumnIndex("content"));
- article.close();
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.article_img_open) {
+ if (getLastContentImageHitTestUrl() != null) {
+ try {
+ openUri(Uri.parse(getLastContentImageHitTestUrl()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ toast(R.string.error_other_error);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.article_img_copy) {
+ if (getLastContentImageHitTestUrl() != null) {
+ copyToClipboard(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share) {
+ if (getLastContentImageHitTestUrl() != null) {
+ shareImageFromUri(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_share_url) {
+ if (getLastContentImageHitTestUrl() != null) {
+ shareText(getLastContentImageHitTestUrl());
+ }
+ return true;
+ } else if (itemId == R.id.article_img_view_caption) {
+ if (getLastContentImageHitTestUrl() != null) {
- displayImageCaption(getLastContentImageHitTestUrl(), content);
+ String content = "";
+
+ Cursor article = getArticleById(ap.getSelectedArticleId());
+
+ if (article != null) {
+ content = article.getString(article.getColumnIndex("content"));
+ article.close();
+ }
+
+ displayImageCaption(getLastContentImageHitTestUrl(), content);
}
return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
-
- }
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+
+ }
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -244,303 +245,295 @@ public class OfflineActivity extends CommonActivity {
final OfflineArticlePager oap = (OfflineArticlePager) getSupportFragmentManager()
.findFragmentByTag(FRAG_ARTICLE);
- switch (item.getItemId()) {
- /* case android.R.id.home:
+ int itemId = item.getItemId();/* case android.R.id.home:
finish();
- return true; */
- /* case R.id.headlines_toggle_sidebar:
+ return true; *//* case R.id.headlines_toggle_sidebar:
if (true && !isSmallScreen()) {
SharedPreferences.Editor editor = m_prefs.edit();
editor.putBoolean("headlines_hide_sidebar", !m_prefs.getBoolean("headlines_hide_sidebar", false));
editor.commit();
-
+
if (ohf != null && ohf.isAdded()) {
ohf.getView().setVisibility(m_prefs.getBoolean("headlines_hide_sidebar", false) ? View.GONE : View.VISIBLE);
}
}
- return true; */
- /*case R.id.go_online:
+ return true; *//*case R.id.go_online:
switchOnline();
return true;*/
- case R.id.search:
- if (ohf != null) {
- Dialog dialog = new Dialog(this);
-
- final EditText edit = new EditText(this);
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.search)
- .setPositiveButton(getString(R.string.search),
- new OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- String query = edit.getText().toString().trim();
-
- ohf.setSearchQuery(query);
-
- }
- })
- .setNegativeButton(getString(R.string.cancel),
- new OnClickListener() {
-
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- //
-
- }
- }).setView(edit);
-
- dialog = builder.create();
- dialog.show();
- }
-
- return true;
- case R.id.preferences:
- Intent intent = new Intent(this, PreferencesActivity.class);
- startActivityForResult(intent, 0);
- return true;
- case R.id.headlines_view_mode:
- if (ohf != null) {
- Dialog dialog = new Dialog(this);
-
- String viewMode = getViewMode();
-
- //Log.d(TAG, "viewMode:" + getViewMode());
+ if (itemId == R.id.search) {
+ if (ohf != null) {
+ Dialog dialog = new Dialog(this);
- int selectedIndex = 0;
-
- if (viewMode.equals("all_articles")) {
- selectedIndex = 0;
- } else if (viewMode.equals("marked")) {
- selectedIndex = 1;
- } else if (viewMode.equals("published")) {
- selectedIndex = 2;
- } else if (viewMode.equals("unread")) {
- selectedIndex = 3;
- }
-
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
- .setTitle(R.string.headlines_set_view_mode)
- .setSingleChoiceItems(
- new String[] {
- /* getString(R.string.headlines_adaptive), */
- getString(R.string.headlines_all_articles),
- getString(R.string.headlines_starred),
- getString(R.string.headlines_published),
- getString(R.string.headlines_unread) },
- selectedIndex, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- switch (which) {
+ final EditText edit = new EditText(this);
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.search)
+ .setPositiveButton(getString(R.string.search),
+ new OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ String query = edit.getText().toString().trim();
+
+ ohf.setSearchQuery(query);
+
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel),
+ new OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ //
+
+ }
+ }).setView(edit);
+
+ dialog = builder.create();
+ dialog.show();
+ }
+
+ return true;
+ } else if (itemId == R.id.preferences) {
+ Intent intent = new Intent(this, PreferencesActivity.class);
+ startActivityForResult(intent, 0);
+ return true;
+ } else if (itemId == R.id.headlines_view_mode) {
+ if (ohf != null) {
+ Dialog dialog = new Dialog(this);
+
+ String viewMode = getViewMode();
+
+ //Log.d(TAG, "viewMode:" + getViewMode());
+
+ int selectedIndex = 0;
+
+ if (viewMode.equals("all_articles")) {
+ selectedIndex = 0;
+ } else if (viewMode.equals("marked")) {
+ selectedIndex = 1;
+ } else if (viewMode.equals("published")) {
+ selectedIndex = 2;
+ } else if (viewMode.equals("unread")) {
+ selectedIndex = 3;
+ }
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.headlines_set_view_mode)
+ .setSingleChoiceItems(
+ new String[]{
+ /* getString(R.string.headlines_adaptive), */
+ getString(R.string.headlines_all_articles),
+ getString(R.string.headlines_starred),
+ getString(R.string.headlines_published),
+ getString(R.string.headlines_unread)},
+ selectedIndex, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ switch (which) {
/* case 0:
setViewMode("adaptive");
break; */
- case 0:
- setViewMode("all_articles");
- break;
- case 1:
- setViewMode("marked");
- break;
- case 2:
- setViewMode("published");
- break;
- case 3:
- setViewMode("unread");
- break;
- }
- dialog.cancel();
-
- refresh();
- }
- });
-
- dialog = builder.create();
- dialog.show();
+ case 0:
+ setViewMode("all_articles");
+ break;
+ case 1:
+ setViewMode("marked");
+ break;
+ case 2:
+ setViewMode("published");
+ break;
+ case 3:
+ setViewMode("unread");
+ break;
+ }
+ dialog.cancel();
+
+ refresh();
+ }
+ });
+
+ dialog = builder.create();
+ dialog.show();
+
+ }
+ return true;
+ } else if (itemId == R.id.headlines_select) {
+ if (ohf != null) {
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setTitle(R.string.headlines_select_dialog)
+ .setSingleChoiceItems(new String[]{
+ getString(R.string.headlines_select_all),
+ getString(R.string.headlines_select_unread),
+ getString(R.string.headlines_select_none)}, 0,
+ new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ selectArticles(ohf.getFeedId(), ohf.getFeedIsCat(), which);
+ invalidateOptionsMenu();
+ refresh();
+
+ dialog.cancel();
+ }
+ });
+
+ Dialog dialog = builder.create();
+ dialog.show();
+ }
+ return true;
+ } else if (itemId == R.id.headlines_mark_as_read) {
+ if (ohf != null) {
+ final int feedId = ohf.getFeedId();
+ final boolean isCat = ohf.getFeedIsCat();
+
+ int count = getUnreadArticleCount(feedId, isCat);
+
+ if (count > 0) {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setMessage(getResources().getQuantityString(R.plurals.mark_num_headlines_as_read, count, count))
+ .setPositiveButton(R.string.catchup,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ catchupFeed(feedId, isCat);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dlg = builder.create();
+ dlg.show();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.share_article) {
+ int articleId = oap.getSelectedArticleId();
+
+ shareArticle(articleId);
- }
- return true;
- case R.id.headlines_select:
- if (ohf != null) {
- Dialog dialog = new Dialog(this);
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.headlines_select_dialog);
-
- builder.setSingleChoiceItems(new String[] {
- getString(R.string.headlines_select_all),
- getString(R.string.headlines_select_unread),
- getString(R.string.headlines_select_none) }, 0,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
-
- selectArticles(ohf.getFeedId(), ohf.getFeedIsCat(), which);
- invalidateOptionsMenu();
- refresh();
-
- dialog.cancel();
- }
- });
-
- dialog = builder.create();
- dialog.show();
- }
- return true;
- case R.id.headlines_mark_as_read:
- if (ohf != null) {
- final int feedId = ohf.getFeedId();
- final boolean isCat = ohf.getFeedIsCat();
-
- int count = getUnreadArticleCount(feedId, isCat);
-
- if (count > 0) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- OfflineActivity.this)
- .setMessage(getResources().getQuantityString(R.plurals.mark_num_headlines_as_read, count, count))
- .setPositiveButton(R.string.catchup,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- catchupFeed(feedId, isCat);
-
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- }
- });
-
- AlertDialog dlg = builder.create();
- dlg.show();
- }
- }
- return true;
- /* case R.id.share_article:
- if (true) {
- int articleId = oap.getSelectedArticleId();
-
- shareArticle(articleId);
- }
- return true; */
- case R.id.toggle_marked:
- if (oap != null) {
- int articleId = oap.getSelectedArticleId();
-
- SQLiteStatement stmt = getDatabase().compileStatement(
- "UPDATE articles SET modified = 1, modified_marked = 1, marked = NOT marked WHERE "
- + BaseColumns._ID + " = ?");
- stmt.bindLong(1, articleId);
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.toggle_unread:
- if (oap != null) {
- int articleId = oap.getSelectedArticleId();
-
- SQLiteStatement stmt = getDatabase().compileStatement(
- "UPDATE articles SET modified = 1, unread = NOT unread WHERE "
- + BaseColumns._ID + " = ?");
- stmt.bindLong(1, articleId);
- stmt.execute();
- stmt.close();
-
- refresh();
- }
return true;
+ } else if (itemId == R.id.toggle_marked) {
+ if (oap != null) {
+ int articleId = oap.getSelectedArticleId();
+
+ SQLiteStatement stmt = getDatabase().compileStatement(
+ "UPDATE articles SET modified = 1, modified_marked = 1, marked = NOT marked WHERE "
+ + BaseColumns._ID + " = ?");
+ stmt.bindLong(1, articleId);
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.toggle_unread) {
+ if (oap != null) {
+ int articleId = oap.getSelectedArticleId();
+
+ SQLiteStatement stmt = getDatabase().compileStatement(
+ "UPDATE articles SET modified = 1, unread = NOT unread WHERE "
+ + BaseColumns._ID + " = ?");
+ stmt.bindLong(1, articleId);
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
/* case R.id.selection_select_none:
- deselectAllArticles();
+ deselectAllArticles();
return true; */
- case R.id.selection_toggle_unread:
- if (getSelectedArticleCount() > 0) {
- SQLiteStatement stmt = getDatabase()
- .compileStatement(
- "UPDATE articles SET modified = 1, unread = NOT unread WHERE selected = 1");
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.selection_toggle_marked:
- if (getSelectedArticleCount() > 0) {
- SQLiteStatement stmt = getDatabase()
- .compileStatement(
- "UPDATE articles SET modified = 1, modified_marked = 1, marked = NOT marked WHERE selected = 1");
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.selection_toggle_published:
- if (getSelectedArticleCount() > 0) {
- SQLiteStatement stmt = getDatabase()
- .compileStatement(
- "UPDATE articles SET modified = 1, modified_published = 1, published = NOT published WHERE selected = 1");
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.toggle_published:
- if (oap != null) {
- int articleId = oap.getSelectedArticleId();
-
- SQLiteStatement stmt = getDatabase().compileStatement(
- "UPDATE articles SET modified = 1, modified_published = 1, published = NOT published WHERE "
- + BaseColumns._ID + " = ?");
- stmt.bindLong(1, articleId);
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.catchup_above:
- if (oap != null) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- OfflineActivity.this)
- .setMessage(R.string.confirm_catchup_above)
- .setPositiveButton(R.string.dialog_ok,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- catchupAbove(oap);
-
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- }
- });
-
- AlertDialog dlg = builder.create();
- dlg.show();
- }
- return true;
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ } else if (itemId == R.id.selection_toggle_unread) {
+ if (getSelectedArticleCount() > 0) {
+ SQLiteStatement stmt = getDatabase()
+ .compileStatement(
+ "UPDATE articles SET modified = 1, unread = NOT unread WHERE selected = 1");
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.selection_toggle_marked) {
+ if (getSelectedArticleCount() > 0) {
+ SQLiteStatement stmt = getDatabase()
+ .compileStatement(
+ "UPDATE articles SET modified = 1, modified_marked = 1, marked = NOT marked WHERE selected = 1");
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.selection_toggle_published) {
+ if (getSelectedArticleCount() > 0) {
+ SQLiteStatement stmt = getDatabase()
+ .compileStatement(
+ "UPDATE articles SET modified = 1, modified_published = 1, published = NOT published WHERE selected = 1");
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.toggle_published) {
+ if (oap != null) {
+ int articleId = oap.getSelectedArticleId();
+
+ SQLiteStatement stmt = getDatabase().compileStatement(
+ "UPDATE articles SET modified = 1, modified_published = 1, published = NOT published WHERE "
+ + BaseColumns._ID + " = ?");
+ stmt.bindLong(1, articleId);
+ stmt.execute();
+ stmt.close();
+
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.catchup_above) {
+ if (oap != null) {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setMessage(R.string.confirm_catchup_above)
+ .setPositiveButton(R.string.dialog_ok,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ catchupAbove(oap);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dlg = builder.create();
+ dlg.show();
+ }
+ return true;
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
private void catchupAbove(OfflineArticlePager oap) {
int articleId = oap.getSelectedArticleId();
@@ -610,14 +603,14 @@ public class OfflineActivity extends CommonActivity {
boolean marked = article.getInt(article.getColumnIndex("marked")) == 1;
boolean published = article.getInt(article.getColumnIndex("published")) == 1;
- m_menu.findItem(R.id.toggle_marked).setIcon(marked ? R.drawable.ic_star :
- R.drawable.ic_star_outline);
+ m_menu.findItem(R.id.toggle_marked).setIcon(marked ? R.drawable.baseline_star_24 :
+ R.drawable.baseline_star_outline_24);
- m_menu.findItem(R.id.toggle_published).setIcon(published ? R.drawable.ic_checkbox_marked :
- R.drawable.ic_rss_box);
+ m_menu.findItem(R.id.toggle_published).setIcon(published ? R.drawable.baseline_check_box_24 :
+ R.drawable.baseline_rss_feed_24);
- m_menu.findItem(R.id.toggle_unread).setIcon(unread ? R.drawable.ic_email :
- R.drawable.ic_email_open);
+ m_menu.findItem(R.id.toggle_unread).setIcon(unread ? R.drawable.baseline_mark_as_unread_24 :
+ R.drawable.baseline_email_24);
article.close();
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
index a3b152a7..dfc47131 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
@@ -43,6 +43,8 @@ import java.util.Date;
import androidx.fragment.app.Fragment;
+import com.google.android.material.button.MaterialButton;
+
public class OfflineArticleFragment extends Fragment {
private final String TAG = this.getClass().getSimpleName();
@@ -127,26 +129,25 @@ public class OfflineArticleFragment extends Fragment {
public boolean onContextItemSelected(MenuItem item) {
/* AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo(); */
-
- switch (item.getItemId()) {
- case R.id.article_link_share:
- m_activity.shareArticle(m_articleId);
- return true;
- case R.id.article_link_copy:
- if (true) {
- Cursor article = m_activity.getArticleById(m_articleId);
-
- if (article != null) {
- m_activity.copyToClipboard(article.getString(article.getColumnIndex("link")));
- article.close();
- }
- }
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+
+ int itemId = item.getItemId();
+ if (itemId == R.id.article_link_share) {
+ m_activity.shareArticle(m_articleId);
+ return true;
+ } else if (itemId == R.id.article_link_copy) {
+ if (true) {
+ Cursor article = m_activity.getArticleById(m_articleId);
+
+ if (article != null) {
+ m_activity.copyToClipboard(article.getString(article.getColumnIndex("link")));
+ article.close();
+ }
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
@@ -198,7 +199,6 @@ public class OfflineArticleFragment extends Fragment {
m_cursor.moveToFirst();
if (m_cursor.isFirst()) {
- m_contentView = view.findViewById(R.id.article_scrollview);
m_customViewContainer = view.findViewById(R.id.article_fullscreen_video);
final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
@@ -235,19 +235,19 @@ public class OfflineArticleFragment extends Fragment {
}
- ImageView score = view.findViewById(R.id.score);
+ /* MaterialButton score = view.findViewById(R.id.score);
if (score != null) {
score.setVisibility(View.GONE);
}
- ImageView attachments = view.findViewById(R.id.attachments);
+ MaterialButton attachments = view.findViewById(R.id.attachments);
if (attachments != null) {
attachments.setVisibility(View.GONE);
}
- ImageView share = view.findViewById(R.id.share);
+ MaterialButton share = view.findViewById(R.id.share);
if (share != null) {
share.setOnClickListener(new OnClickListener() {
@@ -256,15 +256,14 @@ public class OfflineArticleFragment extends Fragment {
m_activity.shareArticle(m_articleId);
}
});
- }
-
+ } */
TextView comments = view.findViewById(R.id.comments);
if (comments != null) {
comments.setVisibility(View.GONE);
}
-
+
TextView note = view.findViewById(R.id.note);
if (note != null) {
@@ -275,10 +274,6 @@ public class OfflineArticleFragment extends Fragment {
if (m_web != null) {
- if (m_activity.isUiNightMode()) {
- m_web.setBackgroundColor(Color.BLACK);
- }
-
m_web.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
@@ -311,19 +306,16 @@ public class OfflineArticleFragment extends Fragment {
});
String content;
- String cssOverride = "";
WebSettings ws = m_web.getSettings();
ws.setSupportZoom(false);
+ ws.setJavaScriptEnabled(false);
- if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
- ws.setJavaScriptEnabled(true);
+ m_chromeClient = new FSVideoChromeClient(getView());
+ m_web.setWebChromeClient(m_chromeClient);
+ m_web.setBackgroundColor(Color.TRANSPARENT);
- m_chromeClient = new FSVideoChromeClient(getView());
- m_web.setWebChromeClient(m_chromeClient);
-
- ws.setMediaPlaybackRequiresUserGesture(true);
- }
+ ws.setMediaPlaybackRequiresUserGesture(true);
// we need to show "insecure" file:// urls
if (m_prefs.getBoolean("offline_image_cache_enabled", false) &&
@@ -332,24 +324,17 @@ public class OfflineArticleFragment extends Fragment {
ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
- TypedValue tvBackground = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.articleBackground, tvBackground, true);
-
- String backgroundHexColor = String.format("#%06X", (0xFFFFFF & tvBackground.data));
-
- cssOverride = "body { background : "+ backgroundHexColor+"; }";
-
TypedValue tvTextColor = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.articleTextColor, tvTextColor, true);
+ getActivity().getTheme().resolveAttribute(R.attr.colorOnSurface, tvTextColor, true);
String textColor = String.format("#%06X", (0xFFFFFF & tvTextColor.data));
- cssOverride += "body { color : "+textColor+"; }";
+ String cssOverride = "body { color : "+textColor+"; }";
- TypedValue tvLinkColor = new TypedValue();
- getActivity().getTheme().resolveAttribute(R.attr.linkColor, tvLinkColor, true);
+ TypedValue tvColorPrimary = new TypedValue();
+ getActivity().getTheme().resolveAttribute(R.attr.colorPrimary, tvColorPrimary, true);
- String linkHexColor = String.format("#%06X", (0xFFFFFF & tvLinkColor.data));
+ String linkHexColor = String.format("#%06X", (0xFFFFFF & tvColorPrimary.data));
cssOverride += " a:link {color: "+linkHexColor+";} a:visited { color: "+linkHexColor+";}";
String articleContent = m_cursor.getString(m_cursor.getColumnIndex("content"));
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java
index 20c2fd0c..ce4f6f72 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticlePager.java
@@ -136,7 +136,7 @@ public class OfflineArticlePager extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.article_pager, container, false);
+ View view = inflater.inflate(R.layout.fragment_article_pager, container, false);
if (savedInstanceState != null) {
m_articleId = savedInstanceState.getInt("articleId", 0);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
index 50335966..1f8f3dc6 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
@@ -169,15 +169,13 @@ public class OfflineDetailActivity extends OfflineActivity implements OfflineHea
return true;
}
- switch (item.getItemId()) {
- case android.R.id.home:
- finish();
- return true;
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ if (item.getItemId() == android.R.id.home) {
+ finish();
+ return true;
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
@Override
public void onArticleSelected(int articleId, boolean open) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java
index 933fbc03..c3c31133 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDownloadService.java
@@ -116,7 +116,7 @@ public class OfflineDownloadService extends Service {
.setContentTitle(getString(R.string.notify_downloading_title))
.setContentIntent(contentIntent)
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.drawable.ic_cloud_download)
+ .setSmallIcon(R.drawable.baseline_cloud_download_24)
.setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(),
R.drawable.ic_launcher))
.setOngoing(!isError)
@@ -124,20 +124,17 @@ public class OfflineDownloadService extends Service {
if (showProgress) builder.setProgress(max, progress, max == 0);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ intent = new Intent(this, OnlineActivity.class);
+ intent.setAction(INTENT_ACTION_CANCEL);
- intent = new Intent(this, OnlineActivity.class);
- intent.setAction(INTENT_ACTION_CANCEL);
+ PendingIntent cancelIntent = PendingIntent.getActivity(this, PI_CANCEL, intent, PendingIntent.FLAG_IMMUTABLE);
- PendingIntent cancelIntent = PendingIntent.getActivity(this, PI_CANCEL, intent, PendingIntent.FLAG_IMMUTABLE);
-
- builder.setCategory(Notification.CATEGORY_PROGRESS)
- .setVibrate(new long[0])
- .setVisibility(Notification.VISIBILITY_PUBLIC)
- .setColor(0x88b0f0)
- .setGroup("org.fox.ttrss")
- .addAction(R.drawable.ic_launcher, getString(R.string.cancel), cancelIntent);
- }
+ builder.setCategory(Notification.CATEGORY_PROGRESS)
+ .setVibrate(new long[0])
+ .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
+ .setColor(0x88b0f0)
+ .setGroup("org.fox.ttrss")
+ .addAction(R.drawable.ic_launcher, getString(R.string.cancel), cancelIntent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
builder.setChannelId(CommonActivity.NOTIFICATION_CHANNEL_NORMAL);
@@ -182,7 +179,7 @@ public class OfflineDownloadService extends Service {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setCategory(Notification.CATEGORY_MESSAGE)
.setVibrate(new long[0])
- .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setColor(0x88b0f0)
.setGroup("org.fox.ttrss");
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
index 40674bb8..372728e4 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedCategoriesFragment.java
@@ -92,37 +92,36 @@ public class OfflineFeedCategoriesFragment extends BaseFeedlistFragment implemen
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
-
- switch (item.getItemId()) {
- case R.id.browse_headlines:
- if (true) {
- int catId = getCatIdAtPosition(info.position);
- if (catId != -10000) {
- m_activity.onCatSelected(catId, true);
- }
- }
- return true;
- case R.id.browse_feeds:
- if (true) {
- int catId = getCatIdAtPosition(info.position);
- if (catId != -10000) {
- m_activity.onCatSelected(catId, false);
- }
- }
- return true;
- case R.id.catchup_category:
- if (true) {
- int catId = getCatIdAtPosition(info.position);
- if (catId != -10000) {
- m_activity.catchupFeed(catId, true);
- }
- }
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+
+ int itemId = item.getItemId();
+ if (itemId == R.id.browse_headlines) {
+ if (true) {
+ int catId = getCatIdAtPosition(info.position);
+ if (catId != -10000) {
+ m_activity.onCatSelected(catId, true);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.browse_feeds) {
+ if (true) {
+ int catId = getCatIdAtPosition(info.position);
+ if (catId != -10000) {
+ m_activity.onCatSelected(catId, false);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.catchup_category) {
+ if (true) {
+ int catId = getCatIdAtPosition(info.position);
+ if (catId != -10000) {
+ m_activity.catchupFeed(catId, true);
+ }
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java
index 6dd85a87..c0b63330 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineFeedsFragment.java
@@ -56,26 +56,25 @@ public class OfflineFeedsFragment extends BaseFeedlistFragment implements OnItem
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
- switch (item.getItemId()) {
- case R.id.browse_headlines:
- if (true) {
- int feedId = getFeedIdAtPosition(info.position);
- if (feedId != -10000) {
- m_activity.onFeedSelected(feedId);
- }
- }
- return true;
- case R.id.catchup_feed:
- int feedId = getFeedIdAtPosition(info.position);
- if (feedId != -10000) {
- m_activity.catchupFeed(feedId, false);
- }
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
- }
+ int itemId = item.getItemId();
+ if (itemId == R.id.browse_headlines) {
+ if (true) {
+ int feedId = getFeedIdAtPosition(info.position);
+ if (feedId != -10000) {
+ m_activity.onFeedSelected(feedId);
+ }
+ }
+ return true;
+ } else if (itemId == R.id.catchup_feed) {
+ int feedId = getFeedIdAtPosition(info.position);
+ if (feedId != -10000) {
+ m_activity.catchupFeed(feedId, false);
+ }
+ return true;
+ }
+ Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
+ return super.onContextItemSelected(item);
+ }
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index d448117c..7994b576 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -1,13 +1,12 @@
package org.fox.ttrss.offline;
import android.app.Activity;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.res.Resources.Theme;
+import android.content.res.ColorStateList;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
import android.graphics.Paint;
@@ -36,11 +35,11 @@ import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.CheckBox;
+import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
import android.widget.TextView;
import com.amulyakhare.textdrawable.TextDrawable;
@@ -50,6 +49,8 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.fox.ttrss.Application;
import org.fox.ttrss.CommonActivity;
@@ -158,79 +159,77 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
}
private boolean onArticleMenuItemSelected(MenuItem item, final int articleId) {
- switch (item.getItemId()) {
- case R.id.headlines_article_unread:
- if (true) {
+ int itemId = item.getItemId();
+ if (itemId == R.id.headlines_article_unread) {
+ if (true) {
- SQLiteStatement stmt = m_activity.getDatabase().compileStatement(
- "UPDATE articles SET modified = 1, unread = not unread " + "WHERE " + BaseColumns._ID
- + " = ?");
-
- stmt.bindLong(1, articleId);
- stmt.execute();
- stmt.close();
-
- refresh();
- }
- return true;
- case R.id.headlines_article_link_copy:
- if (true) {
- Cursor article = m_activity.getArticleById(articleId);
-
- if (article != null) {
- m_activity.copyToClipboard(article.getString(article.getColumnIndex("link")));
- article.close();
- }
- }
- return true;
- case R.id.headlines_article_link_open:
- if (true) {
- Cursor article = m_activity.getArticleById(articleId);
-
- if (article != null) {
- m_activity.openUri(Uri.parse(article.getString(article.getColumnIndex("link"))));
+ SQLiteStatement stmt = m_activity.getDatabase().compileStatement(
+ "UPDATE articles SET modified = 1, unread = not unread " + "WHERE " + BaseColumns._ID
+ + " = ?");
- // TODO: mark article as read, set modified = 1, refresh
+ stmt.bindLong(1, articleId);
+ stmt.execute();
+ stmt.close();
- article.close();
- }
- }
- return true;
- case R.id.headlines_share_article:
- m_activity.shareArticle(articleId);
- return true;
- case R.id.catchup_above:
- if (true) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- m_activity)
- .setMessage(R.string.confirm_catchup_above)
- .setPositiveButton(R.string.dialog_ok,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- catchupAbove(articleId);
+ refresh();
+ }
+ return true;
+ } else if (itemId == R.id.headlines_article_link_copy) {
+ if (true) {
+ Cursor article = m_activity.getArticleById(articleId);
+
+ if (article != null) {
+ m_activity.copyToClipboard(article.getString(article.getColumnIndex("link")));
+ article.close();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.headlines_article_link_open) {
+ if (true) {
+ Cursor article = m_activity.getArticleById(articleId);
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
+ if (article != null) {
+ m_activity.openUri(Uri.parse(article.getString(article.getColumnIndex("link"))));
- }
- });
+ // TODO: mark article as read, set modified = 1, refresh
- AlertDialog dialog = builder.create();
- dialog.show();
- }
- return true;
- default:
- Log.d(TAG, "onArticleMenuItemSelected, unhandled id=" + item.getItemId());
- return false;
- }
+ article.close();
+ }
+ }
+ return true;
+ } else if (itemId == R.id.headlines_share_article) {
+ m_activity.shareArticle(articleId);
+ return true;
+ } else if (itemId == R.id.catchup_above) {
+ if (true) {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext())
+ .setMessage(R.string.confirm_catchup_above)
+ .setPositiveButton(R.string.dialog_ok,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ catchupAbove(articleId);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dialog = builder.create();
+ dialog.show();
+ }
+ return true;
+ }
+ Log.d(TAG, "onArticleMenuItemSelected, unhandled id=" + item.getItemId());
+ return false;
- }
+ }
private void catchupAbove(int articleId) {
SQLiteStatement stmt = null;
@@ -488,14 +487,14 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public TextView titleView;
public TextView feedTitleView;
- public ImageView markedView;
- public ImageView publishedView;
+ public MaterialButton markedView;
+ public MaterialButton publishedView;
public TextView excerptView;
public ImageView flavorImageView;
public TextView authorView;
public TextView dateView;
public CheckBox selectionBoxView;
- public ImageView menuButtonView;
+ public MaterialButton menuButtonView;
public ViewGroup flavorImageHolder;
public ProgressBar flavorImageLoadingBar;
public View headlineFooter;
@@ -504,8 +503,8 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public ImageView flavorVideoKindView;
public View flavorImageOverflow;
public View headlineHeader;
- public ImageView attachmentsView;
- public ImageView scoreView;
+ public MaterialButton attachmentsView;
+ public MaterialButton scoreView;
public ArticleViewHolder(View v) {
@@ -564,7 +563,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public static final int VIEW_COUNT = VIEW_LOADMORE+1;
private final Integer[] origTitleColors = new Integer[VIEW_COUNT];
- private final int titleHighScoreUnreadColor;
private ColorGenerator m_colorGenerator = ColorGenerator.DEFAULT;
private TextDrawable.IBuilder m_drawableBuilder = TextDrawable.builder().round();
@@ -576,11 +574,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
- Theme theme = context.getTheme();
- TypedValue tv = new TypedValue();
- theme.resolveAttribute(R.attr.headlineTitleHighScoreUnreadTextColor, tv, true);
- titleHighScoreUnreadColor = tv.data;
-
String headlineMode = m_prefs.getString("headline_mode", "HL_DEFAULT");
showFlavorImage = "HL_DEFAULT".equals(headlineMode) || "HL_COMPACT".equals(headlineMode);
@@ -669,8 +662,8 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
final ArticleViewHolder holder;
final int articleId = article.getInt(0);
-
- int headlineFontSize = Integer.parseInt(m_prefs.getString("headlines_font_size_sp", "13"));
+
+ int headlineFontSize = m_prefs.getInt("headlines_font_size_sp_int", 13);
int headlineSmallFontSize = Math.max(10, Math.min(18, headlineFontSize - 2));
if (v == null) {
@@ -681,13 +674,13 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
layoutId = R.layout.headlines_row_loadmore;
break;
case VIEW_UNREAD:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_unread_compact : R.layout.headlines_row_unread;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_unread : R.layout.headlines_row_unread;
break;
case VIEW_SELECTED:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_selected_compact : R.layout.headlines_row;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_selected : R.layout.headlines_row;
break;
case VIEW_SELECTED_UNREAD:
- layoutId = m_compactLayoutMode ? R.layout.headlines_row_selected_unread_compact : R.layout.headlines_row_unread;
+ layoutId = m_compactLayoutMode ? R.layout.headlines_row_compact_selected_unread : R.layout.headlines_row_unread;
break;
}
@@ -789,8 +782,11 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
holder.feedTitleView.setVisibility(View.GONE);
}
- TypedValue tvAccent = new TypedValue();
- m_activity.getTheme().resolveAttribute(R.attr.colorAccent, tvAccent, true);
+ TypedValue tvTertiary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorTertiary, tvTertiary, true);
+
+ TypedValue tvPrimary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorPrimary, tvPrimary, true);
if (holder.attachmentsView != null) {
holder.attachmentsView.setVisibility(View.GONE);
@@ -807,12 +803,12 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_activity.getTheme().resolveAttribute(marked ? R.attr.ic_star : R.attr.ic_star_outline, tv, true);
- holder.markedView.setImageResource(tv.resourceId);
+ holder.markedView.setIconResource(tv.resourceId);
if (marked)
- holder.markedView.setColorFilter(tvAccent.data);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvTertiary.data));
else
- holder.markedView.setColorFilter(null);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.markedView.setOnClickListener(new OnClickListener() {
@@ -838,12 +834,12 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_activity.getTheme().resolveAttribute(published ? R.attr.ic_checkbox_marked : R.attr.ic_rss_box, tv, true);
- holder.publishedView.setImageResource(tv.resourceId);
+ holder.publishedView.setIconResource(tv.resourceId);
if (published)
- holder.publishedView.setColorFilter(tvAccent.data);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvTertiary.data));
else
- holder.publishedView.setColorFilter(null);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.publishedView.setOnClickListener(new OnClickListener() {
@@ -935,8 +931,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
holder.flavorVideoKindView.setVisibility(View.GONE);
holder.flavorImageOverflow.setVisibility(View.GONE);
- holder.headlineHeader.setBackgroundDrawable(null);
-
// this is needed if our flavor image goes behind base listview element
holder.headlineHeader.setOnClickListener(new OnClickListener() {
@Override
@@ -967,9 +961,8 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
//Log.d(TAG, articleId + " IMG: " + afi.flavorImageUri + " STREAM: " + afi.flavorStreamUri + " H:" + flavorViewHeight);
if (flavorViewHeight > 0) {
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
lp.height = flavorViewHeight;
- holder.flavorImageView.setLayoutParams(lp);
}
final String articleContent = article.getString(article.getColumnIndex("content"));
@@ -1011,24 +1004,8 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
holder.flavorImageView.setVisibility(View.VISIBLE);
-
- //TODO: not implemented
- //holder.flavorImageOverflow.setVisibility(View.VISIBLE);
-
- /*boolean forceDown = article.flavorImage != null && "video".equals(article.flavorImage.tagName().toLowerCase());
-
- maybeRepositionFlavorImage(holder.flavorImageView, resource, holder, forceDown);*/
adjustVideoKindView(holder, afi);
- /* we don't support image embedding in offline */
-
- RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
- lp.addRule(RelativeLayout.BELOW, R.id.headline_header);
- lp.height = RelativeLayout.LayoutParams.WRAP_CONTENT;
- holder.flavorImageView.setLayoutParams(lp);
-
- holder.headlineHeader.setBackgroundDrawable(null);
-
return false;
} else {
@@ -1081,10 +1058,10 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
private void adjustVideoKindView(ArticleViewHolder holder, ArticleFlavorInfo afi) {
if (afi.flavorImageUri != null) {
if (afi.flavorStreamUri != null) {
- holder.flavorVideoKindView.setImageResource(R.drawable.ic_play_circle);
+ holder.flavorVideoKindView.setImageResource(R.drawable.baseline_play_circle_24);
holder.flavorVideoKindView.setVisibility(View.VISIBLE);
} else if (afi.mediaList.size() > 1) {
- holder.flavorVideoKindView.setImageResource(R.drawable.ic_image_album);
+ holder.flavorVideoKindView.setImageResource(R.drawable.baseline_photo_album_24);
holder.flavorVideoKindView.setVisibility(View.VISIBLE);
} else {
holder.flavorVideoKindView.setVisibility(View.INVISIBLE);
@@ -1208,9 +1185,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
if (score < -500) {
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- } else if (score > 500) {
- tv.setTextColor(titleHighScoreUnreadColor);
- tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
} else {
tv.setTextColor(origTitleColors[viewType].intValue());
tv.setPaintFlags(tv.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineMasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineMasterActivity.java
index efd1ed97..44016124 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineMasterActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineMasterActivity.java
@@ -25,6 +25,8 @@ import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import java.util.HashMap;
public class OfflineMasterActivity extends OfflineActivity implements OfflineHeadlinesEventListener {
@@ -141,9 +143,7 @@ public class OfflineMasterActivity extends OfflineActivity implements OfflineHea
return true;
}
- switch (item.getItemId()) {
- case R.id.headlines_toggle_sort_order:
- /* SharedPreferences.Editor editor = m_prefs.edit();
+ if (item.getItemId() == R.id.headlines_toggle_sort_order) {/* SharedPreferences.Editor editor = m_prefs.edit();
editor.putBoolean("offline_oldest_first", !m_prefs.getBoolean("offline_oldest_first", false));
editor.commit();
refresh(); */
@@ -152,10 +152,10 @@ public class OfflineMasterActivity extends OfflineActivity implements OfflineHea
int selectedIndex = m_prefs.getBoolean("offline_oldest_first", false) ? 1 : 0;
- AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
.setTitle(getString(R.string.headlines_sort_articles_title))
.setSingleChoiceItems(
- new String[] {
+ new String[]{
getString(R.string.headlines_sort_default),
getString(R.string.headlines_sort_oldest_first)
},
@@ -175,7 +175,7 @@ public class OfflineMasterActivity extends OfflineActivity implements OfflineHea
if (true) {
SharedPreferences.Editor editor = m_prefs.edit();
editor.putBoolean("offline_oldest_first", true);
- editor.apply();
+ editor.apply();
}
break;
}
@@ -194,11 +194,10 @@ public class OfflineMasterActivity extends OfflineActivity implements OfflineHea
invalidateOptionsMenu();
refresh();
return true; */
- default:
- Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ }
+ Log.d(TAG, "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
@Override
public void onSaveInstanceState(Bundle out) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java
index cce355a1..efbeef2c 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineUploadService.java
@@ -68,7 +68,7 @@ public class OfflineUploadService extends IntentService {
.setContentTitle(getString(R.string.notify_uploading_title))
.setContentIntent(contentIntent)
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.drawable.ic_cloud_upload)
+ .setSmallIcon(R.drawable.baseline_cloud_upload_24)
.setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(),
R.drawable.ic_launcher))
.setOngoing(!isError)
@@ -79,7 +79,7 @@ public class OfflineUploadService extends IntentService {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setCategory(Notification.CATEGORY_PROGRESS)
- .setVisibility(Notification.VISIBILITY_PUBLIC)
+ .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setColor(0x88b0f0)
.setGroup("org.fox.ttrss")
.addAction(R.drawable.ic_launcher, getString(R.string.offline_sync_try_again), contentIntent);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
index b6a989b1..39d6c2ef 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/CommonShareActivity.java
@@ -1,6 +1,7 @@
package org.fox.ttrss.share;
import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -11,18 +12,18 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
import org.fox.ttrss.ApiRequest;
import org.fox.ttrss.PreferencesActivity;
import org.fox.ttrss.R;
import org.fox.ttrss.util.SimpleLoginManager;
-import icepick.State;
-
public abstract class CommonShareActivity extends CommonActivity {
protected SharedPreferences m_prefs;
- @State protected String m_sessionId;
- @State protected int m_apiLevel = 0;
+ protected String m_sessionId;
+ protected int m_apiLevel = 0;
private final String TAG = this.getClass().getSimpleName();
@@ -31,9 +32,22 @@ public abstract class CommonShareActivity extends CommonActivity {
m_prefs = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
+ if (savedInstanceState != null) {
+ m_sessionId = savedInstanceState.getString("m_sessionId");
+ m_apiLevel = savedInstanceState.getInt("m_apiLevel");
+ }
+
super.onCreate(savedInstanceState);
}
+ @Override
+ public void onSaveInstanceState(Bundle out) {
+ super.onSaveInstanceState(out);
+
+ out.putString("m_sessionId", m_sessionId);
+ out.putInt("m_apiLevel", m_apiLevel);
+ }
+
protected abstract void onLoggedIn(int requestId);
protected abstract void onLoggingIn(int requestId);
@@ -42,10 +56,10 @@ public abstract class CommonShareActivity extends CommonActivity {
if (m_prefs.getString("ttrss_url", "").trim().length() == 0) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setMessage(R.string.dialog_need_configure_prompt)
- .setCancelable(false)
- .setPositiveButton(R.string.dialog_open_preferences, new DialogInterface.OnClickListener() {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this)
+ .setMessage(R.string.dialog_need_configure_prompt)
+ .setCancelable(false)
+ .setPositiveButton(R.string.dialog_open_preferences, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// launch preferences
@@ -54,12 +68,12 @@ public abstract class CommonShareActivity extends CommonActivity {
startActivityForResult(intent, 0);
}
})
- .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+ .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
- AlertDialog alert = builder.create();
+ Dialog alert = builder.create();
alert.show();
} else {
@@ -94,18 +108,16 @@ public abstract class CommonShareActivity extends CommonActivity {
}
public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.preferences:
- Intent intent = new Intent(CommonShareActivity.this,
- PreferencesActivity.class);
- startActivityForResult(intent, 0);
- return true;
- default:
- Log.d(TAG,
- "onOptionsItemSelected, unhandled id=" + item.getItemId());
- return super.onOptionsItemSelected(item);
- }
- }
+ if (item.getItemId() == R.id.preferences) {
+ Intent intent = new Intent(CommonShareActivity.this,
+ PreferencesActivity.class);
+ startActivityForResult(intent, 0);
+ return true;
+ }
+ Log.d(TAG,
+ "onOptionsItemSelected, unhandled id=" + item.getItemId());
+ return super.onOptionsItemSelected(item);
+ }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java
index 3b1da2c9..9e391411 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/ShareActivity.java
@@ -22,12 +22,10 @@ public class ShareActivity extends CommonShareActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
- //setTheme(R.style.DarkTheme);
-
super.onCreate(savedInstanceState);
-
- requestWindowFeature(Window.FEATURE_LEFT_ICON);
+ requestWindowFeature(Window.FEATURE_LEFT_ICON);
+
Intent intent = getIntent();
String urlValue = intent.getStringExtra(Intent.EXTRA_TEXT);
@@ -41,9 +39,7 @@ public class ShareActivity extends CommonShareActivity {
}
setContentView(R.layout.activity_share);
-
- getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher);
-
+
setSmallScreen(false);
EditText url = (EditText) findViewById(R.id.url);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java
index 1463958d..df0c82f9 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/share/SubscribeActivity.java
@@ -90,9 +90,7 @@ public class SubscribeActivity extends CommonShareActivity {
setContentView(R.layout.activity_subscribe);
- getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_launcher);
-
- setSmallScreen(false);
+ setSmallScreen(false);
m_progressBar = (ProgressBar) findViewById(R.id.subscribe_progress);
Spinner catList = (Spinner) findViewById(R.id.category_spinner);
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
index 0eb45074..50e34f78 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/GalleryEntry.java
@@ -1,14 +1,51 @@
package org.fox.ttrss.types;
+import android.os.Parcel;
+import android.os.Parcelable;
+
import java.io.Serializable;
-public class GalleryEntry implements Serializable {
+public class GalleryEntry implements Serializable, Parcelable {
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public static final Parcelable.Creator CREATOR =
+ new Parcelable.Creator() {
+ public GalleryEntry createFromParcel(Parcel in) {
+ return new GalleryEntry(in);
+ }
+
+ public GalleryEntry[] newArray(int size) {
+ return new GalleryEntry[size];
+ }
+ };
+
public enum GalleryEntryType { TYPE_IMAGE, TYPE_VIDEO }
public String url;
public GalleryEntryType type;
public String coverUrl;
+ @Override
+ public void writeToParcel(Parcel out, int flags) {
+ out.writeString(url);
+ out.writeString(type.name());
+ out.writeString(coverUrl);
+ }
+
+ public void readFromParcel(Parcel in) {
+ url = in.readString();
+ type = GalleryEntryType.valueOf(in.readString());
+ coverUrl = in.readString();
+ }
+
+ public GalleryEntry(Parcel in) {
+ readFromParcel(in);
+ }
+
public GalleryEntry() {
//
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java
deleted file mode 100644
index 3f3d1a53..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/FontSizeDialogPreference.java
+++ /dev/null
@@ -1,224 +0,0 @@
-package org.fox.ttrss.util;
-
-// http://www.lukehorvat.com/blog/android-seekbardialogpreference/
-
-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;
-
-import org.fox.ttrss.R;
-
-/**
- * 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.settings_select_font_size);
- 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/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java
index ae8e7a4c..b2ae08f7 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ImageCacheService.java
@@ -204,7 +204,7 @@ public class ImageCacheService extends IntentService {
.setContentTitle(getString(R.string.notify_downloading_title))
.setContentIntent(contentIntent)
.setWhen(System.currentTimeMillis())
- .setSmallIcon(R.drawable.ic_cloud_download)
+ .setSmallIcon(R.drawable.baseline_cloud_download_24)
.setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(),
R.drawable.ic_launcher))
.setOngoing(true)
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenSwitchPreference.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenSwitchPreference.java
deleted file mode 100644
index df116064..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenSwitchPreference.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.fox.ttrss.util;
-
-// android is shit garbage
-// https://code.google.com/p/android/issues/detail?id=26194
-
-import android.content.Context;
-import android.preference.SwitchPreference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Switch;
-
-public class LessBrokenSwitchPreference extends SwitchPreference {
-
- /**
- * Construct a new SwitchPreference with the given style options.
- *
- * @param context The Context that will style this preference
- * @param attrs Style attributes that differ from the default
- * @param defStyle Theme attribute defining the default style options
- */
- public LessBrokenSwitchPreference(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- /**
- * Construct a new SwitchPreference with the given style options.
- *
- * @param context The Context that will style this preference
- * @param attrs Style attributes that differ from the default
- */
- public LessBrokenSwitchPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- /**
- * Construct a new SwitchPreference with default style options.
- *
- * @param context The Context that will style this preference
- */
- public LessBrokenSwitchPreference(Context context) {
- super(context, null);
- }
-
- @Override
- protected void onBindView(View view) {
- // Clean listener before invoke SwitchPreference.onBindView
- ViewGroup viewGroup= (ViewGroup)view;
- clearListenerInViewGroup(viewGroup);
- super.onBindView(view);
- }
-
- /**
- * Clear listener in Switch for specify ViewGroup.
- *
- * @param viewGroup The ViewGroup that will need to clear the listener.
- */
- private void clearListenerInViewGroup(ViewGroup viewGroup) {
- if (null == viewGroup) {
- return;
- }
-
- int count = viewGroup.getChildCount();
- for(int n = 0; n < count; ++n) {
- View childView = viewGroup.getChildAt(n);
- if(childView instanceof Switch) {
- final Switch switchView = (Switch) childView;
- switchView.setOnCheckedChangeListener(null);
- return;
- } else if (childView instanceof ViewGroup){
- ViewGroup childGroup = (ViewGroup)childView;
- clearListenerInViewGroup(childGroup);
- }
- }
- }
-
-} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java
deleted file mode 100644
index 4a3ea826..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/LessBrokenWebView.java
+++ /dev/null
@@ -1,37 +0,0 @@
-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/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ScrimInsetsFrameLayout.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ScrimInsetsFrameLayout.java
deleted file mode 100755
index d3a5ab27..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/ScrimInsetsFrameLayout.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.fox.ttrss.util;
-/*
- * Copyright 2014 Google Inc.
- *
- * 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 android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.widget.FrameLayout;
-
-import org.fox.ttrss.R;
-
-import androidx.core.view.ViewCompat;
-
-/**
- * A layout that draws something in the insets passed to {@link #fitSystemWindows(Rect)}, i.e. the area above UI chrome
- * (status and navigation bars, overlay action bars).
- */
-public class ScrimInsetsFrameLayout extends FrameLayout {
- private Drawable mInsetForeground;
-
- private Rect mInsets;
- private Rect mTempRect = new Rect();
- private OnInsetsCallback mOnInsetsCallback;
-
- public ScrimInsetsFrameLayout(Context context) {
- super(context);
- init(context, null, 0);
- }
-
- public ScrimInsetsFrameLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- init(context, attrs, 0);
- }
-
- public ScrimInsetsFrameLayout(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- init(context, attrs, defStyle);
- }
-
- private void init(Context context, AttributeSet attrs, int defStyle) {
- final TypedArray a = context.obtainStyledAttributes(attrs,
- R.styleable.ScrimInsetsView, defStyle, 0);
- if (a == null) {
- return;
- }
- mInsetForeground = a.getDrawable(R.styleable.ScrimInsetsView_insetForeground);
- a.recycle();
-
- setWillNotDraw(true);
- }
-
- @Override
- protected boolean fitSystemWindows(Rect insets) {
- mInsets = new Rect(insets);
- setWillNotDraw(mInsetForeground == null);
- ViewCompat.postInvalidateOnAnimation(this);
- if (mOnInsetsCallback != null) {
- mOnInsetsCallback.onInsetsChanged(insets);
- }
- return true; // consume insets
- }
-
- @Override
- public void draw(Canvas canvas) {
- super.draw(canvas);
-
- int width = getWidth();
- int height = getHeight();
- if (mInsets != null && mInsetForeground != null) {
- int sc = canvas.save();
- canvas.translate(getScrollX(), getScrollY());
-
- // Top
- mTempRect.set(0, 0, width, mInsets.top);
- mInsetForeground.setBounds(mTempRect);
- mInsetForeground.draw(canvas);
-
- // Bottom
- mTempRect.set(0, height - mInsets.bottom, width, height);
- mInsetForeground.setBounds(mTempRect);
- mInsetForeground.draw(canvas);
-
- // Left
- mTempRect.set(0, mInsets.top, mInsets.left, height - mInsets.bottom);
- mInsetForeground.setBounds(mTempRect);
- mInsetForeground.draw(canvas);
-
- // Right
- mTempRect.set(width - mInsets.right, mInsets.top, width, height - mInsets.bottom);
- mInsetForeground.setBounds(mTempRect);
- mInsetForeground.draw(canvas);
-
- canvas.restoreToCount(sc);
- }
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- if (mInsetForeground != null) {
- mInsetForeground.setCallback(this);
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
- if (mInsetForeground != null) {
- mInsetForeground.setCallback(null);
- }
- }
-
- /**
- * Allows the calling container to specify a callback for custom processing when insets change (i.e. when
- * {@link #fitSystemWindows(Rect)} is called. This is useful for setting padding on UI elements based on
- * UI chrome insets (e.g. a Google Map or a ListView). When using with ListView or GridView, remember to set
- * clipToPadding to false.
- */
- public void setOnInsetsCallback(OnInsetsCallback onInsetsCallback) {
- mOnInsetsCallback = onInsetsCallback;
- }
-
- public interface OnInsetsCallback {
- void onInsetsChanged(Rect insets);
- }
-} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/dashclock.png b/org.fox.ttrss/src/main/res/drawable-hdpi/dashclock.png
deleted file mode 100644
index 99ffa932..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/dashclock.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header.png b/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header.png
deleted file mode 100644
index d556700b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_amber.png b/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_amber.png
deleted file mode 100644
index e41c647d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_amber.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_dark.png
deleted file mode 100644
index 7cf97e22..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/drawer_header_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down.png
deleted file mode 100644
index d84624ca..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down_dark.png
deleted file mode 100644
index 1b4e2ac6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_down_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat.png
deleted file mode 100644
index ec65283b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat_dark.png
deleted file mode 100644
index d877db05..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_flat_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up.png
deleted file mode 100644
index 68945759..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up_dark.png
deleted file mode 100644
index b3ecbf00..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_trending_up_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png
deleted file mode 100644
index b7347bbc..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_action_web_site.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive.png
deleted file mode 100644
index 86658e2c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive_dark.png
deleted file mode 100644
index 6849379a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_archive_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment.png
deleted file mode 100644
index d444973e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_dark.png
deleted file mode 100644
index 2f7c51d1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert.png
deleted file mode 100644
index 389acd29..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert_dark.png
deleted file mode 100644
index 9e92b8c5..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_attachment_vert_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked.png
deleted file mode 100644
index a568060a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked_dark.png
deleted file mode 100644
index 67bd912b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_checkbox_marked_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download.png
deleted file mode 100644
index 5d15649c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download_dark.png
deleted file mode 100644
index a9fee824..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_download_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload.png
deleted file mode 100644
index c27d448d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload_dark.png
deleted file mode 100644
index b685b8d3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_cloud_upload_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_content_copy.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_content_copy.png
deleted file mode 100644
index f3febcae..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_content_copy.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical.png
deleted file mode 100644
index 9e091806..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle.png
deleted file mode 100644
index 8f24f42c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle_dark.png
deleted file mode 100644
index bd6275c7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_circle_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_dark.png
deleted file mode 100644
index 1819c7f3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_dots_vertical_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email.png
deleted file mode 100644
index c3a004a3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email_open.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email_open.png
deleted file mode 100644
index 463a808b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_email_open.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant.png
deleted file mode 100644
index 4faa102b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant_dark.png
deleted file mode 100644
index 623ea2c5..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_filter_variant_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline.png
deleted file mode 100644
index f7cc7739..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline_dark.png
deleted file mode 100644
index 2c505beb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_folder_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh.png
deleted file mode 100644
index 650d0f11..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh_dark.png
deleted file mode 100644
index 29bed701..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_fresh_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back.png
deleted file mode 100644
index fc6ebb25..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back_dark.png
deleted file mode 100644
index e4322c95..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_go_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_image_album.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_image_album.png
deleted file mode 100644
index 58ae6503..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_image_album.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox.png
deleted file mode 100644
index 92ab24ce..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox_dark.png
deleted file mode 100644
index 9c42749c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_inbox_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_login.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_login.png
deleted file mode 100644
index b4e322e2..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_login.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_logout.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_logout.png
deleted file mode 100644
index 1778fb15..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_logout.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_play_circle.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_play_circle.png
deleted file mode 100644
index b4d4f903..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_play_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_refresh.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_refresh.png
deleted file mode 100644
index 8c0a324d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_refresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore.png
deleted file mode 100644
index 3cc4fd3f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore_dark.png
deleted file mode 100644
index d3282429..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_restore_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box.png
deleted file mode 100644
index 2139f158..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box_dark.png
deleted file mode 100644
index 8ea7af61..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_rss_box_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_search.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_search.png
deleted file mode 100644
index da11a757..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_search.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_select.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_select.png
deleted file mode 100644
index 6c469fe9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_select.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings.png
deleted file mode 100644
index e65808c9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings_dark.png
deleted file mode 100644
index c404fd0c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_settings_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share.png
deleted file mode 100644
index 60269c5f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share_dark.png
deleted file mode 100644
index 7d730af3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_share_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_sort.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_sort.png
deleted file mode 100644
index 69815f4a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_sort.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star.png
deleted file mode 100644
index aadffe6a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_dark.png
deleted file mode 100644
index a9e5ba81..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline.png
deleted file mode 100644
index e5e5c271..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline_dark.png
deleted file mode 100644
index 17afc5f5..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_star_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_youtube_play.png b/org.fox.ttrss/src/main/res/drawable-hdpi/ic_youtube_play.png
deleted file mode 100644
index f36d9259..00000000
--- a/org.fox.ttrss/src/main/res/drawable-hdpi/ic_youtube_play.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down.png
deleted file mode 100644
index 7dcdca0e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down_dark.png
deleted file mode 100644
index 37ea9a33..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_down_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat.png
deleted file mode 100644
index 7b47abd1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat_dark.png
deleted file mode 100644
index d9251d44..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_flat_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up.png
deleted file mode 100644
index fe3218cf..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up_dark.png
deleted file mode 100644
index 5af3c92e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_trending_up_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_web_site.png
deleted file mode 100644
index 7e5958ac..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_action_web_site.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive.png
deleted file mode 100644
index 908e4bbc..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive_dark.png
deleted file mode 100644
index 0a350363..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_archive_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment.png
deleted file mode 100644
index 24ed83da..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_dark.png
deleted file mode 100644
index 9936076e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert.png
deleted file mode 100644
index 781b6372..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert_dark.png
deleted file mode 100644
index 7c884662..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_attachment_vert_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked.png
deleted file mode 100644
index cea1ad89..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked_dark.png
deleted file mode 100644
index 4b85499d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_checkbox_marked_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download.png
deleted file mode 100644
index 7ac3955f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download_dark.png
deleted file mode 100644
index 37c3ccf9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_download_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload.png
deleted file mode 100644
index f84984b0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload_dark.png
deleted file mode 100644
index d025c97e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_cloud_upload_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_content_copy.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_content_copy.png
deleted file mode 100644
index aff7317c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_content_copy.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical.png
deleted file mode 100644
index 38591372..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle.png
deleted file mode 100644
index cb96e59b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle_dark.png
deleted file mode 100644
index 1284feba..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_circle_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_dark.png
deleted file mode 100644
index eb100c47..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_dots_vertical_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email.png
deleted file mode 100644
index 688bcfdf..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email_open.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email_open.png
deleted file mode 100644
index e3156355..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_email_open.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant.png
deleted file mode 100644
index 7f3d0364..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant_dark.png
deleted file mode 100644
index a761e237..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_filter_variant_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline.png
deleted file mode 100644
index 6c1d7d85..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline_dark.png
deleted file mode 100644
index 84a81461..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_folder_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh.png
deleted file mode 100644
index 6c098bf5..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh_dark.png
deleted file mode 100644
index 2bce1991..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_fresh_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back.png
deleted file mode 100644
index e88fe3db..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back_dark.png
deleted file mode 100644
index bbe935db..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_go_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_image_album.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_image_album.png
deleted file mode 100644
index 5c943d79..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_image_album.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox.png
deleted file mode 100644
index b12f5c19..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox_dark.png
deleted file mode 100644
index 3ad671e3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_inbox_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_login.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_login.png
deleted file mode 100644
index b6ea39c8..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_login.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_logout.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_logout.png
deleted file mode 100644
index 24abb2fb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_logout.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_play_circle.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_play_circle.png
deleted file mode 100644
index e442ae26..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_play_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_refresh.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_refresh.png
deleted file mode 100644
index 47e67916..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_refresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore.png
deleted file mode 100644
index 8417d747..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore_dark.png
deleted file mode 100644
index 6b5bee62..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_restore_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box.png
deleted file mode 100644
index fd54c863..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box_dark.png
deleted file mode 100644
index 1a878c47..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_rss_box_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_search.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_search.png
deleted file mode 100644
index ddd225a7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_search.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_select.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_select.png
deleted file mode 100644
index 19dfda24..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_select.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings.png
deleted file mode 100644
index 6f4637a7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings_dark.png
deleted file mode 100644
index 9947ffb8..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_settings_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share.png
deleted file mode 100644
index cff4a732..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share_dark.png
deleted file mode 100644
index 829087f8..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_share_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_sort.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_sort.png
deleted file mode 100644
index 31c6806f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_sort.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star.png
deleted file mode 100644
index c87100e2..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_dark.png
deleted file mode 100644
index 6d15e8a7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline.png
deleted file mode 100644
index a53d0f60..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline_dark.png
deleted file mode 100644
index d0405813..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_star_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_youtube_play.png b/org.fox.ttrss/src/main/res/drawable-mdpi/ic_youtube_play.png
deleted file mode 100644
index 5dbfc8d1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-mdpi/ic_youtube_play.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/dashclock.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/dashclock.png
deleted file mode 100644
index 65ebe3c1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/dashclock.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down.png
deleted file mode 100644
index 53ff92a2..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down_dark.png
deleted file mode 100644
index 0f15737f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_down_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat.png
deleted file mode 100644
index 33d96f00..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat_dark.png
deleted file mode 100644
index 8c1ea784..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_flat_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up.png
deleted file mode 100644
index 33b01737..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up_dark.png
deleted file mode 100644
index ec479dbf..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_trending_up_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png
deleted file mode 100644
index db5cbe60..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_action_web_site.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive.png
deleted file mode 100644
index e759dc38..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive_dark.png
deleted file mode 100644
index d29d7861..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_archive_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment.png
deleted file mode 100644
index 26f61c29..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_dark.png
deleted file mode 100644
index 05aeeff7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert.png
deleted file mode 100644
index 69d778e1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert_dark.png
deleted file mode 100644
index d0657c0e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_attachment_vert_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked.png
deleted file mode 100644
index 6964562d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked_dark.png
deleted file mode 100644
index 54936ef9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_checkbox_marked_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download.png
deleted file mode 100644
index 20bcdd58..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download_dark.png
deleted file mode 100644
index c1bb95d7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_download_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload.png
deleted file mode 100644
index b0bed197..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload_dark.png
deleted file mode 100644
index ab9f1c71..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_cloud_upload_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_content_copy.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_content_copy.png
deleted file mode 100644
index 9f63f9b0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_content_copy.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical.png
deleted file mode 100644
index 8a1172f2..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle.png
deleted file mode 100644
index 469e4074..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle_dark.png
deleted file mode 100644
index d7dc01d2..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_circle_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_dark.png
deleted file mode 100644
index 27538d34..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_dots_vertical_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email.png
deleted file mode 100644
index c1a79b44..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email_open.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email_open.png
deleted file mode 100644
index d65791a1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_email_open.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant.png
deleted file mode 100644
index 4511f444..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant_dark.png
deleted file mode 100644
index 3468b02b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_filter_variant_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline.png
deleted file mode 100644
index 036daa89..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline_dark.png
deleted file mode 100644
index a5eeeca0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_folder_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh.png
deleted file mode 100644
index ff106b38..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh_dark.png
deleted file mode 100644
index 7b541ca8..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_fresh_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back.png
deleted file mode 100644
index b3a5556b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back_dark.png
deleted file mode 100644
index a2ef528f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_go_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_image_album.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_image_album.png
deleted file mode 100644
index 2f4d73cb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_image_album.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox.png
deleted file mode 100644
index 35f6fc1b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox_dark.png
deleted file mode 100644
index bcceb5c4..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_inbox_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_login.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_login.png
deleted file mode 100644
index ee7edf0c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_login.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_logout.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_logout.png
deleted file mode 100644
index 25e32eff..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_logout.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_play_circle.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_play_circle.png
deleted file mode 100644
index 46b06231..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_play_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_refresh.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_refresh.png
deleted file mode 100644
index 2582b47a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_refresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore.png
deleted file mode 100644
index 24052165..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore_dark.png
deleted file mode 100644
index b066e8d6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_restore_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box.png
deleted file mode 100644
index ad319be9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box_dark.png
deleted file mode 100644
index 7e8b428c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_rss_box_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_search.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_search.png
deleted file mode 100644
index 1e01383f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_search.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_select.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_select.png
deleted file mode 100644
index d46a33e3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_select.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings.png
deleted file mode 100644
index f01e5372..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings_dark.png
deleted file mode 100644
index 27c334bf..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_settings_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share.png
deleted file mode 100644
index 6688550f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share_dark.png
deleted file mode 100644
index 7185c9be..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_share_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_sort.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_sort.png
deleted file mode 100644
index e735d160..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_sort.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star.png
deleted file mode 100644
index 06a24604..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_dark.png
deleted file mode 100644
index 71fc5c28..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline.png
deleted file mode 100644
index 1b932488..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline_dark.png
deleted file mode 100644
index 7be768e1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_star_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_youtube_play.png b/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_youtube_play.png
deleted file mode 100644
index 1194d0db..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xhdpi/ic_youtube_play.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header.png
deleted file mode 100644
index 80c578ba..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_amber.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_amber.png
deleted file mode 100644
index 463fba18..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_amber.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_dark.png
deleted file mode 100644
index 77170adb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/drawer_header_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down.png
deleted file mode 100644
index c2ec115e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down_dark.png
deleted file mode 100644
index 02183b60..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_down_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat.png
deleted file mode 100644
index 7b51ffcc..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat_dark.png
deleted file mode 100644
index f55069c1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_flat_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up.png
deleted file mode 100644
index dd732d55..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up_dark.png
deleted file mode 100644
index f8d6b481..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_trending_up_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_web_site.png
deleted file mode 100644
index 1a845b9f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_action_web_site.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive.png
deleted file mode 100644
index 97ebb509..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive_dark.png
deleted file mode 100644
index 03a36027..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_archive_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment.png
deleted file mode 100644
index 0117966d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_dark.png
deleted file mode 100644
index d91d1cd7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert.png
deleted file mode 100644
index 9df9428f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert_dark.png
deleted file mode 100644
index 369567c6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_attachment_vert_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked.png
deleted file mode 100644
index 8237fa47..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked_dark.png
deleted file mode 100644
index 84cc49cc..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_checkbox_marked_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download.png
deleted file mode 100644
index 87110eb1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download_dark.png
deleted file mode 100644
index 3906cd11..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_download_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload.png
deleted file mode 100644
index f9d8318d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload_dark.png
deleted file mode 100644
index f02f39f4..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_cloud_upload_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_content_copy.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_content_copy.png
deleted file mode 100644
index b4ae0edb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_content_copy.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical.png
deleted file mode 100644
index b1618d48..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle.png
deleted file mode 100644
index 2d21a371..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle_dark.png
deleted file mode 100644
index 3e09a58d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_circle_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_dark.png
deleted file mode 100644
index 449deaea..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_dots_vertical_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email.png
deleted file mode 100644
index a68455d0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email_open.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email_open.png
deleted file mode 100644
index 7527bb3b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_email_open.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant.png
deleted file mode 100644
index 8639bb4b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant_dark.png
deleted file mode 100644
index 4bfc1042..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_filter_variant_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline.png
deleted file mode 100644
index 87307ab0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline_dark.png
deleted file mode 100644
index ce60e7e3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_folder_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh.png
deleted file mode 100644
index af3e831b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh_dark.png
deleted file mode 100644
index e2ff7761..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_fresh_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back.png
deleted file mode 100644
index 24202f15..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back_dark.png
deleted file mode 100644
index ed7dcbd0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_go_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_image_album.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_image_album.png
deleted file mode 100644
index a301f00e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_image_album.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox.png
deleted file mode 100644
index 78b64c81..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox_dark.png
deleted file mode 100644
index c2752bf9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_inbox_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_login.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_login.png
deleted file mode 100644
index f77fb27a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_login.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_logout.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_logout.png
deleted file mode 100644
index 5ef9b41d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_logout.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_play_circle.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_play_circle.png
deleted file mode 100644
index 0e41ce8c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_play_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_refresh.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_refresh.png
deleted file mode 100644
index 31c4c443..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_refresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore.png
deleted file mode 100644
index 2951c59f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore_dark.png
deleted file mode 100644
index 35331d03..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_restore_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box.png
deleted file mode 100644
index 34b1df58..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box_dark.png
deleted file mode 100644
index beb0dd19..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_rss_box_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_search.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_search.png
deleted file mode 100644
index 04814136..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_search.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_select.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_select.png
deleted file mode 100644
index 4f81a58d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_select.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings.png
deleted file mode 100644
index 1b0e3149..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings_dark.png
deleted file mode 100644
index f51b3913..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_settings_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share.png
deleted file mode 100644
index a44cf763..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share_dark.png
deleted file mode 100644
index 3e712879..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_share_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_sort.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_sort.png
deleted file mode 100644
index 0f0f4ed8..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_sort.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star.png
deleted file mode 100644
index 176e426f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_dark.png
deleted file mode 100644
index 4b25596f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline.png
deleted file mode 100644
index 8b7b8367..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline_dark.png
deleted file mode 100644
index fb68b6c6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_star_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_youtube_play.png b/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_youtube_play.png
deleted file mode 100644
index bd097e4f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxhdpi/ic_youtube_play.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down.png
deleted file mode 100644
index ef0c2a10..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down_dark.png
deleted file mode 100644
index 7dd24dcd..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_down_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat.png
deleted file mode 100644
index 26cffdf5..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat_dark.png
deleted file mode 100644
index bd78a122..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_flat_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up.png
deleted file mode 100644
index 0d020b1f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up_dark.png
deleted file mode 100644
index 7a750aa4..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_trending_up_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_web_site.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_web_site.png
deleted file mode 100644
index 97798369..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_action_web_site.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive.png
deleted file mode 100644
index 6de98b17..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive_dark.png
deleted file mode 100644
index 516be711..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_archive_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment.png
deleted file mode 100644
index 78d73b80..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_dark.png
deleted file mode 100644
index e4b8794e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert.png
deleted file mode 100644
index f9edd9d6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert_dark.png
deleted file mode 100644
index d0939f3c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_attachment_vert_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked.png
deleted file mode 100644
index 3cc0cbaf..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked_dark.png
deleted file mode 100644
index a29076b6..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_checkbox_marked_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download.png
deleted file mode 100644
index de4e3ed3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download_dark.png
deleted file mode 100644
index 838f62b7..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_download_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload.png
deleted file mode 100644
index d82c1f1b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload_dark.png
deleted file mode 100644
index b6797aab..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_cloud_upload_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_content_copy.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_content_copy.png
deleted file mode 100644
index f9ed3a1a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_content_copy.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical.png
deleted file mode 100644
index 2dacd528..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle.png
deleted file mode 100644
index 05895fa3..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle_dark.png
deleted file mode 100644
index 884d0f0d..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_circle_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_dark.png
deleted file mode 100644
index f463232f..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_dots_vertical_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email.png
deleted file mode 100644
index 9482e57b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email_open.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email_open.png
deleted file mode 100644
index 1eb68434..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_email_open.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant.png
deleted file mode 100644
index bb353bd9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant_dark.png
deleted file mode 100644
index 6a640b3c..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_filter_variant_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline.png
deleted file mode 100644
index ede9f7b9..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline_dark.png
deleted file mode 100644
index 7d012c92..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_folder_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh.png
deleted file mode 100644
index 89b72943..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh_dark.png
deleted file mode 100644
index 2525f453..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_fresh_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back.png
deleted file mode 100644
index c909f21a..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back_dark.png
deleted file mode 100644
index d6eeb6cb..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_go_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_image_album.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_image_album.png
deleted file mode 100644
index bbd94d99..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_image_album.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox.png
deleted file mode 100644
index 2aa78d56..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox_dark.png
deleted file mode 100644
index 90dbaf9b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_inbox_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_login.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_login.png
deleted file mode 100644
index b4dea4a0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_login.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_logout.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_logout.png
deleted file mode 100644
index 5c1dca04..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_logout.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_play_circle.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_play_circle.png
deleted file mode 100644
index 2f2eff29..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_play_circle.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_refresh.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_refresh.png
deleted file mode 100644
index 2db096de..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_refresh.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore.png
deleted file mode 100644
index b7c389e4..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore_dark.png
deleted file mode 100644
index 193ce37b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_restore_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box.png
deleted file mode 100644
index d31146fd..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box_dark.png
deleted file mode 100644
index 4aa1057b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_rss_box_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_search.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_search.png
deleted file mode 100644
index 0f671764..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_search.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_select.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_select.png
deleted file mode 100644
index 161476e1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_select.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings.png
deleted file mode 100644
index 6f0a9d57..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings_dark.png
deleted file mode 100644
index 5b597b8b..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_settings_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share.png
deleted file mode 100644
index 095a4574..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share_dark.png
deleted file mode 100644
index f51c3e91..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_share_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_sort.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_sort.png
deleted file mode 100644
index 431756b0..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_sort.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star.png
deleted file mode 100644
index dacfc20e..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_dark.png
deleted file mode 100644
index c156ea15..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline.png
deleted file mode 100644
index 191708d1..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline_dark.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline_dark.png
deleted file mode 100644
index 06b4ddae..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_star_outline_dark.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_youtube_play.png b/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_youtube_play.png
deleted file mode 100644
index ee708798..00000000
--- a/org.fox.ttrss/src/main/res/drawable-xxxhdpi/ic_youtube_play.png
+++ /dev/null
Binary files differ
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_archive_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_archive_24.xml
new file mode 100644
index 00000000..c50fa951
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_archive_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_arrow_back_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_arrow_back_24.xml
new file mode 100644
index 00000000..075e95dc
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_arrow_back_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_attach_file_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_attach_file_24.xml
new file mode 100644
index 00000000..b09f8bc0
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_attach_file_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M16.5,6v11.5c0,2.21 -1.79,4 -4,4s-4,-1.79 -4,-4V5c0,-1.38 1.12,-2.5 2.5,-2.5s2.5,1.12 2.5,2.5v10.5c0,0.55 -0.45,1 -1,1s-1,-0.45 -1,-1V6H10v9.5c0,1.38 1.12,2.5 2.5,2.5s2.5,-1.12 2.5,-2.5V5c0,-2.21 -1.79,-4 -4,-4S7,2.79 7,5v12.5c0,3.04 2.46,5.5 5.5,5.5s5.5,-2.46 5.5,-5.5V6h-1.5z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_attachment_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_attachment_24.xml
new file mode 100644
index 00000000..def9bd66
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_attachment_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M2,12.5C2,9.46 4.46,7 7.5,7H18c2.21,0 4,1.79 4,4s-1.79,4 -4,4H9.5C8.12,15 7,13.88 7,12.5S8.12,10 9.5,10H17v2H9.41c-0.55,0 -0.55,1 0,1H18c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2H7.5C5.57,9 4,10.57 4,12.5S5.57,16 7.5,16H17v2H7.5C4.46,18 2,15.54 2,12.5z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_check_box_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_check_box_24.xml
new file mode 100644
index 00000000..f6d56943
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_check_box_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_cloud_download_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_cloud_download_24.xml
new file mode 100644
index 00000000..9a6427bc
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_cloud_download_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96zM17,13l-5,5 -5,-5h3V9h4v4h3z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_cloud_upload_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_cloud_upload_24.xml
new file mode 100644
index 00000000..82b88ac1
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_cloud_upload_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96zM14,13v4h-4v-4H7l5,-5 5,5h-3z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_content_copy_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_content_copy_24.xml
new file mode 100644
index 00000000..942aeb96
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_content_copy_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_email_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_email_24.xml
new file mode 100644
index 00000000..a3335d40
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_email_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_filter_alt_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_filter_alt_24.xml
new file mode 100644
index 00000000..22ac7411
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_filter_alt_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M4.25,5.61C6.27,8.2 10,13 10,13v6c0,0.55 0.45,1 1,1h2c0.55,0 1,-0.45 1,-1v-6c0,0 3.72,-4.8 5.74,-7.39C20.25,4.95 19.78,4 18.95,4H5.04C4.21,4 3.74,4.95 4.25,5.61z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_folder_open_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_folder_open_24.xml
new file mode 100644
index 00000000..56013720
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_folder_open_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M20,6h-8l-2,-2L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM20,18L4,18L4,8h16v10z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_inbox_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_inbox_24.xml
new file mode 100644
index 00000000..bb6540aa
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_inbox_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19,3L4.99,3c-1.11,0 -1.98,0.89 -1.98,2L3,19c0,1.1 0.88,2 1.99,2L19,21c1.1,0 2,-0.9 2,-2L21,5c0,-1.11 -0.9,-2 -2,-2zM19,15h-4c0,1.66 -1.35,3 -3,3s-3,-1.34 -3,-3L4.99,15L4.99,5L19,5v10z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_local_fire_department_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_local_fire_department_24.xml
new file mode 100644
index 00000000..ec632cbb
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_local_fire_department_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19.48,12.35c-1.57,-4.08 -7.16,-4.3 -5.81,-10.23c0.1,-0.44 -0.37,-0.78 -0.75,-0.55C9.29,3.71 6.68,8 8.87,13.62c0.18,0.46 -0.36,0.89 -0.75,0.59c-1.81,-1.37 -2,-3.34 -1.84,-4.75c0.06,-0.52 -0.62,-0.77 -0.91,-0.34C4.69,10.16 4,11.84 4,14.37c0.38,5.6 5.11,7.32 6.81,7.54c2.43,0.31 5.06,-0.14 6.95,-1.87C19.84,18.11 20.6,15.03 19.48,12.35zM10.2,17.38c1.44,-0.35 2.18,-1.39 2.38,-2.31c0.33,-1.43 -0.96,-2.83 -0.09,-5.09c0.33,1.87 3.27,3.04 3.27,5.08C15.84,17.59 13.1,19.76 10.2,17.38z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_login_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_login_24.xml
new file mode 100644
index 00000000..d99fc664
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_login_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M11,7L9.6,8.4l2.6,2.6H2v2h10.2l-2.6,2.6L11,17l5,-5L11,7zM20,19h-8v2h8c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2h-8v2h8V19z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_mark_as_unread_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_mark_as_unread_24.xml
new file mode 100644
index 00000000..94381df3
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_mark_as_unread_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M18.83,7h-2.6L10.5,4 4,7.4L4,17c-1.1,0 -2,-0.9 -2,-2L2,7.17c0,-0.53 0.32,-1.09 0.8,-1.34L10.5,2l7.54,3.83c0.43,0.23 0.73,0.7 0.79,1.17zM20,8L7,8c-1.1,0 -2,0.9 -2,2v9c0,1.1 0.9,2 2,2h13c1.1,0 2,-0.9 2,-2v-9c0,-1.1 -0.9,-2 -2,-2zM20,11.67L13.5,15 7,11.67L7,10l6.5,3.33L20,10v1.67z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_mark_email_read_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_mark_email_read_24.xml
new file mode 100644
index 00000000..8c898cfa
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_mark_email_read_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M12,19c0,-3.87 3.13,-7 7,-7c1.08,0 2.09,0.25 3,0.68V6c0,-1.1 -0.9,-2 -2,-2H4C2.9,4 2,4.9 2,6v12c0,1.1 0.9,2 2,2h8.08C12.03,19.67 12,19.34 12,19zM4,6l8,5l8,-5v2l-8,5L4,8V6zM17.34,22l-3.54,-3.54l1.41,-1.41l2.12,2.12l4.24,-4.24L23,16.34L17.34,22z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_more_vert_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_more_vert_24.xml
new file mode 100644
index 00000000..5ffb98a5
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_more_vert_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_note_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_note_24.xml
new file mode 100644
index 00000000..1e502e2f
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_note_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M22,10l-6,-6L4,4c-1.1,0 -2,0.9 -2,2v12.01c0,1.1 0.9,1.99 2,1.99l16,-0.01c1.1,0 2,-0.89 2,-1.99v-8zM15,5.5l5.5,5.5L15,11L15,5.5z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_open_in_browser_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_open_in_browser_24.xml
new file mode 100644
index 00000000..465c22e8
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_open_in_browser_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h4v-2L5,18L5,8h14v10h-4v2h4c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.89,-2 -2,-2zM12,10l-4,4h3v6h2v-6h3l-4,-4z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_photo_album_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_photo_album_24.xml
new file mode 100644
index 00000000..19eeec6a
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_photo_album_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M18,2H6C4.9,2 4,2.9 4,4v16c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4C20,2.9 19.1,2 18,2zM11,4h5v7l-2.5,-1.5L11,11V4zM7,18l2.38,-3.17L11,17l2.62,-3.5L17,18H7z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_24.xml
new file mode 100644
index 00000000..9bb5a196
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM9.5,16.5v-9l7,4.5L9.5,16.5z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_outline_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_outline_24.xml
new file mode 100644
index 00000000..b1bdebfe
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_play_circle_outline_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M10,16.5l6,-4.5 -6,-4.5v9zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_refresh_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_refresh_24.xml
new file mode 100644
index 00000000..86504d0e
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_refresh_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M17.65,6.35C16.2,4.9 14.21,4 12,4c-4.42,0 -7.99,3.58 -7.99,8s3.57,8 7.99,8c3.73,0 6.84,-2.55 7.73,-6h-2.08c-0.82,2.33 -3.04,4 -5.65,4 -3.31,0 -6,-2.69 -6,-6s2.69,-6 6,-6c1.66,0 3.14,0.69 4.22,1.78L13,11h7V4l-2.35,2.35z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_restore_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_restore_24.xml
new file mode 100644
index 00000000..6ad75a1c
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_restore_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_rss_feed_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_rss_feed_24.xml
new file mode 100644
index 00000000..1cccd026
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_rss_feed_24.xml
@@ -0,0 +1,7 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M6.18,17.82m-2.18,0a2.18,2.18 0,1 1,4.36 0a2.18,2.18 0,1 1,-4.36 0"/>
+
+ <path android:fillColor="@android:color/white" android:pathData="M4,4.44v2.83c7.03,0 12.73,5.7 12.73,12.73h2.83c0,-8.59 -6.97,-15.56 -15.56,-15.56zM4,10.1v2.83c3.9,0 7.07,3.17 7.07,7.07h2.83c0,-5.47 -4.43,-9.9 -9.9,-9.9z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_search_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_search_24.xml
new file mode 100644
index 00000000..d29c6ea6
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_search_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_select_all_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_select_all_24.xml
new file mode 100644
index 00000000..b59b4f77
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_select_all_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M3,5h2L5,3c-1.1,0 -2,0.9 -2,2zM3,13h2v-2L3,11v2zM7,21h2v-2L7,19v2zM3,9h2L5,7L3,7v2zM13,3h-2v2h2L13,3zM19,3v2h2c0,-1.1 -0.9,-2 -2,-2zM5,21v-2L3,19c0,1.1 0.9,2 2,2zM3,17h2v-2L3,15v2zM9,3L7,3v2h2L9,3zM11,21h2v-2h-2v2zM19,13h2v-2h-2v2zM19,21c1.1,0 2,-0.9 2,-2h-2v2zM19,9h2L21,7h-2v2zM19,17h2v-2h-2v2zM15,21h2v-2h-2v2zM15,5h2L17,3h-2v2zM7,17h10L17,7L7,7v10zM9,9h6v6L9,15L9,9z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_settings_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_settings_24.xml
new file mode 100644
index 00000000..6593f3a4
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_settings_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_share_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_share_24.xml
new file mode 100644
index 00000000..74753b7a
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_share_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_sort_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_sort_24.xml
new file mode 100644
index 00000000..33eeeae1
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_sort_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_sort_by_alpha_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_sort_by_alpha_24.xml
new file mode 100644
index 00000000..db03b2e5
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_sort_by_alpha_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M14.94,4.66h-4.72l2.36,-2.36zM10.25,19.37h4.66l-2.33,2.33zM6.1,6.27L1.6,17.73h1.84l0.92,-2.45h5.11l0.92,2.45h1.84L7.74,6.27L6.1,6.27zM4.97,13.64l1.94,-5.18 1.94,5.18L4.97,13.64zM15.73,16.14h6.12v1.59h-8.53v-1.29l5.92,-8.56h-5.88v-1.6h8.3v1.26l-5.93,8.6z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_star_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_star_24.xml
new file mode 100644
index 00000000..9b295a03
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_star_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_star_outline_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_star_outline_24.xml
new file mode 100644
index 00000000..925b9731
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_star_outline_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_trending_down_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_trending_down_24.xml
new file mode 100644
index 00000000..9038a87a
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_trending_down_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M16,18l2.29,-2.29 -4.88,-4.88 -4,4L2,7.41 3.41,6l6,6 4,-4 6.3,6.29L22,12v6z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_trending_flat_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_trending_flat_24.xml
new file mode 100644
index 00000000..45b32861
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_trending_flat_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M22,12l-4,-4v3H3v2h15v3z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/baseline_trending_up_24.xml b/org.fox.ttrss/src/main/res/drawable/baseline_trending_up_24.xml
new file mode 100644
index 00000000..756f7ed3
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/baseline_trending_up_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M16,6l2.29,2.29 -4.88,4.88 -4,-4L2,16.59 3.41,18l6,-6 4,4 6.3,-6.29L22,12V6z"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/drawable/outline_more_24.xml b/org.fox.ttrss/src/main/res/drawable/outline_more_24.xml
new file mode 100644
index 00000000..c80312a7
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/drawable/outline_more_24.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+
+ <path android:fillColor="@android:color/white" android:pathData="M22,3L7,3c-0.69,0 -1.23,0.35 -1.59,0.88L0,12l5.41,8.11c0.36,0.53 0.97,0.89 1.66,0.89L22,21c1.1,0 2,-0.9 2,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM22,19L7.07,19L2.4,12l4.66,-7L22,5v14z"/>
+
+ <path android:fillColor="@android:color/white" android:pathData="M9,12m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
+
+ <path android:fillColor="@android:color/white" android:pathData="M14,12m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
+
+ <path android:fillColor="@android:color/white" android:pathData="M19,12m-1.5,0a1.5,1.5 0,1 1,3 0a1.5,1.5 0,1 1,-3 0"/>
+
+</vector>
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml
index 95215992..09534bc7 100644
--- a/org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml
+++ b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml
@@ -5,8 +5,6 @@
android:layout_height="fill_parent"
android:orientation="vertical" >
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
<FrameLayout
android:id="@+id/sw600dp_anchor"
android:layout_width="match_parent"
@@ -21,23 +19,38 @@
android:baselineAligned="false"
android:orientation="horizontal" >
- <FrameLayout
- android:paddingRight="4dp"
- android:id="@+id/headlines_fragment"
+ <com.google.android.material.navigation.NavigationView
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/navigation_view"
+ android:background="?colorSurfaceContainer"
android:layout_width="0dp"
- android:layout_height="match_parent"
android:layout_weight="0.3"
- android:background="?headlinesBackground" >
+ android:layout_height="match_parent"
+ android:padding="8dp"
+ app:shapeAppearance="@style/ShapeAppearanceHeadlinesTablet"
+ android:layout_gravity="start">
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent">
</FrameLayout>
+ </com.google.android.material.navigation.NavigationView>
+
<androidx.coordinatorlayout.widget.CoordinatorLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="0dp"
android:layout_weight="0.7"
- android:elevation="4dp"
- android:background="?articleBackground"
android:layout_height="match_parent">
+ <com.google.android.material.appbar.AppBarLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <include layout="@layout/toolbar" android:id="@+id/toolbar" />
+ </com.google.android.material.appbar.AppBarLayout>
+
<FrameLayout
android:layout_width="match_parent"
android:id="@+id/article_fragment"
@@ -50,7 +63,7 @@
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:visibility="gone"
- android:src="@drawable/ic_action_web_site"
+ android:src="@drawable/baseline_open_in_browser_24"
android:layout_margin="16dp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
index 9ba663f6..b6a6f19d 100644
--- a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
+++ b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
@@ -5,15 +5,13 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
<LinearLayout
android:id="@+id/fragment_container"
+ android:background="?colorSurfaceContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
- android:orientation="horizontal"
- android:layout_below="@+id/toolbar">
+ android:orientation="horizontal">
<FrameLayout
android:id="@+id/sw600dp_anchor"
@@ -22,26 +20,48 @@
android:visibility="gone" >
</FrameLayout>
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:layout_width="0dp"
+ <com.google.android.material.navigation.NavigationView
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/navigation_view"
+ android:layout_width="300dp"
+ app:shapeAppearance="@style/ShapeAppearanceFeedsTablet"
android:layout_height="match_parent"
- android:layout_weight="0.25"
- android:background="?feedlistBackground" >
- </FrameLayout>
+ android:layout_gravity="start">
+
+ <FrameLayout
+ android:id="@+id/feeds_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </FrameLayout>
+
+ </com.google.android.material.navigation.NavigationView>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="0dp"
android:layout_weight="0.75"
- android:elevation="4dp"
- android:background="?headlinesBackground"
android:layout_height="match_parent">
- <FrameLayout
+ <com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <com.google.android.material.appbar.MaterialToolbar
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/toolbar"
+ app:layout_scrollFlags="scroll|enterAlways"
+ app:titleTextAppearance="?attr/textAppearanceTitleMedium"
+ android:layout_height="wrap_content"
+ android:layout_width="match_parent"
+ android:background="?colorSurfaceContainer"
+ android:minHeight="?attr/actionBarSize"/>
+ </com.google.android.material.appbar.AppBarLayout>
+
+ <FrameLayout
android:id="@+id/headlines_fragment"
- app:layout_behavior=".util.FabAwareScrollingViewBehavior"
- android:layout_height="match_parent"/>
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_behavior=".util.FabAwareScrollingViewBehavior" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/master_fab"
@@ -49,7 +69,7 @@
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:visibility="gone"
- android:src="@drawable/ic_refresh"
+ android:src="@drawable/baseline_refresh_24"
android:layout_margin="16dp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_master.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_master.xml
deleted file mode 100644
index 95cb35e0..00000000
--- a/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_master.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<!-- we don't hide actionbar on tablets even in portrait so this is a bit different from activity_master_phone.xml -->
-
-<androidx.drawerlayout.widget.DrawerLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:fitsSystemWindows="true"
- android:id="@+id/headlines_drawer"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
- <androidx.coordinatorlayout.widget.CoordinatorLayout
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_below="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/master_fab"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:visibility="gone"
- android:src="@drawable/ic_refresh"
- android:layout_margin="16dp" />
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- app:layout_behavior=".util.FabAwareScrollingViewBehavior"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?headlinesBackground" />
-
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
- </RelativeLayout>
-
- <org.fox.ttrss.util.ScrimInsetsFrameLayout
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/scrimInsetsFrameLayout"
- android:layout_width="300dp"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- android:background="@android:color/white"
- android:elevation="10dp"
- android:fitsSystemWindows="true"
- app:insetForeground="#4000">
-
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:layout_width="match_parent"
- android:background="?feedlistBackground"
- android:layout_height="match_parent" >
- </FrameLayout>
-
- </org.fox.ttrss.util.ScrimInsetsFrameLayout>
-
-</androidx.drawerlayout.widget.DrawerLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/activity_detail.xml b/org.fox.ttrss/src/main/res/layout/activity_detail.xml
index 8f36bbd6..8cb1ba10 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_detail.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_detail.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
-xmlns:android="http://schemas.android.com/apk/res/android"
-android:layout_width="match_parent"
-android:layout_height="match_parent">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:fitsSystemWindows="true"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
-<include layout="@layout/activity_detail_phone" />
+ <include layout="@layout/layout_detail_phone" />
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml b/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
index 6d9a8dbd..8cb1ba10 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
@@ -1,48 +1,10 @@
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
android:fitsSystemWindows="true"
- android:animateLayoutChanges="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
- <androidx.coordinatorlayout.widget.CoordinatorLayout
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/detail_fab"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:visibility="gone"
- android:src="@drawable/ic_action_web_site"
- android:layout_margin="16dp" />
-
- <com.google.android.material.appbar.AppBarLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
- </com.google.android.material.appbar.AppBarLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- app:layout_behavior=".util.DetailActivityScrollingViewBehavior"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?articleBackground">
- </FrameLayout>
-
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:visibility="gone"
- android:layout_height="0dp"
- android:layout_width="0dp"
- android:background="?headlinesBackground">
- </FrameLayout>
+ <include layout="@layout/layout_detail_phone" />
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_gallery.xml b/org.fox.ttrss/src/main/res/layout/activity_gallery.xml
index 7f47de50..f44bb74b 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_gallery.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_gallery.xml
@@ -1,9 +1,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:fitsSystemWindows="true"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/article_images"
android:layout_width="fill_parent"
android:animateLayoutChanges="true"
- android:background="@android:color/black"
android:layout_height="fill_parent">
<com.bogdwellers.pinchtozoom.view.ImageViewPager
@@ -12,18 +11,16 @@
android:layout_height="fill_parent"
android:layout_alignParentTop="true" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/gallery_overflow"
- android:clickable="true"
android:layout_width="wrap_content"
- android:layout_height="26dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:src="@drawable/ic_dots_vertical_circle"
+ app:icon="?ic_dots_vertical"
android:layout_alignParentRight="true"
- android:tint="?colorAccent"
- android:layout_marginRight="8dp"
- android:layout_marginTop="@dimen/activity_vertical_margin" />
+ android:layout_marginTop="48dp"
+ app:iconTint="?colorTertiary" />
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
@@ -44,7 +41,8 @@
<me.relex.circleindicator.CircleIndicator
android:id="@+id/gallery_pager_indicator"
android:layout_width="fill_parent"
- android:layout_height="40dp"
+ android:layout_height="32dp"
+ android:layout_marginBottom="55dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
diff --git a/org.fox.ttrss/src/main/res/layout/activity_logcat.xml b/org.fox.ttrss/src/main/res/layout/activity_logcat.xml
index f6cccd22..f13a17b3 100755
--- a/org.fox.ttrss/src/main/res/layout/activity_logcat.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_logcat.xml
@@ -1,5 +1,4 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:background="?android:colorBackground"
android:fitsSystemWindows="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
diff --git a/org.fox.ttrss/src/main/res/layout/activity_login.xml b/org.fox.ttrss/src/main/res/layout/activity_login.xml
index 8f6cf4ed..829e0897 100755
--- a/org.fox.ttrss/src/main/res/layout/activity_login.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_login.xml
@@ -1,5 +1,4 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:background="?android:colorBackground"
android:fitsSystemWindows="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
diff --git a/org.fox.ttrss/src/main/res/layout/activity_master.xml b/org.fox.ttrss/src/main/res/layout/activity_master.xml
index 9bb9bff5..4ea81118 100755
--- a/org.fox.ttrss/src/main/res/layout/activity_master.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_master.xml
@@ -4,5 +4,5 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
- <include layout="@layout/activity_master_phone" />
+ <include layout="@layout/layout_master_phone" />
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml b/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
index 6ae5064f..4ea81118 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
@@ -1,59 +1,8 @@
- <androidx.drawerlayout.widget.DrawerLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:fitsSystemWindows="true"
- android:id="@+id/headlines_drawer"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <androidx.coordinatorlayout.widget.CoordinatorLayout
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/master_fab"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:visibility="gone"
- android:src="@drawable/ic_refresh"
- android:layout_margin="16dp" />
-
- <com.google.android.material.appbar.AppBarLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
- </com.google.android.material.appbar.AppBarLayout>
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- app:layout_behavior=".util.FabAwareScrollingViewBehavior"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?headlinesBackground" />
-
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
-
- <org.fox.ttrss.util.ScrimInsetsFrameLayout
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/scrimInsetsFrameLayout"
- android:layout_width="300dp"
- android:layout_height="match_parent"
- android:layout_gravity="start"
- android:background="@android:color/white"
- android:elevation="10dp"
- android:fitsSystemWindows="true"
- app:insetForeground="#4000">
-
- <FrameLayout
- android:id="@+id/feeds_fragment"
- android:layout_width="match_parent"
- android:background="?feedlistBackground"
- android:layout_height="match_parent" >
- </FrameLayout>
-
- </org.fox.ttrss.util.ScrimInsetsFrameLayout>
-
- </androidx.drawerlayout.widget.DrawerLayout>
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <include layout="@layout/layout_master_phone" />
+</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_preferences.xml b/org.fox.ttrss/src/main/res/layout/activity_preferences.xml
index 519bfe61..6032b951 100755
--- a/org.fox.ttrss/src/main/res/layout/activity_preferences.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_preferences.xml
@@ -2,11 +2,11 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
+ android:fitsSystemWindows="true"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/preferences_container"
- android:background="?android:colorBackground"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
diff --git a/org.fox.ttrss/src/main/res/layout/activity_tasker_settings.xml b/org.fox.ttrss/src/main/res/layout/activity_tasker_settings.xml
deleted file mode 100644
index efdd76ab..00000000
--- a/org.fox.ttrss/src/main/res/layout/activity_tasker_settings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<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/org.fox.ttrss/src/main/res/layout/activity_youtube_player.xml b/org.fox.ttrss/src/main/res/layout/activity_youtube_player.xml
deleted file mode 100644
index 0b423edc..00000000
--- a/org.fox.ttrss/src/main/res/layout/activity_youtube_player.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<RelativeLayout 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:fitsSystemWindows="true"
- android:background="@android:color/black">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_below="@+id/toolbar">
-
- <fragment
- android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
- android:id="@+id/fragment_youtube_player"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
-
- <ProgressBar
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/video_loading"
- android:layout_gravity="center"
- android:indeterminate="true" />
-
- </FrameLayout>
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
-</RelativeLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/drawer_divider.xml b/org.fox.ttrss/src/main/res/layout/drawer_divider.xml
index d47c3b5b..55aa5fdc 100644
--- a/org.fox.ttrss/src/main/res/layout/drawer_divider.xml
+++ b/org.fox.ttrss/src/main/res/layout/drawer_divider.xml
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
- <View
- android:layout_gravity="top|center_horizontal"
- android:layout_marginTop="10dp"
+ <com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="?headlineFooterColor"/>
+ app:dividerInsetEnd="16dp"
+ app:dividerInsetStart="16dp"
+ android:layout_marginTop="8dp"
+ android:layout_height="wrap_content"/>
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/drawer_header.xml b/org.fox.ttrss/src/main/res/layout/drawer_header.xml
index 6779a950..f4954259 100755
--- a/org.fox.ttrss/src/main/res/layout/drawer_header.xml
+++ b/org.fox.ttrss/src/main/res/layout/drawer_header.xml
@@ -1,40 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="120dp"
+ android:layout_height="72dp"
xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:weightSum="1"
android:clickable="false">
- <ImageView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:id="@+id/imageView"
- android:scaleType="fitXY"
- android:background="?colorPrimaryDark"
- android:src="?drawer_header" />
-
<FrameLayout
android:layout_width="match_parent"
- android:background="@android:color/transparent"
android:layout_height="match_parent">
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:src="@drawable/ic_settings"
+ android:scaleX="1.5"
+ android:scaleY="1.5"
+ app:icon="@drawable/baseline_settings_24"
android:id="@+id/drawer_settings_btn"
- android:layout_gravity="bottom|end"
- android:clickable="true"
- android:layout_marginBottom="16dp"
- android:layout_marginEnd="12dp"
+ android:layout_gravity="center_vertical|end"
+ android:layout_marginEnd="8dp"
android:transitionName="SETTINGS_REVEAL"
- android:background="@drawable/ripple" />
+ />
<LinearLayout
android:layout_width="match_parent"
- android:layout_height="56dp"
+ android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
@@ -47,25 +40,20 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:textColor="@android:color/primary_text_dark"
- tools:text="test"
- android:textSize="14sp"
- android:textStyle="bold"
-
- />
+ tools:text="user"
+ android:textAppearance="?attr/textAppearanceHeadlineSmall"
+ android:textColor="?attr/colorOnSurface"/>
<TextView
android:id="@+id/drawer_header_server"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="@android:color/primary_text_dark"
android:layout_marginStart="16dp"
- android:layout_marginTop="5dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
tools:text="example.org"
- android:textSize="14sp"
- android:textStyle="normal"
-
- />
+ android:textAppearance="?attr/textAppearanceTitleSmall"
+ android:textColor="?attr/colorOnSurfaceVariant"/>
</LinearLayout>
</FrameLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/feeds_goback.xml b/org.fox.ttrss/src/main/res/layout/feeds_goback.xml
index bb263237..f4c580a3 100755
--- a/org.fox.ttrss/src/main/res/layout/feeds_goback.xml
+++ b/org.fox.ttrss/src/main/res/layout/feeds_goback.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/feeds_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -19,8 +20,8 @@
android:layout_height="21dp"
android:layout_weight="0"
android:scaleType="fitXY"
- android:tint="?colorAccent"
- android:src="?ic_go_back" />
+ android:src="?ic_go_back"
+ app:tint="?colorTertiary" />
<TextView
android:fontFamily="sans-serif-medium"
@@ -29,11 +30,9 @@
android:gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
- android:paddingStart="35dp"
+ android:paddingStart="16dp"
android:singleLine="true"
android:text=".."
- android:paddingBottom="2dp"
- android:textColor="?feedlistTextColor"
android:textSize="14sp" />
</LinearLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row.xml b/org.fox.ttrss/src/main/res/layout/feeds_row.xml
index 7a10bc23..32e20c26 100755
--- a/org.fox.ttrss/src/main/res/layout/feeds_row.xml
+++ b/org.fox.ttrss/src/main/res/layout/feeds_row.xml
@@ -1,64 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/feeds_row"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:descendantFocusability="blocksDescendants"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:baselineAligned="true"
- android:gravity="center_vertical"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@+id/icon"
- android:layout_gravity="center_vertical"
- android:layout_width="21dp"
- android:layout_height="21dp"
- android:layout_weight="0"
- android:scaleType="fitXY"
- android:src="?ic_rss_box" />
-
- <TextView
- android:id="@+id/title"
- android:fontFamily="sans-serif-medium"
- android:layout_width="wrap_content"
+ <LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/feeds_row"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:descendantFocusability="blocksDescendants"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:baselineAligned="true"
android:gravity="center_vertical"
- android:layout_weight="1"
- android:ellipsize="middle"
- android:paddingStart="35dp"
- android:paddingEnd="16dp"
- android:singleLine="true"
- tools:text="Feed title"
- android:textAlignment="viewStart"
- android:paddingBottom="2dp"
- android:textColor="?feedlistTextColor"
- android:textSize="14sp" />
+ android:orientation="horizontal">
- <TextView
- android:id="@+id/unread_counter"
- android:fontFamily="sans-serif-medium"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:textAlignment="viewEnd"
- android:singleLine="true"
- tools:text="3200"
- android:textColor="?unreadCounterColor"
- android:textSize="14sp" />
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_gravity="center_vertical"
+ android:layout_width="21dp"
+ android:layout_height="21dp"
+ android:layout_weight="0"
+ android:scaleType="fitXY"
+ app:tint="?colorOnPrimaryContainer"
+ android:src="?ic_rss_box" />
- <!-- <ImageButton
- android:id="@+id/feed_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="8dp"
- android:visibility="gone"
- android:src="?ic_dots_vertical" /> -->
+ <TextView
+ android:id="@+id/title"
+ android:fontFamily="sans-serif-medium"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_gravity="center_vertical"
+ android:ellipsize="middle"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:singleLine="true"
+ tools:text="Feed title"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/unread_counter"
+ android:fontFamily="sans-serif-medium"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:textAlignment="viewEnd"
+ android:singleLine="true"
+ tools:text="3200"
+ android:textColor="?colorTertiary"
+ android:textSize="14sp" />
+
+ <!-- <ImageButton
+ android:id="@+id/feed_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:background="@null"
+ android:paddingLeft="8dp"
+ android:visibility="gone"
+ android:src="?ic_dots_vertical" /> -->
-</LinearLayout> \ No newline at end of file
+ </LinearLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml
index d5b6cb3c..c12c732d 100755
--- a/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml
+++ b/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml
@@ -1,66 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.google.android.material.card.MaterialCardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/feeds_row"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:descendantFocusability="blocksDescendants"
- android:background="?feedsSelectedBackground"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
- android:baselineAligned="true"
- android:gravity="center_vertical"
- android:orientation="horizontal">
+ app:strokeWidth="0dp"
+ app:cardBackgroundColor="?colorTertiaryContainer"
+ android:layout_height="wrap_content">
- <ImageView
- android:id="@+id/icon"
- android:tint="?colorAccent"
- android:layout_gravity="center_vertical"
- android:layout_width="21dp"
- android:layout_height="21dp"
- android:layout_weight="0"
- android:scaleType="fitXY"
- android:src="?ic_rss_box" />
-
- <TextView
- android:id="@+id/title"
- android:fontFamily="sans-serif-medium"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:id="@+id/feeds_row"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:descendantFocusability="blocksDescendants"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:baselineAligned="true"
android:gravity="center_vertical"
- android:layout_weight="1"
- android:ellipsize="middle"
- android:paddingStart="35dp"
- android:paddingEnd="16dp"
- android:singleLine="true"
- tools:text="Feed title"
- android:textAlignment="viewStart"
- android:paddingBottom="2dp"
- android:textColor="?feedlistSelectedTextColor"
- android:textSize="14sp" />
+ android:orientation="horizontal">
- <TextView
- android:id="@+id/unread_counter"
- android:fontFamily="sans-serif-medium"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:textAlignment="viewEnd"
- android:singleLine="true"
- tools:text="3200"
- android:textColor="?unreadCounterColor"
- android:textSize="14sp" />
+ <ImageView
+ android:id="@+id/icon"
+ android:layout_gravity="center_vertical"
+ android:layout_width="21dp"
+ android:layout_height="21dp"
+ android:layout_weight="0"
+ android:scaleType="fitXY"
+ app:tint="?colorOnTertiaryContainer"
+ android:src="?ic_rss_box" />
- <!-- <ImageButton
- android:id="@+id/feed_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="0"
- android:background="@null"
- android:paddingLeft="8dp"
- android:visibility="gone"
- android:src="?ic_dots_vertical" /> -->
+ <TextView
+ android:id="@+id/title"
+ android:fontFamily="sans-serif-medium"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:layout_weight="1"
+ android:ellipsize="middle"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:singleLine="true"
+ tools:text="Feed title"
+ android:textColor="?colorOnTertiaryContainer"
+ android:textSize="14sp" />
+
+ <TextView
+ android:id="@+id/unread_counter"
+ android:fontFamily="sans-serif-medium"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:textAlignment="viewEnd"
+ android:singleLine="true"
+ tools:text="3200"
+ android:textColor="?colorTertiary"
+ android:textSize="14sp" />
+
+ <!-- <ImageButton
+ android:id="@+id/feed_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="0"
+ android:background="@null"
+ android:paddingLeft="8dp"
+ android:visibility="gone"
+ android:src="?ic_dots_vertical" /> -->
+
+ </LinearLayout>
-</LinearLayout> \ No newline at end of file
+</com.google.android.material.card.MaterialCardView>
diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml
index f9f377f6..d4451bbe 100755
--- a/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml
+++ b/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml
@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/feeds_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:paddingLeft="16dp"
android:paddingRight="16dp"
- android:paddingTop="8dp"
- android:paddingBottom="8dp"
android:baselineAligned="true"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -20,6 +19,7 @@
android:layout_height="21dp"
android:layout_weight="0"
android:scaleType="fitXY"
+ app:tint="?colorOnPrimaryContainer"
android:src="?ic_rss_box" />
<TextView
@@ -27,19 +27,16 @@
android:fontFamily="sans-serif-medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="center_vertical"
+ android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
- android:paddingStart="35dp"
+ android:paddingStart="16dp"
android:paddingEnd="16dp"
android:singleLine="true"
- tools:text="Unread only"
- android:textAlignment="viewStart"
- android:paddingBottom="2dp"
- android:textColor="?feedlistTextColor"
+ tools:text="@string/unread_only"
android:textSize="14sp" />
- <androidx.appcompat.widget.SwitchCompat
+ <com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/row_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_article.xml b/org.fox.ttrss/src/main/res/layout/fragment_article.xml
index 61215a40..e75980b0 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_article.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_article.xml
@@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/article_fragment"
android:layout_width="fill_parent"
- android:layout_height="match_parent"
- android:background="?articleBackground">
+ android:background="?colorSurfaceContainer"
+ android:layout_height="match_parent">
<FrameLayout
android:id="@+id/article_fullscreen_video"
@@ -17,105 +17,63 @@
android:layout_height="wrap_content">
<com.google.android.material.appbar.AppBarLayout
- android:background="?articleHeader"
- android:elevation="0dp"
- app:elevation="0dp"
android:layout_width="match_parent"
+ android:background="?colorSurfaceContainer"
android:layout_height="match_parent">
- <LinearLayout
+ <com.google.android.material.card.MaterialCardView
app:layout_scrollFlags="scroll|enterAlways"
- android:padding="16dp"
+ app:strokeWidth="0dp"
+ app:shapeAppearance="@style/ShapeAppearanceArticleHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
android:id="@+id/article_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical"
- android:paddingBottom="6dp">
+ android:orientation="vertical">
<LinearLayout
android:orientation="horizontal"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
- android:background="@drawable/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:layout_marginEnd="8dp"
- android:textAlignment="viewStart"
+ android:textColor="?colorPrimary"
tools:text="Unreasonably long article title blah blah blah blah blah blah"
- android:textColor="?articleHeaderTextColor"
android:textSize="18sp"
- android:layout_marginRight="8dp"
android:gravity="start" />
- <ImageView
- android:id="@+id/score"
- android:layout_width="wrap_content"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
- android:layout_marginLeft="8dp"
- android:src="?ic_action_trending_flat"
- android:layout_gravity="center_vertical|end" />
-
- <ImageView
- android:id="@+id/attachments"
- android:background="@drawable/ripple"
- android:layout_width="wrap_content"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:layout_marginLeft="8dp"
- android:clickable="true"
- android:src="?ic_attachment_vert"
- android:layout_gravity="center_vertical|end" />
-
- <ImageView
- android:id="@+id/share"
- android:background="@drawable/ripple"
- android:layout_width="wrap_content"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:clickable="true"
- android:src="?ic_share"
- android:layout_gravity="center_vertical|end" />
</LinearLayout>
<TextView
android:id="@+id/comments"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
tools:text="comments"
- android:background="@drawable/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewStart"
android:layout_weight="1"
android:fontFamily="sans-serif-light"
- android:paddingTop="8dp"
- android:textColor="?headlineSecondaryTextColor"
+ android:layout_marginTop="8dp"
+ android:textColor="?colorPrimary"
android:textSize="12sp" />
- <TextView
- android:id="@+id/host"
- tools:text="host"
- android:background="@drawable/ripple"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAlignment="viewStart"
- android:layout_weight="1"
- android:fontFamily="sans-serif-light"
- android:paddingTop="8dp"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp"
- android:visibility="gone"/>
-
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
- android:paddingTop="8dp">
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
+ android:layout_marginBottom="8dp"
+ android:layout_marginTop="8dp">
<TextView
android:id="@+id/tags"
@@ -127,7 +85,7 @@
android:textAlignment="viewStart"
android:singleLine="true"
android:fontFamily="sans-serif-light"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp" />
<TextView
@@ -136,69 +94,64 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
- android:gravity=""
android:textAlignment="viewEnd"
android:fontFamily="sans-serif-light"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp" />
</LinearLayout>
- </LinearLayout>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
- <View
- android:layout_gravity="top|center_horizontal"
- android:layout_width="match_parent"
- android:layout_height="1dp"
- android:background="?articleHeaderSeparator"/>
+ <com.google.android.material.card.MaterialCardView
+ android:id="@+id/note_container"
+ android:layout_width="match_parent"
+ app:cardBackgroundColor="?colorTertiaryContainer"
+ android:layout_margin="8dp"
+ app:strokeWidth="0dp"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_margin="8dp"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:id="@+id/note"
+ tools:text="Article note (if any...)"
+ android:layout_gravity="center_vertical"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="8dp"
+ android:textColor="?colorOnTertiaryContainer"
+ android:layout_weight="1"
+ android:textSize="12sp"/>
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ app:tint="?colorOnTertiaryContainer"
+ android:src="@drawable/baseline_note_24"/>
+
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
+
+ </LinearLayout>
+ </LinearLayout>
+ </com.google.android.material.card.MaterialCardView>
</com.google.android.material.appbar.AppBarLayout>
- <androidx.core.widget.NestedScrollView
- android:id="@+id/article_scrollview"
- android:scrollbars="vertical|horizontal"
+ <com.telefonica.nestedscrollwebview.NestedScrollWebView
+ android:id="@+id/article_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:descendantFocusability="blocksDescendants"
- android:orientation="vertical" >
-
- <TextView
- android:id="@+id/note"
- tools:text="Article note (if any...)"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:background="?articleNoteBackground"
- android:textColor="?articleNoteTextColor"
- android:textSize="12sp"
- android:paddingLeft="16dp"
- android:paddingTop="8dp"
- android:paddingRight="16dp"
- android:paddingBottom="8dp" />
-
- <org.fox.ttrss.util.LessBrokenWebView
- android:layout_margin="16dp"
- android:id="@+id/article_content"
- android:scrollbars="none"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
-
- </LinearLayout>
- </androidx.core.widget.NestedScrollView>
+ android:layout_height="wrap_content" />
</com.otaliastudios.nestedscrollcoordinatorlayout.NestedScrollCoordinatorLayout>
- <TextView
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/article_status_message"
- android:gravity="center"
- android:visibility="gone" />
-
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/article_pager.xml b/org.fox.ttrss/src/main/res/layout/fragment_article_pager.xml
index 62b3fea4..1a687b1d 100755
--- a/org.fox.ttrss/src/main/res/layout/article_pager.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_article_pager.xml
@@ -2,6 +2,5 @@
<androidx.viewpager.widget.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/article_pager"
- android:background="?android:colorBackground"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"/>
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_cats.xml b/org.fox.ttrss/src/main/res/layout/fragment_cats.xml
deleted file mode 100755
index 64240be6..00000000
--- a/org.fox.ttrss/src/main/res/layout/fragment_cats.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?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" >
-
- <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
- android:id="@+id/feeds_swipe_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
-
- <ListView
- android:id="@+id/feeds"
- android:dividerHeight="0dp"
- android:divider="@null"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- </ListView>
- </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
-</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml
index 2d8d963b..bf26e3fc 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml
@@ -11,8 +11,10 @@
<ListView
android:id="@+id/feeds"
- android:dividerHeight="0dp"
+ android:dividerHeight="4dp"
android:divider="@null"
+ android:paddingStart="4dp"
+ android:paddingEnd="4dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
index 9f09290f..2783a1e4 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_fragment"
- android:background="?android:colorBackground"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
@@ -12,6 +11,7 @@
<org.fox.ttrss.util.ContextMenuRecyclerView
android:id="@+id/headlines_list"
+ android:background="?colorSurfaceContainer"
android:drawSelectorOnTop="true"
android:scrollbars="vertical"
android:layout_width="match_parent"
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_headlines_offline.xml b/org.fox.ttrss/src/main/res/layout/fragment_headlines_offline.xml
index 6e43864a..4ce8c1dd 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_headlines_offline.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_headlines_offline.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/headlines_fragment"
- android:background="?android:colorBackground"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
@@ -12,7 +11,11 @@
<ListView
android:id="@+id/headlines_list"
+ android:background="?colorSurfaceContainer"
android:drawSelectorOnTop="true"
+ android:padding="8dp"
+ android:dividerHeight="8dp"
+ android:divider="@null"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_footer.xml b/org.fox.ttrss/src/main/res/layout/headlines_footer.xml
index a734a294..b4d52fd5 100644
--- a/org.fox.ttrss/src/main/res/layout/headlines_footer.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_footer.xml
@@ -11,6 +11,6 @@
android:layout_marginBottom="10dp"
android:layout_width="128dp"
android:layout_height="1dp"
- android:background="?headlineFooterColor"/>
+ android:background="?colorPrimary"/>
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row.xml b/org.fox.ttrss/src/main/res/layout/headlines_row.xml
index 2e997e2c..52bbae56 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row.xml
@@ -1,7 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:layout_marginTop="8dp"
+ app:strokeWidth="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
@@ -12,162 +17,136 @@
android:shrinkColumns="0,1"
android:stretchColumns="0,1">
-
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content">
- <FrameLayout
- android:id="@+id/flavorImageHolder"
+ <RelativeLayout
+ android:id="@+id/headline_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_span="2">
+ android:clickable="true"
+ android:layout_span="2"
+ android:padding="16dp">
- <RelativeLayout
+ <TextView
+ android:id="@+id/title"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="3"
+ android:paddingBottom="8dp"
+ android:singleLine="false"
+ android:textColor="?colorPrimary"
+ android:textSize="18sp"
+ android:textStyle="normal"
+ tools:text="Sample entry title which is overwhelmingly long blah blah blah" />
- <ProgressBar
- android:id="@+id/flavorImageLoadingBar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:visibility="visible"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_alignParentTop="false"
- android:layout_alignParentRight="false"
- android:layout_alignParentEnd="true"
- android:max="100"
- android:indeterminate="false"
- android:layout_toRightOf="@+id/flavor_video"
- android:layout_alignParentLeft="true"
- android:layout_alignParentStart="true" />
+ <LinearLayout
+ android:id="@+id/linearLayout2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/title"
+ android:orientation="horizontal">
- <ImageView
- android:id="@+id/flavor_image"
- android:foreground="@drawable/ripple"
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@android:color/transparent"
- android:cropToPadding="true"
- android:scaleType="fitCenter"
- android:visibility="visible" />
+ android:layout_weight="0.5"
+ android:ellipsize="middle"
+ android:fontFamily="sans-serif-light"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textColor="?colorSecondary"
+ android:textSize="12sp"
+ tools:text="Example Feed AAA AAA AAAAAA AAAA AAAAA AA A A AA AA" />
- <TextureView
- android:id="@+id/flavor_video"
- android:foreground="@null"
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@null"
- android:cropToPadding="true"
- android:src="@drawable/drawer_header"
- android:scaleType="fitCenter"
- android:visibility="gone"
- android:layout_alignBottom="@+id/flavor_image"
- android:layout_alignTop="@+id/flavor_image" />
+ android:layout_weight="0.5"
+ android:ellipsize="none"
+ android:fontFamily="sans-serif-light"
+ android:singleLine="true"
+ android:textAlignment="viewEnd"
+ android:textColor="?colorSecondary"
+ android:textSize="12sp"
+ tools:text="Jan 01, 12:00, 1970" />
- <RelativeLayout
- android:id="@+id/headline_header"
- android:clickable="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?headlineHeaderBackground"
- android:padding="16dp">
+ </LinearLayout>
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@drawable/ripple"
- android:ellipsize="end"
- android:textAlignment="viewStart"
- android:gravity="center_vertical"
- android:maxLines="3"
- android:paddingBottom="8dp"
- android:singleLine="false"
- android:textColor="?headlineExcerptTextColor"
- android:textSize="18sp"
- android:textStyle="normal"
- tools:text="Sample entry title" />
+ </RelativeLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/title"
- android:orientation="horizontal"
- android:id="@+id/linearLayout2">
+ </TableRow>
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:ellipsize="middle"
- android:fontFamily="sans-serif-light"
- android:gravity="center_vertical"
- android:textAlignment="viewStart"
- android:singleLine="true"
- tools:text="Example Feed AAA AAA AAAAAA AAAA AAAAA AA A A AA AA"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
- <TextView
- android:id="@+id/date"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:ellipsize="none"
- android:fontFamily="sans-serif-light"
- android:gravity="center_vertical"
- android:textAlignment="viewEnd"
- android:singleLine="true"
- tools:text="Jan 01, 12:00, 1970"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ <FrameLayout
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_span="2">
- </LinearLayout>
+ <ProgressBar
+ android:id="@+id/flavorImageLoadingBar"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:indeterminate="false"
+ android:max="100"
+ android:visibility="visible" />
- </RelativeLayout>
+ <ImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@android:color/transparent"
+ android:cropToPadding="true"
+ android:scaleType="centerCrop"
+ tools:src="@drawable/ic_launcher_background"
+ android:visibility="visible" />
- </RelativeLayout>
+ <TextureView
+ android:id="@+id/flavor_video"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@null"
+ android:cropToPadding="true"
+ android:foreground="@null"
+ android:scaleType="fitCenter"
+ android:visibility="gone" />
<ImageView
android:id="@+id/flavor_video_kind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
+ android:layout_marginStart="8dp"
+ android:layout_marginBottom="10dp"
+ android:elevation="4dp"
android:scaleType="fitXY"
- android:src="@drawable/ic_play_circle"
+ android:src="@drawable/baseline_play_circle_24"
android:visibility="visible"
- android:layout_below="@+id/headline_header"
- android:layout_alignParentRight="true"
- android:layout_alignParentEnd="true"
- android:elevation="4dp"
- android:tint="?colorAccent"
- android:layout_marginBottom="8dp"
- android:layout_marginStart="8dp" />
+ app:tint="?colorTertiary" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/gallery_overflow"
- android:clickable="true"
+ style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:background="@drawable/ripple"
- android:paddingLeft="4dp"
- android:paddingRight="4dp"
- android:src="@drawable/ic_dots_vertical_circle"
+ android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
- android:elevation="4dp"
- android:tint="?colorAccent"
- android:layout_marginBottom="10dp"
- tools:targetApi="lollipop" />
+ android:layout_marginEnd="-8dp"
+ app:icon="@drawable/baseline_more_vert_24"
+ app:iconTint="?colorTertiary"/>
</FrameLayout>
</TableRow>
@@ -187,7 +166,6 @@
android:maxLines="5"
android:padding="16dp"
tools: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" />
</TableRow>
@@ -204,7 +182,7 @@
android:paddingBottom="8dp"
android:paddingLeft="8dp">
- <CheckBox
+ <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/selected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -222,65 +200,60 @@
android:singleLine="true"
tools:text="by Author"
android:textAlignment="viewStart"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp"
android:textStyle="italic" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/score"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_action_trending_flat" />
+ app:icon="?ic_action_trending_flat" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/attachments"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_attachment" />
+ app:icon="?ic_attachment" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/marked"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_star_outline" />
+ app:icon="?ic_star_outline" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/published"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_rss_box" />
+ app:icon="?ic_rss_box" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/article_menu_button"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_dots_vertical" />
+ app:icon="?ic_dots_vertical" />
</LinearLayout>
</TableRow>
</TableLayout>
-
-</FrameLayout> \ No newline at end of file
+</com.google.android.material.card.MaterialCardView> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml
index d139313e..fd328276 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml
@@ -2,6 +2,7 @@
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
android:padding="@dimen/activity_horizontal_margin"
android:layout_width="fill_parent"
@@ -48,7 +49,7 @@
android:maxLines="2"
android:ellipsize="end"
tools:text="Sample entry title"
- android:textColor="?headlineExcerptTextColor"
+ android:textColor="?colorPrimary"
android:textSize="18sp"
android:layout_span="2" />
@@ -60,7 +61,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
- android:textColor="?headlineExcerptTextColor"
+ android:textColor="?colorSecondary"
android:textSize="13sp"
android:layout_span="2"
android:paddingTop="4dp" />
@@ -80,7 +81,7 @@
android:singleLine="true"
tools:text="Example Feed AAA AAA AAAAAA AAAA AAAAA AA A A AA AA"
android:textAlignment="viewStart"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp"
android:layout_weight="0.5"
android:paddingTop="4dp" />
@@ -105,22 +106,20 @@
android:ellipsize="none"
android:layout_weight="1"
tools:text="Jan 01"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorPrimary"
android:textSize="12sp"
/>
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/marked"
- android:background="@drawable/ripple"
- android:layout_width="24dp"
+ style="?attr/materialIconButtonStyle"
+ android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
android:clickable="true"
- android:src="?ic_star_outline" />
-
-
+ app:icon="?ic_star_outline" />
</LinearLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_selected_compact.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_selected.xml
index 2e449dbb..6030df54 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_selected_compact.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_selected.xml
@@ -2,12 +2,14 @@
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
android:padding="@dimen/activity_horizontal_margin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?headlineSelectedBackground"
+ android:background="?colorTertiaryContainer"
+ android:textColor="?colorOnTertiaryContainer"
tools:ignore="HardcodedText" >
<FrameLayout
@@ -49,7 +51,6 @@
android:maxLines="2"
android:ellipsize="end"
tools:text="Sample entry title"
- android:textColor="?headlineSelectedTextColor"
android:textSize="18sp"
android:layout_span="2" />
@@ -61,7 +62,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools: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"
android:layout_span="2"
android:paddingTop="4dp" />
@@ -81,7 +81,6 @@
android:singleLine="true"
tools:text="Example Feed"
android:textAlignment="viewStart"
- android:textColor="?headlineSelectedSecondaryTextColor"
android:textSize="12sp"
android:layout_weight="0.5"
android:paddingTop="4dp" />
@@ -106,23 +105,20 @@
android:ellipsize="none"
android:layout_weight="1"
tools:text="Jan 01"
- android:textColor="?headlineSelectedSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp"
/>
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/marked"
- android:tint="?headlineFooterColor"
- android:background="@drawable/ripple"
- android:layout_width="24dp"
+ style="?attr/materialIconButtonStyle"
+ android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
android:clickable="true"
- android:src="?ic_star_outline" />
-
-
+ app:icon="?ic_star_outline" />
</LinearLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_selected_unread_compact.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_selected_unread.xml
index 024eb7cf..0d8d930d 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_selected_unread_compact.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_selected_unread.xml
@@ -2,12 +2,13 @@
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
android:padding="@dimen/activity_horizontal_margin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?headlineSelectedBackground"
+ android:background="?colorTertiaryContainer"
tools:ignore="HardcodedText" >
<FrameLayout
@@ -47,7 +48,6 @@
android:maxLines="2"
android:ellipsize="end"
tools:text="Sample entry title"
- android:textColor="?headlineSelectedTextColor"
android:textStyle="bold"
android:textSize="18sp"
android:layout_span="2" />
@@ -60,7 +60,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools: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"
android:layout_span="2"
android:paddingTop="4dp" />
@@ -80,7 +79,6 @@
android:singleLine="true"
tools:text="Example Feed"
android:textAlignment="viewStart"
- android:textColor="?headlineSelectedSecondaryTextColor"
android:textSize="12sp"
android:layout_weight="0.5"
android:paddingTop="4dp" />
@@ -105,23 +103,17 @@
android:ellipsize="none"
android:layout_weight="1"
tools:text="Jan 01"
- android:textColor="?headlineSelectedSecondaryTextColor"
- android:textSize="12sp"
- />
+ android:textColor="?colorSecondary"
+ android:textSize="12sp" />
-
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/marked"
- android:background="@drawable/ripple"
- android:tint="?headlineFooterColor"
- android:layout_width="24dp"
+ style="?attr/materialIconButtonStyle"
+ android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:clickable="true"
- android:src="?ic_star_outline" />
-
-
+ app:icon="?ic_star_outline" />
</LinearLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_unread_compact.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml
index e440188f..222d19d1 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_unread_compact.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml
@@ -2,12 +2,13 @@
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
android:padding="@dimen/activity_horizontal_margin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?headlineUnreadBackground"
+ android:background="?colorSurfaceContainerLowest"
tools:ignore="HardcodedText" >
<FrameLayout
@@ -49,7 +50,6 @@
android:maxLines="2"
android:ellipsize="end"
tools:text="Sample entry title"
- android:textColor="?headlineUnreadTextColor"
android:textStyle="bold"
android:textSize="18sp"
android:layout_span="2" />
@@ -62,7 +62,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools: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"
android:layout_span="2"
android:paddingTop="4dp" />
@@ -82,7 +81,6 @@
android:singleLine="true"
tools:text="Example Feed AAA AAA AAAAAA AAAA AAAAA AA A A AA AA"
android:textAlignment="viewStart"
- android:textColor="?headlineSecondaryTextColor"
android:textSize="12sp"
android:layout_weight="0.5"
android:paddingTop="4dp" />
@@ -103,38 +101,22 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-light"
+ android:textColor="?colorSecondary"
android:singleLine="true"
android:ellipsize="none"
android:layout_weight="1"
tools:text="Jan 01"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp"
- />
+ android:textSize="12sp" />
-
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/marked"
- android:background="@drawable/ripple"
- android:layout_width="24dp"
+ style="?attr/materialIconButtonStyle"
+ android:layout_width="wrap_content"
android:layout_gravity="bottom|end"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:clickable="true"
- android:src="?ic_star_outline" />
-
-
+ app:icon="?ic_star_outline" />
</LinearLayout>
- <!-- <ImageView
- android:id="@+id/article_menu_button"
- android:layout_gravity="center"
- android:layout_width="wrap_content"
- android:layout_height="16dp"
- android:layout_weight="0"
- android:paddingLeft="4dp"
- android:paddingRight="4dp"
- android:src="@drawable/ic_action_overflow" /> -->
-
-
</LinearLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_loadmore.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_loadmore.xml
index 6444bfa5..43e9d8c8 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_loadmore.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_loadmore.xml
@@ -19,7 +19,7 @@
android:id="@+id/loadmore_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="?headlineExcerptTextColor"
+ android:textColor="?colorSecondary"
android:text="@string/loading_message" />
</LinearLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml
index ba70bb89..4b20d9cb 100755
--- a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml
+++ b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml
@@ -1,10 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/headlines_row"
+ app:cardBackgroundColor="?colorSurfaceContainerLowest"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:layout_marginTop="8dp"
+ app:strokeWidth="0dp"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="?headlineUnreadBackground">
+ android:layout_height="wrap_content">
<TableLayout
android:layout_width="fill_parent"
@@ -17,157 +22,131 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content">
- <FrameLayout
- android:id="@+id/flavorImageHolder"
+ <RelativeLayout
+ android:id="@+id/headline_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_span="2">
+ android:clickable="true"
+ android:layout_span="2"
+ android:padding="16dp">
- <RelativeLayout
+ <TextView
+ android:id="@+id/title"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="3"
+ android:paddingBottom="8dp"
+ android:singleLine="false"
+ android:textColor="?colorOnSurface"
+ android:textSize="18sp"
+ android:textStyle="bold"
+ tools:text="Sample entry title which is overwhelmingly long blah blah blah" />
- <ProgressBar
- android:id="@+id/flavorImageLoadingBar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:visibility="visible"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_alignParentTop="false"
- android:layout_alignParentRight="false"
- android:layout_alignParentEnd="true"
- android:max="100"
- android:indeterminate="false"
- android:layout_toRightOf="@+id/flavor_video"
- android:layout_alignParentLeft="true"
- android:layout_alignParentStart="true" />
+ <LinearLayout
+ android:id="@+id/linearLayout2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@+id/title"
+ android:orientation="horizontal">
- <ImageView
- android:id="@+id/flavor_image"
- android:foreground="@drawable/ripple"
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/feed_title"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@android:color/transparent"
- android:cropToPadding="true"
- android:scaleType="fitCenter"
- android:visibility="visible" />
+ android:layout_weight="0.5"
+ android:ellipsize="middle"
+ android:fontFamily="sans-serif-light"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textColor="?colorSecondary"
+ android:textSize="12sp"
+ tools:text="Example Feed AAA AAA AAAAAA AAAA AAAAA AA A A AA AA" />
- <TextureView
- android:id="@+id/flavor_video"
- android:foreground="@null"
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/date"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_centerHorizontal="true"
- android:layout_gravity="center"
- android:adjustViewBounds="true"
- android:background="@null"
- android:cropToPadding="true"
- android:src="@drawable/drawer_header"
- android:scaleType="fitCenter"
- android:visibility="gone"
- android:layout_alignBottom="@+id/flavor_image"
- android:layout_alignTop="@+id/flavor_image" />
+ android:layout_weight="0.5"
+ android:ellipsize="none"
+ android:fontFamily="sans-serif-light"
+ android:singleLine="true"
+ android:textAlignment="viewEnd"
+ android:textColor="?colorSecondary"
+ android:textSize="12sp"
+ tools:text="Jan 01, 12:00, 1970" />
- <RelativeLayout
- android:id="@+id/headline_header"
- android:clickable="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="?headlineHeaderBackground"
- android:padding="16dp">
+ </LinearLayout>
- <TextView
- android:id="@+id/title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_span="2"
- android:background="@drawable/ripple"
- android:ellipsize="end"
- android:gravity="center_vertical"
- android:maxLines="3"
- android:paddingBottom="8dp"
- android:singleLine="false"
- android:textAlignment="viewStart"
- android:textColor="?headlineUnreadTextColor"
- android:textSize="18sp"
- android:textStyle="bold"
- tools:text="Sample entry title" />
+ </RelativeLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/title"
- android:orientation="horizontal"
- android:id="@+id/linearLayout2">
+ </TableRow>
- <TextView
- android:id="@+id/feed_title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:ellipsize="middle"
- android:fontFamily="sans-serif-light"
- android:gravity="center_vertical"
- android:textAlignment="viewStart"
- android:singleLine="true"
- tools:text="Example Feed"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
- <TextView
- android:id="@+id/date"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="0.5"
- android:ellipsize="none"
- android:fontFamily="sans-serif-light"
- android:gravity="center_vertical"
- android:textAlignment="viewEnd"
- android:singleLine="true"
- tools:text="Jan 01, 12:00, 1970"
- android:textColor="?headlineSecondaryTextColor"
- android:textSize="12sp" />
+ <FrameLayout
+ android:id="@+id/flavorImageHolder"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_span="2">
- </LinearLayout>
+ <ProgressBar
+ android:id="@+id/flavorImageLoadingBar"
+ style="?android:attr/progressBarStyleHorizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:indeterminate="false"
+ android:max="100"
+ android:visibility="visible" />
- </RelativeLayout>
+ <ImageView
+ android:id="@+id/flavor_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@android:color/transparent"
+ android:cropToPadding="true"
+ android:scaleType="centerCrop"
+ tools:src="@drawable/ic_launcher_background"
+ android:visibility="visible" />
- </RelativeLayout>
+ <TextureView
+ android:id="@+id/flavor_video"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:adjustViewBounds="true"
+ android:background="@null"
+ android:cropToPadding="true"
+ android:foreground="@null"
+ android:scaleType="fitCenter"
+ android:visibility="gone" />
<ImageView
android:id="@+id/flavor_video_kind"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="bottom|start"
+ android:layout_gravity="start|bottom"
+ android:layout_marginStart="8dp"
+ android:layout_marginBottom="10dp"
android:scaleType="fitXY"
- android:src="@drawable/ic_play_circle"
+ android:src="@drawable/baseline_play_circle_24"
android:visibility="visible"
- android:layout_below="@+id/headline_header"
- android:layout_alignParentRight="true"
- android:layout_alignParentEnd="true"
- android:tint="?colorAccent"
- android:layout_marginStart="8dp"
- android:layout_marginBottom="8dp" />
+ app:tint="?colorTertiary" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
android:id="@+id/gallery_overflow"
- android:clickable="true"
+ style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
- android:layout_height="24dp"
- android:layout_weight="0"
- android:background="@drawable/ripple"
- android:paddingLeft="4dp"
- android:paddingRight="4dp"
- android:src="@drawable/ic_dots_vertical_circle"
+ android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
- android:elevation="4dp"
- android:tint="?colorAccent"
- android:layout_marginBottom="10dp"
- tools:targetApi="lollipop" />
+ android:layout_marginEnd="-8dp"
+ app:icon="@drawable/baseline_more_vert_24"
+ app:iconTint="?colorTertiary"/>
</FrameLayout>
</TableRow>
@@ -187,7 +166,6 @@
android:maxLines="5"
android:padding="16dp"
tools: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" />
</TableRow>
@@ -204,7 +182,7 @@
android:paddingBottom="8dp"
android:paddingLeft="8dp">
- <CheckBox
+ <com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/selected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -222,65 +200,60 @@
android:singleLine="true"
tools:text="by Author"
android:textAlignment="viewStart"
- android:textColor="?headlineSecondaryTextColor"
+ android:textColor="?colorSecondary"
android:textSize="12sp"
android:textStyle="italic" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/score"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_action_trending_flat" />
+ app:icon="?ic_action_trending_flat" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/attachments"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_attachment" />
+ app:icon="?ic_attachment" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/marked"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_star_outline" />
+ app:icon="?ic_star_outline" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/published"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
- android:clickable="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_rss_box" />
+ app:icon="?ic_rss_box" />
- <ImageView
+ <com.google.android.material.button.MaterialButton
+ style="?attr/materialIconButtonStyle"
android:id="@+id/article_menu_button"
android:layout_width="wrap_content"
- android:layout_height="24dp"
+ android:layout_height="wrap_content"
android:layout_weight="0"
- android:background="@drawable/ripple"
android:paddingLeft="4dp"
android:paddingRight="4dp"
- android:src="?ic_dots_vertical" />
+ app:icon="?ic_dots_vertical" />
</LinearLayout>
</TableRow>
</TableLayout>
-
-</FrameLayout> \ No newline at end of file
+</com.google.android.material.card.MaterialCardView> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/layout_detail_phone.xml b/org.fox.ttrss/src/main/res/layout/layout_detail_phone.xml
new file mode 100644
index 00000000..429b27c0
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/layout/layout_detail_phone.xml
@@ -0,0 +1,39 @@
+<androidx.coordinatorlayout.widget.CoordinatorLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/detail_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/baseline_open_in_browser_24"
+ android:layout_margin="16dp" />
+
+ <com.google.android.material.appbar.AppBarLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <include layout="@layout/toolbar" android:id="@+id/toolbar" />
+
+ </com.google.android.material.appbar.AppBarLayout>
+
+ <FrameLayout
+ android:id="@+id/article_fragment"
+ app:layout_behavior=".util.DetailActivityScrollingViewBehavior"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ </FrameLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ android:visibility="gone"
+ android:layout_height="0dp"
+ android:layout_width="0dp">
+ </FrameLayout>
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
+
diff --git a/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml b/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml
new file mode 100644
index 00000000..b4cb6b59
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml
@@ -0,0 +1,53 @@
+<androidx.drawerlayout.widget.DrawerLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/headlines_drawer"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent">
+
+ <androidx.coordinatorlayout.widget.CoordinatorLayout
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/headlines_coordinator"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/master_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/baseline_refresh_24"
+ android:layout_margin="16dp" />
+
+ <com.google.android.material.appbar.AppBarLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <include layout="@layout/toolbar" android:id="@+id/toolbar" />
+
+ </com.google.android.material.appbar.AppBarLayout>
+
+ <FrameLayout
+ android:id="@+id/headlines_fragment"
+ app:layout_behavior=".util.FabAwareScrollingViewBehavior"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
+
+ <com.google.android.material.navigation.NavigationView
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/modal_navigation_view"
+ android:layout_width="300dp"
+ android:layout_height="match_parent"
+ android:layout_gravity="start">
+
+ <FrameLayout
+ android:id="@+id/feeds_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </FrameLayout>
+
+ </com.google.android.material.navigation.NavigationView>
+
+</androidx.drawerlayout.widget.DrawerLayout>
diff --git a/org.fox.ttrss/src/main/res/layout/preference_material_switch.xml b/org.fox.ttrss/src/main/res/layout/preference_material_switch.xml
new file mode 100644
index 00000000..94d654f0
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/layout/preference_material_switch.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Derived from https://github.com/androidx/androidx/blob/8cb282cc/preference/preference/res/layout/preference_widget_switch_compat.xml -->
+<com.google.android.material.materialswitch.MaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/switchWidget"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@null"
+ android:clickable="false"
+ android:focusable="false" /> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/toolbar.xml b/org.fox.ttrss/src/main/res/layout/toolbar.xml
index f5fb7654..989292b2 100755
--- a/org.fox.ttrss/src/main/res/layout/toolbar.xml
+++ b/org.fox.ttrss/src/main/res/layout/toolbar.xml
@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.appcompat.widget.Toolbar
+<com.google.android.material.appbar.MaterialToolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
- android:elevation="4dp"
app:layout_scrollFlags="scroll|enterAlways"
- android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
+ app:titleTextAppearance="?attr/textAppearanceTitleMedium"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:minHeight="?attr/actionBarSize"
- android:background="?attr/colorPrimary" /> \ No newline at end of file
+ android:minHeight="?attr/actionBarSize"/>
diff --git a/org.fox.ttrss/src/main/res/menu/action_mode_headlines.xml b/org.fox.ttrss/src/main/res/menu/action_mode_headlines.xml
index b3afdafc..35981c01 100644
--- a/org.fox.ttrss/src/main/res/menu/action_mode_headlines.xml
+++ b/org.fox.ttrss/src/main/res/menu/action_mode_headlines.xml
@@ -3,18 +3,21 @@
<item
android:id="@+id/selection_toggle_unread"
app:showAsAction="always"
- android:icon="@drawable/ic_email_open"
+ app:iconTint="?attr/colorControlNormal"
+ android:icon="@drawable/baseline_mark_as_unread_24"
android:title="@string/selection_toggle_unread"/>
<item
android:id="@+id/selection_toggle_marked"
- android:icon="@drawable/ic_star_outline"
+ android:icon="@drawable/baseline_star_outline_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="always"
android:title="@string/selection_toggle_marked"/>
<item
android:id="@+id/selection_toggle_published"
- android:icon="@drawable/ic_rss_box"
+ android:icon="@drawable/baseline_rss_feed_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="always"
android:title="@string/selection_toggle_published"/>
diff --git a/org.fox.ttrss/src/main/res/menu/activity_logcat.xml b/org.fox.ttrss/src/main/res/menu/activity_logcat.xml
index 52ee9b26..66734665 100755
--- a/org.fox.ttrss/src/main/res/menu/activity_logcat.xml
+++ b/org.fox.ttrss/src/main/res/menu/activity_logcat.xml
@@ -2,13 +2,15 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/logcat_refresh"
- android:icon="@drawable/ic_refresh"
+ android:icon="@drawable/baseline_refresh_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/logcat_refresh"/>
<item
android:id="@+id/logcat_copy"
- android:icon="@drawable/ic_content_copy"
+ android:icon="@drawable/baseline_content_copy_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/logcat_copy"/>
diff --git a/org.fox.ttrss/src/main/res/menu/activity_main.xml b/org.fox.ttrss/src/main/res/menu/activity_main.xml
index d2ef27a0..f983e224 100755
--- a/org.fox.ttrss/src/main/res/menu/activity_main.xml
+++ b/org.fox.ttrss/src/main/res/menu/activity_main.xml
@@ -12,22 +12,27 @@
<group android:id="@+id/menu_group_headlines" >
<item
android:id="@+id/search"
- android:icon="@drawable/ic_search"
+ android:icon="@drawable/baseline_search_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/search"/>
<item
android:id="@+id/headlines_mark_as_read"
app:showAsAction=""
+ app:iconTint="?attr/colorControlNormal"
+ android:icon="@drawable/baseline_mark_email_read_24"
android:title="@string/headlines_mark_as_read"/>
<item
android:id="@+id/headlines_select"
app:showAsAction="ifRoom"
- android:icon="@drawable/ic_select"
+ app:iconTint="?attr/colorControlNormal"
+ android:icon="@drawable/baseline_select_all_24"
android:title="@string/headlines_select"/>
<item
android:id="@+id/headlines_toggle_sort_order"
- android:icon="@drawable/ic_sort"
+ app:iconTint="?attr/colorControlNormal"
+ android:icon="@drawable/baseline_sort_by_alpha_24"
app:showAsAction="ifRoom"
android:title="@string/toggle_sort_order"/>
@@ -45,29 +50,31 @@
<group android:id="@+id/menu_group_article" >
<item
android:id="@+id/toggle_marked"
- android:icon="@drawable/ic_star_outline"
+ android:icon="@drawable/baseline_star_outline_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/article_toggle_marked"/>
<item
android:id="@+id/toggle_published"
- android:icon="@drawable/ic_rss_box"
+ android:icon="@drawable/baseline_rss_feed_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/article_toggle_published"/>
<item
android:id="@+id/toggle_unread"
- android:icon="@drawable/ic_email"
- app:showAsAction="ifRoom"
+ android:icon="@drawable/baseline_email_24"
+ app:iconTint="?attr/colorControlNormal"
android:title="@string/article_toggle_unread"/>
- <!-- <item
+ <item
android:id="@+id/toggle_attachments"
- android:icon="@drawable/ic_attachment"
+ android:icon="@drawable/baseline_attach_file_24"
app:showAsAction=""
- android:title="@string/attachments_prompt"/> -->
- <!-- <item
+ android:title="@string/attachments_prompt"/>
+ <item
android:id="@+id/share_article"
- android:icon="@drawable/ic_share"
+ android:icon="@drawable/baseline_share_24"
app:showAsAction="ifRoom"
- android:title="@string/share_article"/> -->
+ android:title="@string/share_article"/>
<item
android:id="@+id/set_labels"
app:showAsAction=""
@@ -76,6 +83,10 @@
android:id="@+id/article_set_note"
app:showAsAction=""
android:title="@string/article_set_note"/>
+ <item
+ android:id="@+id/article_set_score"
+ app:showAsAction=""
+ android:title="@string/set_score"/>
<item
android:id="@+id/catchup_above"
@@ -83,26 +94,21 @@
</group>
- <!-- <item
- android:orderInCategory="999"
- android:id="@+id/preferences"
- android:icon="@drawable/ic_settings"
- app:showAsAction=""
- android:title="@string/preferences"/> -->
-
</group>
<group android:id="@+id/menu_group_logged_out" >
<item
android:id="@+id/login"
- android:icon="@drawable/ic_login"
+ android:icon="@drawable/baseline_login_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/login_login"/>
<item
android:orderInCategory="999"
android:id="@+id/preferences"
- android:icon="@drawable/ic_settings"
+ android:icon="@drawable/baseline_settings_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction="ifRoom"
android:title="@string/preferences"/>
diff --git a/org.fox.ttrss/src/main/res/menu/activity_offline.xml b/org.fox.ttrss/src/main/res/menu/activity_offline.xml
index c533ae75..09dbf194 100644
--- a/org.fox.ttrss/src/main/res/menu/activity_offline.xml
+++ b/org.fox.ttrss/src/main/res/menu/activity_offline.xml
@@ -5,22 +5,22 @@
<group android:id="@+id/menu_group_headlines" >
<item
android:id="@+id/search"
- app:showAsAction="ifRoom"
- android:icon="@drawable/ic_search"
- android:title="@string/search"/>
+ android:icon="@drawable/baseline_search_24"
+ android:title="@string/search"
+ app:showAsAction="ifRoom" />
<item
android:id="@+id/headlines_mark_as_read"
app:showAsAction=""
android:title="@string/headlines_mark_as_read"/>
<item
android:id="@+id/headlines_select"
- android:icon="@drawable/ic_select"
+ android:icon="@drawable/baseline_select_all_24"
app:showAsAction="ifRoom"
android:title="@string/headlines_select"/>
<item
android:id="@+id/headlines_toggle_sort_order"
- android:icon="@drawable/ic_sort"
+ android:icon="@drawable/baseline_sort_24"
app:showAsAction="ifRoom"
android:title="@string/toggle_sort_order"/>
@@ -32,17 +32,17 @@
<group android:id="@+id/menu_group_article" >
<item
android:id="@+id/toggle_marked"
- android:icon="@drawable/ic_star_outline"
+ android:icon="@drawable/baseline_star_outline_24"
app:showAsAction="ifRoom"
android:title="@string/article_toggle_marked"/>
<item
android:id="@+id/toggle_published"
- android:icon="@drawable/ic_rss_box"
+ android:icon="@drawable/baseline_rss_feed_24"
app:showAsAction="ifRoom"
android:title="@string/article_toggle_published"/>
<item
android:id="@+id/toggle_unread"
- android:icon="@drawable/ic_email"
+ android:icon="@drawable/baseline_email_24"
app:showAsAction="ifRoom"
android:title="@string/article_toggle_unread"/>
<!-- <item
diff --git a/org.fox.ttrss/src/main/res/menu/activity_share.xml b/org.fox.ttrss/src/main/res/menu/activity_share.xml
index 40bb9237..2722f68b 100644
--- a/org.fox.ttrss/src/main/res/menu/activity_share.xml
+++ b/org.fox.ttrss/src/main/res/menu/activity_share.xml
@@ -2,7 +2,7 @@
<item
android:id="@+id/preferences"
- android:icon="@drawable/ic_settings"
+ android:icon="@drawable/baseline_settings_24"
app:showAsAction=""
android:title="@string/preferences"/>
diff --git a/org.fox.ttrss/src/main/res/menu/activity_youtube_player.xml b/org.fox.ttrss/src/main/res/menu/activity_youtube_player.xml
deleted file mode 100644
index acce1d3a..00000000
--- a/org.fox.ttrss/src/main/res/menu/activity_youtube_player.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools">
-
- <item
- android:id="@+id/article_vid_open"
- app:showAsAction=""
- android:title="@string/open_with"/>
- <item
- android:id="@+id/article_vid_copy"
- app:showAsAction=""
- android:icon="@drawable/ic_content_copy"
- android:title="@string/article_link_copy"/>
- <item
- android:id="@+id/article_vid_share"
- android:icon="@drawable/ic_share"
- app:showAsAction="ifRoom"
- android:title="@string/video_player_share"/>
-</menu>
diff --git a/org.fox.ttrss/src/main/res/menu/content_gallery_entry.xml b/org.fox.ttrss/src/main/res/menu/content_gallery_entry.xml
index 70e2bdfb..12bc5c20 100755
--- a/org.fox.ttrss/src/main/res/menu/content_gallery_entry.xml
+++ b/org.fox.ttrss/src/main/res/menu/content_gallery_entry.xml
@@ -7,16 +7,19 @@
<item
android:id="@+id/article_img_copy"
app:showAsAction=""
- android:icon="@drawable/ic_content_copy"
+ app:iconTint="?attr/colorControlNormal"
+ android:icon="@drawable/baseline_content_copy_24"
android:title="@string/article_link_copy"/>
<item
android:id="@+id/article_img_share"
- android:icon="@drawable/ic_share"
+ android:icon="@drawable/baseline_share_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction=""
android:title="@string/img_share_image"/>
<item
android:id="@+id/article_img_share_url"
- android:icon="@drawable/ic_share"
+ android:icon="@drawable/baseline_share_24"
+ app:iconTint="?attr/colorControlNormal"
app:showAsAction=""
android:title="@string/img_share_url"/>
<item
diff --git a/org.fox.ttrss/src/main/res/values-night-v21/style.xml b/org.fox.ttrss/src/main/res/values-night-v21/style.xml
deleted file mode 100644
index c154ed8a..00000000
--- a/org.fox.ttrss/src/main/res/values-night-v21/style.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="AppTheme.Base" parent="Theme.AppCompat.DayNight.NoActionBar">
- <item name="android:windowDrawsSystemBarBackgrounds">true</item>
- <item name="android:statusBarColor">@android:color/transparent</item>
- <item name="android:windowBackground">@color/window_background_dark</item>
- <item name="android:navigationBarColor">@android:color/black</item>
- </style>
-
- <style name="DarkDialogTheme" parent="android:Theme.Material.Dialog">
- </style>
-
-</resources> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values-night/colors.xml b/org.fox.ttrss/src/main/res/values-night/colors.xml
new file mode 100644
index 00000000..86ffc96f
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/values-night/colors.xml
@@ -0,0 +1,143 @@
+<resources>
+ <color name="md_theme_primary">#93CDF6</color>
+ <color name="md_theme_onPrimary">#00344C</color>
+ <color name="md_theme_primaryContainer">#004C6C</color>
+ <color name="md_theme_onPrimaryContainer">#C7E7FF</color>
+ <color name="md_theme_secondary">#B6C9D8</color>
+ <color name="md_theme_onSecondary">#21323E</color>
+ <color name="md_theme_secondaryContainer">#374955</color>
+ <color name="md_theme_onSecondaryContainer">#D2E5F5</color>
+ <color name="md_theme_tertiary">#FFB5A0</color>
+ <color name="md_theme_onTertiary">#561F0F</color>
+ <color name="md_theme_tertiaryContainer">#723523</color>
+ <color name="md_theme_onTertiaryContainer">#FFDBD1</color>
+ <color name="md_theme_error">#FFB4AB</color>
+ <color name="md_theme_onError">#690005</color>
+ <color name="md_theme_errorContainer">#93000A</color>
+ <color name="md_theme_onErrorContainer">#FFDAD6</color>
+ <color name="md_theme_background">#101417</color>
+ <color name="md_theme_onBackground">#DFE3E7</color>
+ <color name="md_theme_surface">#101417</color>
+ <color name="md_theme_onSurface">#DFE3E7</color>
+ <color name="md_theme_surfaceVariant">#41484D</color>
+ <color name="md_theme_onSurfaceVariant">#C1C7CE</color>
+ <color name="md_theme_outline">#8B9198</color>
+ <color name="md_theme_outlineVariant">#41484D</color>
+ <color name="md_theme_scrim">#000000</color>
+ <color name="md_theme_inverseSurface">#DFE3E7</color>
+ <color name="md_theme_inverseOnSurface">#2D3135</color>
+ <color name="md_theme_inversePrimary">#226488</color>
+ <color name="md_theme_primaryFixed">#C7E7FF</color>
+ <color name="md_theme_onPrimaryFixed">#001E2E</color>
+ <color name="md_theme_primaryFixedDim">#93CDF6</color>
+ <color name="md_theme_onPrimaryFixedVariant">#004C6C</color>
+ <color name="md_theme_secondaryFixed">#D2E5F5</color>
+ <color name="md_theme_onSecondaryFixed">#0B1D29</color>
+ <color name="md_theme_secondaryFixedDim">#B6C9D8</color>
+ <color name="md_theme_onSecondaryFixedVariant">#374955</color>
+ <color name="md_theme_tertiaryFixed">#FFDBD1</color>
+ <color name="md_theme_onTertiaryFixed">#3A0B01</color>
+ <color name="md_theme_tertiaryFixedDim">#FFB5A0</color>
+ <color name="md_theme_onTertiaryFixedVariant">#723523</color>
+ <color name="md_theme_surfaceDim">#101417</color>
+ <color name="md_theme_surfaceBright">#353A3D</color>
+ <color name="md_theme_surfaceContainerLowest">#0A0F12</color>
+ <color name="md_theme_surfaceContainerLow">#181C20</color>
+ <color name="md_theme_surfaceContainer">#1C2024</color>
+ <color name="md_theme_surfaceContainerHigh">#262A2E</color>
+ <color name="md_theme_surfaceContainerHighest">#313539</color>
+ <color name="md_theme_primary_mediumContrast">#BAE1FF</color>
+ <color name="md_theme_onPrimary_mediumContrast">#00293D</color>
+ <color name="md_theme_primaryContainer_mediumContrast">#5C97BD</color>
+ <color name="md_theme_onPrimaryContainer_mediumContrast">#000000</color>
+ <color name="md_theme_secondary_mediumContrast">#CCDFEE</color>
+ <color name="md_theme_onSecondary_mediumContrast">#162833</color>
+ <color name="md_theme_secondaryContainer_mediumContrast">#8193A1</color>
+ <color name="md_theme_onSecondaryContainer_mediumContrast">#000000</color>
+ <color name="md_theme_tertiary_mediumContrast">#FFD2C7</color>
+ <color name="md_theme_onTertiary_mediumContrast">#481506</color>
+ <color name="md_theme_tertiaryContainer_mediumContrast">#CB7C66</color>
+ <color name="md_theme_onTertiaryContainer_mediumContrast">#000000</color>
+ <color name="md_theme_error_mediumContrast">#FFD2CC</color>
+ <color name="md_theme_onError_mediumContrast">#540003</color>
+ <color name="md_theme_errorContainer_mediumContrast">#FF5449</color>
+ <color name="md_theme_onErrorContainer_mediumContrast">#000000</color>
+ <color name="md_theme_background_mediumContrast">#101417</color>
+ <color name="md_theme_onBackground_mediumContrast">#DFE3E7</color>
+ <color name="md_theme_surface_mediumContrast">#101417</color>
+ <color name="md_theme_onSurface_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceVariant_mediumContrast">#41484D</color>
+ <color name="md_theme_onSurfaceVariant_mediumContrast">#D7DDE4</color>
+ <color name="md_theme_outline_mediumContrast">#ACB3B9</color>
+ <color name="md_theme_outlineVariant_mediumContrast">#8B9197</color>
+ <color name="md_theme_scrim_mediumContrast">#000000</color>
+ <color name="md_theme_inverseSurface_mediumContrast">#DFE3E7</color>
+ <color name="md_theme_inverseOnSurface_mediumContrast">#262B2E</color>
+ <color name="md_theme_inversePrimary_mediumContrast">#004D6E</color>
+ <color name="md_theme_primaryFixed_mediumContrast">#C7E7FF</color>
+ <color name="md_theme_onPrimaryFixed_mediumContrast">#00131F</color>
+ <color name="md_theme_primaryFixedDim_mediumContrast">#93CDF6</color>
+ <color name="md_theme_onPrimaryFixedVariant_mediumContrast">#003A54</color>
+ <color name="md_theme_secondaryFixed_mediumContrast">#D2E5F5</color>
+ <color name="md_theme_onSecondaryFixed_mediumContrast">#02131E</color>
+ <color name="md_theme_secondaryFixedDim_mediumContrast">#B6C9D8</color>
+ <color name="md_theme_onSecondaryFixedVariant_mediumContrast">#273844</color>
+ <color name="md_theme_tertiaryFixed_mediumContrast">#FFDBD1</color>
+ <color name="md_theme_onTertiaryFixed_mediumContrast">#290400</color>
+ <color name="md_theme_tertiaryFixedDim_mediumContrast">#FFB5A0</color>
+ <color name="md_theme_onTertiaryFixedVariant_mediumContrast">#5D2515</color>
+ <color name="md_theme_surfaceDim_mediumContrast">#101417</color>
+ <color name="md_theme_surfaceBright_mediumContrast">#414549</color>
+ <color name="md_theme_surfaceContainerLowest_mediumContrast">#05080B</color>
+ <color name="md_theme_surfaceContainerLow_mediumContrast">#1A1E22</color>
+ <color name="md_theme_surfaceContainer_mediumContrast">#24282C</color>
+ <color name="md_theme_surfaceContainerHigh_mediumContrast">#2F3337</color>
+ <color name="md_theme_surfaceContainerHighest_mediumContrast">#3A3E42</color>
+ <color name="md_theme_primary_highContrast">#E3F2FF</color>
+ <color name="md_theme_onPrimary_highContrast">#000000</color>
+ <color name="md_theme_primaryContainer_highContrast">#8FC9F2</color>
+ <color name="md_theme_onPrimaryContainer_highContrast">#000D16</color>
+ <color name="md_theme_secondary_highContrast">#E3F2FF</color>
+ <color name="md_theme_onSecondary_highContrast">#000000</color>
+ <color name="md_theme_secondaryContainer_highContrast">#B3C5D4</color>
+ <color name="md_theme_onSecondaryContainer_highContrast">#000D16</color>
+ <color name="md_theme_tertiary_highContrast">#FFECE7</color>
+ <color name="md_theme_onTertiary_highContrast">#000000</color>
+ <color name="md_theme_tertiaryContainer_highContrast">#FFAF99</color>
+ <color name="md_theme_onTertiaryContainer_highContrast">#1E0300</color>
+ <color name="md_theme_error_highContrast">#FFECE9</color>
+ <color name="md_theme_onError_highContrast">#000000</color>
+ <color name="md_theme_errorContainer_highContrast">#FFAEA4</color>
+ <color name="md_theme_onErrorContainer_highContrast">#220001</color>
+ <color name="md_theme_background_highContrast">#101417</color>
+ <color name="md_theme_onBackground_highContrast">#DFE3E7</color>
+ <color name="md_theme_surface_highContrast">#101417</color>
+ <color name="md_theme_onSurface_highContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceVariant_highContrast">#41484D</color>
+ <color name="md_theme_onSurfaceVariant_highContrast">#FFFFFF</color>
+ <color name="md_theme_outline_highContrast">#EAF1F7</color>
+ <color name="md_theme_outlineVariant_highContrast">#BDC3CA</color>
+ <color name="md_theme_scrim_highContrast">#000000</color>
+ <color name="md_theme_inverseSurface_highContrast">#DFE3E7</color>
+ <color name="md_theme_inverseOnSurface_highContrast">#000000</color>
+ <color name="md_theme_inversePrimary_highContrast">#004D6E</color>
+ <color name="md_theme_primaryFixed_highContrast">#C7E7FF</color>
+ <color name="md_theme_onPrimaryFixed_highContrast">#000000</color>
+ <color name="md_theme_primaryFixedDim_highContrast">#93CDF6</color>
+ <color name="md_theme_onPrimaryFixedVariant_highContrast">#00131F</color>
+ <color name="md_theme_secondaryFixed_highContrast">#D2E5F5</color>
+ <color name="md_theme_onSecondaryFixed_highContrast">#000000</color>
+ <color name="md_theme_secondaryFixedDim_highContrast">#B6C9D8</color>
+ <color name="md_theme_onSecondaryFixedVariant_highContrast">#02131E</color>
+ <color name="md_theme_tertiaryFixed_highContrast">#FFDBD1</color>
+ <color name="md_theme_onTertiaryFixed_highContrast">#000000</color>
+ <color name="md_theme_tertiaryFixedDim_highContrast">#FFB5A0</color>
+ <color name="md_theme_onTertiaryFixedVariant_highContrast">#290400</color>
+ <color name="md_theme_surfaceDim_highContrast">#101417</color>
+ <color name="md_theme_surfaceBright_highContrast">#4C5155</color>
+ <color name="md_theme_surfaceContainerLowest_highContrast">#000000</color>
+ <color name="md_theme_surfaceContainerLow_highContrast">#1C2024</color>
+ <color name="md_theme_surfaceContainer_highContrast">#2D3135</color>
+ <color name="md_theme_surfaceContainerHigh_highContrast">#383C40</color>
+ <color name="md_theme_surfaceContainerHighest_highContrast">#43474B</color>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/values-night/style.xml b/org.fox.ttrss/src/main/res/values-night/style.xml
deleted file mode 100644
index 3c15a0fd..00000000
--- a/org.fox.ttrss/src/main/res/values-night/style.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
-
- <style name="AppTheme" parent="AppTheme.Base">
- <item name="windowActionModeOverlay">true</item>
-
- <!-- <item name="statusBarHintColor">?colorPrimary</item> -->
- <item name="unreadCounterColor">#909090</item>
- <item name="feedlistTextColor">@android:color/white</item>
- <item name="headlineUnreadTextColor">@android:color/white</item>
- <item name="headlineSelectedTextColor">@android:color/white</item>
- <item name="headlineExcerptTextColor">#bebebe</item>
- <item name="headlineSecondaryTextColor">#909090</item>
- <item name="headlineTitleHighScoreUnreadTextColor">#00FF00</item>
- <item name="headlineSelectedExcerptTextColor">#bebebe</item>
- <item name="headlineSelectedSecondaryTextColor">?headlineSelectedExcerptTextColor</item>
- <item name="headlineSelectedBackground">#1c1c1c</item>
- <item name="headlineHeaderBackground">#99000000</item>
- <item name="headlineUnreadBackground">#101010</item>
- <item name="linkColor">#2d92c8</item>
- <item name="loadingBackground">@android:color/black</item>
- <item name="articleNoteTextColor">#bebebe</item>
- <item name="articleNoteBackground">#303030</item>
- <item name="parentBtnBackground">#101010</item>
- <item name="ttrssHorizontalDivider">@android:drawable/divider_horizontal_dark</item>
- <item name="feedlistBackground">#1c1d1e</item>
- <item name="headlinesBackground">#1c1d1e</item>
- <item name="articleBackground">@android:color/black</item>
- <item name="feedsSelectedBackground">#1c1c1c</item>
- <item name="feedlistSelectedTextColor">@android:color/white</item>
- <item name="articleHeader">@android:color/transparent</item>
- <item name="articleHeaderTextColor">@android:color/white</item>
- <!-- <item name="floatingActionButtonStyle">@style/FabTheme</item> -->
- <item name="articleTextColor">#e0e0e0</item>
- <item name="headlineFooterColor">?colorPrimary</item>
- <item name="articleHeaderSeparator">#303030</item>
-
- <item name="colorPrimary">#1e6286</item>
- <item name="colorPrimaryDark">#18506e</item>
- <item name="colorAccent">#D84315</item>
-
- <item name="ic_rss_box">@drawable/ic_rss_box</item>
- <item name="ic_checkbox_marked">@drawable/ic_checkbox_marked</item>
- <item name="ic_star">@drawable/ic_star</item>
- <item name="ic_star_outline">@drawable/ic_star_outline</item>
- <item name="ic_share">@drawable/ic_share</item>
- <item name="ic_inbox">@drawable/ic_inbox</item>
- <item name="ic_go_back">@drawable/ic_go_back</item>
- <item name="ic_settings">@drawable/ic_settings</item>
- <item name="ic_filter_variant">@drawable/ic_filter_variant</item>
- <item name="ic_cloud_download">@drawable/ic_cloud_download</item>
- <item name="ic_cloud_upload">@drawable/ic_cloud_upload</item>
- <item name="ic_archive">@drawable/ic_archive</item>
- <item name="ic_fresh">@drawable/ic_fresh</item>
- <item name="ic_restore">@drawable/ic_restore</item>
- <item name="ic_folder_outline">@drawable/ic_folder_outline</item>
- <item name="ic_dots_vertical">@drawable/ic_dots_vertical</item>
- <item name="ic_dots_vertical_circle">@drawable/ic_dots_vertical_circle</item>
- <item name="ic_attachment">@drawable/ic_attachment</item>
- <item name="ic_attachment_vert">@drawable/ic_attachment_vert</item>
- <item name="ic_action_trending_up">@drawable/ic_action_trending_up</item>
- <item name="ic_action_trending_flat">@drawable/ic_action_trending_flat</item>
- <item name="ic_action_trending_down">@drawable/ic_action_trending_down</item>
-
- <item name="drawer_header">@drawable/drawer_header_dark</item>
- </style>
-</resources> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values-night/theme_overlays.xml b/org.fox.ttrss/src/main/res/values-night/theme_overlays.xml
new file mode 100644
index 00000000..02adac70
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/values-night/theme_overlays.xml
@@ -0,0 +1,98 @@
+<resources>
+ <style name="ThemeOverlay.AppTheme.MediumContrast" parent="Theme.Material3.Dark.NoActionBar">
+ <item name="colorPrimary">@color/md_theme_primary_mediumContrast</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary_mediumContrast</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer_mediumContrast</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer_mediumContrast</item>
+ <item name="colorSecondary">@color/md_theme_secondary_mediumContrast</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary_mediumContrast</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer_mediumContrast</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer_mediumContrast</item>
+ <item name="colorTertiary">@color/md_theme_tertiary_mediumContrast</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary_mediumContrast</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer_mediumContrast</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer_mediumContrast</item>
+ <item name="colorError">@color/md_theme_error_mediumContrast</item>
+ <item name="colorOnError">@color/md_theme_onError_mediumContrast</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer_mediumContrast</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer_mediumContrast</item>
+ <item name="android:colorBackground">@color/md_theme_background_mediumContrast</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground_mediumContrast</item>
+ <item name="colorSurface">@color/md_theme_surface_mediumContrast</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface_mediumContrast</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant_mediumContrast</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant_mediumContrast</item>
+ <item name="colorOutline">@color/md_theme_outline_mediumContrast</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant_mediumContrast</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface_mediumContrast</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface_mediumContrast</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary_mediumContrast</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed_mediumContrast</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed_mediumContrast</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim_mediumContrast</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant_mediumContrast</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed_mediumContrast</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed_mediumContrast</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim_mediumContrast</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant_mediumContrast</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed_mediumContrast</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed_mediumContrast</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim_mediumContrast</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant_mediumContrast</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim_mediumContrast</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright_mediumContrast</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest_mediumContrast</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow_mediumContrast</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer_mediumContrast</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh_mediumContrast</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest_mediumContrast</item>
+ </style>
+ <style name="ThemeOverlay.AppTheme.HighContrast" parent="Theme.Material3.Dark.NoActionBar">
+ <item name="colorPrimary">@color/md_theme_primary_highContrast</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary_highContrast</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer_highContrast</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer_highContrast</item>
+ <item name="colorSecondary">@color/md_theme_secondary_highContrast</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary_highContrast</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer_highContrast</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer_highContrast</item>
+ <item name="colorTertiary">@color/md_theme_tertiary_highContrast</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary_highContrast</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer_highContrast</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer_highContrast</item>
+ <item name="colorError">@color/md_theme_error_highContrast</item>
+ <item name="colorOnError">@color/md_theme_onError_highContrast</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer_highContrast</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer_highContrast</item>
+ <item name="android:colorBackground">@color/md_theme_background_highContrast</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground_highContrast</item>
+ <item name="colorSurface">@color/md_theme_surface_highContrast</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface_highContrast</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant_highContrast</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant_highContrast</item>
+ <item name="colorOutline">@color/md_theme_outline_highContrast</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant_highContrast</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface_highContrast</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface_highContrast</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary_highContrast</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed_highContrast</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed_highContrast</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim_highContrast</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant_highContrast</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed_highContrast</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed_highContrast</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim_highContrast</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant_highContrast</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed_highContrast</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed_highContrast</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim_highContrast</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant_highContrast</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim_highContrast</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright_highContrast</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest_highContrast</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow_highContrast</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer_highContrast</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh_highContrast</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest_highContrast</item>
+ </style>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/values-night/themes.xml b/org.fox.ttrss/src/main/res/values-night/themes.xml
new file mode 100644
index 00000000..7d54a029
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/values-night/themes.xml
@@ -0,0 +1,76 @@
+<resources>
+ <style name="AppTheme" parent="Theme.Material3.Dark.NoActionBar">
+ <item name="windowActionModeOverlay">true</item>
+ <item name="preferenceTheme">@style/AppPreferenceThemeOverlay</item>
+
+ <item name="ic_rss_box">@drawable/baseline_rss_feed_24</item>
+ <item name="ic_checkbox_marked">@drawable/baseline_check_box_24</item>
+ <item name="ic_star">@drawable/baseline_star_24</item>
+ <item name="ic_star_outline">@drawable/baseline_star_outline_24</item>
+ <item name="ic_share">@drawable/baseline_share_24</item>
+ <item name="ic_inbox">@drawable/baseline_inbox_24</item>
+ <item name="ic_go_back">@drawable/baseline_arrow_back_24</item>
+ <item name="ic_settings">@drawable/baseline_settings_24</item>
+ <item name="ic_filter_variant">@drawable/baseline_filter_alt_24</item>
+ <item name="ic_cloud_download">@drawable/baseline_cloud_download_24</item>
+ <item name="ic_cloud_upload">@drawable/baseline_cloud_upload_24</item>
+ <item name="ic_archive">@drawable/baseline_archive_24</item>
+ <item name="ic_fresh">@drawable/baseline_local_fire_department_24</item>
+ <item name="ic_restore">@drawable/baseline_restore_24</item>
+ <item name="ic_folder_outline">@drawable/baseline_folder_open_24</item>
+ <item name="ic_dots_vertical">@drawable/baseline_more_vert_24</item>
+ <item name="ic_dots_vertical_circle">@drawable/outline_more_24</item>
+ <item name="ic_attachment">@drawable/baseline_attachment_24</item>
+ <item name="ic_attachment_vert">@drawable/baseline_attach_file_24</item>
+ <item name="ic_action_trending_up">@drawable/baseline_trending_up_24</item>
+ <item name="ic_action_trending_flat">@drawable/baseline_trending_flat_24</item>
+ <item name="ic_action_trending_down">@drawable/baseline_trending_down_24</item>
+
+ <item name="colorPrimary">@color/md_theme_primary</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer</item>
+ <item name="colorSecondary">@color/md_theme_secondary</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer</item>
+ <item name="colorTertiary">@color/md_theme_tertiary</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer</item>
+ <item name="colorError">@color/md_theme_error</item>
+ <item name="colorOnError">@color/md_theme_onError</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer</item>
+ <item name="android:colorBackground">@color/md_theme_background</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground</item>
+ <item name="colorSurface">@color/md_theme_surface</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant</item>
+ <item name="colorOutline">@color/md_theme_outline</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest</item>
+ </style>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/values-v11/style.xml b/org.fox.ttrss/src/main/res/values-v11/style.xml
deleted file mode 100644
index 54a7530e..00000000
--- a/org.fox.ttrss/src/main/res/values-v11/style.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
-
- <style name="DarkDialogTheme" parent="android:Theme.Holo.Dialog">
- </style>
-
-</resources> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values-v21/style.xml b/org.fox.ttrss/src/main/res/values-v21/style.xml
deleted file mode 100755
index 3e26f96f..00000000
--- a/org.fox.ttrss/src/main/res/values-v21/style.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
- <style name="AppTheme.Base" parent="Theme.AppCompat.DayNight.NoActionBar">
- <item name="android:windowDrawsSystemBarBackgrounds">true</item>
- <item name="android:statusBarColor">@android:color/transparent</item>
- <item name="android:windowBackground">@color/window_background</item>
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- </style>
-
- <!-- <style name="DarkTheme.Base" parent="Theme.AppCompat.NoActionBar">
- <item name="android:windowDrawsSystemBarBackgrounds">true</item>
- <item name="android:statusBarColor">@android:color/transparent</item>
- <item name="android:windowBackground">@color/window_background_dark</item>
- <item name="android:navigationBarColor">@android:color/black</item>
- </style> -->
-
- <style name="DarkDialogTheme" parent="android:Theme.Material.Dialog">
- </style>
-
-</resources> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values/attrs.xml b/org.fox.ttrss/src/main/res/values/attrs.xml
index 93892545..daf2323c 100755
--- a/org.fox.ttrss/src/main/res/values/attrs.xml
+++ b/org.fox.ttrss/src/main/res/values/attrs.xml
@@ -1,35 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <attr name="ttrssHorizontalDivider" format="reference|color" />
- <attr name="feedlistBackground" format="reference|color" />
- <attr name="unreadCounterColor" format="reference|color" />
- <attr name="headlinesBackground" format="reference|color" />
- <attr name="articleBackground" format="reference|color" />
- <attr name="headlineSelectedBackground" format="reference|color" />
- <attr name="headlineUnreadBackground" 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="headlineHeaderBackground" 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="articleNoteBackground" format="reference|color" />
- <attr name="articleNoteTextColor" format="reference|color" />
- <!-- <attr name="statusBarHintColor" format="reference|color" /> -->
- <attr name="parentBtnBackground" format="reference|color" />
- <attr name="articleHeader" format="reference|color" />
- <attr name="articleHeaderTextColor" format="reference|color" />
- <attr name="articleTextColor" format="reference|color" />
- <attr name="headlineFooterColor" format="reference|color" />
- <attr name="articleHeaderSeparator" format="reference|color" />
<attr name="ic_rss_box" format="reference"/>
<attr name="ic_checkbox_marked" format="reference" />
<attr name="ic_star" format="reference" />
diff --git a/org.fox.ttrss/src/main/res/values/colors.xml b/org.fox.ttrss/src/main/res/values/colors.xml
index d87ac346..795cbaec 100755..100644
--- a/org.fox.ttrss/src/main/res/values/colors.xml
+++ b/org.fox.ttrss/src/main/res/values/colors.xml
@@ -1,6 +1,143 @@
-<?xml version="1.0" encoding="utf-8"?>
<resources>
- <item name="window_background" type="color">#216d96</item>
- <item name="window_background_dark" type="color">#18506e</item>
- <item name="window_background_amber" type="color">#6e4b1a</item>
-</resources> \ No newline at end of file
+ <color name="md_theme_primary">#226488</color>
+ <color name="md_theme_onPrimary">#FFFFFF</color>
+ <color name="md_theme_primaryContainer">#C7E7FF</color>
+ <color name="md_theme_onPrimaryContainer">#004C6C</color>
+ <color name="md_theme_secondary">#4F616E</color>
+ <color name="md_theme_onSecondary">#FFFFFF</color>
+ <color name="md_theme_secondaryContainer">#D2E5F5</color>
+ <color name="md_theme_onSecondaryContainer">#374955</color>
+ <color name="md_theme_tertiary">#8F4B38</color>
+ <color name="md_theme_onTertiary">#FFFFFF</color>
+ <color name="md_theme_tertiaryContainer">#FFDBD1</color>
+ <color name="md_theme_onTertiaryContainer">#723523</color>
+ <color name="md_theme_error">#BA1A1A</color>
+ <color name="md_theme_onError">#FFFFFF</color>
+ <color name="md_theme_errorContainer">#FFDAD6</color>
+ <color name="md_theme_onErrorContainer">#93000A</color>
+ <color name="md_theme_background">#F6FAFE</color>
+ <color name="md_theme_onBackground">#181C20</color>
+ <color name="md_theme_surface">#F6FAFE</color>
+ <color name="md_theme_onSurface">#181C20</color>
+ <color name="md_theme_surfaceVariant">#DDE3EA</color>
+ <color name="md_theme_onSurfaceVariant">#41484D</color>
+ <color name="md_theme_outline">#71787E</color>
+ <color name="md_theme_outlineVariant">#C1C7CE</color>
+ <color name="md_theme_scrim">#000000</color>
+ <color name="md_theme_inverseSurface">#2D3135</color>
+ <color name="md_theme_inverseOnSurface">#EEF1F6</color>
+ <color name="md_theme_inversePrimary">#93CDF6</color>
+ <color name="md_theme_primaryFixed">#C7E7FF</color>
+ <color name="md_theme_onPrimaryFixed">#001E2E</color>
+ <color name="md_theme_primaryFixedDim">#93CDF6</color>
+ <color name="md_theme_onPrimaryFixedVariant">#004C6C</color>
+ <color name="md_theme_secondaryFixed">#D2E5F5</color>
+ <color name="md_theme_onSecondaryFixed">#0B1D29</color>
+ <color name="md_theme_secondaryFixedDim">#B6C9D8</color>
+ <color name="md_theme_onSecondaryFixedVariant">#374955</color>
+ <color name="md_theme_tertiaryFixed">#FFDBD1</color>
+ <color name="md_theme_onTertiaryFixed">#3A0B01</color>
+ <color name="md_theme_tertiaryFixedDim">#FFB5A0</color>
+ <color name="md_theme_onTertiaryFixedVariant">#723523</color>
+ <color name="md_theme_surfaceDim">#D7DADF</color>
+ <color name="md_theme_surfaceBright">#F6FAFE</color>
+ <color name="md_theme_surfaceContainerLowest">#FFFFFF</color>
+ <color name="md_theme_surfaceContainerLow">#F1F4F9</color>
+ <color name="md_theme_surfaceContainer">#EBEEF3</color>
+ <color name="md_theme_surfaceContainerHigh">#E5E8ED</color>
+ <color name="md_theme_surfaceContainerHighest">#DFE3E7</color>
+ <color name="md_theme_primary_mediumContrast">#003A54</color>
+ <color name="md_theme_onPrimary_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_primaryContainer_mediumContrast">#357397</color>
+ <color name="md_theme_onPrimaryContainer_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_secondary_mediumContrast">#273844</color>
+ <color name="md_theme_onSecondary_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryContainer_mediumContrast">#5E6F7D</color>
+ <color name="md_theme_onSecondaryContainer_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_tertiary_mediumContrast">#5D2515</color>
+ <color name="md_theme_onTertiary_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryContainer_mediumContrast">#A15A46</color>
+ <color name="md_theme_onTertiaryContainer_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_error_mediumContrast">#740006</color>
+ <color name="md_theme_onError_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_errorContainer_mediumContrast">#CF2C27</color>
+ <color name="md_theme_onErrorContainer_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_background_mediumContrast">#F6FAFE</color>
+ <color name="md_theme_onBackground_mediumContrast">#181C20</color>
+ <color name="md_theme_surface_mediumContrast">#F6FAFE</color>
+ <color name="md_theme_onSurface_mediumContrast">#0D1215</color>
+ <color name="md_theme_surfaceVariant_mediumContrast">#DDE3EA</color>
+ <color name="md_theme_onSurfaceVariant_mediumContrast">#30373C</color>
+ <color name="md_theme_outline_mediumContrast">#4D5359</color>
+ <color name="md_theme_outlineVariant_mediumContrast">#676E74</color>
+ <color name="md_theme_scrim_mediumContrast">#000000</color>
+ <color name="md_theme_inverseSurface_mediumContrast">#2D3135</color>
+ <color name="md_theme_inverseOnSurface_mediumContrast">#EEF1F6</color>
+ <color name="md_theme_inversePrimary_mediumContrast">#93CDF6</color>
+ <color name="md_theme_primaryFixed_mediumContrast">#357397</color>
+ <color name="md_theme_onPrimaryFixed_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_primaryFixedDim_mediumContrast">#135A7E</color>
+ <color name="md_theme_onPrimaryFixedVariant_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryFixed_mediumContrast">#5E6F7D</color>
+ <color name="md_theme_onSecondaryFixed_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryFixedDim_mediumContrast">#455764</color>
+ <color name="md_theme_onSecondaryFixedVariant_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryFixed_mediumContrast">#A15A46</color>
+ <color name="md_theme_onTertiaryFixed_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryFixedDim_mediumContrast">#844230</color>
+ <color name="md_theme_onTertiaryFixedVariant_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceDim_mediumContrast">#C3C7CB</color>
+ <color name="md_theme_surfaceBright_mediumContrast">#F6FAFE</color>
+ <color name="md_theme_surfaceContainerLowest_mediumContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceContainerLow_mediumContrast">#F1F4F9</color>
+ <color name="md_theme_surfaceContainer_mediumContrast">#E5E8ED</color>
+ <color name="md_theme_surfaceContainerHigh_mediumContrast">#DADDE2</color>
+ <color name="md_theme_surfaceContainerHighest_mediumContrast">#CED2D7</color>
+ <color name="md_theme_primary_highContrast">#003046</color>
+ <color name="md_theme_onPrimary_highContrast">#FFFFFF</color>
+ <color name="md_theme_primaryContainer_highContrast">#004E70</color>
+ <color name="md_theme_onPrimaryContainer_highContrast">#FFFFFF</color>
+ <color name="md_theme_secondary_highContrast">#1D2E3A</color>
+ <color name="md_theme_onSecondary_highContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryContainer_highContrast">#3A4B58</color>
+ <color name="md_theme_onSecondaryContainer_highContrast">#FFFFFF</color>
+ <color name="md_theme_tertiary_highContrast">#501B0C</color>
+ <color name="md_theme_onTertiary_highContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryContainer_highContrast">#753725</color>
+ <color name="md_theme_onTertiaryContainer_highContrast">#FFFFFF</color>
+ <color name="md_theme_error_highContrast">#600004</color>
+ <color name="md_theme_onError_highContrast">#FFFFFF</color>
+ <color name="md_theme_errorContainer_highContrast">#98000A</color>
+ <color name="md_theme_onErrorContainer_highContrast">#FFFFFF</color>
+ <color name="md_theme_background_highContrast">#F6FAFE</color>
+ <color name="md_theme_onBackground_highContrast">#181C20</color>
+ <color name="md_theme_surface_highContrast">#F6FAFE</color>
+ <color name="md_theme_onSurface_highContrast">#000000</color>
+ <color name="md_theme_surfaceVariant_highContrast">#DDE3EA</color>
+ <color name="md_theme_onSurfaceVariant_highContrast">#000000</color>
+ <color name="md_theme_outline_highContrast">#262D32</color>
+ <color name="md_theme_outlineVariant_highContrast">#434A50</color>
+ <color name="md_theme_scrim_highContrast">#000000</color>
+ <color name="md_theme_inverseSurface_highContrast">#2D3135</color>
+ <color name="md_theme_inverseOnSurface_highContrast">#FFFFFF</color>
+ <color name="md_theme_inversePrimary_highContrast">#93CDF6</color>
+ <color name="md_theme_primaryFixed_highContrast">#004E70</color>
+ <color name="md_theme_onPrimaryFixed_highContrast">#FFFFFF</color>
+ <color name="md_theme_primaryFixedDim_highContrast">#00374F</color>
+ <color name="md_theme_onPrimaryFixedVariant_highContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryFixed_highContrast">#3A4B58</color>
+ <color name="md_theme_onSecondaryFixed_highContrast">#FFFFFF</color>
+ <color name="md_theme_secondaryFixedDim_highContrast">#233541</color>
+ <color name="md_theme_onSecondaryFixedVariant_highContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryFixed_highContrast">#753725</color>
+ <color name="md_theme_onTertiaryFixed_highContrast">#FFFFFF</color>
+ <color name="md_theme_tertiaryFixedDim_highContrast">#592111</color>
+ <color name="md_theme_onTertiaryFixedVariant_highContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceDim_highContrast">#B5B9BE</color>
+ <color name="md_theme_surfaceBright_highContrast">#F6FAFE</color>
+ <color name="md_theme_surfaceContainerLowest_highContrast">#FFFFFF</color>
+ <color name="md_theme_surfaceContainerLow_highContrast">#EEF1F6</color>
+ <color name="md_theme_surfaceContainer_highContrast">#DFE3E7</color>
+ <color name="md_theme_surfaceContainerHigh_highContrast">#D1D5D9</color>
+ <color name="md_theme_surfaceContainerHighest_highContrast">#C3C7CB</color>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/values/style.xml b/org.fox.ttrss/src/main/res/values/style.xml
index 033a9492..f97f66f8 100755..100644
--- a/org.fox.ttrss/src/main/res/values/style.xml
+++ b/org.fox.ttrss/src/main/res/values/style.xml
@@ -1,152 +1,34 @@
-<resources xmlns:android="http://schemas.android.com/apk/res/android">
-
- <style name="AppTheme.Base" parent="Theme.AppCompat.DayNight">
- <item name="android:windowNoTitle">true</item>
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
+<resources>
+ <style name="ShapeAppearanceArticleHeader">
+ <item name="cornerFamily">rounded</item>
+ <item name="cornerSizeTopLeft">0dp</item>
+ <item name="cornerSizeTopRight">0dp</item>
+ <item name="cornerSizeBottomLeft">16dp</item>
+ <item name="cornerSizeBottomRight">16dp</item>
</style>
- <style name="AppTheme" parent="AppTheme.Base">
- <item name="windowActionModeOverlay">true</item>
-
- <!-- <item name="statusBarHintColor">?colorPrimary</item> -->
- <item name="ttrssHorizontalDivider">@android:drawable/divider_horizontal_bright</item>
- <item name="feedlistBackground">#e0e0e0</item>
- <item name="unreadCounterColor">#909090</item>
- <item name="headlinesBackground">#f0f0f0</item>
- <item name="articleBackground">@android:color/white</item>
- <item name="headlineSelectedBackground">#dddddd</item>
- <item name="headlineHeaderBackground">#ccffffff</item>
- <item name="headlineUnreadBackground">@android:color/white</item>
- <item name="feedsSelectedBackground">#dddddd</item>
- <item name="feedlistTextColor">@android:color/black</item>
- <item name="feedlistSelectedTextColor">@android:color/black</item>
- <item name="headlineUnreadTextColor">@android:color/black</item>
- <item name="headlineSelectedTextColor">@android:color/black</item>
- <item name="headlineExcerptTextColor">#323232</item>
- <item name="headlineSecondaryTextColor">#909090</item>
- <item name="headlineSelectedSecondaryTextColor">?headlineSelectedExcerptTextColor</item>
- <item name="headlineSelectedExcerptTextColor">#323232</item>
- <item name="headlineTitleHighScoreUnreadTextColor">#008000</item>
- <item name="linkColor">?colorPrimary</item>
- <item name="loadingBackground">@android:color/white</item>
- <item name="articleNoteTextColor">#9a8c59</item>
- <item name="articleNoteBackground">#fff7d5</item>
- <item name="parentBtnBackground">#dddddd</item>
- <item name="articleHeader">@android:color/transparent</item>
- <item name="articleHeaderTextColor">@android:color/black</item>
- <item name="articleTextColor">@android:color/black</item>
- <!-- <item name="floatingActionButtonStyle">@style/FabTheme</item> -->
- <item name="headlineFooterColor">?colorPrimary</item>
- <item name="articleHeaderSeparator">#cccccc</item>
-
- <item name="colorPrimary">#257eae</item>
- <item name="colorPrimaryDark">#216d96</item>
- <item name="colorAccent">#F4511E</item>
-
- <item name="ic_rss_box">@drawable/ic_rss_box_dark</item>
- <item name="ic_checkbox_marked">@drawable/ic_checkbox_marked_dark</item>
- <item name="ic_star">@drawable/ic_star_dark</item>
- <item name="ic_star_outline">@drawable/ic_star_outline_dark</item>
- <item name="ic_share">@drawable/ic_share_dark</item>
- <item name="ic_inbox">@drawable/ic_inbox_dark</item>
- <item name="ic_go_back">@drawable/ic_go_back_dark</item>
- <item name="ic_settings">@drawable/ic_settings_dark</item>
- <item name="ic_filter_variant">@drawable/ic_filter_variant_dark</item>
- <item name="ic_cloud_download">@drawable/ic_cloud_download_dark</item>
- <item name="ic_cloud_upload">@drawable/ic_cloud_upload_dark</item>
- <item name="ic_archive">@drawable/ic_archive_dark</item>
- <item name="ic_fresh">@drawable/ic_fresh_dark</item>
- <item name="ic_restore">@drawable/ic_restore_dark</item>
- <item name="ic_folder_outline">@drawable/ic_folder_outline_dark</item>
- <item name="ic_dots_vertical">@drawable/ic_dots_vertical_dark</item>
- <item name="ic_dots_vertical_circle">@drawable/ic_dots_vertical_circle_dark</item>
- <item name="ic_attachment">@drawable/ic_attachment_dark</item>
- <item name="ic_attachment_vert">@drawable/ic_attachment_vert_dark</item>
- <item name="ic_action_trending_up">@drawable/ic_action_trending_up_dark</item>
- <item name="ic_action_trending_flat">@drawable/ic_action_trending_flat_dark</item>
- <item name="ic_action_trending_down">@drawable/ic_action_trending_down_dark</item>
-
- <item name="drawer_header">@drawable/drawer_header</item>
+ <style name="ShapeAppearanceFeedsTablet">
+ <item name="cornerFamily">rounded</item>
+ <item name="cornerSizeTopLeft">0dp</item>
+ <item name="cornerSizeTopRight">16dp</item>
+ <item name="cornerSizeBottomLeft">0dp</item>
+ <item name="cornerSizeBottomRight">16dp</item>
</style>
- <!--
- <style name="DarkTheme.Base" parent="Theme.AppCompat.NoActionBar">
-
+ <style name="ShapeAppearanceHeadlinesTablet">
+ <item name="cornerFamily">rounded</item>
+ <item name="cornerSizeTopLeft">0dp</item>
+ <item name="cornerSizeTopRight">16dp</item>
+ <item name="cornerSizeBottomLeft">0dp</item>
+ <item name="cornerSizeBottomRight">0dp</item>
</style>
- <style name="AmberTheme" parent="DarkTheme">
- <item name="colorPrimary">#b87d2c</item>
- <item name="colorPrimaryDark">#6e4b1a</item>
- <item name="android:windowBackground">@color/window_background_amber</item>
- <item name="drawer_header">@drawable/drawer_header_amber</item>
+ <!-- https://stackoverflow.com/a/73782598 -->
+ <style name="AppPreferenceThemeOverlay" parent="@style/PreferenceThemeOverlay">
+ <item name="switchPreferenceCompatStyle">@style/AppSwitchPreference</item>
</style>
- <style name="DarkTheme" parent="DarkTheme.Base">
- <item name="windowActionModeOverlay">true</item> -->
-
- <!-- <item name="statusBarHintColor">?colorPrimary</item> -->
- <!-- <item name="unreadCounterColor">#909090</item>
- <item name="feedlistTextColor">@android:color/white</item>
- <item name="headlineUnreadTextColor">@android:color/white</item>
- <item name="headlineSelectedTextColor">@android:color/white</item>
- <item name="headlineExcerptTextColor">#bebebe</item>
- <item name="headlineSecondaryTextColor">#909090</item>
- <item name="headlineTitleHighScoreUnreadTextColor">#00FF00</item>
- <item name="headlineSelectedExcerptTextColor">#bebebe</item>
- <item name="headlineSelectedSecondaryTextColor">?headlineSelectedExcerptTextColor</item>
- <item name="headlineSelectedBackground">#1c1c1c</item>
- <item name="headlineHeaderBackground">#99000000</item>
- <item name="headlineUnreadBackground">#101010</item>
- <item name="linkColor">#2d92c8</item>
- <item name="loadingBackground">@android:color/black</item>
- <item name="articleNoteTextColor">#bebebe</item>
- <item name="articleNoteBackground">#303030</item>
- <item name="parentBtnBackground">#101010</item>
- <item name="ttrssHorizontalDivider">@android:drawable/divider_horizontal_dark</item>
- <item name="feedlistBackground">#1c1d1e</item>
- <item name="headlinesBackground">#1c1d1e</item>
- <item name="articleBackground">@android:color/black</item>
- <item name="feedsSelectedBackground">#1c1c1c</item>
- <item name="feedlistSelectedTextColor">@android:color/white</item>
- <item name="articleHeader">@android:color/transparent</item>
- <item name="articleHeaderTextColor">@android:color/white</item>
- <item name="floatingActionButtonStyle">@style/FabTheme</item>
- <item name="articleTextColor">#e0e0e0</item>
- <item name="headlineFooterColor">?colorPrimary</item>
- <item name="articleHeaderSeparator">#303030</item>
-
- <item name="colorPrimary">#1e6286</item>
- <item name="colorPrimaryDark">#18506e</item>
- <item name="colorAccent">#D84315</item>
-
- <item name="ic_rss_box">@drawable/ic_rss_box</item>
- <item name="ic_checkbox_marked">@drawable/ic_checkbox_marked</item>
- <item name="ic_star">@drawable/ic_star</item>
- <item name="ic_star_outline">@drawable/ic_star_outline</item>
- <item name="ic_share">@drawable/ic_share</item>
- <item name="ic_inbox">@drawable/ic_inbox</item>
- <item name="ic_go_back">@drawable/ic_go_back</item>
- <item name="ic_settings">@drawable/ic_settings</item>
- <item name="ic_filter_variant">@drawable/ic_filter_variant</item>
- <item name="ic_cloud_download">@drawable/ic_cloud_download</item>
- <item name="ic_cloud_upload">@drawable/ic_cloud_upload</item>
- <item name="ic_archive">@drawable/ic_archive</item>
- <item name="ic_fresh">@drawable/ic_fresh</item>
- <item name="ic_restore">@drawable/ic_restore</item>
- <item name="ic_folder_outline">@drawable/ic_folder_outline</item>
- <item name="ic_dots_vertical">@drawable/ic_dots_vertical</item>
- <item name="ic_dots_vertical_circle">@drawable/ic_dots_vertical_circle</item>
- <item name="ic_attachment">@drawable/ic_attachment</item>
- <item name="ic_attachment_vert">@drawable/ic_attachment_vert</item>
-
- <item name="drawer_header">@drawable/drawer_header_dark</item>
- </style> -->
-
- <style name="DarkDialogTheme" parent="android:Theme"></style>
-
- <!-- <style name="FabTheme" parent="FloatingActionButton">
- <item name="floatingActionButtonColor">?colorPrimaryDark</item>
- </style> -->
-
+ <style name="AppSwitchPreference" parent="@style/Preference.SwitchPreferenceCompat.Material">
+ <item name="widgetLayout">@layout/preference_material_switch</item>
+ </style>
</resources> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/values/theme_overlays.xml b/org.fox.ttrss/src/main/res/values/theme_overlays.xml
new file mode 100644
index 00000000..e81f18fb
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/values/theme_overlays.xml
@@ -0,0 +1,98 @@
+<resources>
+ <style name="ThemeOverlay.AppTheme.MediumContrast" parent="Theme.Material3.Light.NoActionBar">
+ <item name="colorPrimary">@color/md_theme_primary_mediumContrast</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary_mediumContrast</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer_mediumContrast</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer_mediumContrast</item>
+ <item name="colorSecondary">@color/md_theme_secondary_mediumContrast</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary_mediumContrast</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer_mediumContrast</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer_mediumContrast</item>
+ <item name="colorTertiary">@color/md_theme_tertiary_mediumContrast</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary_mediumContrast</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer_mediumContrast</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer_mediumContrast</item>
+ <item name="colorError">@color/md_theme_error_mediumContrast</item>
+ <item name="colorOnError">@color/md_theme_onError_mediumContrast</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer_mediumContrast</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer_mediumContrast</item>
+ <item name="android:colorBackground">@color/md_theme_background_mediumContrast</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground_mediumContrast</item>
+ <item name="colorSurface">@color/md_theme_surface_mediumContrast</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface_mediumContrast</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant_mediumContrast</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant_mediumContrast</item>
+ <item name="colorOutline">@color/md_theme_outline_mediumContrast</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant_mediumContrast</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface_mediumContrast</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface_mediumContrast</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary_mediumContrast</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed_mediumContrast</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed_mediumContrast</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim_mediumContrast</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant_mediumContrast</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed_mediumContrast</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed_mediumContrast</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim_mediumContrast</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant_mediumContrast</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed_mediumContrast</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed_mediumContrast</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim_mediumContrast</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant_mediumContrast</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim_mediumContrast</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright_mediumContrast</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest_mediumContrast</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow_mediumContrast</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer_mediumContrast</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh_mediumContrast</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest_mediumContrast</item>
+ </style>
+ <style name="ThemeOverlay.AppTheme.HighContrast" parent="Theme.Material3.Light.NoActionBar">
+ <item name="colorPrimary">@color/md_theme_primary_highContrast</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary_highContrast</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer_highContrast</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer_highContrast</item>
+ <item name="colorSecondary">@color/md_theme_secondary_highContrast</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary_highContrast</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer_highContrast</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer_highContrast</item>
+ <item name="colorTertiary">@color/md_theme_tertiary_highContrast</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary_highContrast</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer_highContrast</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer_highContrast</item>
+ <item name="colorError">@color/md_theme_error_highContrast</item>
+ <item name="colorOnError">@color/md_theme_onError_highContrast</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer_highContrast</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer_highContrast</item>
+ <item name="android:colorBackground">@color/md_theme_background_highContrast</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground_highContrast</item>
+ <item name="colorSurface">@color/md_theme_surface_highContrast</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface_highContrast</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant_highContrast</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant_highContrast</item>
+ <item name="colorOutline">@color/md_theme_outline_highContrast</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant_highContrast</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface_highContrast</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface_highContrast</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary_highContrast</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed_highContrast</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed_highContrast</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim_highContrast</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant_highContrast</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed_highContrast</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed_highContrast</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim_highContrast</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant_highContrast</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed_highContrast</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed_highContrast</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim_highContrast</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant_highContrast</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim_highContrast</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright_highContrast</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest_highContrast</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow_highContrast</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer_highContrast</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh_highContrast</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest_highContrast</item>
+ </style>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/values/themes.xml b/org.fox.ttrss/src/main/res/values/themes.xml
new file mode 100644
index 00000000..68a57811
--- /dev/null
+++ b/org.fox.ttrss/src/main/res/values/themes.xml
@@ -0,0 +1,77 @@
+<resources>
+
+ <style name="AppTheme" parent="Theme.Material3.Light.NoActionBar">
+ <item name="windowActionModeOverlay">true</item>
+ <item name="preferenceTheme">@style/AppPreferenceThemeOverlay</item>
+
+ <item name="ic_rss_box">@drawable/baseline_rss_feed_24</item>
+ <item name="ic_checkbox_marked">@drawable/baseline_check_box_24</item>
+ <item name="ic_star">@drawable/baseline_star_24</item>
+ <item name="ic_star_outline">@drawable/baseline_star_outline_24</item>
+ <item name="ic_share">@drawable/baseline_share_24</item>
+ <item name="ic_inbox">@drawable/baseline_inbox_24</item>
+ <item name="ic_go_back">@drawable/baseline_arrow_back_24</item>
+ <item name="ic_settings">@drawable/baseline_settings_24</item>
+ <item name="ic_filter_variant">@drawable/baseline_filter_alt_24</item>
+ <item name="ic_cloud_download">@drawable/baseline_cloud_download_24</item>
+ <item name="ic_cloud_upload">@drawable/baseline_cloud_upload_24</item>
+ <item name="ic_archive">@drawable/baseline_archive_24</item>
+ <item name="ic_fresh">@drawable/baseline_local_fire_department_24</item>
+ <item name="ic_restore">@drawable/baseline_restore_24</item>
+ <item name="ic_folder_outline">@drawable/baseline_folder_open_24</item>
+ <item name="ic_dots_vertical">@drawable/baseline_more_vert_24</item>
+ <item name="ic_dots_vertical_circle">@drawable/outline_more_24</item>
+ <item name="ic_attachment">@drawable/baseline_attachment_24</item>
+ <item name="ic_attachment_vert">@drawable/baseline_attach_file_24</item>
+ <item name="ic_action_trending_up">@drawable/baseline_trending_up_24</item>
+ <item name="ic_action_trending_flat">@drawable/baseline_trending_flat_24</item>
+ <item name="ic_action_trending_down">@drawable/baseline_trending_down_24</item>
+
+ <item name="colorPrimary">@color/md_theme_primary</item>
+ <item name="colorOnPrimary">@color/md_theme_onPrimary</item>
+ <item name="colorPrimaryContainer">@color/md_theme_primaryContainer</item>
+ <item name="colorOnPrimaryContainer">@color/md_theme_onPrimaryContainer</item>
+ <item name="colorSecondary">@color/md_theme_secondary</item>
+ <item name="colorOnSecondary">@color/md_theme_onSecondary</item>
+ <item name="colorSecondaryContainer">@color/md_theme_secondaryContainer</item>
+ <item name="colorOnSecondaryContainer">@color/md_theme_onSecondaryContainer</item>
+ <item name="colorTertiary">@color/md_theme_tertiary</item>
+ <item name="colorOnTertiary">@color/md_theme_onTertiary</item>
+ <item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer</item>
+ <item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer</item>
+ <item name="colorError">@color/md_theme_error</item>
+ <item name="colorOnError">@color/md_theme_onError</item>
+ <item name="colorErrorContainer">@color/md_theme_errorContainer</item>
+ <item name="colorOnErrorContainer">@color/md_theme_onErrorContainer</item>
+ <item name="android:colorBackground">@color/md_theme_background</item>
+ <item name="colorOnBackground">@color/md_theme_onBackground</item>
+ <item name="colorSurface">@color/md_theme_surface</item>
+ <item name="colorOnSurface">@color/md_theme_onSurface</item>
+ <item name="colorSurfaceVariant">@color/md_theme_surfaceVariant</item>
+ <item name="colorOnSurfaceVariant">@color/md_theme_onSurfaceVariant</item>
+ <item name="colorOutline">@color/md_theme_outline</item>
+ <item name="colorOutlineVariant">@color/md_theme_outlineVariant</item>
+ <item name="colorSurfaceInverse">@color/md_theme_inverseSurface</item>
+ <item name="colorOnSurfaceInverse">@color/md_theme_inverseOnSurface</item>
+ <item name="colorPrimaryInverse">@color/md_theme_inversePrimary</item>
+ <item name="colorPrimaryFixed">@color/md_theme_primaryFixed</item>
+ <item name="colorOnPrimaryFixed">@color/md_theme_onPrimaryFixed</item>
+ <item name="colorPrimaryFixedDim">@color/md_theme_primaryFixedDim</item>
+ <item name="colorOnPrimaryFixedVariant">@color/md_theme_onPrimaryFixedVariant</item>
+ <item name="colorSecondaryFixed">@color/md_theme_secondaryFixed</item>
+ <item name="colorOnSecondaryFixed">@color/md_theme_onSecondaryFixed</item>
+ <item name="colorSecondaryFixedDim">@color/md_theme_secondaryFixedDim</item>
+ <item name="colorOnSecondaryFixedVariant">@color/md_theme_onSecondaryFixedVariant</item>
+ <item name="colorTertiaryFixed">@color/md_theme_tertiaryFixed</item>
+ <item name="colorOnTertiaryFixed">@color/md_theme_onTertiaryFixed</item>
+ <item name="colorTertiaryFixedDim">@color/md_theme_tertiaryFixedDim</item>
+ <item name="colorOnTertiaryFixedVariant">@color/md_theme_onTertiaryFixedVariant</item>
+ <item name="colorSurfaceDim">@color/md_theme_surfaceDim</item>
+ <item name="colorSurfaceBright">@color/md_theme_surfaceBright</item>
+ <item name="colorSurfaceContainerLowest">@color/md_theme_surfaceContainerLowest</item>
+ <item name="colorSurfaceContainerLow">@color/md_theme_surfaceContainerLow</item>
+ <item name="colorSurfaceContainer">@color/md_theme_surfaceContainer</item>
+ <item name="colorSurfaceContainerHigh">@color/md_theme_surfaceContainerHigh</item>
+ <item name="colorSurfaceContainerHighest">@color/md_theme_surfaceContainerHighest</item>
+ </style>
+</resources>
diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml
index 41d6c9ef..3c422e7e 100755
--- a/org.fox.ttrss/src/main/res/xml/preferences.xml
+++ b/org.fox.ttrss/src/main/res/xml/preferences.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory android:title="@string/connection" >
<EditTextPreference
@@ -22,12 +23,6 @@
android:title="@string/ttrss_url" >
</EditTextPreference>
- <org.fox.ttrss.util.LessBrokenSwitchPreference
- android:defaultValue="true"
- android:key="check_for_updates"
- android:summary="@string/check_for_updates_summary"
- android:title="@string/check_for_updates" />
-
<Preference
android:key="network_settings"
android:title="@string/prefs_network_settings" />
@@ -43,20 +38,17 @@
android:key="theme"
android:title="@string/pref_theme" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="sort_feeds_by_unread"
android:title="@string/sort_feeds_by_unread" />
- <!-- <org.fox.ttrss.util.LessBrokenSwitchPreference
- android:defaultValue="false"
- android:key="download_feed_icons"
- android:title="@string/download_feed_icons" /> -->
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="enable_cats"
android:title="@string/enable_cats" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:dependency="enable_cats"
android:key="browse_cats_like_feeds"
@@ -70,7 +62,7 @@
android:key="open_on_startup"
android:title="@string/open_on_startup" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="force_phone_layout"
android:summary="@string/force_phone_layout_summary"
@@ -81,10 +73,12 @@
android:key="category_headlines"
android:title="@string/headlines" >
- <org.fox.ttrss.util.FontSizeDialogPreference
- android:defaultValue="13"
- android:key="headlines_font_size_sp"
- android:dialogMessage="@string/pref_headline_font_size"
+ <SeekBarPreference
+ app:defaultValue="13"
+ app:min="12"
+ android:max="21"
+ app:showSeekBarValue="true"
+ app:key="headlines_font_size_sp_int"
android:title="@string/pref_headline_font_size" />
<ListPreference
@@ -95,36 +89,30 @@
android:summary="@string/prefs_headline_display_mode_long"
android:title="@string/prefs_headline_display_mode" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="headline_images_wifi_only"
android:summary="@string/prefs_headline_images_wifi_only_long"
android:title="@string/prefs_headline_images_wifi_only" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="headlines_show_content"
android:title="@string/pref_headlines_show_content" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:disableDependentsState="true"
android:key="headlines_mark_read_scroll"
android:title="@string/pref_headlines_mark_read_scroll" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:dependency="headlines_mark_read_scroll"
android:key="headlines_swipe_to_dismiss"
android:summary="@string/pref_headlines_swipe_to_dismiss_long"
android:title="@string/pref_headlines_swipe_to_dismiss" />
- <!-- <org.fox.ttrss.util.LessBrokenSwitchPreference
- 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" /> -->
-
<ListPreference
android:defaultValue="15"
android:entries="@array/pref_headlines_request_values"
@@ -133,20 +121,20 @@
android:summary="@string/prefs_headline_request_size_long"
android:title="@string/prefs_headline_request_size" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="enable_image_downsampling"
android:title="@string/prefs_enable_image_downsampling"
android:summary="@string/prefs_enable_image_downsampling_long" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="always_downsample_images"
android:dependency="enable_image_downsampling"
android:title="@string/prefs_always_downsample_images"
android:summary="@string/prefs_always_downsample_images_long" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="inline_video_player"
android:summary="@string/prefs_inline_video_player"
@@ -155,37 +143,39 @@
</PreferenceCategory>
<PreferenceCategory android:title="@string/reading" >
- <org.fox.ttrss.util.FontSizeDialogPreference
- android:defaultValue="16"
- android:key="article_font_size_sp"
- android:inputType="number"
+ <SeekBarPreference
+ app:defaultValue="16"
+ app:min="12"
+ android:max="32"
+ app:showSeekBarValue="true"
+ app:key="article_font_size_sp_int"
android:title="@string/pref_font_size" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="justify_article_text"
android:title="@string/justify_article_text" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="use_volume_keys"
android:summary="@string/use_volume_keys_long"
android:title="@string/use_volume_keys" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="enable_article_fab"
android:summary="@string/prefs_enable_fab_long"
android:title="@string/prefs_enable_fab" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/prefs_opening_links" >
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="enable_custom_tabs"
android:summary="@string/prefs_custom_tabs_summary"
android:title="@string/prefs_use_custom_tabs" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="custom_tabs_ask_always"
android:title="@string/ask_me_every_time" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="always_open_uri"
android:summary="@string/prefs_always_open_uri_summary"
@@ -200,12 +190,12 @@
android:summary="@string/offline_articles_to_download_long"
android:title="@string/offline_articles_to_download" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="offline_sort_by_feed"
android:title="@string/prefs_offline_sort_by_feed" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="offline_image_cache_enabled"
android:summary="@string/offline_media_cache_enabled_summary"
@@ -227,7 +217,7 @@
android:key="widget_background"
android:title="@string/pref_widget_background" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="true"
android:key="widget_show_fresh"
android:title="@string/prefs_widget_show_fresh"
@@ -239,7 +229,7 @@
android:key="show_logcat"
android:title="@string/logcat_title" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
+ <SwitchPreferenceCompat
android:defaultValue="false"
android:key="transport_debugging"
android:title="@string/transport_debugging" />