From 09a39a851ec50e2b37e8efc8cd36571910c43973 Mon Sep 17 00:00:00 2001 From: HapeLee <1321903405@qq.com> Date: Sun, 1 Jun 2025 23:22:43 +0800 Subject: [PATCH] Update UI Style --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 2 +- app/src/main/java/io/legado/app/App.kt | 2 + .../java/io/legado/app/base/BaseActivity.kt | 63 +- .../app/base/BaseBottomSheetDialogFragment.kt | 77 +++ .../io/legado/app/base/BaseDialogFragment.kt | 57 +- .../java/io/legado/app/base/BaseFragment.kt | 8 +- .../legado/app/base/BasePrefDialogFragment.kt | 41 +- .../java/io/legado/app/constant/PreferKey.kt | 6 +- .../io/legado/app/help/config/AppConfig.kt | 26 +- .../legado/app/help/config/ReadBookConfig.kt | 13 +- .../io/legado/app/help/config/ThemeConfig.kt | 9 +- .../app/lib/dialogs/AndroidAlertBuilder.kt | 3 +- .../app/lib/prefs/EditTextPreference.kt | 4 +- .../app/lib/prefs/EditTextPreferenceDialog.kt | 26 +- .../app/lib/prefs/IconListPreference.kt | 8 +- .../app/lib/prefs/ListPreferenceDialog.kt | 26 +- .../prefs/MultiSelectListPreferenceDialog.kt | 26 +- .../app/lib/prefs/NameListPreference.kt | 10 +- .../io/legado/app/lib/prefs/Preference.kt | 20 +- .../app/lib/prefs/PreferenceCategory.kt | 26 +- .../legado/app/lib/prefs/SwitchPreference.kt | 5 +- .../app/lib/theme/MaterialValueHelper.kt | 130 ---- .../io/legado/app/lib/theme/ThemeStore.kt | 15 +- .../app/lib/theme/ThemeStorePrefKeys.kt | 7 + .../theme/view/ThemeBottomNavigationVIew.kt | 26 +- .../app/lib/theme/view/ThemeCheckBox.kt | 15 +- .../app/lib/theme/view/ThemeEditText.kt | 18 +- .../app/lib/theme/view/ThemeProgressBar.kt | 12 +- .../app/lib/theme/view/ThemeRadioButton.kt | 15 +- .../app/lib/theme/view/ThemeRadioNoButton.kt | 106 +-- .../legado/app/lib/theme/view/ThemeSeekBar.kt | 19 - .../legado/app/lib/theme/view/ThemeSlider.kt | 19 + .../legado/app/lib/theme/view/ThemeSwitch.kt | 18 +- .../io/legado/app/ui/about/AboutActivity.kt | 18 +- .../io/legado/app/ui/about/AppLogDialog.kt | 4 +- .../io/legado/app/ui/about/CrashLogsDialog.kt | 4 +- .../legado/app/ui/about/ReadRecordActivity.kt | 4 +- .../io/legado/app/ui/about/UpdateDialog.kt | 4 +- .../ui/association/ImportBookSourceDialog.kt | 10 +- .../ui/association/ImportDictRuleDialog.kt | 10 +- .../app/ui/association/ImportHttpTtsDialog.kt | 10 +- .../ui/association/ImportReplaceRuleDialog.kt | 10 +- .../ui/association/ImportRssSourceDialog.kt | 10 +- .../app/ui/association/ImportThemeDialog.kt | 13 +- .../ui/association/ImportTxtTocRuleDialog.kt | 10 +- .../ui/association/OpenUrlConfirmDialog.kt | 4 +- .../ui/association/VerificationCodeDialog.kt | 4 +- .../app/ui/book/audio/AudioPlayActivity.kt | 57 +- .../app/ui/book/audio/TimerSliderPopup.kt | 32 +- .../ui/book/bookmark/BookmarkDecoration.kt | 8 +- .../app/ui/book/bookmark/BookmarkDialog.kt | 4 +- .../legado/app/ui/book/cache/CacheAdapter.kt | 16 +- .../ui/book/changecover/ChangeCoverDialog.kt | 4 +- .../changesource/ChangeBookSourceDialog.kt | 15 +- .../changesource/ChangeChapterSourceDialog.kt | 7 +- .../changesource/ChangeChapterTocAdapter.kt | 4 +- .../app/ui/book/group/GroupEditDialog.kt | 9 +- .../app/ui/book/group/GroupManageDialog.kt | 17 +- .../app/ui/book/group/GroupSelectDialog.kt | 17 +- .../ui/book/import/BaseImportBookActivity.kt | 4 +- .../book/import/local/ImportBookActivity.kt | 4 +- .../book/import/remote/RemoteBookActivity.kt | 4 +- .../book/import/remote/ServerConfigDialog.kt | 4 +- .../ui/book/import/remote/ServersDialog.kt | 8 +- .../app/ui/book/info/BookInfoActivity.kt | 6 +- .../legado/app/ui/book/manage/BookAdapter.kt | 4 +- .../ui/book/manage/BookshelfManageActivity.kt | 8 +- .../app/ui/book/manage/SourcePickerDialog.kt | 8 +- .../app/ui/book/read/BaseReadBookActivity.kt | 34 +- .../app/ui/book/read/ContentEditDialog.kt | 4 +- .../ui/book/read/EffectiveReplacesDialog.kt | 4 +- .../io/legado/app/ui/book/read/MangaMenu.kt | 38 +- .../app/ui/book/read/ReadBookActivity.kt | 6 +- .../io/legado/app/ui/book/read/ReadMenu.kt | 221 +++--- .../io/legado/app/ui/book/read/SearchMenu.kt | 46 +- .../app/ui/book/read/config/AutoReadDialog.kt | 75 ++- .../ui/book/read/config/BgTextConfigDialog.kt | 57 +- .../ui/book/read/config/ChineseConverter.kt | 14 +- .../ui/book/read/config/HttpTtsEditDialog.kt | 4 +- .../ui/book/read/config/MoreConfigDialog.kt | 28 +- .../book/read/config/PaddingConfigDialog.kt | 19 +- .../app/ui/book/read/config/PageKeyDialog.kt | 4 +- .../book/read/config/ReadAloudConfigDialog.kt | 12 +- .../ui/book/read/config/ReadAloudDialog.kt | 182 ++--- .../ui/book/read/config/ReadStyleDialog.kt | 76 ++- .../ui/book/read/config/SpeakEngineDialog.kt | 8 +- .../read/config/TextFontWeightConverter.kt | 16 +- .../app/ui/book/search/SearchActivity.kt | 22 +- .../app/ui/book/search/SearchScopeDialog.kt | 4 +- .../searchContent/SearchContentActivity.kt | 20 +- .../searchContent/SearchContentAdapter.kt | 6 +- .../source/debug/BookSourceDebugActivity.kt | 8 +- .../source/edit/BookSourceEditActivity.kt | 12 +- .../book/source/manage/BookSourceActivity.kt | 8 +- .../book/source/manage/BookSourceAdapter.kt | 4 +- .../book/source/manage/GroupManageDialog.kt | 10 +- .../app/ui/book/toc/BookmarkFragment.kt | 4 +- .../app/ui/book/toc/ChapterListAdapter.kt | 4 +- .../app/ui/book/toc/ChapterListFragment.kt | 16 +- .../io/legado/app/ui/book/toc/TocActivity.kt | 8 +- .../ui/book/toc/rule/TxtTocRuleActivity.kt | 4 +- .../app/ui/book/toc/rule/TxtTocRuleAdapter.kt | 4 +- .../app/ui/book/toc/rule/TxtTocRuleDialog.kt | 8 +- .../ui/book/toc/rule/TxtTocRuleEditDialog.kt | 4 +- .../legado/app/ui/browser/WebViewActivity.kt | 4 +- .../app/ui/config/BackupConfigFragment.kt | 4 +- .../legado/app/ui/config/CheckSourceConfig.kt | 8 +- .../app/ui/config/CoverConfigFragment.kt | 4 +- .../app/ui/config/CoverRuleConfigDialog.kt | 4 +- .../app/ui/config/DirectLinkUploadConfig.kt | 9 +- .../app/ui/config/OtherConfigFragment.kt | 4 +- .../app/ui/config/ThemeConfigFragment.kt | 91 +-- .../legado/app/ui/config/ThemeListDialog.kt | 6 +- .../app/ui/config/WelcomeConfigFragment.kt | 4 +- .../java/io/legado/app/ui/dict/DictDialog.kt | 8 +- .../app/ui/dict/rule/DictRuleActivity.kt | 4 +- .../app/ui/dict/rule/DictRuleAdapter.kt | 4 +- .../app/ui/dict/rule/DictRuleEditDialog.kt | 4 +- .../legado/app/ui/file/FileManageActivity.kt | 4 +- .../io/legado/app/ui/file/FilePickerDialog.kt | 26 +- .../io/legado/app/ui/font/FontSelectDialog.kt | 4 +- .../legado/app/ui/login/SourceLoginDialog.kt | 4 +- .../app/ui/login/WebViewLoginFragment.kt | 4 +- .../io/legado/app/ui/main/MainActivity.kt | 7 +- .../bookshelf/style1/BookshelfFragment1.kt | 16 +- .../bookshelf/style1/books/BooksFragment.kt | 8 +- .../bookshelf/style2/BookshelfFragment2.kt | 8 +- .../app/ui/main/explore/ExploreAdapter.kt | 27 +- .../app/ui/main/explore/ExploreFragment.kt | 8 +- .../io/legado/app/ui/main/my/MyFragment.kt | 10 +- .../io/legado/app/ui/main/rss/RssFragment.kt | 8 +- .../app/ui/replace/GroupManageDialog.kt | 10 +- .../app/ui/replace/ReplaceRuleActivity.kt | 8 +- .../app/ui/replace/ReplaceRuleAdapter.kt | 4 +- .../app/ui/rss/article/ReadRecordDialog.kt | 4 +- .../app/ui/rss/article/RssArticlesAdapter1.kt | 10 +- .../app/ui/rss/article/RssArticlesFragment.kt | 8 +- .../app/ui/rss/article/RssSortActivity.kt | 4 +- .../ui/rss/favorites/RssFavoritesActivity.kt | 4 +- .../ui/rss/favorites/RssFavoritesDialog.kt | 4 +- .../ui/rss/favorites/RssFavoritesFragment.kt | 4 +- .../legado/app/ui/rss/read/ReadRssActivity.kt | 10 +- .../source/debug/RssSourceDebugActivity.kt | 8 +- .../rss/source/edit/RssSourceEditActivity.kt | 12 +- .../ui/rss/source/manage/GroupManageDialog.kt | 12 +- .../ui/rss/source/manage/RssSourceActivity.kt | 8 +- .../ui/rss/source/manage/RssSourceAdapter.kt | 4 +- .../legado/app/ui/welcome/WelcomeActivity.kt | 10 +- .../io/legado/app/ui/widget/DetailSeekBar.kt | 70 +- .../java/io/legado/app/ui/widget/LabelsBar.kt | 2 +- .../legado/app/ui/widget/SelectActionBar.kt | 35 +- .../java/io/legado/app/ui/widget/TitleBar.kt | 103 ++- .../app/ui/widget/anima/RotateLoading.kt | 4 +- .../ui/widget/button/AccentStrokeButton.kt | 74 ++ .../app/ui/widget/checkbox/SmoothCheckBox.kt | 4 +- .../io/legado/app/ui/widget/code/CodeView.kt | 18 +- .../legado/app/ui/widget/dialog/CodeDialog.kt | 4 +- .../legado/app/ui/widget/dialog/TextDialog.kt | 4 +- .../app/ui/widget/dialog/VariableDialog.kt | 4 +- .../app/ui/widget/image/CoverImageView.kt | 24 +- .../widget/keyboard/KeyboardAssistsConfig.kt | 8 +- .../ui/widget/number/NumberPickerDialog.kt | 5 +- .../widget/recycler/scroller/FastScroller.kt | 22 +- .../app/ui/widget/seekbar/VerticalSeekBar.kt | 4 +- .../app/ui/widget/text/AccentBgTextView.kt | 66 +- .../ui/widget/text/AccentStrokeTextView.kt | 86 +-- .../app/ui/widget/text/AccentTextView.kt | 16 +- .../ui/widget/text/AutoCompleteTextView.kt | 7 +- .../io/legado/app/ui/widget/text/BadgeView.kt | 6 +- .../app/ui/widget/text/BevelLabelView.kt | 16 +- .../text/ScrollMultiAutoCompleteTextView.kt | 3 +- .../app/ui/widget/text/SecondaryTextView.kt | 4 +- .../app/ui/widget/text/StrokeTextView.kt | 14 +- .../io/legado/app/utils/DialogExtensions.kt | 8 +- .../io/legado/app/utils/FragmentExtensions.kt | 1 - .../io/legado/app/utils/MenuExtensions.kt | 68 +- .../java/io/legado/app/utils/ToastUtils.kt | 10 +- app/src/main/res/drawable/bg_book_mask.xml | 6 + .../main/res/drawable/bg_find_book_group.xml | 18 +- .../main/res/drawable/bg_gradient_mask.xml | 9 + app/src/main/res/drawable/bg_img_border.xml | 2 +- app/src/main/res/drawable/bg_popup_menu.xml | 9 - app/src/main/res/drawable/ic_add.xml | 11 +- app/src/main/res/drawable/ic_add_online.xml | 11 +- app/src/main/res/drawable/ic_arrange.xml | 17 +- app/src/main/res/drawable/ic_arrow_back.xml | 10 +- app/src/main/res/drawable/ic_author.xml | 13 +- app/src/main/res/drawable/ic_auto_page.xml | 14 +- .../main/res/drawable/ic_auto_page_stop.xml | 17 +- app/src/main/res/drawable/ic_book_last.xml | 16 +- app/src/main/res/drawable/ic_bookmark.xml | 11 +- .../main/res/drawable/ic_bottom_books_e.xml | 13 +- .../main/res/drawable/ic_bottom_books_s.xml | 13 +- .../main/res/drawable/ic_bottom_explore_e.xml | 13 +- .../main/res/drawable/ic_bottom_explore_s.xml | 12 +- .../main/res/drawable/ic_bottom_person_e.xml | 15 +- .../main/res/drawable/ic_bottom_person_s.xml | 15 +- .../res/drawable/ic_bottom_rss_feed_e.xml | 13 +- .../res/drawable/ic_bottom_rss_feed_s.xml | 10 +- app/src/main/res/drawable/ic_brightness.xml | 11 +- app/src/main/res/drawable/ic_cfg_about.xml | 16 +- app/src/main/res/drawable/ic_cfg_backup.xml | 10 +- app/src/main/res/drawable/ic_cfg_other.xml | 13 +- app/src/main/res/drawable/ic_cfg_replace.xml | 13 +- app/src/main/res/drawable/ic_cfg_source.xml | 15 +- app/src/main/res/drawable/ic_cfg_theme.xml | 10 +- app/src/main/res/drawable/ic_cfg_txt.xml | 4 + app/src/main/res/drawable/ic_cfg_web.xml | 10 +- .../main/res/drawable/ic_change_source.xml | 4 + app/src/main/res/drawable/ic_chapter.xml | 4 + app/src/main/res/drawable/ic_check.xml | 10 +- app/src/main/res/drawable/ic_clear_all.xml | 17 +- .../main/res/drawable/ic_download_line.xml | 14 +- app/src/main/res/drawable/ic_edit.xml | 14 +- app/src/main/res/drawable/ic_exit.xml | 12 +- app/src/main/res/drawable/ic_export.xml | 14 +- app/src/main/res/drawable/ic_find_replace.xml | 14 +- .../main/res/drawable/ic_folder_outline.xml | 11 +- app/src/main/res/drawable/ic_groups.xml | 20 +- app/src/main/res/drawable/ic_help.xml | 13 +- app/src/main/res/drawable/ic_history.xml | 13 +- app/src/main/res/drawable/ic_import.xml | 15 +- .../res/drawable/ic_interface_setting.xml | 14 +- app/src/main/res/drawable/ic_menu.xml | 10 +- app/src/main/res/drawable/ic_more_vert.xml | 10 +- app/src/main/res/drawable/ic_next.xml | 4 + app/src/main/res/drawable/ic_pause_24dp.xml | 10 +- app/src/main/res/drawable/ic_play_24dp.xml | 10 +- app/src/main/res/drawable/ic_previous.xml | 4 + app/src/main/res/drawable/ic_read_aloud.xml | 11 +- .../res/drawable/ic_refresh_black_24dp.xml | 14 +- app/src/main/res/drawable/ic_save.xml | 14 +- app/src/main/res/drawable/ic_search.xml | 18 +- app/src/main/res/drawable/ic_search_hint.xml | 9 +- app/src/main/res/drawable/ic_settings.xml | 16 +- app/src/main/res/drawable/ic_share.xml | 12 +- app/src/main/res/drawable/ic_skip_next.xml | 12 +- .../main/res/drawable/ic_skip_previous.xml | 12 +- app/src/main/res/drawable/ic_sort.xml | 11 +- app/src/main/res/drawable/ic_star.xml | 10 +- .../main/res/drawable/ic_stop_black_24dp.xml | 12 +- app/src/main/res/drawable/ic_toc.xml | 10 +- app/src/main/res/drawable/ic_translate.xml | 14 +- app/src/main/res/drawable/ic_view_quilt.xml | 26 +- .../main/res/drawable/ic_visibility_off.xml | 10 +- app/src/main/res/drawable/ic_web_outline.xml | 14 +- .../res/drawable/selected_chip_background.xml | 15 + .../res/drawable/selector_btn_accent_bg.xml | 2 +- .../main/res/drawable/selector_common_bg.xml | 2 +- .../res/drawable/selector_fillet_btn_bg.xml | 11 +- app/src/main/res/drawable/shape_card_view.xml | 2 +- .../main/res/layout/activity_audio_play.xml | 5 +- .../main/res/layout/activity_book_info.xml | 635 +++++++++--------- .../res/layout/activity_book_info_edit.xml | 113 ++-- .../main/res/layout/activity_book_read.xml | 1 - .../main/res/layout/activity_book_search.xml | 1 - .../res/layout/activity_book_source_edit.xml | 5 +- .../main/res/layout/activity_file_manage.xml | 1 - .../main/res/layout/activity_import_book.xml | 1 - app/src/main/res/layout/activity_main.xml | 5 +- app/src/main/res/layout/activity_manga.xml | 3 +- .../res/layout/activity_rss_source_edit.xml | 2 - .../res/layout/activity_search_content.xml | 1 - .../main/res/layout/activity_source_debug.xml | 1 - app/src/main/res/layout/activity_welcome.xml | 2 +- app/src/main/res/layout/dialog_auto_read.xml | 10 +- .../res/layout/dialog_book_change_source.xml | 5 +- .../res/layout/dialog_book_group_edit.xml | 121 ++-- .../res/layout/dialog_book_group_picker.xml | 10 +- app/src/main/res/layout/dialog_bookmark.xml | 11 +- .../res/layout/dialog_bookshelf_config.xml | 1 - .../main/res/layout/dialog_change_cover.xml | 1 - .../layout/dialog_chapter_change_source.xml | 7 +- .../res/layout/dialog_check_source_config.xml | 1 - app/src/main/res/layout/dialog_code_view.xml | 2 - .../main/res/layout/dialog_content_edit.xml | 2 - .../res/layout/dialog_cover_rule_config.xml | 1 - .../main/res/layout/dialog_dict_rule_edit.xml | 9 +- .../dialog_direct_link_upload_config.xml | 2 - .../main/res/layout/dialog_file_chooser.xml | 9 +- .../main/res/layout/dialog_font_select.xml | 3 +- .../main/res/layout/dialog_http_tts_edit.xml | 1 - app/src/main/res/layout/dialog_login.xml | 1 - app/src/main/res/layout/dialog_page_key.xml | 1 - app/src/main/res/layout/dialog_photo_view.xml | 3 +- app/src/main/res/layout/dialog_read_aloud.xml | 253 ++++--- .../main/res/layout/dialog_read_bg_text.xml | 3 +- .../res/layout/dialog_read_book_style.xml | 89 ++- .../main/res/layout/dialog_read_padding.xml | 4 +- .../main/res/layout/dialog_recycler_view.xml | 23 +- .../main/res/layout/dialog_rule_sub_edit.xml | 3 +- .../main/res/layout/dialog_search_scope.xml | 5 +- app/src/main/res/layout/dialog_text_view.xml | 2 +- .../main/res/layout/dialog_toc_regex_edit.xml | 1 - app/src/main/res/layout/dialog_variable.xml | 1 - .../layout/dialog_verification_code_view.xml | 1 - app/src/main/res/layout/dialog_wait.xml | 1 - .../main/res/layout/dialog_webdav_server.xml | 2 - .../main/res/layout/fragment_bookshelf1.xml | 45 +- .../main/res/layout/fragment_chapter_list.xml | 1 - .../res/layout/item_1line_text_and_del.xml | 4 +- .../res/layout/item_book_group_manage.xml | 1 - app/src/main/res/layout/item_download.xml | 14 +- app/src/main/res/layout/item_file.xml | 1 - app/src/main/res/layout/item_fillet_text.xml | 6 +- app/src/main/res/layout/item_find_book.xml | 45 +- app/src/main/res/layout/item_font.xml | 8 +- app/src/main/res/layout/item_group_manage.xml | 1 - app/src/main/res/layout/item_group_select.xml | 1 - app/src/main/res/layout/item_http_tts.xml | 3 +- .../main/res/layout/item_icon_preference.xml | 3 +- app/src/main/res/layout/item_read_record.xml | 28 +- app/src/main/res/layout/item_read_style.xml | 1 - app/src/main/res/layout/item_replace_rule.xml | 5 +- app/src/main/res/layout/item_rss.xml | 3 +- app/src/main/res/layout/item_rss_article.xml | 1 - .../main/res/layout/item_rss_article_1.xml | 2 +- .../main/res/layout/item_rss_read_record.xml | 2 +- app/src/main/res/layout/item_rss_source.xml | 2 +- app/src/main/res/layout/item_rule_sub.xml | 7 +- app/src/main/res/layout/item_search.xml | 119 ++-- app/src/main/res/layout/item_search_list.xml | 4 +- .../main/res/layout/item_server_select.xml | 1 - app/src/main/res/layout/item_source_edit.xml | 8 +- .../res/layout/item_source_edit_check_box.xml | 3 +- .../main/res/layout/item_source_import.xml | 4 +- app/src/main/res/layout/item_theme_config.xml | 5 +- app/src/main/res/layout/item_toc_regex.xml | 2 + app/src/main/res/layout/item_txt_toc_rule.xml | 9 +- app/src/main/res/layout/popup_action.xml | 3 +- app/src/main/res/layout/popup_action_menu.xml | 4 +- .../main/res/layout/popup_keyboard_tool.xml | 1 - app/src/main/res/layout/popup_seek_bar.xml | 4 +- .../preference_widget_material_switch.xml | 9 + app/src/main/res/layout/view_book_page.xml | 1 - .../main/res/layout/view_detail_seek_bar.xml | 6 +- app/src/main/res/layout/view_error.xml | 1 - app/src/main/res/layout/view_manga_menu.xml | 3 +- app/src/main/res/layout/view_preference.xml | 21 +- .../res/layout/view_preference_category.xml | 3 +- app/src/main/res/layout/view_read_menu.xml | 105 ++- app/src/main/res/layout/view_search.xml | 2 +- app/src/main/res/layout/view_search_menu.xml | 3 - .../res/layout/view_select_action_bar.xml | 4 +- app/src/main/res/layout/view_tab_layout.xml | 6 +- .../main/res/layout/view_tab_layout_min.xml | 8 +- app/src/main/res/layout/view_title_bar.xml | 7 +- app/src/main/res/menu/main_explore.xml | 4 +- app/src/main/res/menu/main_my.xml | 2 +- app/src/main/res/menu/theme_config.xml | 10 +- app/src/main/res/values-es-rES/strings.xml | 2 +- app/src/main/res/values-night/colors.xml | 157 ++++- app/src/main/res/values-night/styles.xml | 5 +- app/src/main/res/values-zh-rHK/strings.xml | 4 +- app/src/main/res/values-zh-rTW/strings.xml | 4 +- app/src/main/res/values-zh/strings.xml | 4 +- app/src/main/res/values/colors.xml | 154 ++++- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/strings.xml | 4 +- app/src/main/res/values/styles.xml | 126 +++- app/src/main/res/xml/pref_config_theme.xml | 28 +- app/src/main/res/xml/pref_main.xml | 12 +- 363 files changed, 3262 insertions(+), 3330 deletions(-) create mode 100644 app/src/main/java/io/legado/app/base/BaseBottomSheetDialogFragment.kt delete mode 100644 app/src/main/java/io/legado/app/lib/theme/view/ThemeSeekBar.kt create mode 100644 app/src/main/java/io/legado/app/lib/theme/view/ThemeSlider.kt create mode 100644 app/src/main/java/io/legado/app/ui/widget/button/AccentStrokeButton.kt create mode 100644 app/src/main/res/drawable/bg_book_mask.xml create mode 100644 app/src/main/res/drawable/bg_gradient_mask.xml delete mode 100644 app/src/main/res/drawable/bg_popup_menu.xml create mode 100644 app/src/main/res/drawable/ic_cfg_txt.xml create mode 100644 app/src/main/res/drawable/ic_change_source.xml create mode 100644 app/src/main/res/drawable/ic_chapter.xml create mode 100644 app/src/main/res/drawable/ic_next.xml create mode 100644 app/src/main/res/drawable/ic_previous.xml create mode 100644 app/src/main/res/drawable/selected_chip_background.xml create mode 100644 app/src/main/res/layout/preference_widget_material_switch.xml diff --git a/app/build.gradle b/app/build.gradle index aadf18999..7c3de3b63 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,7 +48,7 @@ android { } defaultConfig { applicationId "io.legado.app" - minSdk 21 + minSdk 24 targetSdk 35 versionCode 10000 + gitCommits versionName version diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1dd7e1920..72210cd6d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,7 +29,7 @@ android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" android:supportsRtl="true" - android:theme="@style/AppTheme.Light" + android:theme="@style/Base.AppTheme" tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute"> ( attrs: AttributeSet ): View? { if (AppConst.menuViewNames.contains(name) && parent?.parent is FrameLayout) { - (parent.parent as View).setBackgroundColor(backgroundColor) + //(parent.parent as View).setBackgroundColor(backgroundColor) } return super.onCreateView(parent, name, context, attrs) } @@ -85,8 +86,8 @@ abstract class BaseActivity( setContentView(binding.root) upBackgroundImage() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - findViewById(R.id.title_bar) - ?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen) + findViewById(R.id.title_bar) + //?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen) } onBackPressedDispatcher.addCallback(this) { finish() @@ -98,15 +99,15 @@ abstract class BaseActivity( @RequiresApi(Build.VERSION_CODES.O) override fun onMultiWindowModeChanged(isInMultiWindowMode: Boolean, newConfig: Configuration) { super.onMultiWindowModeChanged(isInMultiWindowMode, newConfig) - findViewById(R.id.title_bar) - ?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen) +// findViewById(R.id.title_bar) +// ?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen) setupSystemBar() } override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) - findViewById(R.id.title_bar) - ?.onMultiWindowModeChanged(isInMultiWindow, fullScreen) + //findViewById(R.id.title_bar) + //?.onMultiWindowModeChanged(isInMultiWindow, fullScreen) setupSystemBar() } @@ -140,21 +141,21 @@ abstract class BaseActivity( Theme.Transparent -> setTheme(R.style.AppTheme_Transparent) Theme.Dark -> { setTheme(R.style.AppTheme_Dark) - window.decorView.applyBackgroundTint(backgroundColor) + //window.decorView.applyBackgroundTint(backgroundColor) } Theme.Light -> { setTheme(R.style.AppTheme_Light) - window.decorView.applyBackgroundTint(backgroundColor) + //window.decorView.applyBackgroundTint(backgroundColor) } else -> { - if (ColorUtils.isColorLight(primaryColor)) { - setTheme(R.style.AppTheme_Light) - } else { - setTheme(R.style.AppTheme_Dark) - } - window.decorView.applyBackgroundTint(backgroundColor) +// if (ColorUtils.isColorLight(primaryColor)) { +// setTheme(R.style.AppTheme_Light) +// } else { +// setTheme(R.style.AppTheme_Dark) +// } + //window.decorView.applyBackgroundTint(backgroundColor) } } } @@ -177,24 +178,24 @@ abstract class BaseActivity( if (fullScreen && !isInMultiWindow) { fullScreen() } - val isTransparentStatusBar = AppConfig.isTransparentStatusBar - val statusBarColor = ThemeStore.statusBarColor(this, isTransparentStatusBar) - setStatusBarColorAuto(statusBarColor, isTransparentStatusBar, fullScreen) - if (toolBarTheme == Theme.Dark) { - setLightStatusBar(false) - } else if (toolBarTheme == Theme.Light) { - setLightStatusBar(true) - } + //val isTransparentStatusBar = AppConfig.isTransparentStatusBar + //val statusBarColor = ThemeStore.statusBarColor(this, isTransparentStatusBar) + //setStatusBarColorAuto(statusBarColor, isTransparentStatusBar, fullScreen) +// if (toolBarTheme == Theme.Dark) { +// setLightStatusBar(false) +// } else if (toolBarTheme == Theme.Light) { +// setLightStatusBar(true) +// } upNavigationBarColor() } open fun upNavigationBarColor() { - if (AppConfig.immNavigationBar) { - setNavigationBarColorAuto(ThemeStore.navigationBarColor(this)) - } else { - val nbColor = ColorUtils.darkenColor(ThemeStore.navigationBarColor(this)) - setNavigationBarColorAuto(nbColor) - } +// if (AppConfig.immNavigationBar) { +// setNavigationBarColorAuto(ThemeStore.navigationBarColor(this)) +// } else { +// val nbColor = ColorUtils.darkenColor(ThemeStore.navigationBarColor(this)) +// setNavigationBarColorAuto(nbColor) +// } } open fun observeLiveBus() { diff --git a/app/src/main/java/io/legado/app/base/BaseBottomSheetDialogFragment.kt b/app/src/main/java/io/legado/app/base/BaseBottomSheetDialogFragment.kt new file mode 100644 index 000000000..f4a5ea0f9 --- /dev/null +++ b/app/src/main/java/io/legado/app/base/BaseBottomSheetDialogFragment.kt @@ -0,0 +1,77 @@ +package io.legado.app.base + +import android.app.Dialog +import android.content.DialogInterface +import android.content.DialogInterface.OnDismissListener +import android.os.Build +import android.os.Bundle +import android.view.View +import android.view.WindowManager +import androidx.annotation.LayoutRes +import androidx.fragment.app.FragmentManager +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.lifecycleScope +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import io.legado.app.R +import io.legado.app.constant.AppLog +import io.legado.app.help.config.AppConfig +import io.legado.app.help.coroutine.Coroutine +import io.legado.app.lib.theme.ThemeStore +import io.legado.app.utils.setBackgroundKeepPadding +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlin.coroutines.CoroutineContext + +abstract class BaseBottomSheetDialogFragment( + @LayoutRes layoutID: Int +) : BottomSheetDialogFragment(layoutID) { + + private var onDismissListener: OnDismissListener? = null + + fun setOnDismissListener(onDismissListener: OnDismissListener?) { + this.onDismissListener = onDismissListener + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) +// if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N) { +// setStyle(STYLE_NO_TITLE, 0) +// } + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + onFragmentCreated(view, savedInstanceState) + observeLiveBus() + } + + abstract fun onFragmentCreated(view: View, savedInstanceState: Bundle?) + + override fun show(manager: FragmentManager, tag: String?) { + kotlin.runCatching { + manager.beginTransaction().remove(this).commit() + super.show(manager, tag) + }.onFailure { + AppLog.put("显示BottomSheetDialog失败 tag:$tag\n$it") + } + } + + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + onDismissListener?.onDismiss(dialog) + } + + fun execute( + scope: CoroutineScope = lifecycleScope, + context: CoroutineContext = Dispatchers.IO, + block: suspend CoroutineScope.() -> T + ) = Coroutine.async(scope, context) { block() } + + open fun observeLiveBus() { + } + +} \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt b/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt index da4ea99fa..4dbe4b9b7 100644 --- a/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt +++ b/app/src/main/java/io/legado/app/base/BaseDialogFragment.kt @@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentManager import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.lifecycleScope +import com.google.android.material.bottomsheet.BottomSheetDialogFragment import io.legado.app.R import io.legado.app.constant.AppLog import io.legado.app.help.config.AppConfig @@ -38,40 +39,36 @@ abstract class BaseDialogFragment( override fun onStart() { super.onStart() - if (adaptationSoftKeyboard) { - dialog?.window?.setBackgroundDrawableResource(R.color.transparent) - } else if (AppConfig.isEInkMode) { - dialog?.window?.let { - it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - val attr = it.attributes - attr.dimAmount = 0.0f - attr.windowAnimations = 0 - it.attributes = attr - it.decorView.setBackgroundKeepPadding(R.color.transparent) - } - // 修改gravity的时机一般在子类的onStart方法中, 因此需要在onStart之后执行. - lifecycle.addObserver(LifecycleEventObserver { _, event -> - if (event == Lifecycle.Event.ON_START) { - when (dialog?.window?.attributes?.gravity) { - Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom) - Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top) - else -> { - val padding = 2.dpToPx(); - view?.setPadding(padding, padding, padding, padding) - view?.setBackgroundResource(R.drawable.bg_eink_border_dialog) - } - } - } - }) - } +// if (adaptationSoftKeyboard) { +// dialog?.window?.setBackgroundDrawableResource(R.color.transparent) +// } else if (AppConfig.isEInkMode) { +// dialog?.window?.let { +// it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// val attr = it.attributes +// attr.dimAmount = 0.0f +// attr.windowAnimations = 0 +// it.attributes = attr +// it.decorView.setBackgroundKeepPadding(R.color.transparent) +// } +// // 修改gravity的时机一般在子类的onStart方法中, 因此需要在onStart之后执行. +// lifecycle.addObserver(LifecycleEventObserver { _, event -> +// if (event == Lifecycle.Event.ON_START) { +// when (dialog?.window?.attributes?.gravity) { +// Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom) +// Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top) +// else -> { +// val padding = 2.dpToPx(); +// view?.setPadding(padding, padding, padding, padding) +// view?.setBackgroundResource(R.drawable.bg_eink_border_dialog) +// } +// } +// } +// }) +// } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - //不加这个android 5.0对话框顶部会有空白 - setStyle(STYLE_NO_TITLE, 0) - } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/io/legado/app/base/BaseFragment.kt b/app/src/main/java/io/legado/app/base/BaseFragment.kt index 7e54012b6..279550194 100644 --- a/app/src/main/java/io/legado/app/base/BaseFragment.kt +++ b/app/src/main/java/io/legado/app/base/BaseFragment.kt @@ -45,10 +45,10 @@ abstract class BaseFragment(@LayoutRes layoutID: Int) : Fragment(layoutID) { } private fun onMultiWindowModeChanged() { - (activity as? BaseActivity<*>)?.let { - view?.findViewById(R.id.title_bar) - ?.onMultiWindowModeChanged(it.isInMultiWindow, it.fullScreen) - } +// (activity as? BaseActivity<*>)?.let { +// view?.findViewById(R.id.title_bar) +// ?.onMultiWindowModeChanged(it.isInMultiWindow, it.fullScreen) +// } } fun setSupportToolbar(toolbar: Toolbar) { diff --git a/app/src/main/java/io/legado/app/base/BasePrefDialogFragment.kt b/app/src/main/java/io/legado/app/base/BasePrefDialogFragment.kt index db5f560c4..f36f8d1df 100644 --- a/app/src/main/java/io/legado/app/base/BasePrefDialogFragment.kt +++ b/app/src/main/java/io/legado/app/base/BasePrefDialogFragment.kt @@ -5,39 +5,40 @@ import android.view.WindowManager import androidx.fragment.app.DialogFragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver +import com.google.android.material.bottomsheet.BottomSheetDialogFragment import io.legado.app.R import io.legado.app.help.config.AppConfig import io.legado.app.utils.dpToPx abstract class BasePrefDialogFragment( -) : DialogFragment() { +) : BottomSheetDialogFragment() { override fun onStart() { super.onStart() if (AppConfig.isEInkMode) { - dialog?.window?.let { - it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - val attr = it.attributes - attr.dimAmount = 0.0f - attr.windowAnimations = 0 - it.attributes = attr - it.setBackgroundDrawableResource(R.color.transparent) - } +// dialog?.window?.let { +// it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// val attr = it.attributes +// attr.dimAmount = 0.0f +// attr.windowAnimations = 0 +// it.attributes = attr +// it.setBackgroundDrawableResource(R.color.transparent) +// } // 修改gravity的时机一般在子类的onStart方法中, 因此需要在onStart之后执行. lifecycle.addObserver(LifecycleEventObserver { _, event -> - if (event == Lifecycle.Event.ON_START) { - when (dialog?.window?.attributes?.gravity) { - Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom) - Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top) - else -> { - val padding = 2.dpToPx(); - view?.setPadding(padding, padding, padding, padding) - view?.setBackgroundResource(R.drawable.bg_eink_border_dialog) - } - } - } +// if (event == Lifecycle.Event.ON_START) { +// when (dialog?.window?.attributes?.gravity) { +// Gravity.TOP -> view?.setBackgroundResource(R.drawable.bg_eink_border_bottom) +// Gravity.BOTTOM -> view?.setBackgroundResource(R.drawable.bg_eink_border_top) +// else -> { +// val padding = 2.dpToPx(); +// view?.setPadding(padding, padding, padding, padding) +// view?.setBackgroundResource(R.drawable.bg_eink_border_dialog) +// } +// } +// } }) } } diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index 7ce58e32c..438ae21b9 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -76,9 +76,9 @@ object PreferKey { const val textFullJustify = "textFullJustify" const val textBottomJustify = "textBottomJustify" const val autoReadSpeed = "autoReadSpeed" - const val barElevation = "barElevation" - const val transparentStatusBar = "transparentStatusBar" - const val immNavigationBar = "immNavigationBar" + //const val barElevation = "barElevation" + //const val transparentStatusBar = "transparentStatusBar" + //const val immNavigationBar = "immNavigationBar" const val defaultCover = "defaultCover" const val defaultCoverDark = "defaultCoverDark" const val replaceEnableDefault = "replaceEnableDefault" diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index 35267b8c5..d38720a0a 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -149,11 +149,11 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { val textSelectAble: Boolean get() = appCtx.getPrefBoolean(PreferKey.textSelectAble, true) - val isTransparentStatusBar: Boolean - get() = appCtx.getPrefBoolean(PreferKey.transparentStatusBar, true) - - val immNavigationBar: Boolean - get() = appCtx.getPrefBoolean(PreferKey.immNavigationBar, true) +// val isTransparentStatusBar: Boolean +// get() = appCtx.getPrefBoolean(PreferKey.transparentStatusBar, true) +// +// val immNavigationBar: Boolean +// get() = appCtx.getPrefBoolean(PreferKey.immNavigationBar, true) val screenOrientation: String? get() = appCtx.getPrefString(PreferKey.screenOrientation) @@ -291,14 +291,14 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { appCtx.putPrefInt(PreferKey.systemTypefaces, value) } - var elevation: Int - get() = if (isEInkMode) 0 else appCtx.getPrefInt( - PreferKey.barElevation, - AppConst.sysElevation - ) - set(value) { - appCtx.putPrefInt(PreferKey.barElevation, value) - } +// var elevation: Int +// get() = if (isEInkMode) 0 else appCtx.getPrefInt( +// PreferKey.barElevation, +// AppConst.sysElevation +// ) +// set(value) { +// appCtx.putPrefInt(PreferKey.barElevation, value) +// } var readUrlInBrowser: Boolean get() = appCtx.getPrefBoolean(PreferKey.readUrlOpenInBrowser) diff --git a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt index e7e198140..0403e7bca 100644 --- a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt @@ -1,10 +1,13 @@ package io.legado.app.help.config +import android.annotation.SuppressLint import android.graphics.Color import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable import androidx.annotation.Keep +import androidx.core.content.ContextCompat +import com.google.android.material.color.MaterialColors import io.legado.app.R import io.legado.app.constant.AppLog import io.legado.app.constant.PageAnim @@ -673,8 +676,10 @@ object ReadBookConfig { fun curBgDrawable(width: Int, height: Int): Drawable { if (width == 0 || height == 0) { - return ColorDrawable(appCtx.getCompatColor(R.color.background)) + val backgroundColor = MaterialColors.getColor(appCtx, com.google.android.material.R.attr.colorSurface, Color.WHITE) + return ColorDrawable(backgroundColor) } + var bgDrawable: Drawable? = null val resources = appCtx.resources try { @@ -685,7 +690,6 @@ object ReadBookConfig { val bitmap = BitmapUtils.decodeAssetsBitmap(appCtx, path, width, height) BitmapDrawable(resources, bitmap?.resizeAndRecycle(width, height)) } - else -> { val path = curBgStr().let { if (it.contains(File.separator)) it @@ -700,7 +704,10 @@ object ReadBookConfig { } catch (e: Exception) { e.printOnDebug() } - return bgDrawable ?: ColorDrawable(appCtx.getCompatColor(R.color.background)) + + // fallback 使用 MD3 的 colorSurface 作为背景色 + val fallbackColor = MaterialColors.getColor(appCtx, com.google.android.material.R.attr.colorSurface, Color.WHITE) + return bgDrawable ?: ColorDrawable(fallbackColor) } } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt b/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt index ddc4d0029..e57a2c05a 100644 --- a/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt @@ -29,6 +29,7 @@ import io.legado.app.utils.putPrefInt import io.legado.app.utils.stackBlur import splitties.init.appCtx import java.io.File +import androidx.core.graphics.toColorInt @Keep object ThemeConfig { @@ -146,10 +147,10 @@ object ThemeConfig { } fun applyConfig(context: Context, config: Config) { - val primary = Color.parseColor(config.primaryColor) - val accent = Color.parseColor(config.accentColor) - val background = Color.parseColor(config.backgroundColor) - val bBackground = Color.parseColor(config.bottomBackground) + val primary = config.primaryColor.toColorInt() + val accent = config.accentColor.toColorInt() + val background = config.backgroundColor.toColorInt() + val bBackground = config.bottomBackground.toColorInt() if (config.isNightTheme) { context.putPrefInt(PreferKey.cNPrimary, primary) context.putPrefInt(PreferKey.cNAccent, accent) diff --git a/app/src/main/java/io/legado/app/lib/dialogs/AndroidAlertBuilder.kt b/app/src/main/java/io/legado/app/lib/dialogs/AndroidAlertBuilder.kt index 097726c2d..a2c28bb7f 100644 --- a/app/src/main/java/io/legado/app/lib/dialogs/AndroidAlertBuilder.kt +++ b/app/src/main/java/io/legado/app/lib/dialogs/AndroidAlertBuilder.kt @@ -6,12 +6,13 @@ import android.graphics.drawable.Drawable import android.view.KeyEvent import android.view.View import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import io.legado.app.R import io.legado.app.help.config.AppConfig import io.legado.app.utils.applyTint internal class AndroidAlertBuilder(override val ctx: Context) : AlertBuilder { - private val builder = AlertDialog.Builder(ctx) + private val builder = MaterialAlertDialogBuilder(ctx) override fun setTitle(title: CharSequence) { builder.setTitle(title) diff --git a/app/src/main/java/io/legado/app/lib/prefs/EditTextPreference.kt b/app/src/main/java/io/legado/app/lib/prefs/EditTextPreference.kt index defe645a8..59f58ea06 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/EditTextPreference.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/EditTextPreference.kt @@ -6,7 +6,7 @@ import android.widget.TextView import androidx.preference.EditTextPreference.OnBindEditTextListener import androidx.preference.PreferenceViewHolder import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint class EditTextPreference(context: Context, attrs: AttributeSet) : @@ -14,7 +14,7 @@ class EditTextPreference(context: Context, attrs: AttributeSet) : private var mOnBindEditTextListener: OnBindEditTextListener? = null private val onBindEditTextListener = OnBindEditTextListener { editText -> - editText.applyTint(context.accentColor) + //editText.applyTint(context.accentColor) mOnBindEditTextListener?.onBindEditText(editText) } diff --git a/app/src/main/java/io/legado/app/lib/prefs/EditTextPreferenceDialog.kt b/app/src/main/java/io/legado/app/lib/prefs/EditTextPreferenceDialog.kt index 243ba7c5f..1782d3e16 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/EditTextPreferenceDialog.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/EditTextPreferenceDialog.kt @@ -9,9 +9,9 @@ import androidx.preference.EditTextPreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat import io.legado.app.R import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.filletBackground -import io.legado.app.utils.dpToPx +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.filletBackground + class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() { @@ -29,14 +29,14 @@ class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) - dialog.window?.setBackgroundDrawable(requireContext().filletBackground) - dialog.window?.decorView?.post { - (dialog as AlertDialog).run { - getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) - } - } +// dialog.window?.setBackgroundDrawable(requireContext().filletBackground) +// dialog.window?.decorView?.post { +// (dialog as AlertDialog).run { +// getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) +// } +// } return dialog } @@ -54,8 +54,8 @@ class EditTextPreferenceDialog : EditTextPreferenceDialogFragmentCompat() { Gravity.TOP -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_bottom) Gravity.BOTTOM -> it.decorView.setBackgroundResource(R.drawable.bg_eink_border_top) else -> { - val padding = 2.dpToPx(); - it.decorView.setPadding(padding, padding, padding, padding) +// val padding = 2.dpToPx(); +// it.decorView.setPadding(padding, padding, padding, padding) it.decorView.setBackgroundResource(R.drawable.bg_eink_border_dialog) } } diff --git a/app/src/main/java/io/legado/app/lib/prefs/IconListPreference.kt b/app/src/main/java/io/legado/app/lib/prefs/IconListPreference.kt index 046d6d7d6..af822ac27 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/IconListPreference.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/IconListPreference.kt @@ -13,12 +13,13 @@ import androidx.preference.ListPreference import androidx.preference.PreferenceViewHolder import androidx.recyclerview.widget.LinearLayoutManager import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemIconPreferenceBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.getCompatDrawable import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -119,7 +120,7 @@ class IconListPreference(context: Context, attrs: AttributeSet) : ListPreference return "icon_$key" } - class IconDialog : BaseDialogFragment(R.layout.dialog_recycler_view) { + class IconDialog : BaseBottomSheetDialogFragment(R.layout.dialog_recycler_view) { var onChanged: ((value: String) -> Unit)? = null var dialogValue: String? = null @@ -130,11 +131,10 @@ class IconListPreference(context: Context, attrs: AttributeSet) : ListPreference override fun onStart() { super.onStart() - setLayout(0.8f, ViewGroup.LayoutParams.WRAP_CONTENT) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.change_icon) binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) val adapter = Adapter(requireContext()) diff --git a/app/src/main/java/io/legado/app/lib/prefs/ListPreferenceDialog.kt b/app/src/main/java/io/legado/app/lib/prefs/ListPreferenceDialog.kt index deb32dc5b..34a7328dc 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/ListPreferenceDialog.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/ListPreferenceDialog.kt @@ -10,8 +10,8 @@ import androidx.preference.ListPreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat import io.legado.app.R import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.filletBackground +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.filletBackground import io.legado.app.utils.applyTint import io.legado.app.utils.dpToPx @@ -31,17 +31,17 @@ class ListPreferenceDialog : ListPreferenceDialogFragmentCompat() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) - dialog.window?.setBackgroundDrawable(requireContext().filletBackground) - dialog.window?.decorView?.post { - (dialog as AlertDialog).run { - getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) - listView?.forEach { - it.applyTint(accentColor) - } - } - } +// dialog.window?.setBackgroundDrawable(requireContext().filletBackground) +// dialog.window?.decorView?.post { +// (dialog as AlertDialog).run { +// getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) +// listView?.forEach { +// it.applyTint(accentColor) +// } +// } +// } return dialog } diff --git a/app/src/main/java/io/legado/app/lib/prefs/MultiSelectListPreferenceDialog.kt b/app/src/main/java/io/legado/app/lib/prefs/MultiSelectListPreferenceDialog.kt index f6d59704f..cd5be0ec6 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/MultiSelectListPreferenceDialog.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/MultiSelectListPreferenceDialog.kt @@ -10,8 +10,8 @@ import androidx.preference.MultiSelectListPreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat import io.legado.app.R import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.filletBackground +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.filletBackground import io.legado.app.utils.applyTint import io.legado.app.utils.dpToPx @@ -33,17 +33,17 @@ class MultiSelectListPreferenceDialog : MultiSelectListPreferenceDialogFragmentC override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) - dialog.window?.setBackgroundDrawable(requireContext().filletBackground) - dialog.window?.decorView?.post { - (dialog as AlertDialog).run { - getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) - getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) - listView?.forEach { - it.applyTint(accentColor) - } - } - } +// dialog.window?.setBackgroundDrawable(requireContext().filletBackground) +// dialog.window?.decorView?.post { +// (dialog as AlertDialog).run { +// getButton(AlertDialog.BUTTON_NEGATIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_POSITIVE)?.setTextColor(accentColor) +// getButton(AlertDialog.BUTTON_NEUTRAL)?.setTextColor(accentColor) +// listView?.forEach { +// it.applyTint(accentColor) +// } +// } +// } return dialog } diff --git a/app/src/main/java/io/legado/app/lib/prefs/NameListPreference.kt b/app/src/main/java/io/legado/app/lib/prefs/NameListPreference.kt index ca1abe128..55aafc726 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/NameListPreference.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/NameListPreference.kt @@ -6,8 +6,8 @@ import android.widget.TextView import androidx.preference.ListPreference import androidx.preference.PreferenceViewHolder import io.legado.app.R -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.utils.ColorUtils @@ -31,9 +31,9 @@ class NameListPreference(context: Context, attrs: AttributeSet) : ListPreference if (v is TextView) { v.text = entry if (isBottomBackground) { - val bgColor = context.bottomBackground - val pTextColor = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) - v.setTextColor(pTextColor) +// val bgColor = context.bottomBackground +// val pTextColor = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) + //v.setTextColor(pTextColor) } } super.onBindViewHolder(holder) diff --git a/app/src/main/java/io/legado/app/lib/prefs/Preference.kt b/app/src/main/java/io/legado/app/lib/prefs/Preference.kt index 619b5cc98..e22189e39 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/Preference.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/Preference.kt @@ -12,10 +12,10 @@ import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.preference.PreferenceViewHolder import io.legado.app.R -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor -import io.legado.app.lib.theme.getSecondaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.getSecondaryTextColor import io.legado.app.utils.ColorUtils import splitties.views.onLongClick import kotlin.math.roundToInt @@ -59,17 +59,17 @@ open class Preference(context: Context, attrs: AttributeSet) : tvSummary.isGone = summary.isNullOrEmpty() } if (isBottomBackground && !viewHolder.itemView.isInEditMode) { - val isLight = ColorUtils.isColorLight(context.bottomBackground) - val pTextColor = context.getPrimaryTextColor(isLight) - tvTitle?.setTextColor(pTextColor) - val sTextColor = context.getSecondaryTextColor(isLight) - tvSummary?.setTextColor(sTextColor) +// val isLight = ColorUtils.isColorLight(context.bottomBackground) +// val pTextColor = context.getPrimaryTextColor(isLight) +// tvTitle?.setTextColor(pTextColor) +// val sTextColor = context.getSecondaryTextColor(isLight) +// tvSummary?.setTextColor(sTextColor) } val iconView = viewHolder.findViewById(R.id.preference_icon) if (iconView is ImageView) { iconView.isVisible = icon != null iconView.setImageDrawable(icon) - iconView.setColorFilter(context.accentColor) + //iconView.setColorFilter(context.accentColor) } if (weightLayoutRes != null && weightLayoutRes != 0 && viewId != null && viewId != 0) { diff --git a/app/src/main/java/io/legado/app/lib/prefs/PreferenceCategory.kt b/app/src/main/java/io/legado/app/lib/prefs/PreferenceCategory.kt index 725fab609..4645c664a 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/PreferenceCategory.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/PreferenceCategory.kt @@ -9,8 +9,8 @@ import androidx.preference.PreferenceCategory import androidx.preference.PreferenceViewHolder import io.legado.app.R import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.utils.ColorUtils @@ -28,28 +28,28 @@ class PreferenceCategory(context: Context, attrs: AttributeSet) : if (view is TextView) { // && !view.isInEditMode view.text = title if (view.isInEditMode) return - view.setTextColor(context.accentColor) + //view.setTextColor(context.accentColor) view.isVisible = !title.isNullOrEmpty() val da = holder.findViewById(R.id.preference_divider_above) val dividerColor = if (AppConfig.isNightTheme) { - ColorUtils.withAlpha( - ColorUtils.shiftColor(context.backgroundColor, 1.05f), - 0.5f - ) +// ColorUtils.withAlpha( +// ColorUtils.shiftColor(context.backgroundColor, 1.05f), +// 0.5f +// ) } else { - ColorUtils.withAlpha( - ColorUtils.shiftColor(context.backgroundColor, 0.95f), - 0.5f - ) +// ColorUtils.withAlpha( +// ColorUtils.shiftColor(context.backgroundColor, 0.95f), +// 0.5f +// ) } if (da is View) { - da.setBackgroundColor(dividerColor) + //da.setBackgroundColor(dividerColor) da.isVisible = holder.isDividerAllowedAbove } val db = holder.findViewById(R.id.preference_divider_below) if (db is View) { - db.setBackgroundColor(dividerColor) + //db.setBackgroundColor(dividerColor) db.isVisible = holder.isDividerAllowedBelow } } diff --git a/app/src/main/java/io/legado/app/lib/prefs/SwitchPreference.kt b/app/src/main/java/io/legado/app/lib/prefs/SwitchPreference.kt index cf6f82063..f9d4d9ca9 100644 --- a/app/src/main/java/io/legado/app/lib/prefs/SwitchPreference.kt +++ b/app/src/main/java/io/legado/app/lib/prefs/SwitchPreference.kt @@ -6,7 +6,7 @@ import androidx.appcompat.widget.SwitchCompat import androidx.preference.PreferenceViewHolder import androidx.preference.SwitchPreferenceCompat import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint class SwitchPreference(context: Context, attrs: AttributeSet) : @@ -17,6 +17,7 @@ class SwitchPreference(context: Context, attrs: AttributeSet) : init { layoutResource = R.layout.view_preference + widgetLayoutResource = R.layout.preference_widget_material_switch val typedArray = context.obtainStyledAttributes(attrs, R.styleable.Preference) isBottomBackground = typedArray.getBoolean(R.styleable.Preference_isBottomBackground, false) typedArray.recycle() @@ -30,7 +31,7 @@ class SwitchPreference(context: Context, attrs: AttributeSet) : isBottomBackground = isBottomBackground ) if (v is SwitchCompat && !v.isInEditMode) { - v.applyTint(context.accentColor) + //v.applyTint(context.accentColor) } super.onBindViewHolder(holder) onLongClick?.let { listener -> diff --git a/app/src/main/java/io/legado/app/lib/theme/MaterialValueHelper.kt b/app/src/main/java/io/legado/app/lib/theme/MaterialValueHelper.kt index de0e72550..7331f98f7 100644 --- a/app/src/main/java/io/legado/app/lib/theme/MaterialValueHelper.kt +++ b/app/src/main/java/io/legado/app/lib/theme/MaterialValueHelper.kt @@ -16,133 +16,3 @@ import io.legado.app.utils.dpToPx /** * @author Karim Abou Zeid (kabouzeid) */ -@ColorInt -fun Context.getPrimaryTextColor(dark: Boolean): Int { - return if (dark) { - ContextCompat.getColor(this, R.color.md_light_primary_text) - } else { - ContextCompat.getColor(this, R.color.md_dark_primary_text) - } -} - -@ColorInt -fun Context.getSecondaryTextColor(dark: Boolean): Int { - return if (dark) { - ContextCompat.getColor(this, R.color.md_light_secondary) - } else { - ContextCompat.getColor(this, R.color.md_dark_primary_text) - } -} - -@ColorInt -fun Context.getPrimaryDisabledTextColor(dark: Boolean): Int { - return if (dark) { - ContextCompat.getColor(this, R.color.md_light_disabled) - } else { - ContextCompat.getColor(this, R.color.md_dark_disabled) - } -} - -@ColorInt -fun Context.getSecondaryDisabledTextColor(dark: Boolean): Int { - return if (dark) { - ContextCompat.getColor( - this, - androidx.appcompat.R.color.secondary_text_disabled_material_light - ) - } else { - ContextCompat.getColor( - this, - androidx.appcompat.R.color.secondary_text_disabled_material_dark - ) - } -} - -val Context.primaryColor: Int - get() = ThemeStore.primaryColor(this) - -val Context.primaryColorDark: Int - get() = ThemeStore.primaryColorDark(this) - -val Context.accentColor: Int - get() = ThemeStore.accentColor(this) - -val Context.backgroundColor: Int - get() = ThemeStore.backgroundColor(this) - -val Context.bottomBackground: Int - get() = ThemeStore.bottomBackground(this) - -val Context.primaryTextColor: Int - get() = getPrimaryTextColor(isDarkTheme) - -val Context.secondaryTextColor: Int - get() = getSecondaryTextColor(isDarkTheme) - -val Context.primaryDisabledTextColor: Int - get() = getPrimaryDisabledTextColor(isDarkTheme) - -val Context.secondaryDisabledTextColor: Int - get() = getSecondaryDisabledTextColor(isDarkTheme) - -val Fragment.primaryColor: Int - get() = ThemeStore.primaryColor(requireContext()) - -val Fragment.primaryColorDark: Int - get() = ThemeStore.primaryColorDark(requireContext()) - -val Fragment.accentColor: Int - get() = ThemeStore.accentColor(requireContext()) - -val Fragment.backgroundColor: Int - get() = ThemeStore.backgroundColor(requireContext()) - -val Fragment.bottomBackground: Int - get() = ThemeStore.bottomBackground(requireContext()) - -val Fragment.primaryTextColor: Int - get() = requireContext().getPrimaryTextColor(isDarkTheme) - -val Fragment.secondaryTextColor: Int - get() = requireContext().getSecondaryTextColor(isDarkTheme) - -val Fragment.primaryDisabledTextColor: Int - get() = requireContext().getPrimaryDisabledTextColor(isDarkTheme) - -val Fragment.secondaryDisabledTextColor: Int - get() = requireContext().getSecondaryDisabledTextColor(isDarkTheme) - -val Context.buttonDisabledColor: Int - get() = if (isDarkTheme) { - ContextCompat.getColor(this, R.color.md_dark_disabled) - } else { - ContextCompat.getColor(this, R.color.md_light_disabled) - } - -val Context.isDarkTheme: Boolean - get() = ColorUtils.isColorLight(ThemeStore.primaryColor(this)) - -val Fragment.isDarkTheme: Boolean - get() = requireContext().isDarkTheme - -val Context.elevation: Float - @SuppressLint("PrivateResource") - get() { - return if (AppConfig.elevation < 0) { - ThemeUtils.resolveFloat( - this, - android.R.attr.elevation, - resources.getDimension(com.google.android.material.R.dimen.design_appbar_elevation) - ) - } else { - AppConfig.elevation.toFloat().dpToPx() - } - } - -val Context.filletBackground: GradientDrawable - get() { - val background = GradientDrawable() - background.cornerRadius = 3f.dpToPx() - background.setColor(backgroundColor) - return background - } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/lib/theme/ThemeStore.kt b/app/src/main/java/io/legado/app/lib/theme/ThemeStore.kt index ac5bb20ef..6d625e564 100644 --- a/app/src/main/java/io/legado/app/lib/theme/ThemeStore.kt +++ b/app/src/main/java/io/legado/app/lib/theme/ThemeStore.kt @@ -12,6 +12,7 @@ import androidx.core.content.ContextCompat import io.legado.app.utils.ColorUtils import io.legado.app.utils.LogUtils import splitties.init.appCtx +import androidx.core.graphics.toColorInt /** * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid) @@ -22,6 +23,18 @@ private constructor(private val mContext: Context) : ThemeStoreInterface { private val mEditor = prefs(mContext).edit() +// override fun enableDynamicColors(context: Context, enable: Boolean): ThemeStore { +// mEditor.putBoolean(ThemeStorePrefKeys.KEY_DYNAMIC_COLORS_ENABLED, enable) +// if (enable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { +// // 使用系统动态颜色 +// val dynamicColors = DynamicColorsOptions.Builder() +// .setThemeOverlay(R.style.Theme_App_Dynamic) +// .build() +// DynamicColors.applyToActivitiesIfAvailable(context.applicationContext, dynamicColors) +// } +// return this +// } + override fun primaryColor(@ColorInt color: Int): ThemeStore { mEditor.putInt(ThemeStorePrefKeys.KEY_PRIMARY_COLOR, color) if (autoGeneratePrimaryDark(mContext)) @@ -195,7 +208,7 @@ private constructor(private val mContext: Context) : ThemeStoreInterface { ThemeUtils.resolveColor( context, androidx.appcompat.R.attr.colorPrimary, - Color.parseColor("#455A64") + "#455A64".toColorInt() ) ) } diff --git a/app/src/main/java/io/legado/app/lib/theme/ThemeStorePrefKeys.kt b/app/src/main/java/io/legado/app/lib/theme/ThemeStorePrefKeys.kt index da1e0a932..f378af9d1 100644 --- a/app/src/main/java/io/legado/app/lib/theme/ThemeStorePrefKeys.kt +++ b/app/src/main/java/io/legado/app/lib/theme/ThemeStorePrefKeys.kt @@ -4,6 +4,7 @@ package io.legado.app.lib.theme * @author Aidan Follestad (afollestad), Karim Abou Zeid (kabouzeid) */ object ThemeStorePrefKeys { + const val KEY_DYNAMIC_COLORS_ENABLED = "" const val CONFIG_PREFS_KEY_DEFAULT = "app_themes" const val IS_CONFIGURED_KEY = "is_configured" @@ -27,4 +28,10 @@ object ThemeStorePrefKeys { const val KEY_APPLY_PRIMARYDARK_STATUSBAR = "apply_primarydark_statusbar" const val KEY_APPLY_PRIMARY_NAVBAR = "apply_primary_navbar" const val KEY_AUTO_GENERATE_PRIMARYDARK = "auto_generate_primarydark" + + const val KEY_COLOR_PRIMARY = "key_color_primary" + const val KEY_COLOR_ON_PRIMARY = "key_color_on_primary" + const val KEY_COLOR_PRIMARY_CONTAINER = "key_color_primary_container" + const val KEY_COLOR_ON_PRIMARY_CONTAINER = "key_color_on_primary_container" + const val KEY_COLOR_SECONDARY = "key_color_secondary" } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt index 1d6550182..a9062e1d2 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeBottomNavigationVIew.kt @@ -12,28 +12,30 @@ import io.legado.app.databinding.ViewNavigationBadgeBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.theme.Selector import io.legado.app.lib.theme.ThemeStore -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getSecondaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getSecondaryTextColor import io.legado.app.ui.widget.text.BadgeView import io.legado.app.utils.ColorUtils +import androidx.core.graphics.drawable.toDrawable class ThemeBottomNavigationVIew(context: Context, attrs: AttributeSet) : BottomNavigationView(context, attrs) { init { - val bgColor = context.bottomBackground - setBackgroundColor(bgColor) - val textIsDark = ColorUtils.isColorLight(bgColor) - val textColor = context.getSecondaryTextColor(textIsDark) - val colorStateList = Selector.colorBuild() - .setDefaultColor(textColor) - .setSelectedColor(ThemeStore.accentColor(context)).create() - itemIconTintList = colorStateList - itemTextColor = colorStateList +// val bgColor = context.bottomBackground +// setBackgroundColor(bgColor) +// val textIsDark = ColorUtils.isColorLight(bgColor) +// val textColor = context.getSecondaryTextColor(textIsDark) +// +// val colorStateList = Selector.colorBuild() +// .setDefaultColor(textColor) +// .setSelectedColor(ThemeStore.accentColor(context)).create() +// itemIconTintList = colorStateList +// itemTextColor = colorStateList if (AppConfig.isEInkMode) { isItemHorizontalTranslationEnabled = false - itemBackground = ColorDrawable(Color.TRANSPARENT) + itemBackground = Color.TRANSPARENT.toDrawable() } ViewCompat.setOnApplyWindowInsetsListener(this, null) diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeCheckBox.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeCheckBox.kt index ffda099ff..15879c311 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeCheckBox.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeCheckBox.kt @@ -3,14 +3,15 @@ package io.legado.app.lib.theme.view import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatCheckBox -import io.legado.app.lib.theme.accentColor +import com.google.android.material.checkbox.MaterialCheckBox +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint -class ThemeCheckBox(context: Context, attrs: AttributeSet) : AppCompatCheckBox(context, attrs) { +class ThemeCheckBox(context: Context, attrs: AttributeSet) : MaterialCheckBox(context, attrs) { - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - } +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// } } diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeEditText.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeEditText.kt index b7607f51a..0aefcc685 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeEditText.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeEditText.kt @@ -4,7 +4,7 @@ import android.content.Context import android.os.Build import android.util.AttributeSet import androidx.appcompat.widget.AppCompatEditText -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint class ThemeEditText @JvmOverloads constructor( @@ -12,12 +12,12 @@ class ThemeEditText @JvmOverloads constructor( attrs: AttributeSet? = null ) : AppCompatEditText(context, attrs) { - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { - isLocalePreferredLineHeightForMinimumUsed = false - } - } +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { +// isLocalePreferredLineHeightForMinimumUsed = false +// } +// } } diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeProgressBar.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeProgressBar.kt index 8c0ad0b90..9ffb3b029 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeProgressBar.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeProgressBar.kt @@ -3,14 +3,14 @@ package io.legado.app.lib.theme.view import android.content.Context import android.util.AttributeSet import android.widget.ProgressBar -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint class ThemeProgressBar(context: Context, attrs: AttributeSet) : ProgressBar(context, attrs) { - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - } +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioButton.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioButton.kt index caf7a136e..118e64477 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioButton.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioButton.kt @@ -3,15 +3,16 @@ package io.legado.app.lib.theme.view import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatRadioButton -import io.legado.app.lib.theme.accentColor +import com.google.android.material.radiobutton.MaterialRadioButton +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint class ThemeRadioButton(context: Context, attrs: AttributeSet) : - AppCompatRadioButton(context, attrs) { + MaterialRadioButton(context, attrs) { - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - } +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// } } diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt index 3bba9f179..3f9275732 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt @@ -3,19 +3,19 @@ package io.legado.app.lib.theme.view import android.content.Context import android.graphics.Color import android.util.AttributeSet -import androidx.appcompat.widget.AppCompatRadioButton import androidx.appcompat.widget.TooltipCompat +import com.google.android.material.radiobutton.MaterialRadioButton import io.legado.app.R import io.legado.app.lib.theme.Selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.utils.ColorUtils import io.legado.app.utils.dpToPx import io.legado.app.utils.getCompatColor class ThemeRadioNoButton(context: Context, attrs: AttributeSet) : - AppCompatRadioButton(context, attrs) { + MaterialRadioButton(context, attrs) { private val isBottomBackground: Boolean @@ -29,54 +29,54 @@ class ThemeRadioNoButton(context: Context, attrs: AttributeSet) : } private fun initTheme() { - when { - isInEditMode -> Unit - isBottomBackground -> { - val accentColor = context.accentColor - val isLight = ColorUtils.isColorLight(context.bottomBackground) - val textColor = context.getPrimaryTextColor(isLight) - val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) { - Color.BLACK - } else { - Color.WHITE - } - background = Selector.shapeBuild() - .setCornerRadius(2.dpToPx()) - .setStrokeWidth(2.dpToPx()) - .setCheckedBgColor(accentColor) - .setCheckedStrokeColor(accentColor) - .setDefaultStrokeColor(textColor) - .create() - setTextColor( - Selector.colorBuild() - .setDefaultColor(textColor) - .setCheckedColor(checkedTextColor) - .create() - ) - } - else -> { - val accentColor = context.accentColor - val defaultTextColor = context.getCompatColor(R.color.primaryText) - val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) { - Color.BLACK - } else { - Color.WHITE - } - background = Selector.shapeBuild() - .setCornerRadius(2.dpToPx()) - .setStrokeWidth(2.dpToPx()) - .setCheckedBgColor(accentColor) - .setCheckedStrokeColor(accentColor) - .setDefaultStrokeColor(defaultTextColor) - .create() - setTextColor( - Selector.colorBuild() - .setDefaultColor(defaultTextColor) - .setCheckedColor(checkedTextColor) - .create() - ) - } - } +// when { +// isInEditMode -> Unit +// isBottomBackground -> { +// val accentColor = context.accentColor +// val isLight = ColorUtils.isColorLight(context.bottomBackground) +// val textColor = context.getPrimaryTextColor(isLight) +// val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) { +// Color.BLACK +// } else { +// Color.WHITE +// } +// background = Selector.shapeBuild() +// .setCornerRadius(2.dpToPx()) +// .setStrokeWidth(2.dpToPx()) +// .setCheckedBgColor(accentColor) +// .setCheckedStrokeColor(accentColor) +// .setDefaultStrokeColor(textColor) +// .create() +// setTextColor( +// Selector.colorBuild() +// .setDefaultColor(textColor) +// .setCheckedColor(checkedTextColor) +// .create() +// ) +// } +// else -> { +// val accentColor = context.accentColor +// val defaultTextColor = context.getCompatColor(R.color.primaryText) +// val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) { +// Color.BLACK +// } else { +// Color.WHITE +// } +// background = Selector.shapeBuild() +// .setCornerRadius(2.dpToPx()) +// .setStrokeWidth(2.dpToPx()) +// .setCheckedBgColor(accentColor) +// .setCheckedStrokeColor(accentColor) +// .setDefaultStrokeColor(defaultTextColor) +// .create() +// setTextColor( +// Selector.colorBuild() +// .setDefaultColor(defaultTextColor) +// .setCheckedColor(checkedTextColor) +// .create() +// ) +// } +// } } diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeSeekBar.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeSeekBar.kt deleted file mode 100644 index 1c842a2e7..000000000 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeSeekBar.kt +++ /dev/null @@ -1,19 +0,0 @@ -package io.legado.app.lib.theme.view - -import android.content.Context -import android.util.AttributeSet -import androidx.appcompat.widget.AppCompatSeekBar -import io.legado.app.lib.theme.accentColor -import io.legado.app.utils.applyTint - -/** - * @author Aidan Follestad (afollestad) - */ -class ThemeSeekBar(context: Context, attrs: AttributeSet) : AppCompatSeekBar(context, attrs) { - - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - } -} diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeSlider.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeSlider.kt new file mode 100644 index 000000000..4a393fa82 --- /dev/null +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeSlider.kt @@ -0,0 +1,19 @@ +package io.legado.app.lib.theme.view + +import android.content.Context +import android.util.AttributeSet +import com.google.android.material.slider.Slider +//import io.legado.app.lib.theme.accentColor +import io.legado.app.utils.applyTint + +/** + * @author Aidan Follestad (afollestad) + */ +class ThemeSlider(context: Context, attrs: AttributeSet) : Slider(context, attrs) { + +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// } +} diff --git a/app/src/main/java/io/legado/app/lib/theme/view/ThemeSwitch.kt b/app/src/main/java/io/legado/app/lib/theme/view/ThemeSwitch.kt index 94b18be5c..98cb95541 100644 --- a/app/src/main/java/io/legado/app/lib/theme/view/ThemeSwitch.kt +++ b/app/src/main/java/io/legado/app/lib/theme/view/ThemeSwitch.kt @@ -2,20 +2,20 @@ package io.legado.app.lib.theme.view import android.content.Context import android.util.AttributeSet -import androidx.appcompat.widget.SwitchCompat -import io.legado.app.lib.theme.accentColor +import com.google.android.material.materialswitch.MaterialSwitch +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint /** * @author Aidan Follestad (afollestad) */ -class ThemeSwitch(context: Context, attrs: AttributeSet) : SwitchCompat(context, attrs) { +class ThemeSwitch(context: Context, attrs: AttributeSet) : MaterialSwitch(context, attrs) { - init { - if (!isInEditMode) { - applyTint(context.accentColor) - } - - } +// init { +// if (!isInEditMode) { +// applyTint(context.accentColor) +// } +// +// } } diff --git a/app/src/main/java/io/legado/app/ui/about/AboutActivity.kt b/app/src/main/java/io/legado/app/ui/about/AboutActivity.kt index abc30b731..c78e906c9 100644 --- a/app/src/main/java/io/legado/app/ui/about/AboutActivity.kt +++ b/app/src/main/java/io/legado/app/ui/about/AboutActivity.kt @@ -4,13 +4,14 @@ import android.os.Bundle import android.text.Spannable import android.text.SpannableString import android.text.style.ForegroundColorSpan +import android.util.TypedValue import android.view.Menu import android.view.MenuItem import io.legado.app.R import io.legado.app.base.BaseActivity import io.legado.app.databinding.ActivityAboutBinding -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.filletBackground +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.filletBackground import io.legado.app.utils.openUrl import io.legado.app.utils.share import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -21,7 +22,7 @@ class AboutActivity : BaseActivity() { override val binding by viewBinding(ActivityAboutBinding::inflate) override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.llAbout.background = filletBackground + //binding.llAbout.background = filletBackground val fTag = "aboutFragment" var aboutFragment = supportFragmentManager.findFragmentByTag(fTag) if (aboutFragment == null) aboutFragment = AboutFragment() @@ -30,12 +31,19 @@ class AboutActivity : BaseActivity() { .commit() binding.tvAppSummary.post { kotlin.runCatching { - val span = ForegroundColorSpan(accentColor) + val typedValue = TypedValue() + val context = binding.root.context + context.theme.resolveAttribute( + com.google.android.material.R.attr.colorPrimary, + typedValue, + true + ) + val accentColor = typedValue.data val spannableString = SpannableString(binding.tvAppSummary.text) val gzh = getString(R.string.legado_gzh) val start = spannableString.indexOf(gzh) spannableString.setSpan( - span, start, start + gzh.length, + accentColor, start, start + gzh.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ) binding.tvAppSummary.text = spannableString diff --git a/app/src/main/java/io/legado/app/ui/about/AppLogDialog.kt b/app/src/main/java/io/legado/app/ui/about/AppLogDialog.kt index ef5479315..30c5aa512 100644 --- a/app/src/main/java/io/legado/app/ui/about/AppLogDialog.kt +++ b/app/src/main/java/io/legado/app/ui/about/AppLogDialog.kt @@ -14,7 +14,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.constant.AppLog import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemAppLogBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.LogUtils import io.legado.app.utils.setLayout @@ -38,7 +38,7 @@ class AppLogDialog : BaseDialogFragment(R.layout.dialog_recycler_view), override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { binding.run { - toolBar.setBackgroundColor(primaryColor) + //toolBar.setBackgroundColor(primaryColor) toolBar.setTitle(R.string.log) toolBar.inflateMenu(R.menu.app_log) toolBar.setOnMenuItemClickListener(this@AppLogDialog) diff --git a/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt b/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt index 64c651630..302317e3b 100644 --- a/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt +++ b/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt @@ -19,7 +19,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.Item1lineTextBinding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.FileDoc import io.legado.app.utils.FileUtils @@ -47,7 +47,7 @@ class CrashLogsDialog : BaseDialogFragment(R.layout.dialog_recycler_view), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.crash_log) binding.toolBar.inflateMenu(R.menu.crash_log) binding.toolBar.setOnMenuItemClickListener(this) diff --git a/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt b/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt index 6b6c32414..2905fa1ad 100644 --- a/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt +++ b/app/src/main/java/io/legado/app/ui/about/ReadRecordActivity.kt @@ -18,7 +18,7 @@ import io.legado.app.databinding.ItemReadRecordBinding import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.search.SearchActivity import io.legado.app.utils.applyNavigationBarPadding import io.legado.app.utils.applyTint @@ -112,7 +112,7 @@ class ReadRecordActivity : BaseActivity() { } private fun initSearchView() { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.search) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { diff --git a/app/src/main/java/io/legado/app/ui/about/UpdateDialog.kt b/app/src/main/java/io/legado/app/ui/about/UpdateDialog.kt index fcbb15224..8618ac985 100644 --- a/app/src/main/java/io/legado/app/ui/about/UpdateDialog.kt +++ b/app/src/main/java/io/legado/app/ui/about/UpdateDialog.kt @@ -7,7 +7,7 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogUpdateBinding import io.legado.app.help.update.AppUpdate -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.Download import io.legado.app.utils.setLayout import io.legado.app.utils.toastOnUi @@ -36,7 +36,7 @@ class UpdateDialog() : BaseDialogFragment(R.layout.dialog_update) { } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.title = arguments?.getString("newVersion") val updateBody = arguments?.getString("updateBody") if (updateBody == null) { diff --git a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt index a1ff32655..a6dac5ec5 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt @@ -22,7 +22,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.* @@ -62,9 +62,9 @@ class ImportBookSourceDialog() : BaseDialogFragment(R.layout.dialog_recycler_vie @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_book_source) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() initMenu() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter @@ -93,14 +93,14 @@ class ImportBookSourceDialog() : BaseDialogFragment(R.layout.dialog_recycler_vie upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportDictRuleDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportDictRuleDialog.kt index 9297a2662..4bdcf595d 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportDictRuleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportDictRuleDialog.kt @@ -15,7 +15,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.data.entities.DictRule import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.* @@ -50,9 +50,9 @@ class ImportDictRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_view) @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_dict_rule) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter binding.tvCancel.visible() @@ -80,14 +80,14 @@ class ImportDictRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_view) upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportHttpTtsDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportHttpTtsDialog.kt index 29493c60e..0b1069fb2 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportHttpTtsDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportHttpTtsDialog.kt @@ -15,7 +15,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.data.entities.HttpTTS import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.GSON @@ -53,9 +53,9 @@ class ImportHttpTtsDialog() : BaseDialogFragment(R.layout.dialog_recycler_view), @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_tts) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter binding.tvCancel.visible() @@ -83,14 +83,14 @@ class ImportHttpTtsDialog() : BaseDialogFragment(R.layout.dialog_recycler_view), upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportReplaceRuleDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportReplaceRuleDialog.kt index 58dc872ce..951bf04a0 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportReplaceRuleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportReplaceRuleDialog.kt @@ -21,7 +21,7 @@ import io.legado.app.databinding.DialogCustomGroupBinding import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.* @@ -57,9 +57,9 @@ class ImportReplaceRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_vi @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_replace_rule) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() initMenu() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter @@ -88,14 +88,14 @@ class ImportReplaceRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_vi upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + // binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allRules) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt index 5eb2a03c9..a985c7acb 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt @@ -22,7 +22,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.* @@ -61,9 +61,9 @@ class ImportRssSourceDialog() : BaseDialogFragment(R.layout.dialog_recycler_view @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_rss_source) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() initMenu() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter @@ -92,14 +92,14 @@ class ImportRssSourceDialog() : BaseDialogFragment(R.layout.dialog_recycler_view upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportThemeDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportThemeDialog.kt index f9998e22b..a90951437 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportThemeDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportThemeDialog.kt @@ -9,13 +9,14 @@ import android.view.ViewGroup import androidx.fragment.app.viewModels import androidx.recyclerview.widget.LinearLayoutManager import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding import io.legado.app.help.config.ThemeConfig -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.GSON @@ -25,7 +26,7 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.visible import splitties.views.onClick -class ImportThemeDialog() : BaseDialogFragment(R.layout.dialog_recycler_view) { +class ImportThemeDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_recycler_view) { constructor(source: String, finishOnDismiss: Boolean = false) : this() { arguments = Bundle().apply { @@ -52,9 +53,9 @@ class ImportThemeDialog() : BaseDialogFragment(R.layout.dialog_recycler_view) { @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_theme) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter binding.tvCancel.visible() @@ -82,14 +83,14 @@ class ImportThemeDialog() : BaseDialogFragment(R.layout.dialog_recycler_view) { upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/ImportTxtTocRuleDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportTxtTocRuleDialog.kt index 1d21921e0..524447b7d 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportTxtTocRuleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportTxtTocRuleDialog.kt @@ -15,7 +15,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.data.entities.TxtTocRule import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemSourceImportBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.CodeDialog import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.utils.GSON @@ -52,9 +52,9 @@ class ImportTxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_vie @SuppressLint("NotifyDataSetChanged") override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.import_txt_toc_rule) - binding.rotateLoading.visible() + //binding.rotateLoading.visible() binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter binding.tvCancel.visible() @@ -82,14 +82,14 @@ class ImportTxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_recycler_vie upSelectText() } viewModel.errorLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() binding.tvMsg.apply { text = it visible() } } viewModel.successLiveData.observe(this) { - binding.rotateLoading.gone() + //binding.rotateLoading.gone() if (it > 0) { adapter.setItems(viewModel.allSources) upSelectText() diff --git a/app/src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt b/app/src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt index 41b316d37..fbd970456 100644 --- a/app/src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/OpenUrlConfirmDialog.kt @@ -13,7 +13,7 @@ import io.legado.app.base.BaseDialogFragment import io.legado.app.constant.AppLog import io.legado.app.databinding.DialogOpenUrlConfirmBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout import io.legado.app.utils.toastOnUi @@ -55,7 +55,7 @@ class OpenUrlConfirmDialog() : BaseDialogFragment(R.layout.dialog_open_url_confi dismiss() return } - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.subtitle = viewModel.sourceName initView() } diff --git a/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt b/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt index c9c901f27..eb02fd7f8 100644 --- a/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/VerificationCodeDialog.kt @@ -21,7 +21,7 @@ import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.OkHttpModelLoader import io.legado.app.help.source.SourceVerificationHelp import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ImageProvider import io.legado.app.ui.widget.dialog.PhotoDialog import io.legado.app.utils.applyTint @@ -66,7 +66,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification initMenu() val arguments = arguments ?: return@run viewModel.initData(arguments) - toolBar.setBackgroundColor(primaryColor) + //toolBar.setBackgroundColor(primaryColor) toolBar.subtitle = arguments.getString("sourceName") sourceOrigin = arguments.getString("sourceOrigin") val imageUrl = arguments.getString("imageUrl") ?: return@run diff --git a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt index 3be60477c..2a5b2db9c 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/AudioPlayActivity.kt @@ -10,6 +10,7 @@ import android.view.MenuItem import android.widget.SeekBar import androidx.activity.viewModels import androidx.lifecycle.lifecycleScope +import com.google.android.material.slider.Slider import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.constant.BookType @@ -152,20 +153,40 @@ class AudioPlayActivity : binding.ivSkipPrevious.setOnClickListener { AudioPlay.prev() } - binding.playerProgress.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - binding.tvDurTime.text = progressTimeFormat.format(progress.toLong()) - } - override fun onStartTrackingTouch(seekBar: SeekBar) { +// binding.playerProgress.setOnSeekBarChangeListener(object : SeekBarChangeListener { +// override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { +// binding.tvDurTime.text = progressTimeFormat.format(progress.toLong()) +// } +// +// override fun onStartTrackingTouch(seekBar: SeekBar) { +// adjustProgress = true +// } +// +// override fun onStopTrackingTouch(seekBar: SeekBar) { +// adjustProgress = false +// AudioPlay.adjustProgress(seekBar.progress) +// } +// }) + + // 替换原来的 SeekBar 监听器 + binding.playerProgress.addOnChangeListener { _, value, fromUser -> + if (fromUser) { + binding.tvDurTime.text = progressTimeFormat.format(value.toLong()) + } + } + + binding.playerProgress.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { adjustProgress = true } - override fun onStopTrackingTouch(seekBar: SeekBar) { + override fun onStopTrackingTouch(slider: Slider) { adjustProgress = false - AudioPlay.adjustProgress(seekBar.progress) + AudioPlay.adjustProgress(slider.value.toInt()) } }) + binding.ivChapter.setOnClickListener { AudioPlay.book?.let { tocActivityResult.launch(it.bookUrl) @@ -275,18 +296,32 @@ class AudioPlayActivity : binding.ivSkipNext.isEnabled = AudioPlay.durChapterIndex < AudioPlay.simulatedChapterSize - 1 } +// observeEventSticky(EventBus.AUDIO_SIZE) { +// binding.playerProgress.max = it +// binding.tvAllTime.text = progressTimeFormat.format(it.toLong()) +// } +// observeEventSticky(EventBus.AUDIO_PROGRESS) { +// if (!adjustProgress) binding.playerProgress.progress = it +// binding.tvDurTime.text = progressTimeFormat.format(it.toLong()) +// } +// observeEventSticky(EventBus.AUDIO_BUFFER_PROGRESS) { +// binding.playerProgress.secondaryProgress = it +// +// } observeEventSticky(EventBus.AUDIO_SIZE) { - binding.playerProgress.max = it + binding.playerProgress.valueTo = it.toFloat() binding.tvAllTime.text = progressTimeFormat.format(it.toLong()) } + observeEventSticky(EventBus.AUDIO_PROGRESS) { - if (!adjustProgress) binding.playerProgress.progress = it + if (!adjustProgress) binding.playerProgress.value = it.toFloat() binding.tvDurTime.text = progressTimeFormat.format(it.toLong()) } - observeEventSticky(EventBus.AUDIO_BUFFER_PROGRESS) { - binding.playerProgress.secondaryProgress = it + observeEventSticky(EventBus.AUDIO_BUFFER_PROGRESS) { + //updateBufferProgress(it) } + observeEventSticky(EventBus.AUDIO_SPEED) { binding.tvSpeed.text = String.format(Locale.ROOT, "%.1fX", it) binding.tvSpeed.visible() diff --git a/app/src/main/java/io/legado/app/ui/book/audio/TimerSliderPopup.kt b/app/src/main/java/io/legado/app/ui/book/audio/TimerSliderPopup.kt index f8025039f..7d7598f70 100644 --- a/app/src/main/java/io/legado/app/ui/book/audio/TimerSliderPopup.kt +++ b/app/src/main/java/io/legado/app/ui/book/audio/TimerSliderPopup.kt @@ -24,32 +24,32 @@ class TimerSliderPopup(private val context: Context) : isOutsideTouchable = false isFocusable = true - binding.seekBar.max = 180 - setProcessTextValue(binding.seekBar.progress) - binding.seekBar.setOnSeekBarChangeListener(object : SeekBarChangeListener { + // 初始化 slider 值 + binding.slider.valueFrom = 1f + binding.slider.valueTo = 180f + binding.slider.stepSize = 1f + binding.slider.value = AudioPlayService.timeMinute.toFloat() + setSliderTextValue(AudioPlayService.timeMinute) - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - setProcessTextValue(progress) - if (fromUser) { - AudioPlay.setTimer(progress) - } + binding.slider.addOnChangeListener { _, value, fromUser -> + setSliderTextValue(value.toInt()) + if (fromUser) { + AudioPlay.setTimer(value.toInt()) } - - }) + } } override fun showAsDropDown(anchor: View?, xoff: Int, yoff: Int, gravity: Int) { super.showAsDropDown(anchor, xoff, yoff, gravity) - binding.seekBar.progress = AudioPlayService.timeMinute + binding.slider.value = AudioPlayService.timeMinute.toFloat() } override fun showAtLocation(parent: View?, gravity: Int, x: Int, y: Int) { super.showAtLocation(parent, gravity, x, y) - binding.seekBar.progress = AudioPlayService.timeMinute + binding.slider.value = AudioPlayService.timeMinute.toFloat() } - private fun setProcessTextValue(process: Int) { - binding.tvSeekValue.text = context.getString(R.string.timer_m, process) + private fun setSliderTextValue(value: Int) { + binding.tvSeekValue.text = context.getString(R.string.timer_m, value) } - -} \ No newline at end of file +} diff --git a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDecoration.kt b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDecoration.kt index 136245ef9..36d5a70a3 100644 --- a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDecoration.kt +++ b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDecoration.kt @@ -7,8 +7,8 @@ import android.text.TextPaint import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.utils.dpToPx import io.legado.app.utils.spToPx import splitties.init.appCtx @@ -20,11 +20,11 @@ class BookmarkDecoration(val adapter: BookmarkAdapter) : RecyclerView.ItemDecora private val headerHeight = 32f.dpToPx() private val headerPaint = Paint().apply { - color = appCtx.backgroundColor + //color = appCtx.backgroundColor } private val textPaint = TextPaint().apply { textSize = 16f.spToPx() - color = appCtx.accentColor + //color = appCtx.accentColor isAntiAlias = true } private val textRect = Rect() diff --git a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt index 25d7f31d2..86300e93e 100644 --- a/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/bookmark/BookmarkDialog.kt @@ -9,7 +9,7 @@ import io.legado.app.base.BaseDialogFragment import io.legado.app.data.appDb import io.legado.app.data.entities.Bookmark import io.legado.app.databinding.DialogBookmarkBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.visible @@ -34,7 +34,7 @@ class BookmarkDialog() : BaseDialogFragment(R.layout.dialog_bookmark, true) { } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) val arguments = arguments ?: let { dismiss() return diff --git a/app/src/main/java/io/legado/app/ui/book/cache/CacheAdapter.kt b/app/src/main/java/io/legado/app/ui/book/cache/CacheAdapter.kt index 5d3049440..575f10f5a 100644 --- a/app/src/main/java/io/legado/app/ui/book/cache/CacheAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/cache/CacheAdapter.kt @@ -5,7 +5,9 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.DiffUtil +import com.google.android.material.button.MaterialButton import io.legado.app.R import io.legado.app.base.adapter.DiffRecyclerAdapter import io.legado.app.base.adapter.ItemViewHolder @@ -96,19 +98,19 @@ class CacheAdapter(context: Context, private val callBack: CallBack) : } } - private fun upDownloadIv(iv: ImageView, book: Book) { + private fun upDownloadIv(button: MaterialButton, book: Book) { if (book.isLocal) { - iv.gone() + button.gone() } else { - iv.visible() + button.visible() CacheBook.cacheBookMap[book.bookUrl]?.let { if (!it.isStop()) { - iv.setImageResource(R.drawable.ic_stop_black_24dp) + button.icon = ContextCompat.getDrawable(context, R.drawable.ic_stop_black_24dp) } else { - iv.setImageResource(R.drawable.ic_play_24dp) + button.icon = ContextCompat.getDrawable(context, R.drawable.ic_play_24dp) } - } ?: let { - iv.setImageResource(R.drawable.ic_play_24dp) + } ?: run { + button.icon = ContextCompat.getDrawable(context, R.drawable.ic_play_24dp) } } } diff --git a/app/src/main/java/io/legado/app/ui/book/changecover/ChangeCoverDialog.kt b/app/src/main/java/io/legado/app/ui/book/changecover/ChangeCoverDialog.kt index b74812cf2..710799e98 100644 --- a/app/src/main/java/io/legado/app/ui/book/changecover/ChangeCoverDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changecover/ChangeCoverDialog.kt @@ -13,7 +13,7 @@ import androidx.recyclerview.widget.GridLayoutManager import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogChangeCoverBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -49,7 +49,7 @@ class ChangeCoverDialog() : BaseDialogFragment(R.layout.dialog_change_cover), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.change_cover_source) viewModel.initData(arguments) initMenu() diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt index 5f2ad6a4d..c57f7072c 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt @@ -27,9 +27,8 @@ import io.legado.app.data.entities.SearchBook import io.legado.app.databinding.DialogBookChangeSourceBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.elevation -import io.legado.app.lib.theme.getPrimaryTextColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.book.source.manage.BookSourceActivity @@ -101,7 +100,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) viewModel.initData(arguments, callBack?.oldBook, activity is ReadBookActivity) showTitle() initMenu() @@ -123,7 +122,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ binding.toolBar.subtitle = viewModel.author binding.toolBar.navigationIcon = getCompatDrawable(androidx.appcompat.R.drawable.abc_ic_ab_back_material) - binding.toolBar.elevation = requireContext().elevation + //binding.toolBar.elevation = requireContext().elevation } private fun initMenu() { @@ -195,9 +194,9 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ val mNavButtonViewField = Toolbar::class.java.getDeclaredField("mNavButtonView") mNavButtonViewField.isAccessible = true val navigationView = mNavButtonViewField.get(binding.toolBar) as ImageButton - val isLight = ColorUtils.isColorLight(primaryColor) - val textColor = requireContext().getPrimaryTextColor(isLight) - navigationView.setColorFilter(textColor) +// val isLight = ColorUtils.isColorLight(primaryColor) +// val textColor = requireContext().getPrimaryTextColor(isLight) + //navigationView.setColorFilter(textColor) } } diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt index 94913e368..50a2aeac1 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt @@ -29,8 +29,7 @@ import io.legado.app.databinding.DialogChapterChangeSourceBinding import io.legado.app.help.book.BookHelp import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.elevation -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.book.source.manage.BookSourceActivity @@ -111,7 +110,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) viewModel.initData(arguments, callBack?.oldBook, activity is ReadBookActivity) showTitle() initMenu() @@ -157,7 +156,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c binding.ivHideToc.setOnClickListener { binding.clToc.gone() } - binding.flHideToc.elevation = requireContext().elevation + //binding.flHideToc.elevation = requireContext().elevation } private fun initRecyclerView() { diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterTocAdapter.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterTocAdapter.kt index 722efbbeb..6515d896e 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterTocAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterTocAdapter.kt @@ -8,7 +8,7 @@ import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.data.entities.BookChapter import io.legado.app.databinding.ItemChapterListBinding import io.legado.app.lib.theme.ThemeUtils -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.getCompatColor import io.legado.app.utils.gone import io.legado.app.utils.visible @@ -31,7 +31,7 @@ class ChangeChapterTocAdapter(context: Context, val callback: Callback) : binding.run { val isDur = durChapterIndex == item.index if (isDur) { - tvChapterName.setTextColor(context.accentColor) + //tvChapterName.setTextColor(context.accentColor) } else { tvChapterName.setTextColor(context.getCompatColor(R.color.primaryText)) } diff --git a/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt index 15e0da163..736df39d0 100644 --- a/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/group/GroupEditDialog.kt @@ -5,11 +5,12 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.viewModels import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.DialogBookGroupEditBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.FileUtils import io.legado.app.utils.MD5Utils import io.legado.app.utils.SelectImageContract @@ -26,7 +27,7 @@ import splitties.init.appCtx import splitties.views.onClick import java.io.FileOutputStream -class GroupEditDialog() : BaseDialogFragment(R.layout.dialog_book_group_edit) { +class GroupEditDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_book_group_edit) { constructor(bookGroup: BookGroup? = null) : this() { arguments = Bundle().apply { @@ -59,11 +60,11 @@ class GroupEditDialog() : BaseDialogFragment(R.layout.dialog_book_group_edit) { override fun onStart() { super.onStart() - setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) + } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) @Suppress("DEPRECATION") bookGroup = arguments?.getParcelable("group") bookGroup?.let { diff --git a/app/src/main/java/io/legado/app/ui/book/group/GroupManageDialog.kt b/app/src/main/java/io/legado/app/ui/book/group/GroupManageDialog.kt index 0cff59e78..3b94084e2 100644 --- a/app/src/main/java/io/legado/app/ui/book/group/GroupManageDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/group/GroupManageDialog.kt @@ -12,6 +12,7 @@ import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter @@ -20,9 +21,9 @@ import io.legado.app.data.appDb import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemBookGroupManageBinding -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyTint @@ -40,7 +41,7 @@ import kotlinx.coroutines.launch /** * 书籍分组管理 */ -class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), +class GroupManageDialog : BaseBottomSheetDialogFragment(R.layout.dialog_recycler_view), Toolbar.OnMenuItemClickListener { private val viewModel: GroupViewModel by viewModels() @@ -49,11 +50,11 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), override fun onStart() { super.onStart() - setLayout(0.9f, 0.9f) + } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.group_manage) initView() initData() @@ -67,7 +68,7 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), val itemTouchCallback = ItemTouchCallback(adapter) itemTouchCallback.isCanDrag = true ItemTouchHelper(itemTouchCallback).attachToRecyclerView(binding.recyclerView) - binding.tvOk.setTextColor(requireContext().accentColor) + //binding.tvOk.setTextColor(requireContext().accentColor) binding.tvOk.visible() binding.tvOk.setOnClickListener { dismissAllowingStateLoss() @@ -120,7 +121,7 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), payloads: MutableList ) { binding.run { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) tvGroup.text = item.getManageName(context) swShow.isChecked = item.show } diff --git a/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt b/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt index e153d81b2..a0f1a130c 100644 --- a/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt @@ -12,6 +12,7 @@ import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter @@ -19,9 +20,9 @@ import io.legado.app.data.appDb import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.DialogBookGroupPickerBinding import io.legado.app.databinding.ItemGroupSelectBinding -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyTint @@ -32,7 +33,7 @@ import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.launch -class GroupSelectDialog() : BaseDialogFragment(R.layout.dialog_book_group_picker), +class GroupSelectDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_book_group_picker), Toolbar.OnMenuItemClickListener { constructor(groupId: Long, requestCode: Int = -1) : this() { @@ -51,11 +52,11 @@ class GroupSelectDialog() : BaseDialogFragment(R.layout.dialog_book_group_picker override fun onStart() { super.onStart() - setLayout(0.9f, 0.9f) + } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) arguments?.let { groupId = it.getLong("groupId") requestCode = it.getInt("requestCode", -1) @@ -78,7 +79,7 @@ class GroupSelectDialog() : BaseDialogFragment(R.layout.dialog_book_group_picker binding.tvCancel.setOnClickListener { dismissAllowingStateLoss() } - binding.tvOk.setTextColor(requireContext().accentColor) + //binding.tvOk.setTextColor(requireContext().accentColor) binding.tvOk.setOnClickListener { callBack?.upGroup(requestCode, groupId) dismissAllowingStateLoss() @@ -119,7 +120,7 @@ class GroupSelectDialog() : BaseDialogFragment(R.layout.dialog_book_group_picker payloads: MutableList ) { binding.run { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) cbGroup.text = item.groupName cbGroup.isChecked = (groupId and item.groupId) > 0 } diff --git a/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt index 1876829b7..21f22f193 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/BaseImportBookActivity.kt @@ -13,7 +13,7 @@ import io.legado.app.databinding.ActivityImportBookBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.model.localBook.LocalBook import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.ArchiveUtils @@ -161,7 +161,7 @@ abstract class BaseImportBookActivity : } private fun initSearchView() { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { diff --git a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt index 52e376b4d..f3831a399 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookActivity.kt @@ -19,7 +19,7 @@ import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.ui.book.import.BaseImportBookActivity import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.SelectActionBar @@ -128,7 +128,7 @@ class ImportBookActivity : BaseImportBookActivity(), } private fun initView() { - binding.layTop.setBackgroundColor(backgroundColor) + //binding.layTop.setBackgroundColor(backgroundColor) binding.tvEmptyMsg.setText(R.string.empty_msg_import_book) binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.adapter = adapter diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt index 5c30c8cd3..800a38594 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/RemoteBookActivity.kt @@ -16,7 +16,7 @@ import io.legado.app.data.appDb import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.model.remote.RemoteBook import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.book.import.BaseImportBookActivity @@ -80,7 +80,7 @@ class RemoteBookActivity : BaseImportBookActivity(), } private fun initView() { - binding.layTop.setBackgroundColor(backgroundColor) + //binding.layTop.setBackgroundColor(backgroundColor) binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.adapter = adapter binding.selectActionBar.setMainActionText(R.string.add_to_bookshelf) diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/ServerConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/ServerConfigDialog.kt index ba4f91f47..5d340346d 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/ServerConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/ServerConfigDialog.kt @@ -13,7 +13,7 @@ import io.legado.app.data.entities.Server import io.legado.app.data.entities.rule.RowUi import io.legado.app.databinding.DialogWebdavServerBinding import io.legado.app.databinding.ItemSourceEditBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.GSON import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout @@ -44,7 +44,7 @@ class ServerConfigDialog() : BaseDialogFragment(R.layout.dialog_webdav_server, t } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //inding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.inflateMenu(R.menu.server_config) binding.toolBar.menu.applyTint(requireContext()) binding.toolBar.setOnMenuItemClickListener(this) diff --git a/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt b/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt index 519e99904..2e72ab566 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/remote/ServersDialog.kt @@ -22,8 +22,8 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemServerSelectBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout @@ -54,7 +54,7 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.server_config) initView() initData() @@ -148,7 +148,7 @@ class ServersDialog : BaseDialogFragment(R.layout.dialog_recycler_view), payloads: MutableList ) { if (payloads.isEmpty()) { - binding.root.setBackgroundColor(context.backgroundColor) + //binding.root.setBackgroundColor(context.backgroundColor) binding.rbServer.text = item.name binding.rbServer.isChecked = item.id == selectServerId } else { diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 672a117a4..9bb230859 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -83,7 +83,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext class BookInfoActivity : - VMBaseActivity(toolBarTheme = Theme.Dark), + VMBaseActivity(), GroupSelectDialog.CallBack, ChangeBookSourceDialog.CallBack, ChangeCoverDialog.CallBack, @@ -157,7 +157,9 @@ class BookInfoActivity : @SuppressLint("PrivateResource") override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.titleBar.setBackgroundResource(R.color.transparent) + + setSupportActionBar(binding.topBar) + // binding.refreshLayout?.setColorSchemeColors(accentColor) // binding.llInfo.setBackgroundColor(backgroundColor) // binding.flAction.setBackgroundColor(bottomBackground) diff --git a/app/src/main/java/io/legado/app/ui/book/manage/BookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/manage/BookAdapter.kt index 3ecb9ce51..2017ddcce 100644 --- a/app/src/main/java/io/legado/app/ui/book/manage/BookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/manage/BookAdapter.kt @@ -14,7 +14,7 @@ import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.ItemArrangeBookBinding import io.legado.app.help.book.isLocal import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.ui.widget.recycler.DragSelectTouchHelper import io.legado.app.ui.widget.recycler.ItemTouchCallback import java.util.* @@ -49,7 +49,7 @@ class BookAdapter(context: Context, val callBack: CallBack) : payloads: MutableList ) { binding.apply { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) tvName.text = item.name tvAuthor.text = item.author tvAuthor.visibility = if (item.author.isEmpty()) View.GONE else View.VISIBLE diff --git a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt index 6e812f849..b4aa1c47a 100644 --- a/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageActivity.kt @@ -28,8 +28,8 @@ import io.legado.app.help.book.isLocal import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.group.GroupManageDialog import io.legado.app.ui.book.group.GroupSelectDialog import io.legado.app.ui.book.info.BookInfoActivity @@ -177,7 +177,7 @@ class BookshelfManageActivity : } private fun initSearchView() { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { @@ -193,7 +193,7 @@ class BookshelfManageActivity : } private fun initRecyclerView() { - binding.recyclerView.setEdgeEffectColor(primaryColor) + //binding.recyclerView.setEdgeEffectColor(primaryColor) binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.addItemDecoration(VerticalDivider(this)) binding.recyclerView.adapter = adapter diff --git a/app/src/main/java/io/legado/app/ui/book/manage/SourcePickerDialog.kt b/app/src/main/java/io/legado/app/ui/book/manage/SourcePickerDialog.kt index 9bd7a7d7c..077ddb8d4 100644 --- a/app/src/main/java/io/legado/app/ui/book/manage/SourcePickerDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/manage/SourcePickerDialog.kt @@ -21,8 +21,8 @@ import io.legado.app.data.entities.BookSourcePart import io.legado.app.databinding.DialogSourcePickerBinding import io.legado.app.databinding.Item1lineTextBinding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.utils.applyTint import io.legado.app.utils.dpToPx @@ -65,11 +65,11 @@ class SourcePickerDialog : BaseDialogFragment(R.layout.dialog_source_picker), } private fun initView() { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.title = "选择书源" binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.search_book_source) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { diff --git a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt index 173843fd9..9507ceebc 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt @@ -27,7 +27,7 @@ import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector import io.legado.app.lib.theme.ThemeStore -import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.bottomBackground import io.legado.app.model.CacheBook import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.config.BgTextConfigDialog @@ -94,7 +94,7 @@ abstract class BaseReadBookActivity : } override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.navigationBar.setBackgroundColor(bottomBackground) + //binding.navigationBar.setBackgroundColor(bottomBackground) viewModel.permissionDenialLiveData.observe(this) { selectBookFolderResult.launch { mode = HandleFileContract.DIR_SYS @@ -178,20 +178,20 @@ abstract class BaseReadBookActivity : } } upSystemUiVisibilityO(isInMultiWindow, toolBarHide) - if (toolBarHide) { - setLightStatusBar(ReadBookConfig.durConfig.curStatusIconDark()) - } else { - val statusBarColor = - if (AppConfig.readBarStyleFollowPage - && ReadBookConfig.durConfig.curBgType() == 0 - || useBgMeanColor - ) { - ReadBookConfig.bgMeanColor - } else { - ThemeStore.statusBarColor(this, AppConfig.isTransparentStatusBar) - } - setLightStatusBar(ColorUtils.isColorLight(statusBarColor)) - } +// if (toolBarHide) { +// setLightStatusBar(ReadBookConfig.durConfig.curStatusIconDark()) +// } else { +// val statusBarColor = +// if (AppConfig.readBarStyleFollowPage +// && ReadBookConfig.durConfig.curBgType() == 0 +// || useBgMeanColor +// ) { +// ReadBookConfig.bgMeanColor +// } else { +// ThemeStore.statusBarColor(this, AppConfig.isTransparentStatusBar) +// } +// setLightStatusBar(ColorUtils.isColorLight(statusBarColor)) +// } } @Suppress("DEPRECATION") @@ -223,7 +223,7 @@ abstract class BaseReadBookActivity : binding.readMenu.isVisible -> super.upNavigationBarColor() binding.searchMenu.bottomMenuVisible -> super.upNavigationBarColor() bottomDialog > 0 -> super.upNavigationBarColor() - !AppConfig.immNavigationBar -> super.upNavigationBarColor() + //!AppConfig.immNavigationBar -> super.upNavigationBarColor() else -> setNavigationBarColorAuto(ReadBookConfig.bgMeanColor) } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt index 84fe07340..12bd45472 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ContentEditDialog.kt @@ -20,7 +20,7 @@ import io.legado.app.help.book.ContentProcessor import io.legado.app.help.book.isLocal import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadBook import io.legado.app.model.webBook.WebBook import io.legado.app.utils.applyTint @@ -45,7 +45,7 @@ class ContentEditDialog : BaseDialogFragment(R.layout.dialog_content_edit) { } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.title = ReadBook.curTextChapter?.title initMenu() binding.toolBar.setOnClickListener { diff --git a/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt index e034009c3..1230bfce0 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt @@ -18,7 +18,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.Item1lineTextBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadBook import io.legado.app.ui.replace.edit.ReplaceEditActivity import io.legado.app.utils.setLayout @@ -50,7 +50,7 @@ class EffectiveReplacesDialog : BaseDialogFragment(R.layout.dialog_recycler_view override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { binding.run { - toolBar.setBackgroundColor(primaryColor) + //toolBar.setBackgroundColor(primaryColor) toolBar.setTitle(R.string.effective_replaces) recyclerView.layoutManager = LinearLayoutManager(requireContext()) recyclerView.adapter = adapter diff --git a/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt index 6d05b665d..27e890995 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/MangaMenu.kt @@ -10,12 +10,13 @@ import android.widget.FrameLayout import android.widget.SeekBar import androidx.core.view.isGone import androidx.core.view.isVisible +import com.google.android.material.slider.Slider import io.legado.app.R import io.legado.app.databinding.ViewMangaMenuBinding import io.legado.app.help.config.AppConfig import io.legado.app.help.source.getSourceType import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.bottomBackground import io.legado.app.model.ReadBook import io.legado.app.model.ReadManga import io.legado.app.ui.browser.WebViewActivity @@ -53,7 +54,7 @@ class MangaMenu @JvmOverloads constructor( loadAnimation(context, R.anim.anim_readbook_bottom_out) } private var isMenuOutAnimating = false - private var bgColor = context.bottomBackground + //private var bgColor = context.bottomBackground private val menuOutListener = object : Animation.AnimationListener { override fun onAnimationStart(animation: Animation) { @@ -99,12 +100,12 @@ class MangaMenu @JvmOverloads constructor( initAnimation() val brightnessBackground = GradientDrawable() brightnessBackground.cornerRadius = 5F.dpToPx() - brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f)) + //brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f)) if (AppConfig.isEInkMode) { titleBar.setBackgroundResource(R.drawable.bg_eink_border_bottom) bottomMenu.setBackgroundResource(R.drawable.bg_eink_border_top) } else { - bottomMenu.setBackgroundColor(bgColor) + //bottomMenu.setBackgroundColor(bgColor) } if (AppConfig.showReadTitleBarAddition) { titleBarAddition.visible() @@ -210,27 +211,30 @@ class MangaMenu @JvmOverloads constructor( ReadManga.moveToPrevChapter(true) } - seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - if (fromUser) { - callBack.skipToPage(seekBar.progress) - } + seekReadPage.addOnChangeListener { slider, value, fromUser -> + if (fromUser) { + callBack.skipToPage(value.toInt()) + } + } + seekReadPage.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { + vwMenuBg.setOnClickListener(null) } - override fun onStartTrackingTouch(seekBar: SeekBar) { - binding.vwMenuBg.setOnClickListener(null) - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - binding.vwMenuBg.setOnClickListener { runMenuOut() } + override fun onStopTrackingTouch(slider: Slider) { + vwMenuBg.setOnClickListener { runMenuOut() } } }) + + } fun upSeekBar(value: Int, count: Int) { binding.seekReadPage.apply { - max = count.minus(1) - progress = value + valueFrom = 0f + valueTo = (count - 1).toFloat() + this.value = value.toFloat() + stepSize = 1f } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 48e5b1ddd..17aab3da7 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -56,7 +56,7 @@ import io.legado.app.help.storage.Backup import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.model.analyzeRule.AnalyzeRule @@ -258,8 +258,8 @@ class ReadBookActivity : BaseReadBookActivity(), @SuppressLint("ClickableViewAccessibility") override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - binding.cursorLeft.setColorFilter(accentColor) - binding.cursorRight.setColorFilter(accentColor) + //binding.cursorLeft.setColorFilter(accentColor) + //binding.cursorRight.setColorFilter(accentColor) binding.cursorLeft.setOnTouchListener(this) binding.cursorRight.setOnTouchListener(this) window.setBackgroundDrawable(null) diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt index 1ecb20149..23b14ecc9 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadMenu.kt @@ -15,6 +15,7 @@ import android.widget.SeekBar import androidx.appcompat.widget.PopupMenu import androidx.core.view.isGone import androidx.core.view.isVisible +import com.google.android.material.slider.Slider import io.legado.app.R import io.legado.app.constant.PreferKey import io.legado.app.databinding.ViewReadMenuBinding @@ -26,12 +27,12 @@ import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.source.getSourceType import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.Selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.buttonDisabledColor -import io.legado.app.lib.theme.getPrimaryTextColor -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.buttonDisabledColor +//import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.model.ReadBook import io.legado.app.ui.browser.WebViewActivity import io.legado.app.ui.widget.seekbar.SeekBarChangeListener @@ -51,6 +52,7 @@ import io.legado.app.utils.startActivity import io.legado.app.utils.visible import splitties.views.onClick import splitties.views.onLongClick +import androidx.core.graphics.toColorInt /** * 阅读界面菜单 @@ -78,23 +80,23 @@ class ReadMenu @JvmOverloads constructor( } private val immersiveMenu: Boolean get() = AppConfig.readBarStyleFollowPage && ReadBookConfig.durConfig.curBgType() == 0 - private var bgColor: Int = if (immersiveMenu) { - kotlin.runCatching { - Color.parseColor(ReadBookConfig.durConfig.curBgStr()) - }.getOrDefault(context.bottomBackground) - } else { - context.bottomBackground - } - private var textColor: Int = if (immersiveMenu) { - ReadBookConfig.durConfig.curTextColor() - } else { - context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) - } +// private var bgColor: Int = if (immersiveMenu) { +// kotlin.runCatching { +// ReadBookConfig.durConfig.curBgStr().toColorInt() +// }.getOrDefault(context.bottomBackground) +// } else { +// context.bottomBackground +// } +// private var textColor: Int = if (immersiveMenu) { +// ReadBookConfig.durConfig.curTextColor() +// } else { +// context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) +// } - private var bottomBackgroundList: ColorStateList = Selector.colorBuild() - .setDefaultColor(bgColor) - .setPressedColor(ColorUtils.darkenColor(bgColor)) - .create() +// private var bottomBackgroundList: ColorStateList = Selector.colorBuild() +// .setDefaultColor(bgColor) +// .setPressedColor(ColorUtils.darkenColor(bgColor)) +// .create() private var onMenuOutEnd: (() -> Unit)? = null private val showBrightnessView get() = context.getPrefBoolean( @@ -115,6 +117,7 @@ class ReadMenu @JvmOverloads constructor( } } } + private val menuInListener = object : Animation.AnimationListener { override fun onAnimationStart(animation: Animation) { binding.tvSourceAction.text = @@ -168,50 +171,50 @@ class ReadMenu @JvmOverloads constructor( } initAnimation() if (immersiveMenu) { - val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor), 0.75f) - titleBar.setTextColor(textColor) - titleBar.setBackgroundColor(bgColor) - titleBar.setColorFilter(textColor) - tvChapterName.setTextColor(lightTextColor) - tvChapterUrl.setTextColor(lightTextColor) +// val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor), 0.75f) +// titleBar.setTextColor(textColor) +// titleBar.setBackgroundColor(bgColor) +// titleBar.setColorFilter(textColor) +// tvChapterName.setTextColor(lightTextColor) +// tvChapterUrl.setTextColor(lightTextColor) } else if (reset) { - val bgColor = context.primaryColor - val textColor = context.primaryTextColor - titleBar.setTextColor(textColor) - titleBar.setBackgroundColor(bgColor) - titleBar.setColorFilter(textColor) - tvChapterName.setTextColor(textColor) - tvChapterUrl.setTextColor(textColor) +// val bgColor = context.primaryColor +// val textColor = context.primaryTextColor +// titleBar.setTextColor(textColor) +// titleBar.setBackgroundColor(bgColor) +// titleBar.setColorFilter(textColor) +// tvChapterName.setTextColor(textColor) +// tvChapterUrl.setTextColor(textColor) } val brightnessBackground = GradientDrawable() brightnessBackground.cornerRadius = 5F.dpToPx() - brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f)) + //brightnessBackground.setColor(ColorUtils.adjustAlpha(bgColor, 0.5f)) llBrightness.background = brightnessBackground if (AppConfig.isEInkMode) { titleBar.setBackgroundResource(R.drawable.bg_eink_border_bottom) llBottomBg.setBackgroundResource(R.drawable.bg_eink_border_top) } else { - llBottomBg.setBackgroundColor(bgColor) + //llBottomBg.setBackgroundColor(bgColor) } - fabSearch.backgroundTintList = bottomBackgroundList - fabSearch.setColorFilter(textColor) - fabAutoPage.backgroundTintList = bottomBackgroundList - fabAutoPage.setColorFilter(textColor) - fabReplaceRule.backgroundTintList = bottomBackgroundList - fabReplaceRule.setColorFilter(textColor) - fabNightTheme.backgroundTintList = bottomBackgroundList - fabNightTheme.setColorFilter(textColor) - tvPre.setTextColor(textColor) - tvNext.setTextColor(textColor) - ivCatalog.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvCatalog.setTextColor(textColor) - ivReadAloud.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvReadAloud.setTextColor(textColor) - ivFont.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvFont.setTextColor(textColor) - ivSetting.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvSetting.setTextColor(textColor) - vwBrightnessPosAdjust.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// fabSearch.backgroundTintList = bottomBackgroundList +// fabSearch.setColorFilter(textColor) +// fabAutoPage.backgroundTintList = bottomBackgroundList +// fabAutoPage.setColorFilter(textColor) +// fabReplaceRule.backgroundTintList = bottomBackgroundList +// fabReplaceRule.setColorFilter(textColor) +// fabNightTheme.backgroundTintList = bottomBackgroundList +// fabNightTheme.setColorFilter(textColor) + //tvPre.setTextColor(textColor) + //tvNext.setTextColor(textColor) +// ivCatalog.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvCatalog.setTextColor(textColor) +// ivReadAloud.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvReadAloud.setTextColor(textColor) +// ivFont.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvFont.setTextColor(textColor) +// ivSetting.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvSetting.setTextColor(textColor) +// vwBrightnessPosAdjust.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) llBrightness.setOnClickListener(null) seekBrightness.post { seekBrightness.progress = AppConfig.readBrightness @@ -235,35 +238,35 @@ class ReadMenu @JvmOverloads constructor( fun refreshMenuColorFilter() { if (immersiveMenu) { - binding.titleBar.setColorFilter(textColor) + //binding.titleBar.setColorFilter(textColor) } } private fun upColorConfig() { - bgColor = if (immersiveMenu) { - kotlin.runCatching { - Color.parseColor(ReadBookConfig.durConfig.curBgStr()) - }.getOrDefault(context.bottomBackground) - } else { - context.bottomBackground - } - textColor = if (immersiveMenu) { - ReadBookConfig.durConfig.curTextColor() - } else { - context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) - } - bottomBackgroundList = Selector.colorBuild() - .setDefaultColor(bgColor) - .setPressedColor(ColorUtils.darkenColor(bgColor)) - .create() +// bgColor = if (immersiveMenu) { +// kotlin.runCatching { +// Color.parseColor(ReadBookConfig.durConfig.curBgStr()) +// }.getOrDefault(context.bottomBackground) +// } else { +// context.bottomBackground +// } +// textColor = if (immersiveMenu) { +// ReadBookConfig.durConfig.curTextColor() +// } else { +// context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) +// } +// bottomBackgroundList = Selector.colorBuild() +// .setDefaultColor(bgColor) +// .setPressedColor(ColorUtils.darkenColor(bgColor)) +// .create() } fun upBrightnessState() { if (brightnessAuto()) { - binding.ivBrightnessAuto.setColorFilter(context.accentColor) + //binding.ivBrightnessAuto.setColorFilter(context.accentColor) binding.seekBrightness.isEnabled = false } else { - binding.ivBrightnessAuto.setColorFilter(context.buttonDisabledColor) + //binding.ivBrightnessAuto.setColorFilter(context.buttonDisabledColor) binding.seekBrightness.isEnabled = true } setScreenBrightness(AppConfig.readBrightness.toFloat()) @@ -399,24 +402,25 @@ class ReadMenu @JvmOverloads constructor( upBrightnessVwPos() } //阅读进度 - seekReadPage.setOnSeekBarChangeListener(object : SeekBarChangeListener { - - override fun onStartTrackingTouch(seekBar: SeekBar) { - binding.vwMenuBg.setOnClickListener(null) + seekReadPage.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { + vwMenuBg.setOnClickListener(null) } - override fun onStopTrackingTouch(seekBar: SeekBar) { - binding.vwMenuBg.setOnClickListener { runMenuOut() } + override fun onStopTrackingTouch(slider: Slider) { + vwMenuBg.setOnClickListener { runMenuOut() } + + val progress = slider.value.toInt() when (AppConfig.progressBarBehavior) { - "page" -> ReadBook.skipToPage(seekBar.progress) + "page" -> ReadBook.skipToPage(progress - 1) "chapter" -> { if (confirmSkipToChapter) { - callBack.skipToChapter(seekBar.progress) + callBack.skipToChapter(progress) } else { context.alert("章节跳转确认", "确定要跳转章节吗?") { yesButton { confirmSkipToChapter = true - callBack.skipToChapter(seekBar.progress) + callBack.skipToChapter(progress) } noButton { upSeekBar() @@ -429,9 +433,9 @@ class ReadMenu @JvmOverloads constructor( } } } - }) + //搜索 fabSearch.setOnClickListener { runMenuOut { @@ -479,6 +483,7 @@ class ReadMenu @JvmOverloads constructor( callBack.showReadAloudDialog() } } + //界面 llFont.setOnClickListener { runMenuOut { @@ -523,22 +528,54 @@ class ReadMenu @JvmOverloads constructor( binding.seekReadPage.apply { when (AppConfig.progressBarBehavior) { "page" -> { - ReadBook.curTextChapter?.let { - max = it.pageSize.minus(1) - progress = ReadBook.durPageIndex + ReadBook.curTextChapter?.let { chapter -> + if (chapter.pageSize > 0) { + valueFrom = 1f + valueTo = chapter.pageSize.toFloat() + value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat() + stepSize = 1f + } else { + valueFrom = 1f + valueTo = 1f + value = 1f + } + } ?: run { + valueFrom = 1f + valueTo = 1f + value = 1f } } "chapter" -> { - max = ReadBook.simulatedChapterSize - 1 - progress = ReadBook.durChapterIndex + valueFrom = 1f + valueTo = ReadBook.simulatedChapterSize.toFloat() + value = ReadBook.durChapterIndex.toFloat() + stepSize = 1f } } } } +// fun upSeekBar() { +// binding.seekReadPage.apply { +// when (AppConfig.progressBarBehavior) { +// "page" -> { +// ReadBook.curTextChapter?.let { +// max = it.pageSize.minus(1) +// progress = ReadBook.durPageIndex +// } +// } +// +// "chapter" -> { +// max = ReadBook.simulatedChapterSize - 1 +// progress = ReadBook.durChapterIndex +// } +// } +// } +// } + fun setSeekPage(seek: Int) { - binding.seekReadPage.progress = seek + binding.seekReadPage.value = seek.toFloat() + 1 } fun setAutoPage(autoPage: Boolean) = binding.run { @@ -549,7 +586,7 @@ class ReadMenu @JvmOverloads constructor( fabAutoPage.setImageResource(R.drawable.ic_auto_page) fabAutoPage.contentDescription = context.getString(R.string.auto_next_page) } - fabAutoPage.setColorFilter(textColor) + //fabAutoPage.setColorFilter(textColor) } private fun upBrightnessVwPos() { diff --git a/app/src/main/java/io/legado/app/ui/book/read/SearchMenu.kt b/app/src/main/java/io/legado/app/ui/book/read/SearchMenu.kt index 07c38ecc7..fe5a038e0 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/SearchMenu.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/SearchMenu.kt @@ -12,8 +12,8 @@ import androidx.core.view.isVisible import io.legado.app.R import io.legado.app.databinding.ViewSearchMenuBinding import io.legado.app.lib.theme.Selector -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.model.ReadBook import io.legado.app.ui.book.searchContent.SearchResult import io.legado.app.utils.ColorUtils @@ -35,11 +35,11 @@ class SearchMenu @JvmOverloads constructor( private val menuBottomIn: Animation = loadAnimation(context, R.anim.anim_readbook_bottom_in) private val menuBottomOut: Animation = loadAnimation(context, R.anim.anim_readbook_bottom_out) - private val bgColor: Int = context.bottomBackground - private val textColor: Int = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) - private val bottomBackgroundList: ColorStateList = - Selector.colorBuild().setDefaultColor(bgColor) - .setPressedColor(ColorUtils.darkenColor(bgColor)).create() + //private val bgColor: Int = context.bottomBackground + //private val textColor: Int = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) +// private val bottomBackgroundList: ColorStateList = +// Selector.colorBuild().setDefaultColor(bgColor) +// .setPressedColor(ColorUtils.darkenColor(bgColor)).create() private var onMenuOutEnd: (() -> Unit)? = null private var isMenuOutAnimating = false @@ -68,22 +68,22 @@ class SearchMenu @JvmOverloads constructor( } private fun initView() = binding.run { - llSearchBaseInfo.setBackgroundColor(bgColor) - tvCurrentSearchInfo.setTextColor(bottomBackgroundList) - llBottomBg.setBackgroundColor(bgColor) - fabLeft.backgroundTintList = bottomBackgroundList - fabLeft.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - fabRight.backgroundTintList = bottomBackgroundList - fabRight.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvMainMenu.setTextColor(textColor) - tvSearchResults.setTextColor(textColor) - tvSearchExit.setTextColor(textColor) - ivMainMenu.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - ivSearchResults.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - ivSearchExit.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - ivSearchContentUp.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - ivSearchContentDown.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvCurrentSearchInfo.setTextColor(textColor) +// llSearchBaseInfo.setBackgroundColor(bgColor) +// tvCurrentSearchInfo.setTextColor(bottomBackgroundList) +// llBottomBg.setBackgroundColor(bgColor) +// fabLeft.backgroundTintList = bottomBackgroundList +// fabLeft.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// fabRight.backgroundTintList = bottomBackgroundList +// fabRight.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvMainMenu.setTextColor(textColor) +// tvSearchResults.setTextColor(textColor) +// tvSearchExit.setTextColor(textColor) +// ivMainMenu.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// ivSearchResults.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// ivSearchExit.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// ivSearchContentUp.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// ivSearchContentDown.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvCurrentSearchInfo.setTextColor(textColor) applyNavigationBarPadding() } diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/AutoReadDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/AutoReadDialog.kt index 82168e163..ab2ea37c4 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/AutoReadDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/AutoReadDialog.kt @@ -8,12 +8,14 @@ import android.view.View import android.view.ViewGroup import android.view.WindowManager import android.widget.SeekBar +import com.google.android.material.slider.Slider import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogAutoReadBinding import io.legado.app.help.config.ReadBookConfig -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.service.BaseReadAloudService @@ -25,23 +27,23 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding import java.util.Locale -class AutoReadDialog : BaseDialogFragment(R.layout.dialog_auto_read) { +class AutoReadDialog : BaseBottomSheetDialogFragment(R.layout.dialog_auto_read) { private val binding by viewBinding(DialogAutoReadBinding::bind) private val callBack: CallBack? get() = activity as? CallBack override fun onStart() { super.onStart() - dialog?.window?.run { - clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - setBackgroundDrawableResource(R.color.background) - decorView.setPadding(0, 0, 0, 0) - val attr = attributes - attr.dimAmount = 0.0f - attr.gravity = Gravity.BOTTOM - attributes = attr - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) - } +// dialog?.window?.run { +// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// setBackgroundDrawableResource(R.color.background) +// decorView.setPadding(0, 0, 0, 0) +// val attr = attributes +// attr.dimAmount = 0.0f +// attr.gravity = Gravity.BOTTOM +// attributes = attr +// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) +// } } override fun onDismiss(dialog: DialogInterface) { @@ -55,20 +57,20 @@ class AutoReadDialog : BaseDialogFragment(R.layout.dialog_auto_read) { dismiss() return } - val bg = requireContext().bottomBackground - val isLight = ColorUtils.isColorLight(bg) - val textColor = requireContext().getPrimaryTextColor(isLight) - root.setBackgroundColor(bg) - tvReadSpeedTitle.setTextColor(textColor) - tvReadSpeed.setTextColor(textColor) - ivCatalog.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvCatalog.setTextColor(textColor) - ivMainMenu.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvMainMenu.setTextColor(textColor) - ivAutoPageStop.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvAutoPageStop.setTextColor(textColor) - ivSetting.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - tvSetting.setTextColor(textColor) + //val bg = requireContext().bottomBackground + //val isLight = ColorUtils.isColorLight(bg) + //val textColor = requireContext().getPrimaryTextColor(isLight) + //root.setBackgroundColor(bg) +// tvReadSpeedTitle.setTextColor(textColor) +// tvReadSpeed.setTextColor(textColor) +// ivCatalog.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvCatalog.setTextColor(textColor) +// ivMainMenu.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvMainMenu.setTextColor(textColor) +// ivAutoPageStop.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvAutoPageStop.setTextColor(textColor) +// ivSetting.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// tvSetting.setTextColor(textColor) initOnChange() initData() initEvent() @@ -77,19 +79,22 @@ class AutoReadDialog : BaseDialogFragment(R.layout.dialog_auto_read) { private fun initData() { val speed = if (ReadBookConfig.autoReadSpeed < 1) 1 else ReadBookConfig.autoReadSpeed binding.tvReadSpeed.text = String.format(Locale.ROOT, "%ds", speed) - binding.seekAutoRead.progress = speed + binding.seekAutoRead.value = speed.toFloat() } private fun initOnChange() { - binding.seekAutoRead.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - val speed = if (progress < 1) 1 else progress - binding.tvReadSpeed.text = String.format(Locale.ROOT, "%ds", speed) + binding.seekAutoRead.addOnChangeListener { slider, value, fromUser -> + val speed = if (value < 1) 1 else value.toInt() + binding.tvReadSpeed.text = String.format(Locale.ROOT, "%ds", speed) + } + + binding.seekAutoRead.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { + // 开始滑动时的操作 } - override fun onStopTrackingTouch(seekBar: SeekBar) { - ReadBookConfig.autoReadSpeed = - if (binding.seekAutoRead.progress < 1) 1 else binding.seekAutoRead.progress + override fun onStopTrackingTouch(slider: Slider) { + ReadBookConfig.autoReadSpeed = if (slider.value < 1) 1 else slider.value.toInt() upTtsSpeechRate() } }) diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt index 469f1ca56..512d5295c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt @@ -13,6 +13,7 @@ import android.view.WindowManager import android.widget.SeekBar import androidx.appcompat.widget.TooltipCompat import androidx.documentfile.provider.DocumentFile +import com.google.android.material.slider.Slider import com.jaredrummler.android.colorpicker.ColorPickerDialog import io.legado.app.R import io.legado.app.base.BaseDialogFragment @@ -28,9 +29,9 @@ import io.legado.app.help.http.okHttpClient import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor -import io.legado.app.lib.theme.getSecondaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.getSecondaryTextColor import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.seekbar.SeekBarChangeListener @@ -100,7 +101,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { super.onStart() dialog?.window?.run { clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - setBackgroundDrawableResource(R.color.background) + //setBackgroundDrawableResource(R.color.background) decorView.setPadding(0, 0, 0, 0) val attr = attributes attr.dimAmount = 0.0f @@ -124,22 +125,22 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { } private fun initView() = binding.run { - val bg = requireContext().bottomBackground - val isLight = ColorUtils.isColorLight(bg) - primaryTextColor = requireContext().getPrimaryTextColor(isLight) - secondaryTextColor = requireContext().getSecondaryTextColor(isLight) - rootView.setBackgroundColor(bg) - tvNameTitle.setTextColor(primaryTextColor) - tvName.setTextColor(secondaryTextColor) - ivEdit.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN) - tvRestore.setTextColor(primaryTextColor) - swDarkStatusIcon.setTextColor(primaryTextColor) - swUnderline.setTextColor(primaryTextColor) - ivImport.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) - ivExport.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) - ivDelete.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) - tvBgAlpha.setTextColor(primaryTextColor) - tvBgImage.setTextColor(primaryTextColor) +// val bg = requireContext().bottomBackground +// val isLight = ColorUtils.isColorLight(bg) +// primaryTextColor = requireContext().getPrimaryTextColor(isLight) +// secondaryTextColor = requireContext().getSecondaryTextColor(isLight) +// rootView.setBackgroundColor(bg) +// tvNameTitle.setTextColor(primaryTextColor) +// tvName.setTextColor(secondaryTextColor) +// ivEdit.setColorFilter(secondaryTextColor, PorterDuff.Mode.SRC_IN) +// tvRestore.setTextColor(primaryTextColor) +// swDarkStatusIcon.setTextColor(primaryTextColor) +// swUnderline.setTextColor(primaryTextColor) +// ivImport.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) +// ivExport.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) +// ivDelete.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) +// tvBgAlpha.setTextColor(primaryTextColor) +// tvBgImage.setTextColor(primaryTextColor) recyclerView.adapter = adapter adapter.addHeaderView { ItemBgImageBinding.inflate(layoutInflater, it, false).apply { @@ -162,7 +163,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { binding.tvName.text = name.ifBlank { "文字" } binding.swDarkStatusIcon.isChecked = curStatusIconDark() binding.swUnderline.isChecked = underline - binding.sbBgAlpha.progress = bgAlpha + binding.sbBgAlpha.value = bgAlpha.toFloat() } @SuppressLint("InflateParams") @@ -245,13 +246,17 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { toastOnUi("数量已是最少,不能删除.") } } - binding.sbBgAlpha.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - ReadBookConfig.bgAlpha = progress - postEvent(EventBus.UP_CONFIG, arrayListOf(3)) + binding.sbBgAlpha.addOnChangeListener { slider, value, fromUser -> + ReadBookConfig.bgAlpha = value.toInt() + postEvent(EventBus.UP_CONFIG, arrayListOf(3)) + } + + binding.sbBgAlpha.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { + // 可留空 } - override fun onStopTrackingTouch(seekBar: SeekBar) { + override fun onStopTrackingTouch(slider: Slider) { postEvent(EventBus.UP_CONFIG, arrayListOf(3)) } }) diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ChineseConverter.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ChineseConverter.kt index fabe3455c..976a2765c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/ChineseConverter.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ChineseConverter.kt @@ -8,14 +8,14 @@ import android.util.AttributeSet import io.legado.app.R import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.ui.widget.text.StrokeTextView class ChineseConverter(context: Context, attrs: AttributeSet?) : StrokeTextView(context, attrs) { private val spannableString = SpannableString("简/繁") - private var enabledSpan: ForegroundColorSpan = ForegroundColorSpan(context.accentColor) +// private var enabledSpan: ForegroundColorSpan = ForegroundColorSpan(context.accentColor) private var onChanged: (() -> Unit)? = null init { @@ -29,11 +29,11 @@ class ChineseConverter(context: Context, attrs: AttributeSet?) : StrokeTextView( } private fun upUi(type: Int) { - spannableString.removeSpan(enabledSpan) - when (type) { - 1 -> spannableString.setSpan(enabledSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) - 2 -> spannableString.setSpan(enabledSpan, 2, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) - } + //spannableString.removeSpan(enabledSpan) +// when (type) { +// 1 -> spannableString.setSpan(enabledSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) +// 2 -> spannableString.setSpan(enabledSpan, 2, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) +// } text = spannableString } diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/HttpTtsEditDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/HttpTtsEditDialog.kt index 3be519462..af648b29c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/HttpTtsEditDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/HttpTtsEditDialog.kt @@ -11,7 +11,7 @@ import io.legado.app.base.BaseDialogFragment import io.legado.app.data.entities.HttpTTS import io.legado.app.databinding.DialogHttpTtsEditBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.login.SourceLoginActivity import io.legado.app.ui.widget.code.addJsPattern @@ -45,7 +45,7 @@ class HttpTtsEditDialog() : BaseDialogFragment(R.layout.dialog_http_tts_edit, tr } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.tvUrl.run { addLegadoPattern() addJsonPattern() diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt index 61f63b7c5..edc76021c 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/MoreConfigDialog.kt @@ -19,8 +19,8 @@ import io.legado.app.constant.PreferKey import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.book.read.page.provider.ChapterProvider @@ -37,16 +37,16 @@ class MoreConfigDialog : BasePrefDialogFragment() { override fun onStart() { super.onStart() - dialog?.window?.run { - clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - setBackgroundDrawableResource(R.color.background) - decorView.setPadding(0, 0, 0, 0) - val attr = attributes - attr.dimAmount = 0.0f - attr.gravity = Gravity.BOTTOM - attributes = attr - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 360.dpToPx()) - } +// dialog?.window?.run { +// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// setBackgroundDrawableResource(R.color.background) +// decorView.setPadding(0, 0, 0, 0) +// val attr = attributes +// attr.dimAmount = 0.0f +// attr.gravity = Gravity.BOTTOM +// attributes = attr +// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 360.dpToPx()) +// } } override fun onCreateView( @@ -56,7 +56,7 @@ class MoreConfigDialog : BasePrefDialogFragment() { ): View { (activity as ReadBookActivity).bottomDialog++ val view = LinearLayout(context) - view.setBackgroundColor(requireContext().bottomBackground) + //view.setBackgroundColor(requireContext().bottomBackground) view.id = R.id.tag1 container?.addView(view) return view @@ -93,7 +93,7 @@ class MoreConfigDialog : BasePrefDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onResume() { diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt index 6019c782a..061584d6e 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/PaddingConfigDialog.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import android.view.WindowManager import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.constant.EventBus import io.legado.app.databinding.DialogReadPaddingBinding @@ -20,13 +21,13 @@ class PaddingConfigDialog : BaseDialogFragment(R.layout.dialog_read_padding) { override fun onStart() { super.onStart() - dialog?.window?.let { - it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - val attr = it.attributes - attr.dimAmount = 0.0f - it.attributes = attr - } - setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) +// dialog?.window?.let { +// it.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// val attr = it.attributes +// attr.dimAmount = 0.0f +// it.attributes = attr +// } +// setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { @@ -111,11 +112,11 @@ class PaddingConfigDialog : BaseDialogFragment(R.layout.dialog_read_padding) { ReadBookConfig.footerPaddingRight = it postEvent(EventBus.UP_CONFIG, arrayListOf(2)) } - cbShowTopLine.onCheckedChangeListener = { _, isChecked -> + cbShowTopLine.setOnCheckedChangeListener { _, isChecked -> ReadBookConfig.showHeaderLine = isChecked postEvent(EventBus.UP_CONFIG, arrayListOf(2)) } - cbShowBottomLine.onCheckedChangeListener = { _, isChecked -> + cbShowBottomLine.setOnCheckedChangeListener { _, isChecked -> ReadBookConfig.showFooterLine = isChecked postEvent(EventBus.UP_CONFIG, arrayListOf(2)) } diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/PageKeyDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/PageKeyDialog.kt index 931d35b84..f34f01622 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/PageKeyDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/PageKeyDialog.kt @@ -6,7 +6,7 @@ import android.view.KeyEvent import android.view.ViewGroup import io.legado.app.constant.PreferKey import io.legado.app.databinding.DialogPageKeyBinding -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.utils.getPrefString import io.legado.app.utils.hideSoftInput import io.legado.app.utils.putPrefString @@ -26,7 +26,7 @@ class PageKeyDialog(context: Context) : Dialog(context) { init { setContentView(binding.root) binding.run { - contentView.setBackgroundColor(context.backgroundColor) + //contentView.setBackgroundColor(context.backgroundColor) etPrev.setText(context.getPrefString(PreferKey.prevKeys)) etNext.setText(context.getPrefString(PreferKey.nextKeys)) tvReset.onClick { diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudConfigDialog.kt index 81c3129db..9070a055b 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudConfigDialog.kt @@ -18,8 +18,8 @@ import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.prefs.SwitchPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadAloud import io.legado.app.service.BaseReadAloudService import io.legado.app.utils.GSON @@ -36,8 +36,8 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() { override fun onStart() { super.onStart() dialog?.window?.run { - setBackgroundDrawableResource(R.color.transparent) - setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) + //setBackgroundDrawableResource(R.color.transparent) + //setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) } } @@ -47,7 +47,7 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() { savedInstanceState: Bundle? ): View { val view = LinearLayout(requireContext()) - view.setBackgroundColor(requireContext().backgroundColor) + //view.setBackgroundColor(requireContext().backgroundColor) view.id = R.id.tag1 container?.addView(view) return view @@ -88,7 +88,7 @@ class ReadAloudConfigDialog : BasePrefDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onResume() { diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudDialog.kt index 56928ef77..83e6c5c34 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ReadAloudDialog.kt @@ -8,14 +8,17 @@ import android.view.View import android.view.ViewGroup import android.view.WindowManager import android.widget.SeekBar +import androidx.core.content.ContextCompat +import com.google.android.material.slider.Slider import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.constant.EventBus import io.legado.app.databinding.DialogReadAloudBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.service.BaseReadAloudService @@ -25,22 +28,22 @@ import io.legado.app.utils.* import io.legado.app.utils.viewbindingdelegate.viewBinding -class ReadAloudDialog : BaseDialogFragment(R.layout.dialog_read_aloud) { +class ReadAloudDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_aloud) { private val callBack: CallBack? get() = activity as? CallBack private val binding by viewBinding(DialogReadAloudBinding::bind) override fun onStart() { super.onStart() - dialog?.window?.run { - clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - setBackgroundDrawableResource(R.color.background) - decorView.setPadding(0, 0, 0, 0) - val attr = attributes - attr.dimAmount = 0.0f - attr.gravity = Gravity.BOTTOM - attributes = attr - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) - } +// dialog?.window?.run { +// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// setBackgroundDrawableResource(R.color.background) +// decorView.setPadding(0, 0, 0, 0) +// val attr = attributes +// attr.dimAmount = 0.0f +// attr.gravity = Gravity.BOTTOM +// attributes = attr +// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) +// } } override fun onDismiss(dialog: DialogInterface) { @@ -54,32 +57,32 @@ class ReadAloudDialog : BaseDialogFragment(R.layout.dialog_read_aloud) { dismiss() return } - val bg = requireContext().bottomBackground - val isLight = ColorUtils.isColorLight(bg) - val textColor = requireContext().getPrimaryTextColor(isLight) + //val bg = requireContext().bottomBackground + //val isLight = ColorUtils.isColorLight(bg) + //val textColor = requireContext().getPrimaryTextColor(isLight) binding.run { - rootView.setBackgroundColor(bg) - tvPre.setTextColor(textColor) - tvNext.setTextColor(textColor) - ivPlayPrev.setColorFilter(textColor) - ivPlayPause.setColorFilter(textColor) - ivPlayNext.setColorFilter(textColor) - ivStop.setColorFilter(textColor) - ivTimer.setColorFilter(textColor) - tvTimer.setTextColor(textColor) - ivTtsSpeechReduce.setColorFilter(textColor) - tvTtsSpeed.setTextColor(textColor) - tvTtsSpeedValue.setTextColor(textColor) - ivTtsSpeechAdd.setColorFilter(textColor) - ivCatalog.setColorFilter(textColor) - tvCatalog.setTextColor(textColor) - ivMainMenu.setColorFilter(textColor) - tvMainMenu.setTextColor(textColor) - ivToBackstage.setColorFilter(textColor) - tvToBackstage.setTextColor(textColor) - ivSetting.setColorFilter(textColor) - tvSetting.setTextColor(textColor) - cbTtsFollowSys.setTextColor(textColor) +// rootView.setBackgroundColor(bg) +// tvPre.setTextColor(textColor) +// tvNext.setTextColor(textColor) +// ivPlayPrev.setColorFilter(textColor) +// ivPlayPause.setColorFilter(textColor) +// ivPlayNext.setColorFilter(textColor) +// ivStop.setColorFilter(textColor) +// ivTimer.setColorFilter(textColor) +// tvTimer.setTextColor(textColor) +// ivTtsSpeechReduce.setColorFilter(textColor) +// tvTtsSpeed.setTextColor(textColor) +// tvTtsSpeedValue.setTextColor(textColor) +// ivTtsSpeechAdd.setColorFilter(textColor) +// ivCatalog.setColorFilter(textColor) +// tvCatalog.setTextColor(textColor) +// ivMainMenu.setColorFilter(textColor) +// tvMainMenu.setTextColor(textColor) +// ivToBackstage.setColorFilter(textColor) +// tvToBackstage.setTextColor(textColor) +// ivSetting.setColorFilter(textColor) +// tvSetting.setTextColor(textColor) +// cbTtsFollowSys.setTextColor(textColor) } initData() initEvent() @@ -117,50 +120,71 @@ class ReadAloudDialog : BaseDialogFragment(R.layout.dialog_read_aloud) { upTtsSpeechRateEnabled(!isChecked) upTtsSpeechRate() } - ivTtsSpeechReduce.setOnClickListener { - seekTtsSpeechRate.progress = AppConfig.ttsSpeechRate - 1 - AppConfig.ttsSpeechRate -= 1 - upTtsSpeechRate() - } - ivTtsSpeechAdd.setOnClickListener { - seekTtsSpeechRate.progress = AppConfig.ttsSpeechRate + 1 - AppConfig.ttsSpeechRate += 1 - upTtsSpeechRate() - } + ivTimer.setOnClickListener { - AppConfig.ttsTimer = seekTimer.progress + AppConfig.ttsTimer = seekTimer.value.toInt() toastOnUi("保存设定时间成功!") } - tvTimer.setOnClickListener { + + // 设置初始值 + seekTtsSpeechRate.value = AppConfig.ttsSpeechRate.toFloat() + seekTimer.value = if (BaseReadAloudService.timeMinute > 0) + BaseReadAloudService.timeMinute.toFloat() + else AppConfig.ttsTimer.toFloat() + + // 减速按钮逻辑 + ivTtsSpeechReduce.setOnClickListener { + val newValue = (seekTtsSpeechRate.value - 1).coerceAtLeast(seekTtsSpeechRate.valueFrom) + seekTtsSpeechRate.value = newValue + AppConfig.ttsSpeechRate = newValue.toInt() + upTtsSpeechRate() + } + + // 加速按钮逻辑 + ivTtsSpeechAdd.setOnClickListener { + val newValue = (seekTtsSpeechRate.value + 1).coerceAtMost(seekTtsSpeechRate.valueTo) + seekTtsSpeechRate.value = newValue + AppConfig.ttsSpeechRate = newValue.toInt() + upTtsSpeechRate() + } + + btnTimer.setOnClickListener { val times = intArrayOf(0, 5, 10, 15, 30, 60, 90, 180) val timeKeys = times.map { "$it 分钟" } context?.selector("设定时间", timeKeys) { _, index -> ReadAloud.setTimer(requireContext(), times[index]) + upTimerText(times[index]) } } + //设置保存的默认值 - seekTtsSpeechRate.progress = AppConfig.ttsSpeechRate - seekTtsSpeechRate.setOnSeekBarChangeListener(object : SeekBarChangeListener { - - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - super.onProgressChanged(seekBar, progress, fromUser) - upTtsSpeechRateText(progress) + seekTtsSpeechRate.addOnChangeListener { _, value, fromUser -> + if (fromUser) { + upTtsSpeechRateText(value.toInt()) } + } - override fun onStopTrackingTouch(seekBar: SeekBar) { - AppConfig.ttsSpeechRate = seekBar.progress + seekTtsSpeechRate.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) {} + override fun onStopTrackingTouch(slider: Slider) { + AppConfig.ttsSpeechRate = slider.value.toInt() upTtsSpeechRate() } }) - seekTimer.setOnSeekBarChangeListener(object : SeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { - upTimerText(progress) - } - override fun onStopTrackingTouch(seekBar: SeekBar) { - ReadAloud.setTimer(requireContext(), seekTimer.progress) + seekTimer.addOnChangeListener { _, value, fromUser -> + if (fromUser) { + upTimerText(value.toInt()) + } + } + + seekTimer.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) {} + override fun onStopTrackingTouch(slider: Slider) { + ReadAloud.setTimer(requireContext(), slider.value.toInt()) } }) + } private fun upTtsSpeechRateEnabled(enabled: Boolean) { @@ -175,39 +199,40 @@ class ReadAloudDialog : BaseDialogFragment(R.layout.dialog_read_aloud) { private fun upPlayState() { if (!BaseReadAloudService.pause) { - binding.ivPlayPause.setImageResource(R.drawable.ic_pause_24dp) + binding.ivPlayPause.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_pause_24dp) binding.ivPlayPause.contentDescription = getString(R.string.pause) } else { - binding.ivPlayPause.setImageResource(R.drawable.ic_play_24dp) + binding.ivPlayPause.icon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_play_24dp) binding.ivPlayPause.contentDescription = getString(R.string.audio_play) } - val bg = requireContext().bottomBackground - val isLight = ColorUtils.isColorLight(bg) - val textColor = requireContext().getPrimaryTextColor(isLight) - binding.ivPlayPause.setColorFilter(textColor) + + // val bg = requireContext().bottomBackground + // val isLight = ColorUtils.isColorLight(bg) + // val textColor = requireContext().getPrimaryTextColor(isLight) + // binding.ivPlayPause.iconTint = ColorStateList.valueOf(textColor) } private fun upSeekTimer() { binding.seekTimer.post { - if (BaseReadAloudService.timeMinute > 0) { - binding.seekTimer.progress = BaseReadAloudService.timeMinute + binding.seekTimer.value = if (BaseReadAloudService.timeMinute > 0) { + BaseReadAloudService.timeMinute.toFloat() } else { - binding.seekTimer.progress = AppConfig.ttsTimer + AppConfig.ttsTimer.toFloat() } } } private fun upTimerText(timeMinute: Int) { if (timeMinute < 0) { - binding.tvTimer.text = requireContext().getString(R.string.timer_m, 0) + binding.btnTimer.text = requireContext().getString(R.string.timer_m, 0) } else { - binding.tvTimer.text = requireContext().getString(R.string.timer_m, timeMinute) + binding.btnTimer.text = requireContext().getString(R.string.timer_m, timeMinute) } } @SuppressLint("SetTextI18n") private fun upTtsSpeechRateText(value: Int) { - binding.tvTtsSpeedValue.text = ((value + 5) / 10f).toString() + binding.tvTtsSpeedValue.text = value.toString() } private fun upTtsSpeechRate() { @@ -220,7 +245,10 @@ class ReadAloudDialog : BaseDialogFragment(R.layout.dialog_read_aloud) { override fun observeLiveBus() { observeEvent(EventBus.ALOUD_STATE) { upPlayState() } - observeEvent(EventBus.READ_ALOUD_DS) { binding.seekTimer.progress = it } + observeEvent(EventBus.READ_ALOUD_DS) { + val value = it.coerceIn(binding.seekTimer.valueFrom.toInt(), binding.seekTimer.valueTo.toInt()) + binding.seekTimer.value = value.toFloat() + } } interface CallBack { diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt index ed3736dc6..bfe916d68 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt @@ -9,6 +9,7 @@ import android.view.WindowManager import androidx.core.view.get import com.github.liuyueyi.quick.transfer.constants.TransType import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter @@ -18,9 +19,9 @@ import io.legado.app.databinding.ItemReadStyleBinding import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.model.ReadBook import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.font.FontSelectDialog @@ -33,7 +34,7 @@ import io.legado.app.utils.showDialogFragment import io.legado.app.utils.viewbindingdelegate.viewBinding import splitties.views.onLongClick -class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), +class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_style), FontSelectDialog.CallBack { private val binding by viewBinding(DialogReadBookStyleBinding::bind) @@ -42,16 +43,16 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), override fun onStart() { super.onStart() - dialog?.window?.run { - clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) - setBackgroundDrawableResource(R.color.background) - decorView.setPadding(0, 0, 0, 0) - val attr = attributes - attr.dimAmount = 0.0f - attr.gravity = Gravity.BOTTOM - attributes = attr - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) - } +// dialog?.window?.run { +// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) +// setBackgroundDrawableResource(R.color.background) +// decorView.setPadding(0, 0, 0, 0) +// val attr = attributes +// attr.dimAmount = 0.0f +// attr.gravity = Gravity.BOTTOM +// attributes = attr +// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) +// } } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { @@ -68,13 +69,13 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), } private fun initView() = binding.run { - val bg = requireContext().bottomBackground - val isLight = ColorUtils.isColorLight(bg) - val textColor = requireContext().getPrimaryTextColor(isLight) - rootView.setBackgroundColor(bg) - tvPageAnim.setTextColor(textColor) - tvBgTs.setTextColor(textColor) - tvShareLayout.setTextColor(textColor) + //val bg = requireContext().bottomBackground + //val isLight = ColorUtils.isColorLight(bg) + //val textColor = requireContext().getPrimaryTextColor(isLight) +// rootView.setBackgroundColor(bg) +// tvPageAnim.setTextColor(textColor) +// tvBgTs.setTextColor(textColor) +// tvShareLayout.setTextColor(textColor) dsbTextSize.valueFormat = { (it + 5).toString() } @@ -87,10 +88,10 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), rvStyle.adapter = styleAdapter styleAdapter.addFooterView { ItemReadStyleBinding.inflate(layoutInflater, it, false).apply { - ivStyle.setPadding(6.dpToPx(), 6.dpToPx(), 6.dpToPx(), 6.dpToPx()) - ivStyle.setText(null) - ivStyle.setColorFilter(textColor) - ivStyle.borderColor = textColor +// ivStyle.setPadding(6.dpToPx(), 6.dpToPx(), 6.dpToPx(), 6.dpToPx()) +// ivStyle.setText(null) +// ivStyle.setColorFilter(textColor) +// ivStyle.borderColor = textColor ivStyle.setImageResource(R.drawable.ic_add) root.setOnClickListener { ReadBookConfig.configList.add(ReadBookConfig.Config()) @@ -133,13 +134,28 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), tvTip.setOnClickListener { TipConfigDialog().show(childFragmentManager, "tipConfigDialog") } - rgPageAnim.setOnCheckedChangeListener { _, checkedId -> +// rgPageAnim.setOnCheckedChangeListener { _, checkedId -> +// ReadBook.book?.setPageAnim(-1) +// ReadBookConfig.pageAnim = binding.rgPageAnim.getIndexById(checkedId) +// callBack?.upPageAnim() +// ReadBook.loadContent(false) +// } + binding.rgPageAnim.setOnCheckedStateChangeListener { group, checkedIds -> + val checkedId = checkedIds.firstOrNull() ?: return@setOnCheckedStateChangeListener ReadBook.book?.setPageAnim(-1) - ReadBookConfig.pageAnim = binding.rgPageAnim.getIndexById(checkedId) + ReadBookConfig.pageAnim = when (checkedId) { + R.id.rb_anim0 -> 0 // 覆盖动画 + R.id.rb_anim1 -> 1 // 滑动动画 + R.id.rb_simulation_anim -> 2 // 仿真翻页 + R.id.rb_scroll_anim -> 3 // 滚动动画 + R.id.rb_no_anim -> 4 // 无动画 + else -> 0 + } callBack?.upPageAnim() ReadBook.loadContent(false) } - cbShareLayout.onCheckedChangeListener = { _, isChecked -> + + cbShareLayout.setOnCheckedChangeListener { _, isChecked -> ReadBookConfig.shareLayout = isChecked upView() postEvent(EventBus.UP_CONFIG, arrayListOf(1, 2, 5)) @@ -224,9 +240,9 @@ class ReadStyleDialog : BaseDialogFragment(R.layout.dialog_read_book_style), binding.apply { ivStyle.setText(item.name.ifBlank { "文字" }) ivStyle.setTextColor(item.curTextColor()) - ivStyle.setImageDrawable(item.curBgDrawable(100, 150)) + //ivStyle.setImageDrawable(item.curBgDrawable(100, 150)) if (ReadBookConfig.styleSelect == holder.layoutPosition) { - ivStyle.borderColor = accentColor + //ivStyle.borderColor = accentColor ivStyle.setTextBold(true) } else { ivStyle.borderColor = item.curTextColor() diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/SpeakEngineDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/SpeakEngineDialog.kt index 9a4e17fea..969604ab6 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/SpeakEngineDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/SpeakEngineDialog.kt @@ -24,7 +24,7 @@ import io.legado.app.help.DirectLinkUpload import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadAloud import io.legado.app.model.ReadBook import io.legado.app.ui.association.ImportHttpTtsDialog @@ -89,7 +89,7 @@ class SpeakEngineDialog() : BaseDialogFragment(R.layout.dialog_recycler_view), override fun onStart() { super.onStart() - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 0.9f) + //setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 0.9f) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { @@ -99,9 +99,9 @@ class SpeakEngineDialog() : BaseDialogFragment(R.layout.dialog_recycler_view), } private fun initView() = binding.run { - toolBar.setBackgroundColor(primaryColor) + //toolBar.setBackgroundColor(primaryColor) toolBar.setTitle(R.string.speak_engine) - recyclerView.setEdgeEffectColor(primaryColor) + //recyclerView.setEdgeEffectColor(primaryColor) recyclerView.layoutManager = LinearLayoutManager(requireContext()) recyclerView.adapter = adapter adapter.addHeaderView { diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/TextFontWeightConverter.kt b/app/src/main/java/io/legado/app/ui/book/read/config/TextFontWeightConverter.kt index de0d4ca56..f5ae4fc61 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/TextFontWeightConverter.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/TextFontWeightConverter.kt @@ -8,7 +8,7 @@ import android.util.AttributeSet import io.legado.app.R import io.legado.app.help.config.ReadBookConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.ui.widget.text.StrokeTextView @@ -16,7 +16,7 @@ class TextFontWeightConverter(context: Context, attrs: AttributeSet?) : StrokeTextView(context, attrs) { private val spannableString = SpannableString(context.getString(R.string.font_weight_text)) - private var enabledSpan: ForegroundColorSpan = ForegroundColorSpan(context.accentColor) + //private var enabledSpan: ForegroundColorSpan = ForegroundColorSpan(context.accentColor) private var onChanged: (() -> Unit)? = null init { @@ -31,12 +31,12 @@ class TextFontWeightConverter(context: Context, attrs: AttributeSet?) : @Suppress("MemberVisibilityCanBePrivate") fun upUi(type: Int) { - spannableString.removeSpan(enabledSpan) - when (type) { - 0 -> spannableString.setSpan(enabledSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) - 1 -> spannableString.setSpan(enabledSpan, 2, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) - 2 -> spannableString.setSpan(enabledSpan, 4, 5, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) - } +// spannableString.removeSpan(enabledSpan) +// when (type) { +// 0 -> spannableString.setSpan(enabledSpan, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) +// 1 -> spannableString.setSpan(enabledSpan, 2, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) +// 2 -> spannableString.setSpan(enabledSpan, 4, 5, Spannable.SPAN_INCLUSIVE_EXCLUSIVE) +// } text = spannableString } diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index 0f48da576..7ce3706d7 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -26,10 +26,10 @@ import io.legado.app.data.entities.SearchKeyword import io.legado.app.databinding.ActivityBookSearchBinding import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.Selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.book.info.BookInfoActivity import io.legado.app.ui.book.source.manage.BookSourceActivity @@ -88,7 +88,7 @@ class SearchActivity : VMBaseActivity>("searchResultList") val position = intent.getIntExtra("searchResultIndex", 0) val noSearchResult = searchResultList == null @@ -124,7 +124,7 @@ class SearchContentActivity : } private fun initSearchView(requestFocus: Boolean) { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.search) if (requestFocus) searchView.isIconified = false diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt index b072291de..0abff601a 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt @@ -6,7 +6,7 @@ import io.legado.app.R import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.databinding.ItemSearchListBinding -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.getCompatColor import io.legado.app.utils.hexString @@ -15,7 +15,7 @@ class SearchContentAdapter(context: Context, val callback: Callback) : RecyclerAdapter(context) { val textColor = context.getCompatColor(R.color.primaryText).hexString.substring(2) - val accentColor = context.accentColor.hexString.substring(2) + //val accentColor = context.accentColor.hexString.substring(2) override fun getViewBinding(parent: ViewGroup): ItemSearchListBinding { return ItemSearchListBinding.inflate(inflater, parent, false) @@ -30,7 +30,7 @@ class SearchContentAdapter(context: Context, val callback: Callback) : binding.run { val isDur = callback.durChapterIndex() == item.chapterIndex if (payloads.isEmpty()) { - tvSearchResult.text = item.getHtmlCompat(textColor, accentColor) + //tvSearchResult.text = item.getHtmlCompat(textColor, accentColor) tvSearchResult.paint.isFakeBoldText = isDur } } diff --git a/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt index 0a0b1c289..56bc87d05 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/debug/BookSourceDebugActivity.kt @@ -14,8 +14,8 @@ import io.legado.app.databinding.ActivitySourceDebugBinding import io.legado.app.help.source.clearExploreKindsCache import io.legado.app.help.source.exploreKinds import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.qrcode.QrCodeResult import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.applyNavigationBarPadding @@ -61,10 +61,10 @@ class BookSourceDebugActivity : VMBaseActivity ) { binding.run { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) tvGroup.text = item } } diff --git a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt index a386a2ef7..6720f1f2c 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt @@ -12,7 +12,7 @@ import io.legado.app.constant.AppLog import io.legado.app.data.appDb import io.legado.app.data.entities.Bookmark import io.legado.app.databinding.FragmentBookmarkBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.bookmark.BookmarkDialog import io.legado.app.ui.widget.recycler.UpLinearLayoutManager import io.legado.app.ui.widget.recycler.VerticalDivider @@ -47,7 +47,7 @@ class BookmarkFragment : VMBaseFragment(R.layout.fragment_bookmark } private fun initRecyclerView() { - binding.recyclerView.setEdgeEffectColor(primaryColor) + //binding.recyclerView.setEdgeEffectColor(primaryColor) binding.recyclerView.layoutManager = mLayoutManager binding.recyclerView.addItemDecoration(VerticalDivider(requireContext())) binding.recyclerView.adapter = adapter diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt index afa2f7d3e..089c84b9e 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt @@ -15,7 +15,7 @@ import io.legado.app.help.book.ContentProcessor import io.legado.app.help.config.AppConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.theme.ThemeUtils -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.getCompatColor import io.legado.app.utils.gone import io.legado.app.utils.longToastOnUi @@ -129,7 +129,7 @@ class ChapterListAdapter(context: Context, val callback: Callback) : || cacheFileNames.contains(item.getFileName()) if (payloads.isEmpty()) { if (isDur) { - tvChapterName.setTextColor(context.accentColor) + //tvChapterName.setTextColor(context.accentColor) } else { tvChapterName.setTextColor(context.getCompatColor(R.color.primaryText)) } diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt index 799c3dfc3..eef1d6bbc 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt @@ -18,8 +18,8 @@ import io.legado.app.databinding.FragmentChapterListBinding import io.legado.app.help.book.BookHelp import io.legado.app.help.book.isLocal import io.legado.app.help.book.simulatedTotalChapterNum -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.ui.widget.recycler.UpLinearLayoutManager import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.ColorUtils @@ -44,12 +44,12 @@ class ChapterListFragment : VMBaseFragment(R.layout.fragment_chapt override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) = binding.run { viewModel.chapterListCallBack = this@ChapterListFragment - val bbg = bottomBackground - val btc = requireContext().getPrimaryTextColor(ColorUtils.isColorLight(bbg)) - llChapterBaseInfo.setBackgroundColor(bbg) - tvCurrentChapterInfo.setTextColor(btc) - ivChapterTop.setColorFilter(btc, PorterDuff.Mode.SRC_IN) - ivChapterBottom.setColorFilter(btc, PorterDuff.Mode.SRC_IN) +// val bbg = bottomBackground +// val btc = requireContext().getPrimaryTextColor(ColorUtils.isColorLight(bbg)) +// llChapterBaseInfo.setBackgroundColor(bbg) +// tvCurrentChapterInfo.setTextColor(btc) +// ivChapterTop.setColorFilter(btc, PorterDuff.Mode.SRC_IN) +// ivChapterBottom.setColorFilter(btc, PorterDuff.Mode.SRC_IN) initRecyclerView() initView() viewModel.bookData.observe(this@ChapterListFragment) { diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt index 557a72a94..7238eb747 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt @@ -18,8 +18,8 @@ import io.legado.app.data.entities.Book import io.legado.app.databinding.ActivityChapterListBinding import io.legado.app.help.book.isLocalTxt import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.model.ReadBook import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.book.toc.rule.TxtTocRuleDialog @@ -58,7 +58,7 @@ class TocActivity : VMBaseActivity(), override fun onActivityCreated(savedInstanceState: Bundle?) { tabLayout = binding.titleBar.findViewById(R.id.tab_layout) tabLayout.isTabIndicatorFullWidth = false - tabLayout.setSelectedTabIndicatorColor(accentColor) + //tabLayout.setSelectedTabIndicatorColor(accentColor) binding.viewPager.adapter = TabFragmentPageAdapter() tabLayout.setupWithViewPager(binding.viewPager) tabLayout.tabGravity = TabLayout.GRAVITY_CENTER @@ -86,7 +86,7 @@ class TocActivity : VMBaseActivity(), this.menu = menu val search = menu.findItem(R.id.menu_search) searchView = (search.actionView as SearchView).apply { - applyTint(primaryTextColor) + //applyTint(primaryTextColor) maxWidth = resources.displayMetrics.widthPixels onActionViewCollapsed() setOnCloseListener { diff --git a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt index 6c27fb84b..e0b4adede 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/rule/TxtTocRuleActivity.kt @@ -17,7 +17,7 @@ import io.legado.app.databinding.ActivityTxtTocRuleBinding import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.help.DirectLinkUpload import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.association.ImportTxtTocRuleDialog import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.qrcode.QrCodeResult @@ -93,7 +93,7 @@ class TxtTocRuleActivity : VMBaseActivity() { @SuppressLint("SetJavaScriptEnabled") private fun initWebView(url: String, headerMap: HashMap) { - binding.progressBar.fontColor = accentColor + //binding.progressBar.fontColor = accentColor binding.webView.webChromeClient = CustomWebChromeClient() binding.webView.webViewClient = CustomWebViewClient() binding.webView.settings.apply { diff --git a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt index c3e6f9dcb..a26b6907b 100644 --- a/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/BackupConfigFragment.kt @@ -31,7 +31,7 @@ import io.legado.app.lib.dialogs.selector import io.legado.app.lib.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.about.AppLogDialog import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.dialog.WaitDialog @@ -141,7 +141,7 @@ class BackupConfigFragment : PreferenceFragment(), super.onViewCreated(view, savedInstanceState) activity?.setTitle(R.string.backup_restore) preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) activity?.addMenuProvider(this, viewLifecycleOwner) if (!LocalConfig.backupHelpVersionIsLast) { showHelp("webDavHelp") diff --git a/app/src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt b/app/src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt index 2636870c6..36247e501 100644 --- a/app/src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/CheckSourceConfig.kt @@ -4,10 +4,11 @@ import android.os.Bundle import android.view.View import android.view.ViewGroup import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.constant.PreferKey import io.legado.app.databinding.DialogCheckSourceConfigBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.CheckSource import io.legado.app.utils.putPrefString import io.legado.app.utils.setLayout @@ -15,7 +16,7 @@ import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding import splitties.views.onClick -class CheckSourceConfig : BaseDialogFragment(R.layout.dialog_check_source_config) { +class CheckSourceConfig : BaseBottomSheetDialogFragment(R.layout.dialog_check_source_config) { private val binding by viewBinding(DialogCheckSourceConfigBinding::bind) @@ -24,11 +25,10 @@ class CheckSourceConfig : BaseDialogFragment(R.layout.dialog_check_source_config override fun onStart() { super.onStart() - setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.run { checkSearch.onClick { if (!checkSearch.isChecked && !checkDiscovery.isChecked) { diff --git a/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt index 0ff57e78c..04c7b8e46 100644 --- a/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/CoverConfigFragment.kt @@ -11,7 +11,7 @@ import io.legado.app.constant.PreferKey import io.legado.app.lib.dialogs.selector import io.legado.app.lib.prefs.SwitchPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.BookCover import io.legado.app.utils.* import splitties.init.appCtx @@ -44,7 +44,7 @@ class CoverConfigFragment : PreferenceFragment(), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) activity?.setTitle(R.string.cover_config) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/io/legado/app/ui/config/CoverRuleConfigDialog.kt b/app/src/main/java/io/legado/app/ui/config/CoverRuleConfigDialog.kt index 8d8ae8437..0890d8b80 100644 --- a/app/src/main/java/io/legado/app/ui/config/CoverRuleConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/config/CoverRuleConfigDialog.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogCoverRuleConfigBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.BookCover import io.legado.app.utils.GSON import io.legado.app.utils.setLayout @@ -29,7 +29,7 @@ class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_conf } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) initData() binding.tvCancel.onClick { dismissAllowingStateLoss() diff --git a/app/src/main/java/io/legado/app/ui/config/DirectLinkUploadConfig.kt b/app/src/main/java/io/legado/app/ui/config/DirectLinkUploadConfig.kt index 82770ef7a..3a494c92c 100644 --- a/app/src/main/java/io/legado/app/ui/config/DirectLinkUploadConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/DirectLinkUploadConfig.kt @@ -6,12 +6,13 @@ import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.Toolbar import io.legado.app.R +import io.legado.app.base.BaseBottomSheetDialogFragment import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogDirectLinkUploadConfigBinding import io.legado.app.help.DirectLinkUpload import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.GSON import io.legado.app.utils.applyTint import io.legado.app.utils.fromJsonObject @@ -23,18 +24,18 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding import splitties.init.appCtx import splitties.views.onClick -class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_upload_config), +class DirectLinkUploadConfig : BaseBottomSheetDialogFragment(R.layout.dialog_direct_link_upload_config), Toolbar.OnMenuItemClickListener { private val binding by viewBinding(DialogDirectLinkUploadConfigBinding::bind) override fun onStart() { super.onStart() - setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) + //setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.inflateMenu(R.menu.direct_link_upload_config) binding.toolBar.menu.applyTint(requireContext()) binding.toolBar.setOnMenuItemClickListener(this) diff --git a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt index 5482cd38a..a00414c7f 100644 --- a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt @@ -20,7 +20,7 @@ import io.legado.app.help.config.AppConfig import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.CheckSource import io.legado.app.model.ImageProvider import io.legado.app.receiver.SharedReceiverActivity @@ -76,7 +76,7 @@ class OtherConfigFragment : PreferenceFragment(), super.onViewCreated(view, savedInstanceState) activity?.setTitle(R.string.other_setting) preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onDestroy() { diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt index 6aa997809..a10d0b3e2 100644 --- a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt @@ -12,6 +12,7 @@ import android.view.View import android.widget.SeekBar import androidx.core.view.MenuProvider import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat import io.legado.app.R import io.legado.app.base.AppContextWrapper import io.legado.app.constant.AppConst @@ -25,8 +26,9 @@ import io.legado.app.help.config.ThemeConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.selector import io.legado.app.lib.prefs.ColorPreference +import io.legado.app.lib.prefs.NameListPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.number.NumberPickerDialog import io.legado.app.ui.widget.seekbar.SeekBarChangeListener import io.legado.app.utils.ColorUtils @@ -51,9 +53,10 @@ import java.io.FileOutputStream @Suppress("SameParameterValue") -class ThemeConfigFragment : PreferenceFragment(), - SharedPreferences.OnSharedPreferenceChangeListener, - MenuProvider { +class ThemeConfigFragment : PreferenceFragmentCompat(), + SharedPreferences.OnSharedPreferenceChangeListener + //MenuProvider + { private val requestCodeBgLight = 121 private val requestCodeBgDark = 122 @@ -78,7 +81,7 @@ class ThemeConfigFragment : PreferenceFragment(), } upPreferenceSummary(PreferKey.bgImage, getPrefString(PreferKey.bgImage)) upPreferenceSummary(PreferKey.bgImageN, getPrefString(PreferKey.bgImageN)) - upPreferenceSummary(PreferKey.barElevation, AppConfig.elevation.toString()) + //upPreferenceSummary(PreferKey.barElevation, AppConfig.elevation.toString()) upPreferenceSummary(PreferKey.fontScale) findPreference(PreferKey.cBackground)?.let { it.onSaveColor = { color -> @@ -100,13 +103,19 @@ class ThemeConfigFragment : PreferenceFragment(), } } } + findPreference(PreferKey.themeMode)?.let { + it.setOnPreferenceChangeListener { _, _ -> + ThemeConfig.applyDayNight(requireContext()) + true + } + } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) activity?.setTitle(R.string.theme_setting) - listView.setEdgeEffectColor(primaryColor) - activity?.addMenuProvider(this, viewLifecycleOwner) + //listView.setEdgeEffectColor(primaryColor) + //activity?.addMenuProvider(this, viewLifecycleOwner) } override fun onCreate(savedInstanceState: Bundle?) { @@ -119,28 +128,30 @@ class ThemeConfigFragment : PreferenceFragment(), preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this) } - override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { - menuInflater.inflate(R.menu.theme_config, menu) - menu.applyTint(requireContext()) - } +// override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { +// menuInflater.inflate(R.menu.theme_config, menu) +// menu.applyTint(requireContext()) +// } + +// override fun onMenuItemSelected(menuItem: MenuItem): Boolean { +// when (menuItem.itemId) { +// R.id.menu_theme_mode -> { +// AppConfig.isNightTheme = !AppConfig.isNightTheme +// ThemeConfig.applyDayNight(requireContext()) +// return true +// } +// } +// return false +// } + //不使用菜单 - override fun onMenuItemSelected(menuItem: MenuItem): Boolean { - when (menuItem.itemId) { - R.id.menu_theme_mode -> { - AppConfig.isNightTheme = !AppConfig.isNightTheme - ThemeConfig.applyDayNight(requireContext()) - return true - } - } - return false - } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { sharedPreferences ?: return when (key) { PreferKey.launcherIcon -> LauncherIconHelp.changeIcon(getPrefString(key)) - PreferKey.transparentStatusBar -> recreateActivities() - PreferKey.immNavigationBar -> recreateActivities() + //PreferKey.transparentStatusBar -> recreateActivities() + //PreferKey.immNavigationBar -> recreateActivities() PreferKey.cPrimary, PreferKey.cAccent, PreferKey.cBackground, @@ -154,7 +165,9 @@ class ThemeConfigFragment : PreferenceFragment(), PreferKey.cNBBackground -> { upTheme(true) } - + PreferKey.themeMode -> { + ThemeConfig.applyDayNight(requireContext()) + } PreferKey.bgImage, PreferKey.bgImageN -> { upPreferenceSummary(key, getPrefString(key)) @@ -166,19 +179,19 @@ class ThemeConfigFragment : PreferenceFragment(), @SuppressLint("PrivateResource") override fun onPreferenceTreeClick(preference: Preference): Boolean { when (val key = preference.key) { - PreferKey.barElevation -> NumberPickerDialog(requireContext()) - .setTitle(getString(R.string.bar_elevation)) - .setMaxValue(32) - .setMinValue(0) - .setValue(AppConfig.elevation) - .setCustomButton((R.string.btn_default_s)) { - AppConfig.elevation = AppConst.sysElevation - recreateActivities() - } - .show { - AppConfig.elevation = it - recreateActivities() - } +// PreferKey.barElevation -> NumberPickerDialog(requireContext()) +// .setTitle(getString(R.string.bar_elevation)) +// .setMaxValue(32) +// .setMinValue(0) +// .setValue(AppConfig.elevation) +// .setCustomButton((R.string.btn_default_s)) { +// AppConfig.elevation = AppConst.sysElevation +// recreateActivities() +// } +// .show { +// AppConfig.elevation = it +// recreateActivities() +// } PreferKey.fontScale -> NumberPickerDialog(requireContext()) .setTitle(getString(R.string.font_scale)) @@ -311,8 +324,8 @@ class ThemeConfigFragment : PreferenceFragment(), private fun upPreferenceSummary(preferenceKey: String, value: String? = null) { val preference = findPreference(preferenceKey) ?: return when (preferenceKey) { - PreferKey.barElevation -> preference.summary = - getString(R.string.bar_elevation_s, value) + //PreferKey.barElevation -> preference.summary = + // getString(R.string.bar_elevation_s, value) PreferKey.fontScale -> { val fontScale = AppContextWrapper.getFontScale(requireContext()) diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeListDialog.kt b/app/src/main/java/io/legado/app/ui/config/ThemeListDialog.kt index c6817338f..92e80cbd2 100644 --- a/app/src/main/java/io/legado/app/ui/config/ThemeListDialog.kt +++ b/app/src/main/java/io/legado/app/ui/config/ThemeListDialog.kt @@ -15,7 +15,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemThemeConfigBinding import io.legado.app.help.config.ThemeConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.* import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -28,11 +28,11 @@ class ThemeListDialog : BaseDialogFragment(R.layout.dialog_recycler_view), override fun onStart() { super.onStart() - setLayout(0.9f, 0.9f) + //setLayout(0.9f, 0.9f) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.theme_list) initView() initMenu() diff --git a/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt index 20af1bceb..5932b17d4 100644 --- a/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/WelcomeConfigFragment.kt @@ -10,7 +10,7 @@ import io.legado.app.R import io.legado.app.constant.PreferKey import io.legado.app.lib.dialogs.selector import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.model.BookCover import io.legado.app.utils.* import splitties.init.appCtx @@ -39,7 +39,7 @@ class WelcomeConfigFragment : PreferenceFragment(), override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) activity?.setTitle(R.string.welcome_style) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/io/legado/app/ui/dict/DictDialog.kt b/app/src/main/java/io/legado/app/ui/dict/DictDialog.kt index ff2fb7f9a..88142cbeb 100644 --- a/app/src/main/java/io/legado/app/ui/dict/DictDialog.kt +++ b/app/src/main/java/io/legado/app/ui/dict/DictDialog.kt @@ -10,8 +10,8 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.data.entities.DictRule import io.legado.app.databinding.DialogDictBinding -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.utils.setHtml import io.legado.app.utils.setLayout import io.legado.app.utils.toastOnUi @@ -46,8 +46,8 @@ class DictDialog() : BaseDialogFragment(R.layout.dialog_dict) { dismiss() return } - binding.tabLayout.setBackgroundColor(backgroundColor) - binding.tabLayout.setSelectedTabIndicatorColor(accentColor) +// binding.tabLayout.setBackgroundColor(backgroundColor) +// binding.tabLayout.setSelectedTabIndicatorColor(accentColor) binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { override fun onTabReselected(tab: TabLayout.Tab) { diff --git a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt index 2f28f19ca..c80b752a1 100644 --- a/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/dict/rule/DictRuleActivity.kt @@ -18,7 +18,7 @@ import io.legado.app.databinding.ActivityDictRuleBinding import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.help.DirectLinkUpload import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.association.ImportDictRuleDialog import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.qrcode.QrCodeResult @@ -99,7 +99,7 @@ class DictRuleActivity : VMBaseActivity(requireContext()) { - private val primaryTextColor = context.getPrimaryTextColor(!AppConfig.isNightTheme) - private val disabledTextColor = context.getPrimaryDisabledTextColor(!AppConfig.isNightTheme) + //private val primaryTextColor = context.getPrimaryTextColor(!AppConfig.isNightTheme) + //private val disabledTextColor = context.getPrimaryDisabledTextColor(!AppConfig.isNightTheme) private val upIcon = ConvertUtils.toDrawable(FilePickerIcon.getUpDir())!! private val folderIcon = ConvertUtils.toDrawable(FilePickerIcon.getFolder())!! private val fileIcon = ConvertUtils.toDrawable(FilePickerIcon.getFile())!! private val selectDrawable = ResourcesCompat.getDrawable(resources, R.drawable.shape_radius_1dp, null)!!.apply { - DrawableCompat.setTint(this, primaryTextColor) + //DrawableCompat.setTint(this, primaryTextColor) } var selectFile: File? = null @@ -264,18 +264,18 @@ class FilePickerDialog : BaseDialogFragment(R.layout.dialog_file_chooser), binding.textView.text = item.name } if (item.isDirectory) { - binding.textView.setTextColor(primaryTextColor) + //binding.textView.setTextColor(primaryTextColor) } else { if (viewModel.isSelectDir) { - binding.textView.setTextColor(disabledTextColor) + //binding.textView.setTextColor(disabledTextColor) } else { viewModel.allowExtensions?.let { if (it.isEmpty() || it.contains(FileUtils.getExtension(item.path))) { - binding.textView.setTextColor(primaryTextColor) + //binding.textView.setTextColor(primaryTextColor) } else { - binding.textView.setTextColor(disabledTextColor) + //binding.textView.setTextColor(disabledTextColor) } - } ?: binding.textView.setTextColor(primaryTextColor) + }// ?: binding.textView.setTextColor(primaryTextColor) } } } diff --git a/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt b/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt index c50993a17..f6b3118b2 100644 --- a/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt +++ b/app/src/main/java/io/legado/app/ui/font/FontSelectDialog.kt @@ -18,7 +18,7 @@ import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert import io.legado.app.lib.permission.Permissions import io.legado.app.lib.permission.PermissionsCompat -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.file.HandleFileContract import io.legado.app.utils.FileDoc import io.legado.app.utils.FileUtils @@ -77,7 +77,7 @@ class FontSelectDialog : BaseDialogFragment(R.layout.dialog_font_select), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.select_font) binding.toolBar.inflateMenu(R.menu.font_select) binding.toolBar.menu.applyTint(requireContext()) diff --git a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt index abbf54e4f..231729ee1 100644 --- a/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt +++ b/app/src/main/java/io/legado/app/ui/login/SourceLoginDialog.kt @@ -18,7 +18,7 @@ import io.legado.app.databinding.DialogLoginBinding import io.legado.app.databinding.ItemFilletTextBinding import io.legado.app.databinding.ItemSourceEditBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.about.AppLogDialog import io.legado.app.utils.GSON import io.legado.app.utils.applyTint @@ -52,7 +52,7 @@ class SourceLoginDialog : BaseDialogFragment(R.layout.dialog_login, true) { override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { val source = viewModel.source ?: return - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.title = getString(R.string.login_source, source.getTag()) val loginInfo = source.getLoginInfoMap() val loginUi = source.loginUi() diff --git a/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt b/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt index 70ebdd227..602661889 100644 --- a/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt +++ b/app/src/main/java/io/legado/app/ui/login/WebViewLoginFragment.kt @@ -22,7 +22,7 @@ import io.legado.app.constant.AppConst import io.legado.app.data.entities.BaseSource import io.legado.app.databinding.FragmentWebViewLoginBinding import io.legado.app.help.http.CookieStore -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.NetworkUtils import io.legado.app.utils.gone import io.legado.app.utils.longSnackbar @@ -65,7 +65,7 @@ class WebViewLoginFragment : BaseFragment(R.layout.fragment_web_view_login) { @SuppressLint("SetJavaScriptEnabled") private fun initWebView(source: BaseSource) { - binding.progressBar.fontColor = accentColor + //binding.progressBar.fontColor = accentColor binding.webView.settings.apply { mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW domStorageEnabled = true diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index d2e8f087c..822934192 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt @@ -31,8 +31,7 @@ import io.legado.app.help.config.LocalConfig import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.storage.Backup import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.elevation -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.about.CrashLogsDialog import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment @@ -192,11 +191,11 @@ class MainActivity : VMBaseActivity(), } private fun initView() = binding.run { - viewPagerMain.setEdgeEffectColor(primaryColor) + //viewPagerMain.setEdgeEffectColor(primaryColor) viewPagerMain.offscreenPageLimit = 3 viewPagerMain.adapter = adapter viewPagerMain.addOnPageChangeListener(PageChangeCallback()) - bottomNavigationView.elevation = elevation + //bottomNavigationView.elevation = elevation bottomNavigationView.setOnNavigationItemSelectedListener(this@MainActivity) bottomNavigationView.setOnNavigationItemReselectedListener(this@MainActivity) if (AppConfig.isEInkMode) { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt index e99c2ff5b..6109aad81 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt @@ -16,8 +16,8 @@ import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.FragmentBookshelf1Binding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.group.GroupEditDialog import io.legado.app.ui.book.search.SearchActivity import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment @@ -45,7 +45,7 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1) private val binding by viewBinding(FragmentBookshelf1Binding::bind) private val adapter by lazy { TabFragmentPageAdapter(childFragmentManager) } private val tabLayout: TabLayout by lazy { - binding.titleBar.findViewById(R.id.tab_layout) + binding.tabLayout.findViewById(R.id.tab_layout) } private val bookGroups = mutableListOf() private val fragmentMap = hashMapOf() @@ -58,7 +58,7 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1) } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - setSupportToolbar(binding.titleBar.toolbar) + setSupportToolbar(binding.topBar) initView() initBookGroupData() } @@ -67,10 +67,10 @@ class BookshelfFragment1() : BaseBookshelfFragment(R.layout.fragment_bookshelf1) get() = bookGroups.getOrNull(tabLayout.selectedTabPosition) private fun initView() { - binding.viewPagerBookshelf.setEdgeEffectColor(primaryColor) - tabLayout.isTabIndicatorFullWidth = false - tabLayout.tabMode = TabLayout.MODE_SCROLLABLE - tabLayout.setSelectedTabIndicatorColor(requireContext().accentColor) + //binding.viewPagerBookshelf.setEdgeEffectColor(primaryColor) + //tabLayout.isTabIndicatorFullWidth = false + //tabLayout.tabMode = TabLayout.MODE_SCROLLABLE + // tabLayout.setSelectedTabIndicatorColor(requireContext().accentColor) tabLayout.setupWithViewPager(binding.viewPagerBookshelf) binding.viewPagerBookshelf.offscreenPageLimit = 1 binding.viewPagerBookshelf.adapter = adapter diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt index 34d944450..c8ff0dc01 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt @@ -23,8 +23,8 @@ import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.FragmentBooksBinding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.info.BookInfoActivity import io.legado.app.ui.main.MainViewModel import io.legado.app.utils.cnCompare @@ -93,9 +93,9 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books), } private fun initRecyclerView() { - binding.rvBookshelf.setEdgeEffectColor(primaryColor) + //binding.rvBookshelf.setEdgeEffectColor(primaryColor) upFastScrollerBar() - binding.refreshLayout.setColorSchemeColors(accentColor) + //binding.refreshLayout.setColorSchemeColors(accentColor) binding.refreshLayout.setOnRefreshListener { binding.refreshLayout.isRefreshing = false activityViewModel.upToc(booksAdapter.getItems()) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt index ae9bd379d..6783214c4 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt @@ -19,8 +19,8 @@ import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup import io.legado.app.databinding.FragmentBookshelf2Binding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.group.GroupEditDialog import io.legado.app.ui.book.info.BookInfoActivity import io.legado.app.ui.book.search.SearchActivity @@ -79,8 +79,8 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2) } private fun initRecyclerView() { - binding.rvBookshelf.setEdgeEffectColor(primaryColor) - binding.refreshLayout.setColorSchemeColors(accentColor) +// binding.rvBookshelf.setEdgeEffectColor(primaryColor) +// binding.refreshLayout.setColorSchemeColors(accentColor) binding.refreshLayout.setOnRefreshListener { binding.refreshLayout.isRefreshing = false activityViewModel.upToc(books) diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt b/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt index b2664cf03..985293492 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt @@ -5,6 +5,7 @@ import android.view.View import android.view.ViewGroup import android.widget.PopupMenu import android.widget.TextView +import androidx.core.content.ContextCompat import androidx.core.view.children import com.google.android.flexbox.FlexboxLayout import io.legado.app.R @@ -17,7 +18,7 @@ import io.legado.app.databinding.ItemFindBookBinding import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.source.clearExploreKindsCache import io.legado.app.help.source.exploreKinds -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.ui.login.SourceLoginActivity import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.activity @@ -48,35 +49,35 @@ class ExploreAdapter(context: Context, val callBack: CallBack) : payloads: MutableList ) { binding.run { - if (holder.layoutPosition == itemCount - 1) { - root.setPadding(16.dpToPx(), 12.dpToPx(), 16.dpToPx(), 12.dpToPx()) - } else { - root.setPadding(16.dpToPx(), 12.dpToPx(), 16.dpToPx(), 0) - } + // 移除了 padding 设置 + if (payloads.isEmpty()) { tvName.text = item.bookSourceName } + if (exIndex == holder.layoutPosition) { - ivStatus.setImageResource(R.drawable.ic_arrow_down) - rotateLoading.loadingColor = context.accentColor - rotateLoading.visible() + // 使用 MaterialButton 的 icon 属性和旋转动画 + ivStatus.icon = ContextCompat.getDrawable(context, R.drawable.ic_arrow_right) + ivStatus.rotation = 90f // 直接设置90度旋转(向下箭头效果) + if (scrollTo >= 0) { callBack.scrollTo(scrollTo) } + Coroutine.async(callBack.scope) { item.exploreKinds() }.onSuccess { kindList -> upKindList(flexbox, item.bookSourceUrl, kindList) }.onFinally { - rotateLoading.gone() + if (scrollTo >= 0) { callBack.scrollTo(scrollTo) scrollTo = -1 } } - } else kotlin.runCatching { - ivStatus.setImageResource(R.drawable.ic_arrow_right) - rotateLoading.gone() + } else { + ivStatus.icon = ContextCompat.getDrawable(context, R.drawable.ic_arrow_right) + ivStatus.rotation = 0f // 重置为0度(向右箭头) recyclerFlexbox(flexbox) flexbox.gone() } diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt index c2d36f99a..2087c44f9 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt @@ -21,8 +21,8 @@ import io.legado.app.data.entities.BookSourcePart import io.legado.app.databinding.FragmentExploreBinding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.explore.ExploreShowActivity import io.legado.app.ui.book.search.SearchActivity import io.legado.app.ui.book.search.SearchScope @@ -92,7 +92,7 @@ class ExploreFragment() : VMBaseFragment(R.layout.fragment_exp } private fun initSearchView() { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.screen_find) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { @@ -108,7 +108,7 @@ class ExploreFragment() : VMBaseFragment(R.layout.fragment_exp } private fun initRecyclerView() { - binding.rvFind.setEdgeEffectColor(primaryColor) + //binding.rvFind.setEdgeEffectColor(primaryColor) binding.rvFind.layoutManager = linearLayoutManager binding.rvFind.adapter = adapter adapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() { diff --git a/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt b/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt index e60e77441..713cd8c59 100644 --- a/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/my/MyFragment.kt @@ -16,7 +16,7 @@ import io.legado.app.lib.dialogs.selector import io.legado.app.lib.prefs.NameListPreference import io.legado.app.lib.prefs.SwitchPreference import io.legado.app.lib.prefs.fragment.PreferenceFragment -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.service.WebService import io.legado.app.ui.about.AboutActivity import io.legado.app.ui.about.ReadRecordActivity @@ -102,17 +102,11 @@ class MyFragment() : BaseFragment(R.layout.fragment_my_config), MainFragmentInte } } } - findPreference(PreferKey.themeMode)?.let { - it.setOnPreferenceChangeListener { _, _ -> - view?.post { ThemeConfig.applyDayNight(requireContext()) } - true - } - } } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - listView.setEdgeEffectColor(primaryColor) + //listView.setEdgeEffectColor(primaryColor) } override fun onResume() { diff --git a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt index 5bd401267..658b84603 100644 --- a/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt @@ -18,8 +18,8 @@ import io.legado.app.data.entities.RssSource import io.legado.app.databinding.FragmentRssBinding import io.legado.app.databinding.ItemRssBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.main.MainFragmentInterface import io.legado.app.ui.rss.article.RssSortActivity import io.legado.app.ui.rss.favorites.RssFavoritesActivity @@ -108,7 +108,7 @@ class RssFragment() : VMBaseFragment(R.layout.fragment_rss), } private fun initSearchView() { - searchView.applyTint(primaryTextColor) + //searchView.applyTint(primaryTextColor) searchView.isSubmitButtonEnabled = true searchView.queryHint = getString(R.string.rss) searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { @@ -124,7 +124,7 @@ class RssFragment() : VMBaseFragment(R.layout.fragment_rss), } private fun initRecyclerView() { - binding.recyclerView.setEdgeEffectColor(primaryColor) + //binding.recyclerView.setEdgeEffectColor(primaryColor) binding.recyclerView.adapter = adapter adapter.addHeaderView { ItemRssBinding.inflate(layoutInflater, it, false).apply { diff --git a/app/src/main/java/io/legado/app/ui/replace/GroupManageDialog.kt b/app/src/main/java/io/legado/app/ui/replace/GroupManageDialog.kt index 4b7a0831f..9f593cc29 100644 --- a/app/src/main/java/io/legado/app/ui/replace/GroupManageDialog.kt +++ b/app/src/main/java/io/legado/app/ui/replace/GroupManageDialog.kt @@ -19,8 +19,8 @@ import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.ItemGroupManageBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyTint import io.legado.app.utils.requestInputMethod @@ -43,8 +43,8 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - view.setBackgroundColor(backgroundColor) - binding.toolBar.setBackgroundColor(primaryColor) +// view.setBackgroundColor(backgroundColor) +// binding.toolBar.setBackgroundColor(primaryColor) initView() initData() } @@ -121,7 +121,7 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view), payloads: MutableList ) { binding.run { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) tvGroup.text = item } } diff --git a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt index be2ed3fbe..250d20035 100644 --- a/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt +++ b/app/src/main/java/io/legado/app/ui/replace/ReplaceRuleActivity.kt @@ -25,8 +25,8 @@ import io.legado.app.help.DirectLinkUpload import io.legado.app.help.book.ContentProcessor import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.association.ImportReplaceRuleDialog import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.qrcode.QrCodeResult @@ -153,7 +153,7 @@ class ReplaceRuleActivity : VMBaseActivity(R.layout.frag } private fun initView() = binding.run { - refreshLayout.setColorSchemeColors(accentColor) - recyclerView.setEdgeEffectColor(primaryColor) +// refreshLayout.setColorSchemeColors(accentColor) +// recyclerView.setEdgeEffectColor(primaryColor) recyclerView.applyNavigationBarPadding() loadMoreView.setOnClickListener { if (!loadMoreView.isLoading) { diff --git a/app/src/main/java/io/legado/app/ui/rss/article/RssSortActivity.kt b/app/src/main/java/io/legado/app/ui/rss/article/RssSortActivity.kt index 3f6b7009b..5b749b023 100644 --- a/app/src/main/java/io/legado/app/ui/rss/article/RssSortActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/article/RssSortActivity.kt @@ -14,7 +14,7 @@ import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.databinding.ActivityRssArtivlesBinding import io.legado.app.help.source.sortUrls -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.ui.login.SourceLoginActivity import io.legado.app.ui.rss.source.edit.RssSourceEditActivity import io.legado.app.ui.widget.dialog.VariableDialog @@ -45,7 +45,7 @@ class RssSortActivity : VMBaseActivity() { }) binding.tabLayout.setupWithViewPager(binding.viewPager) - binding.tabLayout.setSelectedTabIndicatorColor(accentColor) + //binding.tabLayout.setSelectedTabIndicatorColor(accentColor) } override fun onCompatCreateOptionsMenu(menu: Menu): Boolean { diff --git a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesDialog.kt b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesDialog.kt index b085ac6d8..5d62237f8 100644 --- a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesDialog.kt +++ b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesDialog.kt @@ -7,7 +7,7 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.data.entities.RssArticle import io.legado.app.databinding.DialogRssFavoriteConfigBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -28,7 +28,7 @@ class RssFavoritesDialog() : BaseDialogFragment(R.layout.dialog_rss_favorite_con } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) val arguments = arguments ?: let { dismiss() return diff --git a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt index f18b29847..b45ae6105 100644 --- a/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt +++ b/app/src/main/java/io/legado/app/ui/rss/favorites/RssFavoritesFragment.kt @@ -13,7 +13,7 @@ import io.legado.app.data.appDb import io.legado.app.data.entities.RssStar import io.legado.app.databinding.FragmentRssArticlesBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.rss.read.ReadRssActivity import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyNavigationBarPadding @@ -47,7 +47,7 @@ class RssFavoritesFragment() : VMBaseFragment(R.layout.fr private fun initView() = binding.run { refreshLayout.isEnabled = false - recyclerView.setEdgeEffectColor(primaryColor) +// recyclerView.setEdgeEffectColor(primaryColor) recyclerView.layoutManager = run { recyclerView.addItemDecoration(VerticalDivider(requireContext())) LinearLayoutManager(requireContext()) diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index 7c74eb027..899dc624a 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -37,8 +37,8 @@ import io.legado.app.help.config.AppConfig import io.legado.app.help.http.CookieManager import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.selector -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.model.Download import io.legado.app.ui.association.OnLineImportActivity import io.legado.app.ui.file.HandleFileContract @@ -218,7 +218,7 @@ class ReadRssActivity : VMBaseActivity @SuppressLint("SetJavaScriptEnabled", "JavascriptInterface") private fun initWebView() { - binding.progressBar.fontColor = accentColor + //binding.progressBar.fontColor = accentColor binding.webView.webChromeClient = CustomWebChromeClient() binding.webView.webViewClient = CustomWebViewClient() binding.webView.settings.apply { @@ -325,7 +325,7 @@ class ReadRssActivity : VMBaseActivity starMenuItem?.setIcon(R.drawable.ic_star_border) starMenuItem?.setTitle(R.string.out_favorites) } - starMenuItem?.icon?.setTintMutate(primaryTextColor) + //starMenuItem?.icon?.setTintMutate(primaryTextColor) } private fun upTtsMenu(isPlaying: Boolean) { @@ -337,7 +337,7 @@ class ReadRssActivity : VMBaseActivity ttsMenuItem?.setIcon(R.drawable.ic_volume_up) ttsMenuItem?.setTitle(R.string.read_aloud) } - ttsMenuItem?.icon?.setTintMutate(primaryTextColor) + //ttsMenuItem?.icon?.setTintMutate(primaryTextColor) } } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt index b73219fc9..1609e6066 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/debug/RssSourceDebugActivity.kt @@ -9,8 +9,8 @@ import androidx.lifecycle.lifecycleScope import io.legado.app.R import io.legado.app.base.VMBaseActivity import io.legado.app.databinding.ActivitySourceDebugBinding -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.applyNavigationBarPadding import io.legado.app.utils.gone @@ -58,10 +58,10 @@ class RssSourceDebugActivity : VMBaseActivity ) { binding.run { - root.setBackgroundColor(context.backgroundColor) + //root.setBackgroundColor(context.backgroundColor) tvGroup.text = item } } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt index 3bb5ece81..7c5ad1f7c 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt @@ -20,8 +20,8 @@ import io.legado.app.databinding.ActivityRssSourceBinding import io.legado.app.databinding.DialogEditTextBinding import io.legado.app.help.DirectLinkUpload import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.primaryColor -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.association.ImportRssSourceDialog import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.qrcode.QrCodeResult @@ -205,7 +205,7 @@ class RssSourceActivity : VMBaseActivity(R.id.search_view).let { - it.applyTint(primaryTextColor) + //it.applyTint(primaryTextColor) it.onActionViewExpanded() it.queryHint = getString(R.string.search_rss_source) it.clearFocus() diff --git a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceAdapter.kt b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceAdapter.kt index b214fbcbc..a5bb86cc2 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceAdapter.kt @@ -13,7 +13,7 @@ import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.RecyclerAdapter import io.legado.app.data.entities.RssSource import io.legado.app.databinding.ItemRssSourceBinding -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.ui.widget.recycler.DragSelectTouchHelper import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.utils.ColorUtils @@ -74,7 +74,7 @@ class RssSourceAdapter(context: Context, val callBack: CallBack) : ) { binding.run { if (payloads.isEmpty()) { - root.setBackgroundColor(ColorUtils.withAlpha(context.backgroundColor, 0.5f)) + //root.setBackgroundColor(ColorUtils.withAlpha(context.backgroundColor, 0.5f)) cbSource.text = item.getDisplayNameGroup() swtEnabled.isChecked = item.enabled cbSource.isChecked = selected.contains(item) diff --git a/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt b/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt index 25980274f..9f5cb0d08 100644 --- a/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt +++ b/app/src/main/java/io/legado/app/ui/welcome/WelcomeActivity.kt @@ -9,8 +9,8 @@ import io.legado.app.constant.PreferKey import io.legado.app.constant.Theme import io.legado.app.databinding.ActivityWelcomeBinding import io.legado.app.help.config.ThemeConfig -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.backgroundColor import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.main.MainActivity import io.legado.app.utils.* @@ -21,8 +21,8 @@ open class WelcomeActivity : BaseActivity() { override val binding by viewBinding(ActivityWelcomeBinding::inflate) override fun onActivityCreated(savedInstanceState: Bundle?) { - binding.ivBook.setColorFilter(accentColor) - binding.vwTitleLine.setBackgroundColor(accentColor) +// binding.ivBook.setColorFilter(accentColor) +// binding.vwTitleLine.setBackgroundColor(accentColor) // 避免从桌面启动程序后,会重新实例化入口类的activity if (intent.flags and Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) { finish() @@ -33,7 +33,7 @@ open class WelcomeActivity : BaseActivity() { override fun setupSystemBar() { fullScreen() - setStatusBarColorAuto(backgroundColor, true, fullScreen) + //setStatusBarColorAuto(backgroundColor, true, fullScreen) upNavigationBarColor() } diff --git a/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt b/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt index 8b0790ab3..d86dd3305 100644 --- a/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/DetailSeekBar.kt @@ -7,10 +7,11 @@ import android.view.LayoutInflater import android.widget.FrameLayout import android.widget.SeekBar import androidx.appcompat.widget.TooltipCompat +import com.google.android.material.slider.Slider import io.legado.app.R import io.legado.app.databinding.ViewDetailSeekBarBinding -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import io.legado.app.ui.widget.seekbar.SeekBarChangeListener import io.legado.app.utils.ColorUtils import io.legado.app.utils.progressAdd @@ -27,16 +28,18 @@ class DetailSeekBar @JvmOverloads constructor( var valueFormat: ((progress: Int) -> String)? = null var onChanged: ((progress: Int) -> Unit)? = null + var progress: Int - get() = binding.seekBar.progress + get() = binding.slider.value.toInt() set(value) { - binding.seekBar.progress = value + binding.slider.value = value.toFloat() upValue() } + var max: Int - get() = binding.seekBar.max + get() = binding.slider.valueTo.toInt() set(value) { - binding.seekBar.max = value + binding.slider.valueTo = value.toFloat() } init { @@ -48,28 +51,42 @@ class DetailSeekBar @JvmOverloads constructor( text = title TooltipCompat.setTooltipText(this, title) } - binding.seekBar.max = typedArray.getInteger(R.styleable.DetailSeekBar_max, 0) + binding.slider.valueTo = typedArray.getInteger(R.styleable.DetailSeekBar_max, 0).toFloat() typedArray.recycle() if (isBottomBackground && !isInEditMode) { - val isLight = ColorUtils.isColorLight(context.bottomBackground) - val textColor = context.getPrimaryTextColor(isLight) - binding.tvSeekTitle.setTextColor(textColor) - binding.ivSeekPlus.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - binding.ivSeekReduce.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) - binding.tvSeekValue.setTextColor(textColor) +// val isLight = ColorUtils.isColorLight(context.bottomBackground) +// val textColor = context.getPrimaryTextColor(isLight) +// binding.tvSeekTitle.setTextColor(textColor) +// binding.ivSeekPlus.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// binding.ivSeekReduce.setColorFilter(textColor, PorterDuff.Mode.SRC_IN) +// binding.tvSeekValue.setTextColor(textColor) } binding.ivSeekPlus.setOnClickListener { - binding.seekBar.progressAdd(1) - onChanged?.invoke(binding.seekBar.progress) + binding.slider.value = binding.slider.value + 1 + onChanged?.invoke(binding.slider.value.toInt()) } + binding.ivSeekReduce.setOnClickListener { - binding.seekBar.progressAdd(-1) - onChanged?.invoke(binding.seekBar.progress) + binding.slider.value = binding.slider.value - 1 + onChanged?.invoke(binding.slider.value.toInt()) } - binding.seekBar.setOnSeekBarChangeListener(this) + + binding.slider.addOnChangeListener { _, value, fromUser -> + upValue(value.toInt()) + } + + binding.slider.addOnSliderTouchListener(object : Slider.OnSliderTouchListener { + override fun onStartTrackingTouch(slider: Slider) { + // 可以添加开始拖动时的逻辑 + } + + override fun onStopTrackingTouch(slider: Slider) { + onChanged?.invoke(slider.value.toInt()) + } + }) } - private fun upValue(progress: Int = binding.seekBar.progress) { + private fun upValue(progress: Int = binding.slider.value.toInt()) { valueFormat?.let { binding.tvSeekValue.text = it.invoke(progress) } ?: let { @@ -81,12 +98,11 @@ class DetailSeekBar @JvmOverloads constructor( upValue(progress) } - override fun onStartTrackingTouch(seekBar: SeekBar) { - - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - onChanged?.invoke(binding.seekBar.progress) - } - +// override fun onStartTrackingTouch(seekBar: SeekBar) { +// +// } +// +// override fun onStopTrackingTouch(seekBar: SeekBar) { +// onChanged?.invoke(binding.slider.progress) +// } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/widget/LabelsBar.kt b/app/src/main/java/io/legado/app/ui/widget/LabelsBar.kt index 0c50e0434..c2d1ad781 100644 --- a/app/src/main/java/io/legado/app/ui/widget/LabelsBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/LabelsBar.kt @@ -41,7 +41,7 @@ class LabelsBar @JvmOverloads constructor( val tv = if (unUsedViews.isEmpty()) { AccentBgTextView(context, null).apply { setPadding(3.dpToPx(), 0, 3.dpToPx(), 0) - setRadius(2) + //setRadius(2) val lp = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) lp.setMargins(0, 0, 2.dpToPx(), 0) layoutParams = lp diff --git a/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt b/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt index e44c662e2..0b740e6b6 100644 --- a/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/SelectActionBar.kt @@ -12,11 +12,10 @@ import androidx.appcompat.widget.PopupMenu import io.legado.app.R import io.legado.app.databinding.ViewSelectActionBarBinding import io.legado.app.lib.theme.TintHelper -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.elevation -import io.legado.app.lib.theme.getPrimaryTextColor -import io.legado.app.lib.theme.getSecondaryDisabledTextColor +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.getSecondaryDisabledTextColor import io.legado.app.utils.ColorUtils import io.legado.app.utils.applyNavigationBarPadding import io.legado.app.utils.visible @@ -28,9 +27,9 @@ class SelectActionBar @JvmOverloads constructor( attrs: AttributeSet? = null ) : FrameLayout(context, attrs) { - private val bgIsLight = ColorUtils.isColorLight(context.bottomBackground) - private val primaryTextColor = context.getPrimaryTextColor(bgIsLight) - private val disabledColor = context.getSecondaryDisabledTextColor(bgIsLight) +// private val bgIsLight = ColorUtils.isColorLight(context.bottomBackground) +// private val primaryTextColor = context.getPrimaryTextColor(bgIsLight) +// private val disabledColor = context.getSecondaryDisabledTextColor(bgIsLight) private var callBack: CallBack? = null private var selMenu: PopupMenu? = null @@ -39,11 +38,11 @@ class SelectActionBar @JvmOverloads constructor( init { if (!isInEditMode) { - setBackgroundColor(context.bottomBackground) - elevation = context.elevation - binding.cbSelectedAll.setTextColor(primaryTextColor) - TintHelper.setTint(binding.cbSelectedAll, context.accentColor, !bgIsLight) - binding.ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN) +// setBackgroundColor(context.bottomBackground) +// //elevation = context.elevation +// binding.cbSelectedAll.setTextColor(primaryTextColor) +// TintHelper.setTint(binding.cbSelectedAll, context.accentColor, !bgIsLight) +// binding.ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN) binding.cbSelectedAll.setOnCheckedChangeListener { buttonView, isChecked -> if (buttonView.isPressed) { callBack?.selectAll(isChecked) @@ -110,11 +109,11 @@ class SelectActionBar @JvmOverloads constructor( btnRevertSelection.isClickable = isClickable btnSelectActionMain.isEnabled = isClickable btnSelectActionMain.isClickable = isClickable - if (isClickable) { - ivMenuMore.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) - } else { - ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN) - } +// if (isClickable) { +// ivMenuMore.setColorFilter(primaryTextColor, PorterDuff.Mode.SRC_IN) +// } else { +// ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN) +// } ivMenuMore.isEnabled = isClickable ivMenuMore.isClickable = isClickable } diff --git a/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt b/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt index 3a4f89f68..4871a76df 100644 --- a/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/TitleBar.kt @@ -19,8 +19,7 @@ import androidx.core.view.children import com.google.android.material.appbar.AppBarLayout import io.legado.app.R import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.elevation -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.activity import io.legado.app.utils.setOnApplyWindowInsetsListenerCompat import splitties.views.bottomPadding @@ -180,11 +179,11 @@ class TitleBar @JvmOverloads constructor( if (AppConfig.isEInkMode) { setBackgroundResource(R.drawable.bg_eink_border_bottom) } else { - setBackgroundColor(context.primaryColor) + //setBackgroundColor(context.primaryColor) } stateListAnimator = null - elevation = context.elevation + //elevation = context.elevation } a.recycle() } @@ -206,54 +205,54 @@ class TitleBar @JvmOverloads constructor( toolbar.setSubtitle(subtitleId) } - fun setTitleTextColor(@ColorInt color: Int) { - toolbar.setTitleTextColor(color) - } - - fun setTitleTextAppearance(@StyleRes resId: Int) { - toolbar.setTitleTextAppearance(context, resId) - } - - fun setSubTitleTextColor(@ColorInt color: Int) { - toolbar.setSubtitleTextColor(color) - } - - fun setSubTitleTextAppearance(@StyleRes resId: Int) { - toolbar.setSubtitleTextAppearance(context, resId) - } - - fun setTextColor(@ColorInt color: Int) { - setTitleTextColor(color) - setSubTitleTextColor(color) - } - - fun setColorFilter(@ColorInt color: Int) { - val colorFilter = PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP) - toolbar.children.firstOrNull { it is ImageView }?.background?.colorFilter = colorFilter - toolbar.navigationIcon?.colorFilter = colorFilter - toolbar.overflowIcon?.colorFilter = colorFilter - toolbar.menu.children.forEach { - it.icon?.colorFilter = colorFilter - } - } - - override fun setBackgroundColor(color: Int) { - if (color.alpha < 255) { - //这里不能改为0f,改为0f在横屏模式下文字和图标颜色会变 - elevation = 0.1f - } - super.setBackgroundColor(color) - } - - override fun setBackground(background: Drawable?) { - if (background is ColorDrawable) { - if (background.alpha < 255) { - //这里不能改为0f,改为0f在横屏模式下文字和图标颜色会变 - elevation = 0.1f - } - } - super.setBackground(background) - } +// fun setTitleTextColor(@ColorInt color: Int) { +// toolbar.setTitleTextColor(color) +// } +// +// fun setTitleTextAppearance(@StyleRes resId: Int) { +// toolbar.setTitleTextAppearance(context, resId) +// } +// +// fun setSubTitleTextColor(@ColorInt color: Int) { +// toolbar.setSubtitleTextColor(color) +// } +// +// fun setSubTitleTextAppearance(@StyleRes resId: Int) { +// toolbar.setSubtitleTextAppearance(context, resId) +// } +// +// fun setTextColor(@ColorInt color: Int) { +// setTitleTextColor(color) +// setSubTitleTextColor(color) +// } +// +// fun setColorFilter(@ColorInt color: Int) { +// val colorFilter = PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP) +// toolbar.children.firstOrNull { it is ImageView }?.background?.colorFilter = colorFilter +// toolbar.navigationIcon?.colorFilter = colorFilter +// toolbar.overflowIcon?.colorFilter = colorFilter +// toolbar.menu.children.forEach { +// it.icon?.colorFilter = colorFilter +// } +// } +// +// override fun setBackgroundColor(color: Int) { +// if (color.alpha < 255) { +// //这里不能改为0f,改为0f在横屏模式下文字和图标颜色会变 +// elevation = 0.1f +// } +// super.setBackgroundColor(color) +// } +// +// override fun setBackground(background: Drawable?) { +// if (background is ColorDrawable) { +// if (background.alpha < 255) { +// //这里不能改为0f,改为0f在横屏模式下文字和图标颜色会变 +// elevation = 0.1f +// } +// } +// super.setBackground(background) +// } fun onMultiWindowModeChanged(isInMultiWindowMode: Boolean, fullScreen: Boolean) { // if (fitStatusBar) { diff --git a/app/src/main/java/io/legado/app/ui/widget/anima/RotateLoading.kt b/app/src/main/java/io/legado/app/ui/widget/anima/RotateLoading.kt index 2138936e6..147f63604 100644 --- a/app/src/main/java/io/legado/app/ui/widget/anima/RotateLoading.kt +++ b/app/src/main/java/io/legado/app/ui/widget/anima/RotateLoading.kt @@ -10,7 +10,7 @@ import android.graphics.RectF import android.util.AttributeSet import android.view.View import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.dpToPx /** @@ -59,7 +59,7 @@ class RotateLoading @JvmOverloads constructor( private val hidden = Runnable { this.stopInternal() } init { - loadingColor = context.accentColor + //loadingColor = context.accentColor thisWidth = DEFAULT_WIDTH.dpToPx() shadowPosition = DEFAULT_SHADOW_POSITION.dpToPx() speedOfDegree = DEFAULT_SPEED_OF_DEGREE diff --git a/app/src/main/java/io/legado/app/ui/widget/button/AccentStrokeButton.kt b/app/src/main/java/io/legado/app/ui/widget/button/AccentStrokeButton.kt new file mode 100644 index 000000000..2d60b2e2d --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/widget/button/AccentStrokeButton.kt @@ -0,0 +1,74 @@ +package io.legado.app.ui.widget.button + +import android.content.Context +import android.content.res.ColorStateList +import android.graphics.Color +import android.util.AttributeSet +import com.google.android.material.button.MaterialButton +import io.legado.app.R +import io.legado.app.lib.theme.ThemeStore +//import io.legado.app.lib.theme.bottomBackground +import io.legado.app.utils.ColorUtils +import io.legado.app.utils.dpToPx +import io.legado.app.utils.getCompatColor +import androidx.core.content.withStyledAttributes + +class AccentStrokeButton(context: Context, attrs: AttributeSet) : + MaterialButton(context, attrs) { + +// private val isBottomBackground: Boolean + +// init { +// val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AccentStrokeTextView) +// isBottomBackground = +// typedArray.getBoolean(R.styleable.StrokeTextView_isBottomBackground, false) +// typedArray.recycle() +// +// // MaterialButton specific attributes +// insetTop = 0 +// insetBottom = 0 +// upStyle() +// } + +// private fun upStyle() { +// val isLight = ColorUtils.isColorLight(context.bottomBackground) +// val disableColor = if (isBottomBackground) { +// if (isLight) { +// context.getCompatColor(R.color.md_light_disabled) +// } else { +// context.getCompatColor(R.color.md_dark_disabled) +// } +// } else { +// context.getCompatColor(R.color.disabled) +// } +// val accentColor = if (isInEditMode) { +// context.getCompatColor(R.color.accent) +// } else { +// ThemeStore.accentColor(context) +// } +// +// // Set MaterialButton properties +// strokeWidth = 1.dpToPx() +// strokeColor = ColorStateList.valueOf(accentColor) +// +// // For disabled state +// val states = arrayOf( +// intArrayOf(-android.R.attr.state_enabled), // disabled +// intArrayOf(android.R.attr.state_enabled) // enabled +// ) +// val colors = intArrayOf(disableColor, accentColor) +// +// // Set stroke color state list +// strokeColor = ColorStateList(states, colors) +// +// // Set text color state list +// setTextColor(ColorStateList(states, colors)) +// +// // Set ripple color +// rippleColor = ColorStateList.valueOf(context.getCompatColor(R.color.transparent30)) +// +// // Remove default background and set transparent background +// setBackgroundColor(Color.TRANSPARENT) +// } + +} \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/widget/checkbox/SmoothCheckBox.kt b/app/src/main/java/io/legado/app/ui/widget/checkbox/SmoothCheckBox.kt index 7afa0e27a..75dcf4e26 100644 --- a/app/src/main/java/io/legado/app/ui/widget/checkbox/SmoothCheckBox.kt +++ b/app/src/main/java/io/legado/app/ui/widget/checkbox/SmoothCheckBox.kt @@ -46,8 +46,8 @@ class SmoothCheckBox @JvmOverloads constructor( init { val ta = context.obtainStyledAttributes(attrs, R.styleable.SmoothCheckBox) var tickColor = ThemeStore.accentColor(context) - mCheckedColor = context.getCompatColor(R.color.background_menu) - mUnCheckedColor = context.getCompatColor(R.color.background_menu) + //mCheckedColor = context.getCompatColor(R.color.background_menu) + //mUnCheckedColor = context.getCompatColor(R.color.background_menu) mFloorColor = context.getCompatColor(R.color.transparent30) tickColor = ta.getColor(R.styleable.SmoothCheckBox_color_tick, tickColor) mAnimDuration = ta.getInt(R.styleable.SmoothCheckBox_duration, DEF_ANIM_DURATION) diff --git a/app/src/main/java/io/legado/app/ui/widget/code/CodeView.kt b/app/src/main/java/io/legado/app/ui/widget/code/CodeView.kt index 30f578436..bbf4edc9f 100644 --- a/app/src/main/java/io/legado/app/ui/widget/code/CodeView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/code/CodeView.kt @@ -31,7 +31,7 @@ class CodeView @JvmOverloads constructor(context: Context, attrs: AttributeSet? private var hasErrors = false private var mRemoveErrorsWhenTextChanged = true private val mUpdateHandler = Handler(Looper.getMainLooper()) - private var mAutoCompleteTokenizer: Tokenizer? = null + //private var mAutoCompleteTokenizer: Tokenizer? = null private val displayDensity = resources.displayMetrics.density private val mErrorHashSet: SortedMap = TreeMap() private val mSyntaxPatternMap: MutableMap = HashMap() @@ -84,10 +84,10 @@ class CodeView @JvmOverloads constructor(context: Context, attrs: AttributeSet? } init { - if (mAutoCompleteTokenizer == null) { - mAutoCompleteTokenizer = KeywordTokenizer() - } - setTokenizer(mAutoCompleteTokenizer) +// if (mAutoCompleteTokenizer == null) { +// mAutoCompleteTokenizer = KeywordTokenizer() +// } +// setTokenizer(mAutoCompleteTokenizer) filters = arrayOf( InputFilter { source, start, end, dest, dStart, dEnd -> if (modified && end - start == 1 && start < source.length && dStart < dest.length) { @@ -330,7 +330,7 @@ class CodeView @JvmOverloads constructor(context: Context, attrs: AttributeSet? fun removeErrorLine(lineNum: Int) { mErrorHashSet.remove(lineNum) - hasErrors = mErrorHashSet.size > 0 + hasErrors = mErrorHashSet.isNotEmpty() } fun removeAllErrorLines() { @@ -348,9 +348,9 @@ class CodeView @JvmOverloads constructor(context: Context, attrs: AttributeSet? .replaceAll("") } - fun setAutoCompleteTokenizer(tokenizer: Tokenizer?) { - mAutoCompleteTokenizer = tokenizer - } +// fun setAutoCompleteTokenizer(tokenizer: Tokenizer?) { +// mAutoCompleteTokenizer = tokenizer +// } fun setRemoveErrorsWhenTextChanged(removeErrors: Boolean) { mRemoveErrorsWhenTextChanged = removeErrors diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/CodeDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/CodeDialog.kt index d2063c1f0..d4dcc79ab 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/CodeDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/CodeDialog.kt @@ -7,7 +7,7 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogCodeViewBinding import io.legado.app.help.IntentData -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.code.addJsPattern import io.legado.app.ui.widget.code.addJsonPattern import io.legado.app.ui.widget.code.addLegadoPattern @@ -34,7 +34,7 @@ class CodeDialog() : BaseDialogFragment(R.layout.dialog_code_view) { } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) if (arguments?.getBoolean("disableEdit") == true) { binding.toolBar.title = "code view" binding.codeView.disableEdit() diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/TextDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/TextDialog.kt index 8bd006634..ce3715bed 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/TextDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/TextDialog.kt @@ -10,7 +10,7 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.databinding.DialogTextViewBinding import io.legado.app.help.IntentData -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.applyTint import io.legado.app.utils.setHtml import io.legado.app.utils.setLayout @@ -58,7 +58,7 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) { } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.inflateMenu(R.menu.dialog_text) binding.toolBar.menu.applyTint(requireContext()) binding.toolBar.setOnMenuItemClickListener { diff --git a/app/src/main/java/io/legado/app/ui/widget/dialog/VariableDialog.kt b/app/src/main/java/io/legado/app/ui/widget/dialog/VariableDialog.kt index 6e00cf842..165b40b81 100644 --- a/app/src/main/java/io/legado/app/ui/widget/dialog/VariableDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/dialog/VariableDialog.kt @@ -11,7 +11,7 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.base.BaseViewModel import io.legado.app.databinding.DialogVariableBinding -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -37,7 +37,7 @@ class VariableDialog() : BaseDialogFragment(R.layout.dialog_variable, true), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) arguments?.let { binding.toolBar.title = it.getString("title") viewModel.init(it) { diff --git a/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt b/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt index f67ab469b..191cfea5d 100644 --- a/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/image/CoverImageView.kt @@ -22,7 +22,7 @@ import io.legado.app.constant.AppPattern import io.legado.app.help.config.AppConfig import io.legado.app.help.glide.ImageLoader import io.legado.app.help.glide.OkHttpModelLoader -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.model.BookCover import io.legado.app.utils.textHeight import io.legado.app.utils.toStringArray @@ -88,15 +88,15 @@ class CoverImageView @JvmOverloads constructor( filletPath.reset() if (width > 10 && viewHeight > 10) { filletPath.apply { - moveTo(10f, 0f) - lineTo(viewWidth - 10, 0f) - quadTo(viewWidth, 0f, viewWidth, 10f) - lineTo(viewWidth, viewHeight - 10) - quadTo(viewWidth, viewHeight, viewWidth - 10, viewHeight) - lineTo(10f, viewHeight) - quadTo(0f, viewHeight, 0f, viewHeight - 10) - lineTo(0f, 10f) - quadTo(0f, 0f, 10f, 0f) + moveTo(12f, 0f) + lineTo(viewWidth - 12, 0f) + quadTo(viewWidth, 0f, viewWidth, 12f) + lineTo(viewWidth, viewHeight - 12) + quadTo(viewWidth, viewHeight, viewWidth - 12, viewHeight) + lineTo(12f, viewHeight) + quadTo(0f, viewHeight, 0f, viewHeight - 12) + lineTo(0f, 12f) + quadTo(0f, 0f, 12f, 0f) close() } } @@ -123,7 +123,7 @@ class CoverImageView @JvmOverloads constructor( namePaint.color = Color.WHITE namePaint.style = Paint.Style.STROKE canvas.drawText(char, startX, startY, namePaint) - namePaint.color = context.accentColor + //namePaint.color = context.accentColor namePaint.style = Paint.Style.FILL canvas.drawText(char, startX, startY, namePaint) startY += namePaint.textHeight @@ -145,7 +145,7 @@ class CoverImageView @JvmOverloads constructor( authorPaint.color = Color.WHITE authorPaint.style = Paint.Style.STROKE canvas.drawText(it, startX, startY, authorPaint) - authorPaint.color = context.accentColor + //authorPaint.color = context.accentColor authorPaint.style = Paint.Style.FILL canvas.drawText(it, startX, startY, authorPaint) startY += authorPaint.textHeight diff --git a/app/src/main/java/io/legado/app/ui/widget/keyboard/KeyboardAssistsConfig.kt b/app/src/main/java/io/legado/app/ui/widget/keyboard/KeyboardAssistsConfig.kt index 720cd8ceb..2d2bceadb 100644 --- a/app/src/main/java/io/legado/app/ui/widget/keyboard/KeyboardAssistsConfig.kt +++ b/app/src/main/java/io/legado/app/ui/widget/keyboard/KeyboardAssistsConfig.kt @@ -22,8 +22,8 @@ import io.legado.app.databinding.DialogMultipleEditTextBinding import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.Item1lineTextAndDelBinding import io.legado.app.lib.dialogs.alert -import io.legado.app.lib.theme.backgroundColor -import io.legado.app.lib.theme.primaryColor +//import io.legado.app.lib.theme.backgroundColor +//import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.widget.recycler.ItemTouchCallback import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.applyTint @@ -51,7 +51,7 @@ class KeyboardAssistsConfig : BaseDialogFragment(R.layout.dialog_recycler_view), } override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { - binding.toolBar.setBackgroundColor(primaryColor) + //binding.toolBar.setBackgroundColor(primaryColor) binding.toolBar.setTitle(R.string.assists_key_config) initView() initMenu() @@ -141,7 +141,7 @@ class KeyboardAssistsConfig : BaseDialogFragment(R.layout.dialog_recycler_view), item: KeyboardAssist, payloads: MutableList ) { - binding.root.setBackgroundColor(context.backgroundColor) + //binding.root.setBackgroundColor(context.backgroundColor) binding.textView.text = item.key } diff --git a/app/src/main/java/io/legado/app/ui/widget/number/NumberPickerDialog.kt b/app/src/main/java/io/legado/app/ui/widget/number/NumberPickerDialog.kt index 01e11efad..68cc5292a 100644 --- a/app/src/main/java/io/legado/app/ui/widget/number/NumberPickerDialog.kt +++ b/app/src/main/java/io/legado/app/ui/widget/number/NumberPickerDialog.kt @@ -3,13 +3,14 @@ package io.legado.app.ui.widget.number import android.content.Context import android.widget.NumberPicker import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder import io.legado.app.R import io.legado.app.utils.applyTint import io.legado.app.utils.hideSoftInput class NumberPickerDialog(context: Context) { - private val builder = AlertDialog.Builder(context) + private val builder = MaterialAlertDialogBuilder(context) private var numberPicker: NumberPicker? = null private var maxValue: Int? = null private var minValue: Int? = null @@ -59,7 +60,7 @@ class NumberPickerDialog(context: Context) { } } builder.setNegativeButton(R.string.cancel, null) - val dialog = builder.show().applyTint() + val dialog = builder.show() numberPicker = dialog.findViewById(R.id.number_picker) numberPicker?.let { np -> minValue?.let { diff --git a/app/src/main/java/io/legado/app/ui/widget/recycler/scroller/FastScroller.kt b/app/src/main/java/io/legado/app/ui/widget/recycler/scroller/FastScroller.kt index 897a28103..3a46ee180 100644 --- a/app/src/main/java/io/legado/app/ui/widget/recycler/scroller/FastScroller.kt +++ b/app/src/main/java/io/legado/app/ui/widget/recycler/scroller/FastScroller.kt @@ -26,7 +26,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.ColorUtils import io.legado.app.utils.getCompatColor import kotlin.math.max @@ -503,21 +503,21 @@ class FastScroller : LinearLayout { mHandleView = findViewById(R.id.fastscroll_handle) mTrackView = findViewById(R.id.fastscroll_track) mScrollbar = findViewById(R.id.fastscroll_scrollbar) - @ColorInt var bubbleColor = ColorUtils.adjustAlpha(context.accentColor, 0.8f) - @ColorInt var handleColor = context.accentColor +// @ColorInt var bubbleColor = ColorUtils.adjustAlpha(context.accentColor, 0.8f) +// @ColorInt var handleColor = context.accentColor @ColorInt var trackColor = context.getCompatColor(R.color.transparent30) - @ColorInt var textColor = - if (ColorUtils.isColorLight(bubbleColor)) Color.BLACK else Color.WHITE +// @ColorInt var textColor = +// if (ColorUtils.isColorLight(bubbleColor)) Color.BLACK else Color.WHITE var fadeScrollbar = true var showBubble = false var showTrack = true if (attrs != null) { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.FastScroller, 0, 0) try { - bubbleColor = typedArray.getColor(R.styleable.FastScroller_bubbleColor, bubbleColor) - handleColor = typedArray.getColor(R.styleable.FastScroller_handleColor, handleColor) +// bubbleColor = typedArray.getColor(R.styleable.FastScroller_bubbleColor, bubbleColor) +// handleColor = typedArray.getColor(R.styleable.FastScroller_handleColor, handleColor) trackColor = typedArray.getColor(R.styleable.FastScroller_trackColor, trackColor) - textColor = typedArray.getColor(R.styleable.FastScroller_bubbleTextColor, textColor) +// textColor = typedArray.getColor(R.styleable.FastScroller_bubbleTextColor, textColor) fadeScrollbar = typedArray.getBoolean(R.styleable.FastScroller_fadeScrollbar, fadeScrollbar) showBubble = typedArray.getBoolean(R.styleable.FastScroller_showBubble, showBubble) @@ -527,9 +527,9 @@ class FastScroller : LinearLayout { } } setTrackColor(trackColor) - setHandleColor(handleColor) - setBubbleColor(bubbleColor) - setBubbleTextColor(textColor) +// setHandleColor(handleColor) +// setBubbleColor(bubbleColor) +// setBubbleTextColor(textColor) setFadeScrollbar(fadeScrollbar) setBubbleVisible(showBubble) setTrackVisible(showTrack) diff --git a/app/src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt b/app/src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt index c9d05cc46..6ba8754c4 100644 --- a/app/src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt +++ b/app/src/main/java/io/legado/app/ui/widget/seekbar/VerticalSeekBar.kt @@ -11,7 +11,7 @@ import android.widget.ProgressBar import androidx.appcompat.widget.AppCompatSeekBar import androidx.core.view.ViewCompat import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint import java.lang.reflect.InvocationTargetException import java.lang.reflect.Method @@ -57,7 +57,7 @@ class VerticalSeekBar @JvmOverloads constructor(context: Context, attrs: Attribu init { if (!isInEditMode) { - applyTint(context.accentColor) + //applyTint(context.accentColor) } @Suppress("DEPRECATION") ViewCompat.setLayoutDirection(this, ViewCompat.LAYOUT_DIRECTION_LTR) diff --git a/app/src/main/java/io/legado/app/ui/widget/text/AccentBgTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/AccentBgTextView.kt index 4cdc562dc..019ecb692 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/AccentBgTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/AccentBgTextView.kt @@ -16,37 +16,37 @@ class AccentBgTextView @JvmOverloads constructor( attrs: AttributeSet? = null ) : AppCompatTextView(context, attrs) { - private var radius = 0 - - init { - val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AccentBgTextView) - radius = typedArray.getDimensionPixelOffset(R.styleable.AccentBgTextView_radius, radius) - typedArray.recycle() - upBackground() - } - - fun setRadius(radius: Int) { - this.radius = radius.dpToPx() - upBackground() - } - - private fun upBackground() { - val accentColor = if (isInEditMode) { - context.getCompatColor(R.color.accent) - } else { - ThemeStore.accentColor(context) - } - background = Selector.shapeBuild() - .setCornerRadius(radius) - .setDefaultBgColor(accentColor) - .setPressedBgColor(ColorUtils.darkenColor(accentColor)) - .create() - setTextColor( - if (ColorUtils.isColorLight(accentColor)) { - Color.BLACK - } else { - Color.WHITE - } - ) - } +// private var radius = 0 +// +// init { +// val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AccentBgTextView) +// radius = typedArray.getDimensionPixelOffset(R.styleable.AccentBgTextView_radius, radius) +// typedArray.recycle() +// upBackground() +// } +// +// fun setRadius(radius: Int) { +// this.radius = radius.dpToPx() +// upBackground() +// } +// +// private fun upBackground() { +// val accentColor = if (isInEditMode) { +// context.getCompatColor(R.color.accent) +// } else { +// ThemeStore.accentColor(context) +// } +// background = Selector.shapeBuild() +// .setCornerRadius(radius) +// .setDefaultBgColor(accentColor) +// .setPressedBgColor(ColorUtils.darkenColor(accentColor)) +// .create() +// setTextColor( +// if (ColorUtils.isColorLight(accentColor)) { +// Color.BLACK +// } else { +// Color.WHITE +// } +// ) +// } } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/AccentStrokeTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/AccentStrokeTextView.kt index 34e504584..68a10364c 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/AccentStrokeTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/AccentStrokeTextView.kt @@ -6,7 +6,7 @@ import androidx.appcompat.widget.AppCompatTextView import io.legado.app.R import io.legado.app.lib.theme.Selector import io.legado.app.lib.theme.ThemeStore -import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.bottomBackground import io.legado.app.utils.ColorUtils import io.legado.app.utils.dpToPx import io.legado.app.utils.getCompatColor @@ -14,47 +14,47 @@ import io.legado.app.utils.getCompatColor class AccentStrokeTextView(context: Context, attrs: AttributeSet) : AppCompatTextView(context, attrs) { - private var radius = 3.dpToPx() - private val isBottomBackground: Boolean - - init { - val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AccentStrokeTextView) - radius = typedArray.getDimensionPixelOffset(R.styleable.StrokeTextView_radius, radius) - isBottomBackground = - typedArray.getBoolean(R.styleable.StrokeTextView_isBottomBackground, false) - typedArray.recycle() - upStyle() - } - - private fun upStyle() { - val isLight = ColorUtils.isColorLight(context.bottomBackground) - val disableColor = if (isBottomBackground) { - if (isLight) { - context.getCompatColor(R.color.md_light_disabled) - } else { - context.getCompatColor(R.color.md_dark_disabled) - } - } else { - context.getCompatColor(R.color.disabled) - } - val accentColor = if (isInEditMode) { - context.getCompatColor(R.color.accent) - } else { - ThemeStore.accentColor(context) - } - background = Selector.shapeBuild() - .setCornerRadius(radius) - .setStrokeWidth(1.dpToPx()) - .setDisabledStrokeColor(disableColor) - .setDefaultStrokeColor(accentColor) - .setPressedBgColor(context.getCompatColor(R.color.transparent30)) - .create() - setTextColor( - Selector.colorBuild() - .setDefaultColor(accentColor) - .setDisabledColor(disableColor) - .create() - ) - } +// private var radius = 3.dpToPx() +// private val isBottomBackground: Boolean +// +// init { +// val typedArray = context.obtainStyledAttributes(attrs, R.styleable.AccentStrokeTextView) +// radius = typedArray.getDimensionPixelOffset(R.styleable.StrokeTextView_radius, radius) +// isBottomBackground = +// typedArray.getBoolean(R.styleable.StrokeTextView_isBottomBackground, false) +// typedArray.recycle() +// upStyle() +// } +// +// private fun upStyle() { +// val isLight = ColorUtils.isColorLight(context.bottomBackground) +// val disableColor = if (isBottomBackground) { +// if (isLight) { +// context.getCompatColor(R.color.md_light_disabled) +// } else { +// context.getCompatColor(R.color.md_dark_disabled) +// } +// } else { +// context.getCompatColor(R.color.disabled) +// } +// val accentColor = if (isInEditMode) { +// context.getCompatColor(R.color.accent) +// } else { +// ThemeStore.accentColor(context) +// } +// background = Selector.shapeBuild() +// .setCornerRadius(radius) +// .setStrokeWidth(1.dpToPx()) +// .setDisabledStrokeColor(disableColor) +// .setDefaultStrokeColor(accentColor) +// .setPressedBgColor(context.getCompatColor(R.color.transparent30)) +// .create() +// setTextColor( +// Selector.colorBuild() +// .setDefaultColor(accentColor) +// .setDisabledColor(disableColor) +// .create() +// ) +// } } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/AccentTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/AccentTextView.kt index 8dee26350..4a454914e 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/AccentTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/AccentTextView.kt @@ -4,18 +4,18 @@ import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.getCompatColor class AccentTextView(context: Context, attrs: AttributeSet?) : AppCompatTextView(context, attrs) { - init { - if (!isInEditMode) { - setTextColor(context.accentColor) - } else { - setTextColor(context.getCompatColor(R.color.accent)) - } - } +// init { +// if (!isInEditMode) { +// setTextColor(context.accentColor) +// } else { +// setTextColor(context.getCompatColor(R.color.accent)) +// } +// } } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/AutoCompleteTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/AutoCompleteTextView.kt index 262c7c8e5..bde7f39d8 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/AutoCompleteTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/AutoCompleteTextView.kt @@ -12,8 +12,9 @@ import android.widget.ArrayAdapter import android.widget.ImageView import android.widget.TextView import androidx.appcompat.widget.AppCompatAutoCompleteTextView +import com.google.android.material.textfield.MaterialAutoCompleteTextView import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.applyTint import io.legado.app.utils.gone import io.legado.app.utils.visible @@ -23,12 +24,12 @@ import io.legado.app.utils.visible class AutoCompleteTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null -) : AppCompatAutoCompleteTextView(context, attrs) { +) : MaterialAutoCompleteTextView(context, attrs) { var delCallBack: ((value: String) -> Unit)? = null init { - applyTint(context.accentColor) + //applyTint(context.accentColor) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { isLocalePreferredLineHeightForMinimumUsed = false } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt b/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt index f9e390644..631744ea1 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt @@ -14,7 +14,7 @@ import android.widget.FrameLayout import android.widget.FrameLayout.LayoutParams import androidx.appcompat.widget.AppCompatTextView import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor import io.legado.app.utils.ColorUtils import io.legado.app.utils.getCompatColor import io.legado.app.utils.invisible @@ -94,7 +94,7 @@ class BadgeView @JvmOverloads constructor( radius = radios.toFloat() // set default background - setBackground(radius, context.accentColor) + //setBackground(radius, context.accentColor) gravity = Gravity.CENTER @@ -152,7 +152,7 @@ class BadgeView @JvmOverloads constructor( fun setHighlight(highlight: Boolean) { if (highlight) { - setBackgroundColor(context.accentColor) + //setBackgroundColor(context.accentColor) } else { setBackgroundColor(context.getCompatColor(R.color.darker_gray)) } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt b/app/src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt index d17153e48..dff2cd36e 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/BevelLabelView.kt @@ -11,7 +11,7 @@ import android.view.View import androidx.annotation.ColorInt import androidx.annotation.IntDef import io.legado.app.R -import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.accentColor /** * 斜角标签 @@ -33,7 +33,7 @@ class BevelLabelView @JvmOverloads constructor( const val MODE_RIGHT_BOTTOM_FILL = 7 } - private var mBgColor: Int + //private var mBgColor: Int private var mText: String private var mTextSize: Int private var mTextColor: Int @@ -51,10 +51,10 @@ class BevelLabelView @JvmOverloads constructor( init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BevelLabelView) - mBgColor = typedArray.getColor( - R.styleable.BevelLabelView_label_bg_color, - context.accentColor - ) //默认红色 +// mBgColor = typedArray.getColor( +// R.styleable.BevelLabelView_label_bg_color, +// context.accentColor +// ) //默认红色 mText = typedArray.getString(R.styleable.BevelLabelView_label_text) ?: "" mTextSize = typedArray.getDimensionPixelOffset( @@ -77,7 +77,7 @@ class BevelLabelView @JvmOverloads constructor( } override fun onDraw(canvas: Canvas) { - mPaint.color = mBgColor + //mPaint.color = mBgColor drawBackgroundText(canvas) } @@ -92,7 +92,7 @@ class BevelLabelView @JvmOverloads constructor( } fun setBgColor(@ColorInt color: Int) { - mBgColor = color + //mBgColor = color invalidate() } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/ScrollMultiAutoCompleteTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/ScrollMultiAutoCompleteTextView.kt index 18a5f6e92..4a698d639 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/ScrollMultiAutoCompleteTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/ScrollMultiAutoCompleteTextView.kt @@ -12,6 +12,7 @@ import android.view.animation.Interpolator import android.widget.OverScroller import androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView import androidx.core.view.ViewCompat +import com.google.android.material.textfield.MaterialAutoCompleteTextView import kotlin.math.abs import kotlin.math.max import kotlin.math.min @@ -22,7 +23,7 @@ import kotlin.math.min open class ScrollMultiAutoCompleteTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null -) : AppCompatMultiAutoCompleteTextView(context, attrs) { +) : MaterialAutoCompleteTextView(context, attrs) { //是否到顶或者到底的标志 private var disallowIntercept = true diff --git a/app/src/main/java/io/legado/app/ui/widget/text/SecondaryTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/SecondaryTextView.kt index 6e18856bf..33e9d2b4b 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/SecondaryTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/SecondaryTextView.kt @@ -3,7 +3,7 @@ package io.legado.app.ui.widget.text import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView -import io.legado.app.lib.theme.secondaryTextColor +//import io.legado.app.lib.theme.secondaryTextColor /** * @author Aidan Follestad (afollestad) @@ -13,6 +13,6 @@ class SecondaryTextView(context: Context, attrs: AttributeSet) : AppCompatTextView(context, attrs) { init { - setTextColor(context.secondaryTextColor) + //setTextColor(context.secondaryTextColor) } } diff --git a/app/src/main/java/io/legado/app/ui/widget/text/StrokeTextView.kt b/app/src/main/java/io/legado/app/ui/widget/text/StrokeTextView.kt index a5aa3db42..9ee87eb90 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/StrokeTextView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/StrokeTextView.kt @@ -38,31 +38,31 @@ open class StrokeTextView(context: Context, attrs: AttributeSet?) : .setStrokeWidth(1.dpToPx()) .setDisabledStrokeColor(context.getCompatColor(R.color.md_grey_500)) .setDefaultStrokeColor(context.getCompatColor(R.color.secondaryText)) - .setSelectedStrokeColor(context.getCompatColor(R.color.accent)) + //.setSelectedStrokeColor(context.getCompatColor(R.color.accent)) .setPressedBgColor(context.getCompatColor(R.color.transparent30)) .create() setTextColor( Selector.colorBuild() .setDefaultColor(context.getCompatColor(R.color.secondaryText)) - .setSelectedColor(context.getCompatColor(R.color.accent)) + //.setSelectedColor(context.getCompatColor(R.color.accent)) .setDisabledColor(context.getCompatColor(R.color.md_grey_500)) .create() ) } isBottomBackground -> { - val isLight = ColorUtils.isColorLight(context.bottomBackground) + //val isLight = ColorUtils.isColorLight(context.bottomBackground) background = Selector.shapeBuild() .setCornerRadius(radius) .setStrokeWidth(1.dpToPx()) .setDisabledStrokeColor(context.getCompatColor(R.color.md_grey_500)) - .setDefaultStrokeColor(context.getPrimaryTextColor(isLight)) - .setSelectedStrokeColor(context.accentColor) +// .setDefaultStrokeColor(context.getPrimaryTextColor(isLight)) +// .setSelectedStrokeColor(context.accentColor) .setPressedBgColor(context.getCompatColor(R.color.transparent30)) .create() setTextColor( Selector.colorBuild() - .setDefaultColor(context.getPrimaryTextColor(isLight)) - .setSelectedColor(context.accentColor) +// .setDefaultColor(context.getPrimaryTextColor(isLight)) +// .setSelectedColor(context.accentColor) .setDisabledColor(context.getCompatColor(R.color.md_grey_500)) .create() ) diff --git a/app/src/main/java/io/legado/app/utils/DialogExtensions.kt b/app/src/main/java/io/legado/app/utils/DialogExtensions.kt index 471feae80..b8ffc8956 100644 --- a/app/src/main/java/io/legado/app/utils/DialogExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/DialogExtensions.kt @@ -7,12 +7,12 @@ import androidx.core.view.forEach import androidx.fragment.app.DialogFragment import io.legado.app.lib.theme.Selector import io.legado.app.lib.theme.ThemeStore -import io.legado.app.lib.theme.accentColor -import io.legado.app.lib.theme.filletBackground +//import io.legado.app.lib.theme.accentColor +//import io.legado.app.lib.theme.filletBackground import splitties.systemservices.windowManager fun AlertDialog.applyTint(): AlertDialog { - window?.setBackgroundDrawable(context.filletBackground) + //window?.setBackgroundDrawable(context.filletBackground) val colorStateList = Selector.colorBuild() .setDefaultColor(ThemeStore.accentColor(context)) .setPressedColor(ColorUtils.darkenColor(ThemeStore.accentColor(context))) @@ -28,7 +28,7 @@ fun AlertDialog.applyTint(): AlertDialog { } window?.decorView?.post { listView?.forEach { - it.applyTint(context.accentColor) + //it.applyTint(context.accentColor) } } return this diff --git a/app/src/main/java/io/legado/app/utils/FragmentExtensions.kt b/app/src/main/java/io/legado/app/utils/FragmentExtensions.kt index c6df0bd79..82941d106 100644 --- a/app/src/main/java/io/legado/app/utils/FragmentExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/FragmentExtensions.kt @@ -26,7 +26,6 @@ import io.legado.app.ui.widget.dialog.TextDialog inline fun Fragment.showDialogFragment( arguments: Bundle.() -> Unit = {} ) { - @Suppress("DEPRECATION") val dialog = T::class.java.newInstance() val bundle = Bundle() bundle.apply(arguments) diff --git a/app/src/main/java/io/legado/app/utils/MenuExtensions.kt b/app/src/main/java/io/legado/app/utils/MenuExtensions.kt index c922e88da..fcacb3b42 100644 --- a/app/src/main/java/io/legado/app/utils/MenuExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/MenuExtensions.kt @@ -14,7 +14,7 @@ import androidx.appcompat.view.menu.SubMenuBuilder import androidx.core.view.forEach import io.legado.app.R import io.legado.app.constant.Theme -import io.legado.app.lib.theme.primaryTextColor +//import io.legado.app.lib.theme.primaryTextColor import java.lang.reflect.Method @SuppressLint("RestrictedApi") @@ -22,16 +22,16 @@ fun Menu.applyTint(context: Context, theme: Theme = Theme.Auto): Menu = this.let if (menu is MenuBuilder) { menu.setOptionalIconsVisible(true) } - val defaultTextColor = context.getCompatColor(R.color.primaryText) - val tintColor = MenuExtensions.getMenuColor(context, theme) - menu.forEach { item -> - (item as MenuItemImpl).let { impl -> - //overflow:展开的item - impl.icon?.setTintMutate( - if (impl.requiresOverflow()) defaultTextColor else tintColor - ) - } - } +// val defaultTextColor = context.getCompatColor(R.color.primaryText) +// val tintColor = MenuExtensions.getMenuColor(context, theme) +// menu.forEach { item -> +// (item as MenuItemImpl).let { impl -> +// //overflow:展开的item +// impl.icon?.setTintMutate( +// if (impl.requiresOverflow()) defaultTextColor else tintColor +// ) +// } +// } return menu } @@ -39,7 +39,7 @@ fun Menu.applyTint(context: Context, theme: Theme = Theme.Auto): Menu = this.let fun Menu.applyOpenTint(context: Context) { //展开菜单显示图标 if (this.javaClass.simpleName.equals("MenuBuilder", ignoreCase = true)) { - val defaultTextColor = context.getCompatColor(R.color.primaryText) +// val defaultTextColor = context.getCompatColor(R.color.primaryText) kotlin.runCatching { var method: Method = this.javaClass.getDeclaredMethod("setOptionalIconsVisible", java.lang.Boolean.TYPE) @@ -49,17 +49,17 @@ fun Menu.applyOpenTint(context: Context) { val menuItems = method.invoke(this) if (menuItems is ArrayList<*>) { for (menuItem in menuItems) { - if (menuItem is MenuItem) { - menuItem.icon?.setTintMutate(defaultTextColor) - } +// if (menuItem is MenuItem) { +// menuItem.icon?.setTintMutate(defaultTextColor) +// } } } } } else if (this.javaClass.simpleName.equals("SubMenuBuilder", ignoreCase = true)) { - val defaultTextColor = context.getCompatColor(R.color.primaryText) - (this as? SubMenuBuilder)?.forEach { item: MenuItem -> - item.icon?.setTintMutate(defaultTextColor) - } +// val defaultTextColor = context.getCompatColor(R.color.primaryText) +// (this as? SubMenuBuilder)?.forEach { item: MenuItem -> +// item.icon?.setTintMutate(defaultTextColor) +// } } } @@ -93,20 +93,20 @@ inline fun Menu.transaction(block: (Menu) -> Unit) { object MenuExtensions { - fun getMenuColor( - context: Context, - theme: Theme = Theme.Auto, - requiresOverflow: Boolean = false - ): Int { - val defaultTextColor = context.getCompatColor(R.color.primaryText) - if (requiresOverflow) - return defaultTextColor - val primaryTextColor = context.primaryTextColor - return when (theme) { - Theme.Dark -> context.getCompatColor(R.color.md_white_1000) - Theme.Light -> context.getCompatColor(R.color.md_black_1000) - else -> primaryTextColor - } - } +// fun getMenuColor( +// context: Context, +// theme: Theme = Theme.Auto, +// requiresOverflow: Boolean = false +// ): Int { +// val defaultTextColor = context.getCompatColor(R.color.primaryText) +// if (requiresOverflow) +// return defaultTextColor +// //val primaryTextColor = context.primaryTextColor +// return when (theme) { +// Theme.Dark -> context.getCompatColor(R.color.md_white_1000) +// Theme.Light -> context.getCompatColor(R.color.md_black_1000) +// else -> context.getCompatColor(R.color.md_black_1000) +// } +// } } diff --git a/app/src/main/java/io/legado/app/utils/ToastUtils.kt b/app/src/main/java/io/legado/app/utils/ToastUtils.kt index 4fd25c064..a4a64c970 100644 --- a/app/src/main/java/io/legado/app/utils/ToastUtils.kt +++ b/app/src/main/java/io/legado/app/utils/ToastUtils.kt @@ -9,8 +9,8 @@ import androidx.fragment.app.Fragment import io.legado.app.BuildConfig import io.legado.app.databinding.ViewToastBinding import io.legado.app.help.config.AppConfig -import io.legado.app.lib.theme.bottomBackground -import io.legado.app.lib.theme.getPrimaryTextColor +//import io.legado.app.lib.theme.bottomBackground +//import io.legado.app.lib.theme.getPrimaryTextColor import splitties.systemservices.layoutInflater private var toast: Toast? = null @@ -28,11 +28,11 @@ fun Context.toastOnUi(message: CharSequence?, duration: Int = Toast.LENGTH_SHORT kotlin.runCatching { toast?.cancel() toast = Toast(this) - val isLight = ColorUtils.isColorLight(bottomBackground) + //val isLight = ColorUtils.isColorLight(bottomBackground) ViewToastBinding.inflate(layoutInflater).run { toast?.view = root - cvToast.setCardBackgroundColor(bottomBackground) - tvText.setTextColor(getPrimaryTextColor(isLight)) +// cvToast.setCardBackgroundColor(bottomBackground) +// tvText.setTextColor(getPrimaryTextColor(isLight)) tvText.text = message } toast?.duration = duration diff --git a/app/src/main/res/drawable/bg_book_mask.xml b/app/src/main/res/drawable/bg_book_mask.xml new file mode 100644 index 000000000..f250bea0c --- /dev/null +++ b/app/src/main/res/drawable/bg_book_mask.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_find_book_group.xml b/app/src/main/res/drawable/bg_find_book_group.xml index b00a89b22..83529f99a 100644 --- a/app/src/main/res/drawable/bg_find_book_group.xml +++ b/app/src/main/res/drawable/bg_find_book_group.xml @@ -1,7 +1,13 @@ - - - - - - \ No newline at end of file + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_gradient_mask.xml b/app/src/main/res/drawable/bg_gradient_mask.xml new file mode 100644 index 000000000..265b07bdc --- /dev/null +++ b/app/src/main/res/drawable/bg_gradient_mask.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_img_border.xml b/app/src/main/res/drawable/bg_img_border.xml index 07783726c..12ba9bd8e 100644 --- a/app/src/main/res/drawable/bg_img_border.xml +++ b/app/src/main/res/drawable/bg_img_border.xml @@ -1,6 +1,6 @@ - + diff --git a/app/src/main/res/drawable/bg_popup_menu.xml b/app/src/main/res/drawable/bg_popup_menu.xml deleted file mode 100644 index b51849bcd..000000000 --- a/app/src/main/res/drawable/bg_popup_menu.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add.xml b/app/src/main/res/drawable/ic_add.xml index b4f63fa80..14116a078 100644 --- a/app/src/main/res/drawable/ic_add.xml +++ b/app/src/main/res/drawable/ic_add.xml @@ -1,11 +1,4 @@ - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_add_online.xml b/app/src/main/res/drawable/ic_add_online.xml index d11efea01..e735380d4 100644 --- a/app/src/main/res/drawable/ic_add_online.xml +++ b/app/src/main/res/drawable/ic_add_online.xml @@ -1,11 +1,4 @@ - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrange.xml b/app/src/main/res/drawable/ic_arrange.xml index 416dbf843..dc7b691b0 100644 --- a/app/src/main/res/drawable/ic_arrange.xml +++ b/app/src/main/res/drawable/ic_arrange.xml @@ -1,17 +1,4 @@ - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_back.xml b/app/src/main/res/drawable/ic_arrow_back.xml index 2d68f797b..04b396bfe 100644 --- a/app/src/main/res/drawable/ic_arrow_back.xml +++ b/app/src/main/res/drawable/ic_arrow_back.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_author.xml b/app/src/main/res/drawable/ic_author.xml index 00d53f351..4951afa4c 100644 --- a/app/src/main/res/drawable/ic_author.xml +++ b/app/src/main/res/drawable/ic_author.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_auto_page.xml b/app/src/main/res/drawable/ic_auto_page.xml index bec2a48f1..ecf776f7a 100644 --- a/app/src/main/res/drawable/ic_auto_page.xml +++ b/app/src/main/res/drawable/ic_auto_page.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_auto_page_stop.xml b/app/src/main/res/drawable/ic_auto_page_stop.xml index 6a6c74535..7e230239c 100644 --- a/app/src/main/res/drawable/ic_auto_page_stop.xml +++ b/app/src/main/res/drawable/ic_auto_page_stop.xml @@ -1,17 +1,4 @@ - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_book_last.xml b/app/src/main/res/drawable/ic_book_last.xml index 82b0842d6..a0d752c9a 100644 --- a/app/src/main/res/drawable/ic_book_last.xml +++ b/app/src/main/res/drawable/ic_book_last.xml @@ -1,15 +1,3 @@ - - - - + + diff --git a/app/src/main/res/drawable/ic_bookmark.xml b/app/src/main/res/drawable/ic_bookmark.xml index 551bee2c8..bb99db81b 100644 --- a/app/src/main/res/drawable/ic_bookmark.xml +++ b/app/src/main/res/drawable/ic_bookmark.xml @@ -1,11 +1,4 @@ - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_bottom_books_e.xml b/app/src/main/res/drawable/ic_bottom_books_e.xml index 04d36c375..4e8825677 100644 --- a/app/src/main/res/drawable/ic_bottom_books_e.xml +++ b/app/src/main/res/drawable/ic_bottom_books_e.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_bottom_books_s.xml b/app/src/main/res/drawable/ic_bottom_books_s.xml index 8f5f72542..fa3ea36b3 100644 --- a/app/src/main/res/drawable/ic_bottom_books_s.xml +++ b/app/src/main/res/drawable/ic_bottom_books_s.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_bottom_explore_e.xml b/app/src/main/res/drawable/ic_bottom_explore_e.xml index 47e4bde9d..0436c89b1 100644 --- a/app/src/main/res/drawable/ic_bottom_explore_e.xml +++ b/app/src/main/res/drawable/ic_bottom_explore_e.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_bottom_explore_s.xml b/app/src/main/res/drawable/ic_bottom_explore_s.xml index 6dc6e4322..cb99db52d 100644 --- a/app/src/main/res/drawable/ic_bottom_explore_s.xml +++ b/app/src/main/res/drawable/ic_bottom_explore_s.xml @@ -1,9 +1,3 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_bottom_person_e.xml b/app/src/main/res/drawable/ic_bottom_person_e.xml index d01128391..fb2ca4cac 100644 --- a/app/src/main/res/drawable/ic_bottom_person_e.xml +++ b/app/src/main/res/drawable/ic_bottom_person_e.xml @@ -1,12 +1,3 @@ - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_bottom_person_s.xml b/app/src/main/res/drawable/ic_bottom_person_s.xml index 3ff7fc8c4..3f5107e9b 100644 --- a/app/src/main/res/drawable/ic_bottom_person_s.xml +++ b/app/src/main/res/drawable/ic_bottom_person_s.xml @@ -1,12 +1,3 @@ - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_bottom_rss_feed_e.xml b/app/src/main/res/drawable/ic_bottom_rss_feed_e.xml index c1c4ba0e3..16ca27d26 100644 --- a/app/src/main/res/drawable/ic_bottom_rss_feed_e.xml +++ b/app/src/main/res/drawable/ic_bottom_rss_feed_e.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_bottom_rss_feed_s.xml b/app/src/main/res/drawable/ic_bottom_rss_feed_s.xml index a73c01430..191edef9e 100644 --- a/app/src/main/res/drawable/ic_bottom_rss_feed_s.xml +++ b/app/src/main/res/drawable/ic_bottom_rss_feed_s.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_brightness.xml b/app/src/main/res/drawable/ic_brightness.xml index ac37ba7d5..09c5ea2cc 100644 --- a/app/src/main/res/drawable/ic_brightness.xml +++ b/app/src/main/res/drawable/ic_brightness.xml @@ -1,11 +1,4 @@ - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_cfg_about.xml b/app/src/main/res/drawable/ic_cfg_about.xml index 42e3d30d3..d9f6639bb 100644 --- a/app/src/main/res/drawable/ic_cfg_about.xml +++ b/app/src/main/res/drawable/ic_cfg_about.xml @@ -1,15 +1,3 @@ - - - - + + diff --git a/app/src/main/res/drawable/ic_cfg_backup.xml b/app/src/main/res/drawable/ic_cfg_backup.xml index 9c647c009..e932d44ea 100644 --- a/app/src/main/res/drawable/ic_cfg_backup.xml +++ b/app/src/main/res/drawable/ic_cfg_backup.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_cfg_other.xml b/app/src/main/res/drawable/ic_cfg_other.xml index a3d26b642..057fc436a 100644 --- a/app/src/main/res/drawable/ic_cfg_other.xml +++ b/app/src/main/res/drawable/ic_cfg_other.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_cfg_replace.xml b/app/src/main/res/drawable/ic_cfg_replace.xml index 53c9d1d04..839b89ab4 100644 --- a/app/src/main/res/drawable/ic_cfg_replace.xml +++ b/app/src/main/res/drawable/ic_cfg_replace.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_cfg_source.xml b/app/src/main/res/drawable/ic_cfg_source.xml index e71bb109d..2e006720a 100644 --- a/app/src/main/res/drawable/ic_cfg_source.xml +++ b/app/src/main/res/drawable/ic_cfg_source.xml @@ -1,12 +1,3 @@ - - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_cfg_theme.xml b/app/src/main/res/drawable/ic_cfg_theme.xml index 2fe949d19..ba78b7cb4 100644 --- a/app/src/main/res/drawable/ic_cfg_theme.xml +++ b/app/src/main/res/drawable/ic_cfg_theme.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_cfg_txt.xml b/app/src/main/res/drawable/ic_cfg_txt.xml new file mode 100644 index 000000000..502066b52 --- /dev/null +++ b/app/src/main/res/drawable/ic_cfg_txt.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_cfg_web.xml b/app/src/main/res/drawable/ic_cfg_web.xml index 7a34ae004..4297eaf19 100644 --- a/app/src/main/res/drawable/ic_cfg_web.xml +++ b/app/src/main/res/drawable/ic_cfg_web.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_change_source.xml b/app/src/main/res/drawable/ic_change_source.xml new file mode 100644 index 000000000..696898a87 --- /dev/null +++ b/app/src/main/res/drawable/ic_change_source.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_chapter.xml b/app/src/main/res/drawable/ic_chapter.xml new file mode 100644 index 000000000..be9189e7e --- /dev/null +++ b/app/src/main/res/drawable/ic_chapter.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml index 620bc9133..16eb39e7c 100644 --- a/app/src/main/res/drawable/ic_check.xml +++ b/app/src/main/res/drawable/ic_check.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_clear_all.xml b/app/src/main/res/drawable/ic_clear_all.xml index dfa860c00..7553a70fd 100644 --- a/app/src/main/res/drawable/ic_clear_all.xml +++ b/app/src/main/res/drawable/ic_clear_all.xml @@ -1,17 +1,4 @@ - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_download_line.xml b/app/src/main/res/drawable/ic_download_line.xml index c882860c7..1230e3a38 100644 --- a/app/src/main/res/drawable/ic_download_line.xml +++ b/app/src/main/res/drawable/ic_download_line.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_edit.xml b/app/src/main/res/drawable/ic_edit.xml index 2d249dde4..2b3f62411 100644 --- a/app/src/main/res/drawable/ic_edit.xml +++ b/app/src/main/res/drawable/ic_edit.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_exit.xml b/app/src/main/res/drawable/ic_exit.xml index c16013837..8c7474430 100644 --- a/app/src/main/res/drawable/ic_exit.xml +++ b/app/src/main/res/drawable/ic_exit.xml @@ -1,11 +1,3 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_export.xml b/app/src/main/res/drawable/ic_export.xml index 2c34ad3b0..254906429 100644 --- a/app/src/main/res/drawable/ic_export.xml +++ b/app/src/main/res/drawable/ic_export.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_find_replace.xml b/app/src/main/res/drawable/ic_find_replace.xml index 07bbfc39c..ec3cd1a4e 100644 --- a/app/src/main/res/drawable/ic_find_replace.xml +++ b/app/src/main/res/drawable/ic_find_replace.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_folder_outline.xml b/app/src/main/res/drawable/ic_folder_outline.xml index f034f89ae..2305a453f 100644 --- a/app/src/main/res/drawable/ic_folder_outline.xml +++ b/app/src/main/res/drawable/ic_folder_outline.xml @@ -1,10 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_groups.xml b/app/src/main/res/drawable/ic_groups.xml index e15e9af8e..2329b59df 100644 --- a/app/src/main/res/drawable/ic_groups.xml +++ b/app/src/main/res/drawable/ic_groups.xml @@ -1,20 +1,4 @@ - - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml index 7bebaadc4..8e15bd9b5 100644 --- a/app/src/main/res/drawable/ic_help.xml +++ b/app/src/main/res/drawable/ic_help.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_history.xml b/app/src/main/res/drawable/ic_history.xml index 095e0f7ab..8ae7e8c86 100644 --- a/app/src/main/res/drawable/ic_history.xml +++ b/app/src/main/res/drawable/ic_history.xml @@ -1,12 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_import.xml b/app/src/main/res/drawable/ic_import.xml index dc493329e..367133114 100644 --- a/app/src/main/res/drawable/ic_import.xml +++ b/app/src/main/res/drawable/ic_import.xml @@ -1,15 +1,4 @@ - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_interface_setting.xml b/app/src/main/res/drawable/ic_interface_setting.xml index 139b00724..6c8203758 100644 --- a/app/src/main/res/drawable/ic_interface_setting.xml +++ b/app/src/main/res/drawable/ic_interface_setting.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_menu.xml b/app/src/main/res/drawable/ic_menu.xml index 8a6004bd4..70fb1c8bc 100644 --- a/app/src/main/res/drawable/ic_menu.xml +++ b/app/src/main/res/drawable/ic_menu.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_more_vert.xml b/app/src/main/res/drawable/ic_more_vert.xml index 7b7f19554..1c9081f3b 100644 --- a/app/src/main/res/drawable/ic_more_vert.xml +++ b/app/src/main/res/drawable/ic_more_vert.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_next.xml b/app/src/main/res/drawable/ic_next.xml new file mode 100644 index 000000000..77db39ff9 --- /dev/null +++ b/app/src/main/res/drawable/ic_next.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_pause_24dp.xml b/app/src/main/res/drawable/ic_pause_24dp.xml index 193030b12..caccf5c9d 100644 --- a/app/src/main/res/drawable/ic_pause_24dp.xml +++ b/app/src/main/res/drawable/ic_pause_24dp.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_play_24dp.xml b/app/src/main/res/drawable/ic_play_24dp.xml index 4250d72cb..b025b005e 100644 --- a/app/src/main/res/drawable/ic_play_24dp.xml +++ b/app/src/main/res/drawable/ic_play_24dp.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_previous.xml b/app/src/main/res/drawable/ic_previous.xml new file mode 100644 index 000000000..ac0942742 --- /dev/null +++ b/app/src/main/res/drawable/ic_previous.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_read_aloud.xml b/app/src/main/res/drawable/ic_read_aloud.xml index 7978d2196..de9482e60 100644 --- a/app/src/main/res/drawable/ic_read_aloud.xml +++ b/app/src/main/res/drawable/ic_read_aloud.xml @@ -1,11 +1,4 @@ - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_refresh_black_24dp.xml b/app/src/main/res/drawable/ic_refresh_black_24dp.xml index fc7f629d8..a32bda389 100644 --- a/app/src/main/res/drawable/ic_refresh_black_24dp.xml +++ b/app/src/main/res/drawable/ic_refresh_black_24dp.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_save.xml b/app/src/main/res/drawable/ic_save.xml index 042962ee5..ff01df035 100644 --- a/app/src/main/res/drawable/ic_save.xml +++ b/app/src/main/res/drawable/ic_save.xml @@ -1,14 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml index b915218e5..53ab82289 100644 --- a/app/src/main/res/drawable/ic_search.xml +++ b/app/src/main/res/drawable/ic_search.xml @@ -1,17 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_search_hint.xml b/app/src/main/res/drawable/ic_search_hint.xml index 42de64c26..fbc88ca7d 100644 --- a/app/src/main/res/drawable/ic_search_hint.xml +++ b/app/src/main/res/drawable/ic_search_hint.xml @@ -1,8 +1,3 @@ - - - + + diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml index 1d4297767..60505c70b 100644 --- a/app/src/main/res/drawable/ic_settings.xml +++ b/app/src/main/res/drawable/ic_settings.xml @@ -1,16 +1,4 @@ - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml index df884e817..d5c7a0594 100644 --- a/app/src/main/res/drawable/ic_share.xml +++ b/app/src/main/res/drawable/ic_share.xml @@ -1,11 +1,3 @@ - - - - + + diff --git a/app/src/main/res/drawable/ic_skip_next.xml b/app/src/main/res/drawable/ic_skip_next.xml index eae4da1bf..a05a5cd86 100644 --- a/app/src/main/res/drawable/ic_skip_next.xml +++ b/app/src/main/res/drawable/ic_skip_next.xml @@ -1,9 +1,3 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_skip_previous.xml b/app/src/main/res/drawable/ic_skip_previous.xml index abb9944fc..e4094cc38 100644 --- a/app/src/main/res/drawable/ic_skip_previous.xml +++ b/app/src/main/res/drawable/ic_skip_previous.xml @@ -1,9 +1,3 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_sort.xml b/app/src/main/res/drawable/ic_sort.xml index 264057420..2f18a4e0f 100644 --- a/app/src/main/res/drawable/ic_sort.xml +++ b/app/src/main/res/drawable/ic_sort.xml @@ -1,10 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_star.xml b/app/src/main/res/drawable/ic_star.xml index a2ebf3532..4d2e4d368 100644 --- a/app/src/main/res/drawable/ic_star.xml +++ b/app/src/main/res/drawable/ic_star.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_stop_black_24dp.xml b/app/src/main/res/drawable/ic_stop_black_24dp.xml index 025a8b82e..92a4c4aef 100644 --- a/app/src/main/res/drawable/ic_stop_black_24dp.xml +++ b/app/src/main/res/drawable/ic_stop_black_24dp.xml @@ -1,9 +1,3 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_toc.xml b/app/src/main/res/drawable/ic_toc.xml index c64161dc1..ffffbe4a8 100644 --- a/app/src/main/res/drawable/ic_toc.xml +++ b/app/src/main/res/drawable/ic_toc.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_translate.xml b/app/src/main/res/drawable/ic_translate.xml index ae2a4dde7..c4a9fb1e9 100644 --- a/app/src/main/res/drawable/ic_translate.xml +++ b/app/src/main/res/drawable/ic_translate.xml @@ -1,14 +1,4 @@ - - - - + + diff --git a/app/src/main/res/drawable/ic_view_quilt.xml b/app/src/main/res/drawable/ic_view_quilt.xml index 88b5317e7..db0a24829 100644 --- a/app/src/main/res/drawable/ic_view_quilt.xml +++ b/app/src/main/res/drawable/ic_view_quilt.xml @@ -1,26 +1,4 @@ - - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_visibility_off.xml b/app/src/main/res/drawable/ic_visibility_off.xml index c71061582..6562b4a9a 100644 --- a/app/src/main/res/drawable/ic_visibility_off.xml +++ b/app/src/main/res/drawable/ic_visibility_off.xml @@ -1,9 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/ic_web_outline.xml b/app/src/main/res/drawable/ic_web_outline.xml index adaeb5644..b281d63ad 100644 --- a/app/src/main/res/drawable/ic_web_outline.xml +++ b/app/src/main/res/drawable/ic_web_outline.xml @@ -1,13 +1,3 @@ - - + + diff --git a/app/src/main/res/drawable/selected_chip_background.xml b/app/src/main/res/drawable/selected_chip_background.xml new file mode 100644 index 000000000..c6df9c262 --- /dev/null +++ b/app/src/main/res/drawable/selected_chip_background.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_btn_accent_bg.xml b/app/src/main/res/drawable/selector_btn_accent_bg.xml index d06cfe139..80a399cbc 100644 --- a/app/src/main/res/drawable/selector_btn_accent_bg.xml +++ b/app/src/main/res/drawable/selector_btn_accent_bg.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_common_bg.xml b/app/src/main/res/drawable/selector_common_bg.xml index 2174a7333..043c3f725 100644 --- a/app/src/main/res/drawable/selector_common_bg.xml +++ b/app/src/main/res/drawable/selector_common_bg.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/selector_fillet_btn_bg.xml b/app/src/main/res/drawable/selector_fillet_btn_bg.xml index 431a579d3..3774265ce 100644 --- a/app/src/main/res/drawable/selector_fillet_btn_bg.xml +++ b/app/src/main/res/drawable/selector_fillet_btn_bg.xml @@ -1,5 +1,8 @@ - - - - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_card_view.xml b/app/src/main/res/drawable/shape_card_view.xml index d49a2d5c1..fd5ab1b5e 100644 --- a/app/src/main/res/drawable/shape_card_view.xml +++ b/app/src/main/res/drawable/shape_card_view.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_audio_play.xml b/app/src/main/res/layout/activity_audio_play.xml index 7aa5d6f69..7c0a9f372 100644 --- a/app/src/main/res/layout/activity_audio_play.xml +++ b/app/src/main/res/layout/activity_audio_play.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background" android:orientation="vertical" tools:context=".ui.book.audio.AudioPlayActivity"> @@ -62,7 +61,7 @@ android:layout_height="260dp" android:contentDescription="@string/img_cover" android:scaleType="centerCrop" - app:civ_border_color="@color/accent" + app:civ_border_color="@color/md_theme_primary" app:civ_border_width="2dp" app:layout_constraintBottom_toTopOf="@+id/ll_player_progress" app:layout_constraintLeft_toLeftOf="parent" @@ -99,7 +98,7 @@ android:textColor="@color/md_white_1000" tools:ignore="HardcodedText,RtlSymmetry,TextContrastCheck" /> - - + android:layout_height="match_parent"> + android:foreground="@drawable/bg_book_mask" + android:scaleType="centerCrop" /> + - + + + + + + + + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - + android:layout_height="match_parent" + android:fillViewport="true" + android:fitsSystemWindows="false" + android:focusable="true" + android:padding="0dp" + android:scrollbarStyle="outsideOverlay" + android:scrollbars="vertical"> - - - + android:layout_height="wrap_content" + android:orientation="vertical"> + android:layout_height="wrap_content" + android:background="@drawable/bg_gradient_mask" + android:padding="16dp"> + + + + + + + android:layout_gravity="center" + android:orientation="vertical" + android:padding="12dp"> - - - - - + android:maxLines="2" + android:text="@string/book_name" + style="@style/TextAppearance.Material3.ActionBar.Title" + tools:ignore="RtlHardcoded" /> + android:gravity="center" + android:orientation="horizontal" + android:paddingTop="6dp" + android:paddingBottom="2dp" + tools:ignore="UseCompoundDrawables"> + + + + android:layout_weight="1" + android:layout_marginStart="2dp" + android:ellipsize="end" + android:singleLine="true" + android:text="@string/author" + android:textSize="14sp" + tools:ignore="NestedWeights,RtlHardcoded,RtlSymmetry" /> - + + + + + + + android:layout_weight="1" + android:layout_marginStart="2dp" + android:ellipsize="end" + android:paddingRight="6dp" + android:singleLine="true" + android:textSize="14sp" + tools:ignore="NestedWeights,RtlHardcoded,RtlSymmetry" + tools:text="@string/origin_format" /> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingTop="4dp" + android:paddingBottom="4dp"> - + + + + - - - - - - - - + android:layout_marginStart="8dp" + android:paddingLeft="5dp" + android:paddingRight="5dp" + android:text="@string/view_toc" + android:textSize="13sp" + app:radius="2dp" /> + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingTop="3dp" + android:paddingBottom="3dp" + tools:ignore="UseCompoundDrawables"> - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_weight="1" + android:ellipsize="end" + android:includeFontPadding="false" + android:paddingRight="6dp" + android:singleLine="true" + android:textSize="13sp" + tools:ignore="NestedWeights,RtlHardcoded,RtlSymmetry" + tools:text="@string/read_dur_progress" /> - + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingTop="3dp" + android:paddingBottom="3dp"> + + + + + + + + + + + + - + - + - - - - - - - + - + diff --git a/app/src/main/res/layout/activity_book_info_edit.xml b/app/src/main/res/layout/activity_book_info_edit.xml index 0fb0879ec..4ed915314 100644 --- a/app/src/main/res/layout/activity_book_info_edit.xml +++ b/app/src/main/res/layout/activity_book_info_edit.xml @@ -16,7 +16,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:padding="5dp"> + android:gravity="center_horizontal" + android:layout_margin="16dp"> - - - - - - - - - - - - - - - + + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingHorizontal="16dp"> + + + + + + + + + + + + android:layout_gravity="center_vertical" + android:layout_marginBottom="12dp"> - + android:entries="@array/book_type" /> + android:layout_marginBottom="16dp"> + android:layout_marginStart="12dp" + android:padding="8dp" + android:text="@string/change_cover_source" /> - + android:layout_marginStart="12dp" + android:padding="8dp" + android:text="@string/refresh_cover" /> + android:layout_height="wrap_content" + android:minLines="4" /> - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_book_read.xml b/app/src/main/res/layout/activity_book_read.xml index 703c0ef5e..2d9c1d999 100644 --- a/app/src/main/res/layout/activity_book_read.xml +++ b/app/src/main/res/layout/activity_book_read.xml @@ -47,7 +47,6 @@ android:id="@+id/navigation_bar" android:layout_width="match_parent" android:layout_height="0dp" - android:background="@color/background_menu" android:layout_gravity="bottom" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_book_search.xml b/app/src/main/res/layout/activity_book_search.xml index cff9bc3ed..cd73dac52 100644 --- a/app/src/main/res/layout/activity_book_search.xml +++ b/app/src/main/res/layout/activity_book_search.xml @@ -41,7 +41,6 @@ android:id="@+id/ll_input_help" android:layout_width="match_parent" android:layout_height="0dp" - android:background="@color/background" android:clickable="true" android:focusable="true" android:orientation="vertical" diff --git a/app/src/main/res/layout/activity_book_source_edit.xml b/app/src/main/res/layout/activity_book_source_edit.xml index f75098dfc..eff1d4e6b 100644 --- a/app/src/main/res/layout/activity_book_source_edit.xml +++ b/app/src/main/res/layout/activity_book_source_edit.xml @@ -38,7 +38,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/book_type" - android:theme="@style/Spinner" tools:ignore="TouchTargetSizeCheck" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_manga.xml b/app/src/main/res/layout/activity_manga.xml index 4a3bec579..55a74e995 100644 --- a/app/src/main/res/layout/activity_manga.xml +++ b/app/src/main/res/layout/activity_manga.xml @@ -38,8 +38,7 @@ + android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml index 0d21e9842..08908fef8 100644 --- a/app/src/main/res/layout/activity_welcome.xml +++ b/app/src/main/res/layout/activity_welcome.xml @@ -21,7 +21,7 @@ android:id="@+id/vw_title_line" android:layout_width="6dp" android:layout_height="0dp" - android:background="@color/accent" + android:background="@color/md_theme_primary" app:layout_constraintTop_toTopOf="@+id/tv_title" app:layout_constraintBottom_toBottomOf="@+id/tv_title" app:layout_constraintLeft_toLeftOf="parent" /> diff --git a/app/src/main/res/layout/dialog_auto_read.xml b/app/src/main/res/layout/dialog_auto_read.xml index aea20ede3..450227bea 100644 --- a/app/src/main/res/layout/dialog_auto_read.xml +++ b/app/src/main/res/layout/dialog_auto_read.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background_menu" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="6dp" @@ -41,14 +40,13 @@ - diff --git a/app/src/main/res/layout/dialog_book_change_source.xml b/app/src/main/res/layout/dialog_book_change_source.xml index af32da053..e3c66ef77 100644 --- a/app/src/main/res/layout/dialog_book_change_source.xml +++ b/app/src/main/res/layout/dialog_book_change_source.xml @@ -4,20 +4,18 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background"> + > + android:orientation="vertical" + android:padding="16dp"> - + android:orientation="vertical" + android:gravity="center_horizontal" + android:padding="8dp"> - - + android:orientation="vertical"> - - + android:hint="@string/group_name"> - + + - + - + + + + + + + + - - @@ -110,20 +104,19 @@ android:layout_height="1dp" android:layout_weight="1" /> - - diff --git a/app/src/main/res/layout/dialog_book_group_picker.xml b/app/src/main/res/layout/dialog_book_group_picker.xml index 95317f693..9af6dea32 100644 --- a/app/src/main/res/layout/dialog_book_group_picker.xml +++ b/app/src/main/res/layout/dialog_book_group_picker.xml @@ -4,15 +4,15 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:padding="12dp"> + app:titleTextAppearance="@style/ToolbarTitle" /> - - + android:layout_height="match_parent"> + tools:ignore="UselessParent" + android:padding="12dp"> @@ -29,8 +27,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="16dp" - android:paddingRight="16dp" - android:textColor="@color/primaryText" /> + android:paddingRight="16dp" /> diff --git a/app/src/main/res/layout/dialog_change_cover.xml b/app/src/main/res/layout/dialog_change_cover.xml index 2dee2288c..95538e1c6 100644 --- a/app/src/main/res/layout/dialog_change_cover.xml +++ b/app/src/main/res/layout/dialog_change_cover.xml @@ -12,7 +12,6 @@ android:elevation="5dp" android:theme="?attr/actionBarStyle" app:titleTextAppearance="@style/ToolbarTitle" - app:popupTheme="@style/AppTheme.PopupOverlay" app:displayHomeAsUp="false" app:fitStatusBar="false" /> diff --git a/app/src/main/res/layout/dialog_chapter_change_source.xml b/app/src/main/res/layout/dialog_chapter_change_source.xml index 97cc032ba..f4f38aa1a 100644 --- a/app/src/main/res/layout/dialog_chapter_change_source.xml +++ b/app/src/main/res/layout/dialog_chapter_change_source.xml @@ -4,19 +4,17 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background"> + > @@ -94,7 +90,6 @@ android:id="@+id/fl_hide_toc" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background" android:elevation="4dp" app:layout_constraintTop_toTopOf="parent"> diff --git a/app/src/main/res/layout/dialog_check_source_config.xml b/app/src/main/res/layout/dialog_check_source_config.xml index 0b43f38f1..861b695ac 100644 --- a/app/src/main/res/layout/dialog_check_source_config.xml +++ b/app/src/main/res/layout/dialog_check_source_config.xml @@ -12,7 +12,6 @@ android:layout_height="wrap_content" android:theme="?attr/actionBarStyle" app:title="@string/check_source_config" - app:popupTheme="@style/AppTheme.PopupOverlay" app:titleTextAppearance="@style/ToolbarTitle" /> diff --git a/app/src/main/res/layout/dialog_cover_rule_config.xml b/app/src/main/res/layout/dialog_cover_rule_config.xml index e09153226..caff73b86 100644 --- a/app/src/main/res/layout/dialog_cover_rule_config.xml +++ b/app/src/main/res/layout/dialog_cover_rule_config.xml @@ -12,7 +12,6 @@ android:layout_height="wrap_content" android:theme="?attr/actionBarStyle" app:title="@string/cover_config" - app:popupTheme="@style/AppTheme.PopupOverlay" app:titleTextAppearance="@style/ToolbarTitle" /> + android:layout_height="match_parent"> @@ -18,12 +16,10 @@ android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background_menu" android:elevation="5dp" android:theme="?attr/actionBarStyle" app:displayHomeAsUp="false" app:fitStatusBar="false" - app:popupTheme="@style/AppTheme.PopupOverlay" app:title="@string/dict_rule" app:titleTextAppearance="@style/ToolbarTitle" /> @@ -36,7 +32,8 @@ + android:orientation="vertical" + android:padding="12dp"> + > + app:titleTextAppearance="@style/ToolbarTitle" /> + android:layout_weight="1"> + app:titleTextAppearance="@style/ToolbarTitle" /> + android:layout_height="match_parent"> + android:orientation="horizontal" + android:layout_marginVertical="6dp"> - - - - - - - - - - - - - - - + android:layout_height="48dp" + android:contentDescription="@string/prev_sentence" + android:tooltipText="@string/prev_sentence" + app:icon="@drawable/ic_skip_previous" + tools:ignore="UnusedAttribute" /> + + + + + + + android:gravity="center_vertical" + android:layout_marginVertical="6dp"> - - - + android:valueFrom="0.0" + android:valueTo="180.0" + android:stepSize="1.0" /> - + android:layout_marginStart="12dp" + android:contentDescription="@string/set_timer" + app:icon="@drawable/ic_time_add_24dp" /> + + + + + + + + + + + + + + + @@ -168,7 +154,6 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/read_aloud_speed" - android:textColor="@color/primaryText" android:textSize="14sp" /> + android:gravity="center_vertical" + android:paddingVertical="8dp"> - - + + android:valueFrom="0" + android:valueTo="45" + android:stepSize="1"/> - @@ -264,7 +251,6 @@ android:contentDescription="@string/chapter_list" android:maxHeight="20dp" android:src="@drawable/ic_toc" - app:tint="@color/primaryText" tools:ignore="NestedWeights" /> @@ -306,7 +291,6 @@ android:contentDescription="@string/main_menu" android:maxHeight="20dp" android:src="@drawable/ic_menu" - app:tint="@color/primaryText" tools:ignore="NestedWeights" /> @@ -347,7 +330,6 @@ android:contentDescription="@string/to_backstage" android:maxHeight="20dp" android:src="@drawable/ic_visibility_off" - app:tint="@color/primaryText" tools:ignore="NestedWeights" /> @@ -388,7 +369,6 @@ android:contentDescription="@string/aloud_config" android:maxHeight="20dp" android:src="@drawable/ic_settings" - app:tint="@color/primaryText" tools:ignore="NestedWeights" /> diff --git a/app/src/main/res/layout/dialog_read_bg_text.xml b/app/src/main/res/layout/dialog_read_bg_text.xml index d366b9d9d..14d6c17f4 100644 --- a/app/src/main/res/layout/dialog_read_bg_text.xml +++ b/app/src/main/res/layout/dialog_read_bg_text.xml @@ -5,7 +5,6 @@ android:id="@+id/root_view" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background" android:orientation="vertical" android:padding="10dp"> @@ -157,7 +156,7 @@ android:paddingRight="6dp" android:text="@string/bg_alpha" /> - - + android:scrollbars="none"> - + + + app:chipStrokeColor="@color/primaryText" + app:chipStrokeWidth="1dp" /> - + + app:chipStrokeColor="@color/primaryText" + app:chipStrokeWidth="1dp" /> - + + app:chipStrokeColor="@color/primaryText" + app:chipStrokeWidth="1dp" /> - + + app:chipStrokeColor="@color/primaryText" + app:chipStrokeWidth="1dp" /> - + + app:chipStrokeColor="@color/primaryText" + app:chipStrokeWidth="1dp" /> - + + - - - + android:layout_margin="4dp"/> + android:layout_weight="1" + android:padding="16dp"> - - + android:visibility="gone" /> @@ -54,7 +44,7 @@ app:flexWrap="wrap" app:justifyContent="space_between"> - - + android:entries="@array/rule_type" /> diff --git a/app/src/main/res/layout/dialog_search_scope.xml b/app/src/main/res/layout/dialog_search_scope.xml index 090714f56..652fe534a 100644 --- a/app/src/main/res/layout/dialog_search_scope.xml +++ b/app/src/main/res/layout/dialog_search_scope.xml @@ -3,14 +3,12 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@color/background"> + android:layout_height="match_parent"> + > diff --git a/app/src/main/res/layout/dialog_webdav_server.xml b/app/src/main/res/layout/dialog_webdav_server.xml index ab4edf876..03a268011 100644 --- a/app/src/main/res/layout/dialog_webdav_server.xml +++ b/app/src/main/res/layout/dialog_webdav_server.xml @@ -20,7 +20,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="3dp" - android:background="@color/background_menu" android:elevation="5dp" android:theme="?attr/actionBarStyle" app:title="@string/server_config" @@ -60,7 +59,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/server_type" - android:theme="@style/Spinner" tools:ignore="TouchTargetSizeCheck" /> diff --git a/app/src/main/res/layout/fragment_bookshelf1.xml b/app/src/main/res/layout/fragment_bookshelf1.xml index 91b638e02..35215120e 100644 --- a/app/src/main/res/layout/fragment_bookshelf1.xml +++ b/app/src/main/res/layout/fragment_bookshelf1.xml @@ -1,21 +1,52 @@ - + android:fitsSystemWindows="true"> - + android:fitsSystemWindows="true" + app:title="@string/bookshelf"> + + + + + + + + + + + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_chapter_list.xml b/app/src/main/res/layout/fragment_chapter_list.xml index 3d8943d79..1c0cba6bb 100644 --- a/app/src/main/res/layout/fragment_chapter_list.xml +++ b/app/src/main/res/layout/fragment_chapter_list.xml @@ -18,7 +18,6 @@ android:id="@+id/ll_chapter_base_info" android:layout_width="match_parent" android:layout_height="36dp" - android:background="@color/background" android:paddingLeft="10dp" android:paddingRight="10dp" android:elevation="5dp" diff --git a/app/src/main/res/layout/item_1line_text_and_del.xml b/app/src/main/res/layout/item_1line_text_and_del.xml index 2cc6daa2c..86dd59764 100644 --- a/app/src/main/res/layout/item_1line_text_and_del.xml +++ b/app/src/main/res/layout/item_1line_text_and_del.xml @@ -15,7 +15,7 @@ android:layout_height="wrap_content" android:layout_weight="1" android:singleLine="true" - android:textColor="@color/primaryText" /> + /> + /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_book_group_manage.xml b/app/src/main/res/layout/item_book_group_manage.xml index c48e13e67..b1ec9ac99 100644 --- a/app/src/main/res/layout/item_book_group_manage.xml +++ b/app/src/main/res/layout/item_book_group_manage.xml @@ -3,7 +3,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background" android:gravity="center_vertical" android:orientation="horizontal" android:padding="8dp"> diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml index e32ed3419..a0ab7a433 100644 --- a/app/src/main/res/layout/item_download.xml +++ b/app/src/main/res/layout/item_download.xml @@ -33,24 +33,22 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:singleLine="true" - android:textColor="@color/secondaryText" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/iv_download" app:layout_constraintTop_toBottomOf="@id/tv_author" tools:text="@string/action_download" /> - + app:layout_constraintTop_toTopOf="@id/tv_name" /> @@ -68,7 +65,6 @@ android:id="@+id/tv_msg" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="@color/secondaryText" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/tv_download" /> diff --git a/app/src/main/res/layout/item_file.xml b/app/src/main/res/layout/item_file.xml index da5dbec4d..bfe561978 100644 --- a/app/src/main/res/layout/item_file.xml +++ b/app/src/main/res/layout/item_file.xml @@ -6,7 +6,6 @@ android:gravity="center_vertical" android:orientation="horizontal" android:padding="5dp" - android:background="?attr/selectableItemBackground" tools:ignore="UseCompoundDrawables"> + android:paddingHorizontal="16dp" + android:paddingVertical="8dp" + android:animateLayoutChanges="true" + android:background="?attr/selectableItemBackground"> + android:gravity="center_vertical" + android:paddingVertical="8dp"> - - + style="@style/Widget.Material3.Button.IconButton.Filled.Tonal" + android:layout_width="48dp" + android:layout_height="48dp" + app:icon="@drawable/ic_arrow_right"/> + android:layout_gravity="start"> + android:padding="8dp"> + android:padding="5dp" /> + android:visibility="invisible" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_group_manage.xml b/app/src/main/res/layout/item_group_manage.xml index 80b28b1cb..cc63da039 100644 --- a/app/src/main/res/layout/item_group_manage.xml +++ b/app/src/main/res/layout/item_group_manage.xml @@ -2,7 +2,6 @@ diff --git a/app/src/main/res/layout/item_group_select.xml b/app/src/main/res/layout/item_group_select.xml index a4514b535..7e83234bf 100644 --- a/app/src/main/res/layout/item_group_select.xml +++ b/app/src/main/res/layout/item_group_select.xml @@ -2,7 +2,6 @@ diff --git a/app/src/main/res/layout/item_http_tts.xml b/app/src/main/res/layout/item_http_tts.xml index a6530c541..c45a8320f 100644 --- a/app/src/main/res/layout/item_http_tts.xml +++ b/app/src/main/res/layout/item_http_tts.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" + android:background="?attr/selectableItemBackground" android:padding="8dp"> @@ -37,7 +37,6 @@ android:background="?attr/selectableItemBackgroundBorderless" android:padding="6dp" android:src="@drawable/ic_clear_all" - android:tint="@color/primaryText" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_icon_preference.xml b/app/src/main/res/layout/item_icon_preference.xml index 543a0841c..a2f88f205 100644 --- a/app/src/main/res/layout/item_icon_preference.xml +++ b/app/src/main/res/layout/item_icon_preference.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" - android:padding="6dip"> + android:background="?attr/selectableItemBackground"> + android:paddingHorizontal="16dp" + android:paddingVertical="8dp"> @@ -36,9 +35,8 @@ android:id="@+id/tv_reading_time" android:layout_width="0dp" android:layout_height="wrap_content" - android:padding="6dp" + android:paddingVertical="4dp" android:singleLine="true" - android:textColor="@color/secondaryText" app:layout_constraintLeft_toRightOf="@+id/tv_reading_time_tag" app:layout_constraintTop_toBottomOf="@id/tv_book_name" app:layout_constraintRight_toLeftOf="@+id/tv_remove" @@ -48,10 +46,9 @@ android:id="@+id/tv_last_read_time_tag" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:padding="6dp" + android:paddingVertical="4dp" android:singleLine="true" android:text="@string/last_read_time_tag" - android:textColor="@color/secondaryText" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_reading_time_tag" /> @@ -59,22 +56,19 @@ android:id="@+id/tv_last_read_time" android:layout_width="0dp" android:layout_height="wrap_content" - android:padding="6dp" + android:paddingVertical="4dp" android:singleLine="true" - android:textColor="@color/secondaryText" app:layout_constraintLeft_toRightOf="@+id/tv_last_read_time_tag" app:layout_constraintTop_toBottomOf="@id/tv_reading_time_tag" app:layout_constraintRight_toLeftOf="@+id/tv_remove" tools:text="readingTime" /> - diff --git a/app/src/main/res/layout/item_read_style.xml b/app/src/main/res/layout/item_read_style.xml index 28a861f81..07ae429a2 100644 --- a/app/src/main/res/layout/item_read_style.xml +++ b/app/src/main/res/layout/item_read_style.xml @@ -8,6 +8,5 @@ android:layout_marginRight="6dp" android:scaleType="centerCrop" android:src="@drawable/image_cover_default" - app:civ_border_color="@color/primaryText" app:civ_border_width="1dp" app:text="@string/text" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_replace_rule.xml b/app/src/main/res/layout/item_replace_rule.xml index 7043560f3..ccf722d69 100644 --- a/app/src/main/res/layout/item_replace_rule.xml +++ b/app/src/main/res/layout/item_replace_rule.xml @@ -8,7 +8,8 @@ android:orientation="horizontal" android:padding="8dp" android:paddingStart="16dp" - android:paddingEnd="16dp"> + android:paddingEnd="16dp" + android:background="?attr/selectableItemBackground"> @@ -56,7 +56,6 @@ android:contentDescription="@string/more_menu" android:padding="6dp" android:src="@drawable/ic_more_vert" - android:tint="@color/primaryText" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_rss.xml b/app/src/main/res/layout/item_rss.xml index fedb595da..5a9213020 100644 --- a/app/src/main/res/layout/item_rss.xml +++ b/app/src/main/res/layout/item_rss.xml @@ -30,8 +30,7 @@ android:gravity="top|center_horizontal" android:lines="2" android:scrollbars="none" - android:textColor="@color/secondaryText" - android:textSize="13sp" + android:textSize="14sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_icon" diff --git a/app/src/main/res/layout/item_rss_article.xml b/app/src/main/res/layout/item_rss_article.xml index 508350eb3..5aa0df545 100644 --- a/app/src/main/res/layout/item_rss_article.xml +++ b/app/src/main/res/layout/item_rss_article.xml @@ -13,7 +13,6 @@ android:maxLines="2" android:ellipsize="end" android:text="@string/app_name" - android:textColor="@color/primaryText" android:textSize="16sp" android:textStyle="bold" app:layout_constraintBottom_toTopOf="@+id/tv_pub_date" diff --git a/app/src/main/res/layout/item_rss_article_1.xml b/app/src/main/res/layout/item_rss_article_1.xml index 32fc80cea..5b36bb189 100644 --- a/app/src/main/res/layout/item_rss_article_1.xml +++ b/app/src/main/res/layout/item_rss_article_1.xml @@ -58,7 +58,7 @@ app:layout_constraintTop_toBottomOf="@+id/tv_pub_date" android:layout_height="8dp" android:layout_width="match_parent" - android:background="@color/bg_divider_line" /> + android:background="?attr/divider" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_rss_read_record.xml b/app/src/main/res/layout/item_rss_read_record.xml index de14d1ec0..fd9deedaa 100644 --- a/app/src/main/res/layout/item_rss_read_record.xml +++ b/app/src/main/res/layout/item_rss_read_record.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/item_rss_source.xml b/app/src/main/res/layout/item_rss_source.xml index 9815a036e..03e756eaf 100644 --- a/app/src/main/res/layout/item_rss_source.xml +++ b/app/src/main/res/layout/item_rss_source.xml @@ -6,7 +6,7 @@ android:background="?android:attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal" - android:padding="16dp"> + android:padding="12dp"> + android:background="?attr/selectableItemBackground" + android:padding="16dp"> @@ -64,7 +62,6 @@ android:background="?attr/selectableItemBackgroundBorderless" android:padding="6dp" android:src="@drawable/ic_more_vert" - android:tint="@color/primaryText" android:contentDescription="@string/more_menu" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/item_search.xml b/app/src/main/res/layout/item_search.xml index 46090f8dc..3448390d9 100644 --- a/app/src/main/res/layout/item_search.xml +++ b/app/src/main/res/layout/item_search.xml @@ -1,113 +1,106 @@ - + - - - - - - + + android:layout_gravity="center" + android:orientation="vertical"> + + + + + + + + + + + + + + + + android:orientation="horizontal" /> + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_search_list.xml b/app/src/main/res/layout/item_search_list.xml index 2dcaf1436..6f7fa71fd 100644 --- a/app/src/main/res/layout/item_search_list.xml +++ b/app/src/main/res/layout/item_search_list.xml @@ -4,8 +4,8 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?android:attr/selectableItemBackground" - android:padding="12dp"> + android:background="?attr/selectableItemBackground" + android:padding="16dp"> diff --git a/app/src/main/res/layout/item_source_edit.xml b/app/src/main/res/layout/item_source_edit.xml index f569b668b..d0196a5d2 100644 --- a/app/src/main/res/layout/item_source_edit.xml +++ b/app/src/main/res/layout/item_source_edit.xml @@ -1,15 +1,19 @@ - + android:paddingHorizontal="12dp" + android:paddingVertical="6dp"> diff --git a/app/src/main/res/layout/item_source_edit_check_box.xml b/app/src/main/res/layout/item_source_edit_check_box.xml index ddd11964a..10ba93b79 100644 --- a/app/src/main/res/layout/item_source_edit_check_box.xml +++ b/app/src/main/res/layout/item_source_edit_check_box.xml @@ -16,7 +16,6 @@ + android:layout_height="1dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_source_import.xml b/app/src/main/res/layout/item_source_import.xml index 6fb8809fd..0df56ff2a 100644 --- a/app/src/main/res/layout/item_source_import.xml +++ b/app/src/main/res/layout/item_source_import.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="?attr/selectableItemBackground" android:padding="8dp"> diff --git a/app/src/main/res/layout/item_theme_config.xml b/app/src/main/res/layout/item_theme_config.xml index c2f9ba236..ed0397eb4 100644 --- a/app/src/main/res/layout/item_theme_config.xml +++ b/app/src/main/res/layout/item_theme_config.xml @@ -3,17 +3,20 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="8dp" + android:padding="12dp" + android:background="?attr/selectableItemBackground" android:gravity="center_vertical" android:orientation="horizontal"> + android:background="?attr/selectableItemBackground" + android:clickable="true" + android:focusable="true" + android:padding="12dp"> diff --git a/app/src/main/res/layout/popup_action.xml b/app/src/main/res/layout/popup_action.xml index 56762ec63..d15c9dca2 100644 --- a/app/src/main/res/layout/popup_action.xml +++ b/app/src/main/res/layout/popup_action.xml @@ -3,9 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/shape_card_view" android:orientation="vertical" - android:padding="5dp"> + android:padding="8dp"> + android:padding="8dp"> diff --git a/app/src/main/res/layout/popup_keyboard_tool.xml b/app/src/main/res/layout/popup_keyboard_tool.xml index c3a35e41d..d12862f32 100644 --- a/app/src/main/res/layout/popup_keyboard_tool.xml +++ b/app/src/main/res/layout/popup_keyboard_tool.xml @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" - android:background="@color/background_card" android:orientation="horizontal" android:padding="5dp" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> diff --git a/app/src/main/res/layout/popup_seek_bar.xml b/app/src/main/res/layout/popup_seek_bar.xml index ef0eee190..31117fb51 100644 --- a/app/src/main/res/layout/popup_seek_bar.xml +++ b/app/src/main/res/layout/popup_seek_bar.xml @@ -13,8 +13,8 @@ android:layout_height="wrap_content" android:textColor="@color/secondaryText" /> - diff --git a/app/src/main/res/layout/preference_widget_material_switch.xml b/app/src/main/res/layout/preference_widget_material_switch.xml new file mode 100644 index 000000000..ad1414a97 --- /dev/null +++ b/app/src/main/res/layout/preference_widget_material_switch.xml @@ -0,0 +1,9 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_book_page.xml b/app/src/main/res/layout/view_book_page.xml index 656b4e8d4..b45cb2379 100644 --- a/app/src/main/res/layout/view_book_page.xml +++ b/app/src/main/res/layout/view_book_page.xml @@ -5,7 +5,6 @@ android:id="@+id/vw_root" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/background" android:orientation="vertical"> - + android:stepSize="1"/> diff --git a/app/src/main/res/layout/view_manga_menu.xml b/app/src/main/res/layout/view_manga_menu.xml index 1275e52e0..0e8c17f41 100644 --- a/app/src/main/res/layout/view_manga_menu.xml +++ b/app/src/main/res/layout/view_manga_menu.xml @@ -77,7 +77,6 @@ android:id="@+id/bottom_menu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background_menu" android:importantForAccessibility="no" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent"> @@ -106,7 +105,7 @@ android:textSize="14sp" tools:ignore="TouchTargetSizeCheck" /> - @@ -41,12 +42,12 @@ + android:layout_marginTop="4dp" /> @@ -54,9 +55,9 @@ android:id="@+id/preference_widget" android:orientation="vertical" android:layout_gravity="center" - android:layout_marginLeft="8dp" - android:layout_marginTop="8dp" - android:layout_marginBottom="8dp" + android:layout_marginStart="12dp" + android:layout_marginTop="2dp" + android:layout_marginBottom="2dp" android:visibility="gone" android:gravity="right|center_vertical" android:layout_width="wrap_content" diff --git a/app/src/main/res/layout/view_preference_category.xml b/app/src/main/res/layout/view_preference_category.xml index afc45f119..110ae490c 100644 --- a/app/src/main/res/layout/view_preference_category.xml +++ b/app/src/main/res/layout/view_preference_category.xml @@ -19,7 +19,8 @@ android:paddingLeft="16dp" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textColor="@color/accent" + android:text="123" + android:textColor="@color/md_light_primary_text" tools:ignore="RtlHardcoded,RtlSymmetry" /> + android:paddingStart="12dp" + android:paddingEnd="12dp"> @@ -216,60 +208,57 @@ android:id="@+id/ll_bottom_bg" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/background_menu" + android:background="?attr/colorSurface" android:importantForAccessibility="no" android:orientation="vertical"> - - - + app:icon="@drawable/ic_next" + app:iconTint="@color/primaryText" + app:strokeColor="@color/primaryText" + android:contentDescription="@string/next_chapter" + tools:ignore="TouchTargetSizeCheck"/> @@ -314,8 +304,7 @@ android:id="@+id/tv_catalog" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginTop="3dp" + android:layout_marginTop="2dp" android:ellipsize="middle" android:singleLine="true" android:text="@string/chapter_list" @@ -332,14 +321,15 @@ @@ -358,8 +348,7 @@ android:id="@+id/tv_read_aloud" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginTop="3dp" + android:layout_marginTop="2dp" android:ellipsize="middle" android:singleLine="true" android:text="@string/read_aloud" @@ -376,14 +365,15 @@ @@ -402,8 +392,7 @@ android:id="@+id/tv_font" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginTop="3dp" + android:layout_marginTop="2dp" android:ellipsize="middle" android:singleLine="true" android:text="@string/interface_setting" @@ -420,14 +409,15 @@ @@ -446,8 +436,7 @@ android:id="@+id/tv_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginTop="3dp" + android:layout_marginTop="2dp" android:ellipsize="middle" android:singleLine="true" android:text="@string/setting" diff --git a/app/src/main/res/layout/view_search.xml b/app/src/main/res/layout/view_search.xml index 7e8e8966c..c0c5f9855 100644 --- a/app/src/main/res/layout/view_search.xml +++ b/app/src/main/res/layout/view_search.xml @@ -6,7 +6,7 @@ android:theme="?attr/actionBarStyle" android:background="@drawable/bg_searchview" android:layout_width="match_parent" - android:layout_height="30dp" + android:layout_height="36dp" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:imeOptions="actionSearch" diff --git a/app/src/main/res/layout/view_search_menu.xml b/app/src/main/res/layout/view_search_menu.xml index 0da5692bb..d5218901b 100644 --- a/app/src/main/res/layout/view_search_menu.xml +++ b/app/src/main/res/layout/view_search_menu.xml @@ -25,7 +25,6 @@ android:src="@drawable/ic_arrow_right" android:tint="@color/primaryText" android:tooltipText="@string/search_content" - app:backgroundTint="@color/background_menu" app:elevation="2dp" app:fabSize="mini" app:layout_constraintBottom_toBottomOf="parent" @@ -43,7 +42,6 @@ android:src="@drawable/ic_arrow_right" android:tint="@color/primaryText" android:tooltipText="@string/search_content" - app:backgroundTint="@color/background_menu" app:elevation="2dp" app:fabSize="mini" app:layout_constraintBottom_toBottomOf="parent" @@ -63,7 +61,6 @@ android:id="@+id/ll_search_base_info" android:layout_width="match_parent" android:layout_height="36dp" - android:background="@color/background_menu" android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="10dp" diff --git a/app/src/main/res/layout/view_select_action_bar.xml b/app/src/main/res/layout/view_select_action_bar.xml index 325438865..2e64c5257 100644 --- a/app/src/main/res/layout/view_select_action_bar.xml +++ b/app/src/main/res/layout/view_select_action_bar.xml @@ -21,7 +21,7 @@ android:padding="5dp" android:text="@string/select_all" /> - - \ No newline at end of file + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/view_tab_layout_min.xml b/app/src/main/res/layout/view_tab_layout_min.xml index 4033442d5..ccdd27e60 100644 --- a/app/src/main/res/layout/view_tab_layout_min.xml +++ b/app/src/main/res/layout/view_tab_layout_min.xml @@ -3,10 +3,4 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/tab_layout" android:layout_width="match_parent" - android:layout_height="match_parent" - android:theme="?attr/actionBarStyle" - android:background="@android:color/transparent" - app:tabBackground="@android:color/transparent" - app:tabRippleColor="@android:color/transparent" - app:tabMaxWidth="100dp" - app:tabMinWidth="10dp" /> \ No newline at end of file + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/view_title_bar.xml b/app/src/main/res/layout/view_title_bar.xml index b19cdc8c9..ac1febe9d 100644 --- a/app/src/main/res/layout/view_title_bar.xml +++ b/app/src/main/res/layout/view_title_bar.xml @@ -1,9 +1,6 @@ - + android:layout_height="wrap_content" /> diff --git a/app/src/main/res/menu/main_explore.xml b/app/src/main/res/menu/main_explore.xml index 5d429a443..09d0fe0eb 100644 --- a/app/src/main/res/menu/main_explore.xml +++ b/app/src/main/res/menu/main_explore.xml @@ -4,9 +4,9 @@ + android:icon="@drawable/ic_groups"> diff --git a/app/src/main/res/menu/main_my.xml b/app/src/main/res/menu/main_my.xml index 02b6acbd0..fee0b155e 100644 --- a/app/src/main/res/menu/main_my.xml +++ b/app/src/main/res/menu/main_my.xml @@ -5,9 +5,9 @@ diff --git a/app/src/main/res/menu/theme_config.xml b/app/src/main/res/menu/theme_config.xml index 5033089ac..7728519af 100644 --- a/app/src/main/res/menu/theme_config.xml +++ b/app/src/main/res/menu/theme_config.xml @@ -2,9 +2,9 @@ - - + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index d8557456b..73bcefe7b 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -167,7 +167,7 @@ Añadir Url de libro Segundo plano Autor - Autor: %s + %s Voz detelendia Limpiar caché Se limpió la caché diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index bc6e12b19..cf96f5efc 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -1,22 +1,159 @@ - @color/md_blue_grey_600 - @color/md_blue_grey_700 - @color/md_deep_orange_800 + #B1D18A + #1F3701 + #354E16 + #CDEDA3 + #BFCBAD + #2A331E + #404A33 + #DCE7C8 + #A0D0CB + #003735 + #1F4E4B + #BCECE7 + #FFB4AB + #690005 + #93000A + #FFDAD6 + #12140E + #E2E3D8 + #12140E + #E2E3D8 + #44483D + #C5C8BA + #8F9285 + #44483D + #000000 + #E2E3D8 + #2F312A + #4C662B + #CDEDA3 + #102000 + #B1D18A + #354E16 + #DCE7C8 + #151E0B + #BFCBAD + #404A33 + #BCECE7 + #00201E + #A0D0CB + #1F4E4B + #12140E + #383A32 + #0C0F09 + #1A1C16 + #1E201A + #282B24 + #33362E + #C7E79E + #172B00 + #7D9A59 + #000000 + #D5E1C2 + #1F2814 + #8A9579 + #000000 + #B5E6E1 + #002B29 + #6B9995 + #000000 + #FFD2CC + #540003 + #FF5449 + #000000 + #12140E + #E2E3D8 + #12140E + #FFFFFF + #44483D + #DBDECF + #B0B3A6 + #8E9285 + #000000 + #E2E3D8 + #282B24 + #364F17 + #CDEDA3 + #081400 + #B1D18A + #253D05 + #DCE7C8 + #0B1403 + #BFCBAD + #303924 + #BCECE7 + #001413 + #A0D0CB + #083D3A + #12140E + #43453D + #060804 + #1C1E18 + #262922 + #31342C + #3C3F37 + #DAFBB0 + #000000 + #ADCD86 + #050E00 + #E9F4D5 + #000000 + #BCC7A9 + #060D01 + #C9F9F5 + #000000 + #9CCCC7 + #000E0D + #FFECE9 + #000000 + #FFAEA4 + #220001 + #12140E + #E2E3D8 + #12140E + #FFFFFF + #44483D + #FFFFFF + #EEF2E2 + #C1C4B6 + #000000 + #E2E3D8 + #000000 + #364F17 + #CDEDA3 + #000000 + #B1D18A + #081400 + #DCE7C8 + #000000 + #BFCBAD + #0B1403 + #BCECE7 + #000000 + #A0D0CB + #001413 + #12140E + #4F5149 + #000000 + #1E201A + #2F312A + #3A3C35 + #454840 @color/md_dark_disabled - @color/md_grey_900 - @color/md_grey_850 - @color/md_grey_800 #10303030 #69000000 - #10ffffff - #20ffffff - #30ffffff - #50ffffff + #10000000 + #20000000 + #30000000 + #50000000 + #70000000 + #FF000000 #363636 diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index aa2b4349a..3ebf5d609 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -1,10 +1,7 @@ - - - - - - + + + + + + + + + //**********System Style******************// - - + + + + - - //*******************Widget Style**********************************// diff --git a/app/src/main/res/xml/pref_config_theme.xml b/app/src/main/res/xml/pref_config_theme.xml index cf7e89b28..2a4d1a152 100644 --- a/app/src/main/res/xml/pref_config_theme.xml +++ b/app/src/main/res/xml/pref_config_theme.xml @@ -2,6 +2,15 @@ + + - - - - - - -