From a2e44da99daab4c266e5c47013bfa226b4e488d4 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Tue, 6 Feb 2024 02:16:10 -0600 Subject: [PATCH] chore: code refactor --- .github/workflows/beta.yml | 23 +- app/build.gradle | 2 +- app/src/alpha/res/drawable/anim_splash.xml | 189 +- app/src/debug/res/drawable/anim_splash.xml | 189 +- app/src/main/AndroidManifest.xml | 24 +- app/src/main/java/ani/dantotsu/App.kt | 2 +- app/src/main/java/ani/dantotsu/Functions.kt | 21 +- .../main/java/ani/dantotsu/MainActivity.kt | 3 +- .../aniyomi/anime/custom/InjektModules.kt | 3 - .../dantotsu/connections/UpdateProgress.kt | 2 +- .../dantotsu/connections/anilist/Anilist.kt | 1 - .../connections/anilist/AnilistQueries.kt | 33 +- .../connections/anilist/AnilistViewModel.kt | 2 +- .../ani/dantotsu/connections/anilist/Login.kt | 5 +- .../dantotsu/connections/anilist/UrlMedia.kt | 2 +- .../dantotsu/connections/discord/Discord.kt | 5 +- .../connections/discord/DiscordService.kt | 2 +- .../ani/dantotsu/connections/discord/Login.kt | 2 +- .../ani/dantotsu/connections/mal/Login.kt | 4 +- .../java/ani/dantotsu/connections/mal/MAL.kt | 7 +- .../ani/dantotsu/download/DownloadsManager.kt | 2 +- .../download/anime/OfflineAnimeAdapter.kt | 2 +- .../download/anime/OfflineAnimeFragment.kt | 6 +- .../download/manga/OfflineMangaAdapter.kt | 2 +- .../download/manga/OfflineMangaFragment.kt | 2 +- .../java/ani/dantotsu/home/AnimeFragment.kt | 9 +- .../ani/dantotsu/home/AnimePageAdapter.kt | 2 +- .../java/ani/dantotsu/home/HomeFragment.kt | 5 +- .../java/ani/dantotsu/home/LoginFragment.kt | 78 +- .../java/ani/dantotsu/home/MangaFragment.kt | 9 +- .../ani/dantotsu/home/MangaPageAdapter.kt | 2 +- .../main/java/ani/dantotsu/home/NoInternet.kt | 4 +- .../java/ani/dantotsu/media/AuthorActivity.kt | 2 +- .../ani/dantotsu/media/CalendarActivity.kt | 4 +- .../media/CharacterDetailsActivity.kt | 4 +- .../java/ani/dantotsu/media/GenreActivity.kt | 12 +- .../java/ani/dantotsu/media/MediaAdaptor.kt | 2 +- .../dantotsu/media/MediaDetailsActivity.kt | 2 +- .../dantotsu/media/MediaDetailsViewModel.kt | 17 +- .../ani/dantotsu/media/MediaInfoFragment.kt | 41 +- .../java/ani/dantotsu/media/SearchActivity.kt | 4 +- .../java/ani/dantotsu/media/SearchAdapter.kt | 2 +- .../dantotsu/media/SearchHistoryAdapter.kt | 12 +- .../java/ani/dantotsu/media/StudioActivity.kt | 2 +- .../dantotsu/media/anime/AnimeWatchAdapter.kt | 19 +- .../media/anime/AnimeWatchFragment.kt | 2 +- .../media/anime/SelectorDialogFragment.kt | 4 +- .../media/anime/SubtitleDialogFragment.kt | 8 +- .../dantotsu/media/manga/MangaReadAdapter.kt | 13 +- .../dantotsu/media/manga/MangaReadFragment.kt | 6 +- .../media/manga/mangareader/ImageAdapter.kt | 2 +- .../novel/novelreader/NovelReaderActivity.kt | 13 +- .../ani/dantotsu/media/user/ListActivity.kt | 4 +- .../ani/dantotsu/media/user/ListViewModel.kt | 2 +- .../ani/dantotsu/offline/OfflineFragment.kt | 2 +- .../main/java/ani/dantotsu/others/Download.kt | 2 +- .../others/imagesearch/ImageSearchActivity.kt | 2 +- .../java/ani/dantotsu/parsers/AnimeParser.kt | 6 +- .../java/ani/dantotsu/parsers/AnimeSources.kt | 6 +- .../java/ani/dantotsu/parsers/BaseParser.kt | 6 +- .../java/ani/dantotsu/parsers/MangaSources.kt | 7 +- .../java/ani/dantotsu/parsers/NovelSources.kt | 5 +- .../parsers/novel/NovelExtensionGithubApi.kt | 2 +- .../settings/CurrentNovelReaderSettings.kt | 6 +- .../settings/CurrentReaderSettings.kt | 2 +- .../dantotsu/settings/ExtensionsActivity.kt | 20 +- .../java/ani/dantotsu/settings/FAQActivity.kt | 2 +- .../InstalledAnimeExtensionsFragment.kt | 19 +- .../InstalledMangaExtensionsFragment.kt | 21 +- .../InstalledNovelExtensionsFragment.kt | 21 +- .../settings/PlayerSettingsActivity.kt | 44 +- .../settings/ReaderSettingsActivity.kt | 20 +- .../ani/dantotsu/settings/SettingsActivity.kt | 119 +- .../settings/SettingsDialogFragment.kt | 102 +- .../settings/UserInterfaceSettingsActivity.kt | 10 +- .../settings/paging/AnimePagingSource.kt | 5 +- .../settings/paging/MangaPagingSource.kt | 5 +- .../settings/paging/NovelPagingSource.kt | 2 +- .../dantotsu/settings/saving/PrefManager.kt | 128 +- .../dantotsu/settings/saving/Preferences.kt | 18 +- .../settings/saving/internal/Compat.kt | 2 +- .../saving/internal/PreferenceInternal.kt | 1 + .../saving/internal/PreferenceKeystore.kt | 28 +- .../saving/internal/PreferencePackager.kt | 10 +- .../dantotsu/subcriptions/AlarmReceiver.kt | 2 +- .../subcriptions/NotificationClickReceiver.kt | 2 +- .../ani/dantotsu/subcriptions/Subscription.kt | 2 +- .../subcriptions/SubscriptionHelper.kt | 26 +- .../subcriptions/SubscriptionWorker.kt | 2 +- .../java/ani/dantotsu/themes/ThemeManager.kt | 2 +- .../CurrentlyAiringWidgetConfigureActivity.kt | 2 +- .../util/AnimeExtensionInstallActivity.kt | 2 +- .../util/MangaExtensionInstallActivity.kt | 2 +- .../kanade/tachiyomi/network/NetworkHelper.kt | 2 +- app/src/main/res/anim/over_shoot.xml | 6 +- app/src/main/res/anim/slide_down.xml | 4 +- app/src/main/res/anim/slide_up.xml | 4 +- .../main/res/color/button_switch_track.xml | 4 +- .../main/res/color/chip_background_color.xml | 4 +- app/src/main/res/color/chip_text_color.xml | 4 +- app/src/main/res/color/tab_layout_icon.xml | 4 +- app/src/main/res/color/tab_layout_text.xml | 4 +- .../color/text_input_layout_stroke_color.xml | 4 +- .../main/res/drawable/anim_pause_to_play.xml | 43 +- .../main/res/drawable/anim_play_to_pause.xml | 43 +- app/src/main/res/drawable/anim_rewind.xml | 57 +- app/src/main/res/drawable/anim_skip.xml | 57 +- app/src/main/res/drawable/anim_splash.xml | 189 +- app/src/main/res/drawable/bottom_nav.xml | 4 +- app/src/main/res/drawable/bottom_nav_gray.xml | 4 +- app/src/main/res/drawable/card_outline.xml | 16 +- app/src/main/res/drawable/ic_anilist.xml | 10 +- app/src/main/res/drawable/ic_bmc_button.xml | 92 +- app/src/main/res/drawable/ic_check.xml | 6 +- app/src/main/res/drawable/ic_circle_add.xml | 10 +- .../main/res/drawable/ic_circle_cancel.xml | 10 +- app/src/main/res/drawable/ic_circle_check.xml | 10 +- .../main/res/drawable/ic_dantotsu_round.xml | 71 +- app/src/main/res/drawable/ic_discord.xml | 10 +- app/src/main/res/drawable/ic_download_24.xml | 10 +- app/src/main/res/drawable/ic_extension.xml | 36 +- app/src/main/res/drawable/ic_github.xml | 12 +- app/src/main/res/drawable/ic_incognito_24.xml | 14 +- app/src/main/res/drawable/ic_internet.xml | 10 +- .../drawable/ic_launcher_alpha_background.xml | 37 +- .../drawable/ic_launcher_alpha_foreground.xml | 31 +- .../res/drawable/ic_launcher_background.xml | 47 +- .../drawable/ic_launcher_beta_background.xml | 47 +- .../drawable/ic_launcher_beta_foreground.xml | 31 +- .../res/drawable/ic_launcher_foreground.xml | 31 +- app/src/main/res/drawable/ic_myanimelist.xml | 10 +- .../main/res/drawable/ic_page_numbering.xml | 13 +- app/src/main/res/drawable/ic_palette.xml | 10 +- app/src/main/res/drawable/ic_pin.xml | 6 +- .../ic_round_accessible_forward_24.xml | 18 +- .../res/drawable/ic_round_add_circle_24.xml | 10 +- .../ic_round_add_circle_outline_24.xml | 10 +- .../res/drawable/ic_round_alpha_t_box_24.xml | 2 +- .../res/drawable/ic_round_amp_stories_24.xml | 21 +- .../res/drawable/ic_round_animation_24.xml | 10 +- .../ic_round_arrow_back_ios_new_24.xml | 6 +- .../res/drawable/ic_round_art_track_24.xml | 10 +- .../res/drawable/ic_round_audiotrack_24.xml | 10 +- .../res/drawable/ic_round_auto_awesome_24.xml | 10 +- .../main/res/drawable/ic_round_book_24.xml | 6 +- .../res/drawable/ic_round_brightness_4_24.xml | 10 +- .../drawable/ic_round_brightness_auto_24.xml | 10 +- .../drawable/ic_round_brightness_high_24.xml | 10 +- .../ic_round_brightness_medium_24.xml | 6 +- .../drawable/ic_round_calendar_today_24.xml | 10 +- .../main/res/drawable/ic_round_cast_24.xml | 6 +- .../main/res/drawable/ic_round_close_24.xml | 10 +- .../ic_round_collections_bookmark_24.xml | 10 +- .../main/res/drawable/ic_round_color_24.xml | 6 +- .../res/drawable/ic_round_color_picker_24.xml | 11 +- .../res/drawable/ic_round_date_range_24.xml | 10 +- .../main/res/drawable/ic_round_delete_24.xml | 12 +- app/src/main/res/drawable/ic_round_dns_24.xml | 10 +- .../drawable/ic_round_dots_vertical_24.xml | 16 +- .../res/drawable/ic_round_edit_note_24.xml | 6 +- .../main/res/drawable/ic_round_equal_24.xml | 16 +- .../res/drawable/ic_round_fast_forward_24.xml | 6 +- .../res/drawable/ic_round_fast_rewind_24.xml | 6 +- .../res/drawable/ic_round_favorite_24.xml | 10 +- .../drawable/ic_round_favorite_border_24.xml | 10 +- .../main/res/drawable/ic_round_filter_24.xml | 37 +- .../res/drawable/ic_round_filter_alt_24.xml | 4 +- .../res/drawable/ic_round_font_size_24.xml | 12 +- .../res/drawable/ic_round_format_text_24.xml | 2 +- .../res/drawable/ic_round_fullscreen_24.xml | 6 +- .../res/drawable/ic_round_grid_view_24.xml | 28 +- .../res/drawable/ic_round_heart_broken_24.xml | 10 +- .../main/res/drawable/ic_round_help_24.xml | 12 +- .../res/drawable/ic_round_high_quality_24.xml | 6 +- .../main/res/drawable/ic_round_home_24.xml | 10 +- .../drawable/ic_round_import_contacts_24.xml | 10 +- .../main/res/drawable/ic_round_info_24.xml | 10 +- .../main/res/drawable/ic_round_lock_24.xml | 6 +- .../res/drawable/ic_round_lock_open_24.xml | 10 +- .../res/drawable/ic_round_movie_filter_24.xml | 10 +- .../res/drawable/ic_round_new_releases_24.xml | 10 +- .../main/res/drawable/ic_round_no_icon_24.xml | 6 +- .../ic_round_notifications_active_24.xml | 10 +- .../ic_round_notifications_none_24.xml | 10 +- .../main/res/drawable/ic_round_nsfw_24.xml | 24 +- .../main/res/drawable/ic_round_pause_24.xml | 6 +- .../main/res/drawable/ic_round_person_24.xml | 10 +- .../ic_round_photo_size_select_actual_24.xml | 10 +- .../ic_round_picture_in_picture_alt_24.xml | 6 +- .../res/drawable/ic_round_play_arrow_24.xml | 6 +- .../res/drawable/ic_round_play_circle_24.xml | 10 +- .../drawable/ic_round_play_disabled_24.xml | 10 +- .../res/drawable/ic_round_playlist_add_24.xml | 12 +- .../drawable/ic_round_playlist_play_24.xml | 12 +- .../res/drawable/ic_round_reader_settings.xml | 16 +- .../main/res/drawable/ic_round_refresh_24.xml | 10 +- .../drawable/ic_round_remove_red_eye_24.xml | 10 +- .../res/drawable/ic_round_restaurant_24.xml | 13 +- .../ic_round_screen_rotation_alt_24.xml | 12 +- .../main/res/drawable/ic_round_sd_card_24.xml | 10 +- .../main/res/drawable/ic_round_search_24.xml | 10 +- .../res/drawable/ic_round_settings_24.xml | 10 +- .../main/res/drawable/ic_round_share_24.xml | 10 +- .../res/drawable/ic_round_skip_next_24.xml | 6 +- .../drawable/ic_round_skip_previous_24.xml | 6 +- .../ic_round_slow_motion_video_24.xml | 10 +- .../main/res/drawable/ic_round_sort_24.xml | 11 +- .../main/res/drawable/ic_round_source_24.xml | 6 +- .../res/drawable/ic_round_space_bar_24.xml | 13 +- .../main/res/drawable/ic_round_star_24.xml | 10 +- .../res/drawable/ic_round_straighten_24.xml | 13 +- .../res/drawable/ic_round_subtitles_24.xml | 12 +- .../drawable/ic_round_swipe_down_alt_24.xml | 13 +- .../res/drawable/ic_round_swipe_up_alt_24.xml | 13 +- .../drawable/ic_round_swipe_vertical_24.xml | 10 +- .../main/res/drawable/ic_round_sync_24.xml | 10 +- .../res/drawable/ic_round_touch_app_24.xml | 10 +- .../res/drawable/ic_round_translate_24.xml | 16 +- .../ic_round_translate_variant_24.xml | 2 +- .../drawable/ic_round_video_library_24.xml | 10 +- .../drawable/ic_round_video_settings_24.xml | 22 +- .../res/drawable/ic_round_view_array_24.xml | 13 +- .../res/drawable/ic_round_view_column_24.xml | 13 +- .../res/drawable/ic_round_view_comfy_24.xml | 10 +- .../res/drawable/ic_round_view_list_24.xml | 12 +- .../res/drawable/ic_round_volume_up_24.xml | 10 +- app/src/main/res/drawable/ic_shuffle_24.xml | 10 +- app/src/main/res/drawable/ic_skip.xml | 12 +- app/src/main/res/drawable/ic_sync.xml | 10 +- app/src/main/res/drawable/ic_telegram.xml | 8 +- app/src/main/res/drawable/ic_upi_icon.xml | 32 +- app/src/main/res/drawable/item_ongoing.xml | 8 +- app/src/main/res/drawable/item_score.xml | 4 +- app/src/main/res/drawable/item_type.xml | 4 +- app/src/main/res/drawable/item_user_score.xml | 4 +- .../main/res/drawable/linear_gradient_bg.xml | 4 +- .../res/drawable/linear_gradient_black.xml | 4 +- .../linear_gradient_black_horizontal.xml | 4 +- .../main/res/drawable/linear_gradient_nav.xml | 4 +- app/src/main/res/drawable/mono.xml | 23 +- app/src/main/res/drawable/monochrome.xml | 10 +- app/src/main/res/drawable/round_corner.xml | 8 +- .../res/drawable/rounded_top_incognito.xml | 2 +- app/src/main/res/drawable/rounded_top_nav.xml | 2 +- .../main/res/drawable/shape_corner_16dp.xml | 4 +- app/src/main/res/drawable/spinner_icon.xml | 16 +- .../main/res/drawable/spinner_icon_manga.xml | 16 +- app/src/main/res/drawable/ui_bg.xml | 24 +- app/src/main/res/font/poppins_family.xml | 8 +- .../main/res/layout-land/activity_media.xml | 24 +- app/src/main/res/layout/activity_author.xml | 8 +- .../main/res/layout/activity_character.xml | 5 +- .../main/res/layout/activity_container.xml | 4 +- .../main/res/layout/activity_exoplayer.xml | 3 +- .../main/res/layout/activity_extensions.xml | 22 +- app/src/main/res/layout/activity_faq.xml | 12 +- .../main/res/layout/activity_image_search.xml | 2 +- app/src/main/res/layout/activity_list.xml | 21 +- app/src/main/res/layout/activity_main.xml | 6 +- .../main/res/layout/activity_manga_reader.xml | 6 +- app/src/main/res/layout/activity_media.xml | 20 +- .../main/res/layout/activity_no_internet.xml | 7 +- .../main/res/layout/activity_novel_reader.xml | 6 +- .../res/layout/activity_player_settings.xml | 1636 ++++++++--------- .../res/layout/activity_reader_settings.xml | 24 +- app/src/main/res/layout/activity_settings.xml | 11 +- app/src/main/res/layout/activity_studio.xml | 8 +- .../activity_user_interface_settings.xml | 14 +- app/src/main/res/layout/bottom_sheet_book.xml | 12 +- .../main/res/layout/bottom_sheet_custom.xml | 6 +- .../res/layout/bottom_sheet_developers.xml | 2 +- .../res/layout/bottom_sheet_media_list.xml | 24 +- .../layout/bottom_sheet_media_list_small.xml | 15 +- .../res/layout/bottom_sheet_search_filter.xml | 414 ++--- .../main/res/layout/bottom_sheet_settings.xml | 20 +- .../res/layout/bottom_sheet_source_search.xml | 2 +- .../res/layout/bottom_sheet_subtitles.xml | 6 +- .../res/layout/currently_airing_widget.xml | 8 +- .../main/res/layout/custom_dialog_layout.xml | 10 +- app/src/main/res/layout/dialog_layout.xml | 4 +- app/src/main/res/layout/dialog_user_agent.xml | 6 +- .../res/layout/exo_player_control_view.xml | 167 +- app/src/main/res/layout/exo_player_view.xml | 31 +- app/src/main/res/layout/fragment_anime.xml | 7 +- .../main/res/layout/fragment_anime_watch.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 10 +- app/src/main/res/layout/fragment_list.xml | 2 +- app/src/main/res/layout/fragment_login.xml | 8 +- app/src/main/res/layout/fragment_manga.xml | 7 +- .../main/res/layout/fragment_media_info.xml | 2 +- app/src/main/res/layout/fragment_offline.xml | 17 +- .../main/res/layout/fragment_offline_page.xml | 23 +- app/src/main/res/layout/item_anime_page.xml | 12 +- app/src/main/res/layout/item_anime_watch.xml | 30 +- app/src/main/res/layout/item_chapter_list.xml | 24 +- app/src/main/res/layout/item_chip.xml | 8 +- .../layout/item_currently_airing_widget.xml | 24 +- .../main/res/layout/item_custom_dialog.xml | 7 +- app/src/main/res/layout/item_dropdown.xml | 6 +- app/src/main/res/layout/item_dual_page.xml | 4 +- .../main/res/layout/item_episode_compact.xml | 2 +- app/src/main/res/layout/item_episode_grid.xml | 2 +- app/src/main/res/layout/item_episode_list.xml | 17 +- app/src/main/res/layout/item_extension.xml | 10 +- .../main/res/layout/item_extension_all.xml | 8 +- app/src/main/res/layout/item_image.xml | 11 +- app/src/main/res/layout/item_manga_page.xml | 16 +- .../main/res/layout/item_media_compact.xml | 6 +- app/src/main/res/layout/item_media_large.xml | 9 +- app/src/main/res/layout/item_media_page.xml | 2 + .../main/res/layout/item_media_page_small.xml | 1 + app/src/main/res/layout/item_novel_header.xml | 4 +- app/src/main/res/layout/item_progressbar.xml | 2 +- app/src/main/res/layout/item_recyclerview.xml | 2 +- .../main/res/layout/item_search_header.xml | 14 +- .../main/res/layout/item_search_history.xml | 8 +- app/src/main/res/layout/item_stream.xml | 4 +- .../main/res/layout/item_title_recycler.xml | 2 +- app/src/main/res/layout/item_url.xml | 4 +- app/src/main/res/menu/bottom_navbar_menu.xml | 2 +- app/src/main/res/menu/menu_media.xml | 7 +- .../main/res/mipmap-anydpi-v26/ic_banner.xml | 4 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 +- .../mipmap-anydpi-v26/ic_launcher_alpha.xml | 4 +- .../ic_launcher_alpha_round.xml | 4 +- .../mipmap-anydpi-v26/ic_launcher_beta.xml | 6 +- .../ic_launcher_beta_round.xml | 6 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 +- app/src/main/res/values-night/themes.xml | 3 +- app/src/main/res/values/attr.xml | 2 +- app/src/main/res/values/colors.xml | 3 +- app/src/main/res/values/style.xml | 4 +- app/src/main/res/xml/anime_preferences.xml | 4 +- .../res/xml/currently_airing_widget_info.xml | 3 +- 334 files changed, 3550 insertions(+), 3092 deletions(-) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 306132e4..d66b5e1d 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -55,12 +55,6 @@ jobs: - name: Save Current SHA for Next Run run: echo ${{ github.sha }} > last_sha.txt - - name: Upload Current SHA as Artifact - uses: actions/upload-artifact@v2 - with: - name: last-sha - path: last_sha.txt - - name: Set variables run: | VER=$(grep -E -o "versionName \".*\"" app/build.gradle | sed -e 's/versionName //g' | tr -d '"') @@ -86,13 +80,13 @@ jobs: run: chmod +x ./gradlew - name: Build with Gradle - run: ./gradlew assembleAlpha -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/key.keystore -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} + run: ./gradlew assembleAlpha -Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/key.keystore -Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} -Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} -Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }} -Pcustom.filename="app-alpha.apk" - name: Upload a Build Artifact uses: actions/upload-artifact@v3.0.0 with: name: Dantotsu - path: "app/build/outputs/apk/alpha/app-alpha.apk" + path: "app/build/outputs/apk/google/alpha/app-alpha.apk" - name: Upload APK to Discord and Telegram shell: bash @@ -105,11 +99,11 @@ jobs: commit_messages="${commit_messages:0:$max_length}... (truncated)" fi contentbody=$( jq -nc --arg msg "Alpha-Build: <@719439449423085569> **$VERSION**:" --arg commits "$commit_messages" '{"content": ($msg + "\n" + $commits)}' ) - curl -F "payload_json=${contentbody}" -F "dantotsu_debug=@app/build/outputs/apk/alpha/app-alpha.apk" ${{ secrets.DISCORD_WEBHOOK }} + curl -F "payload_json=${contentbody}" -F "dantotsu_debug=@app/build/outputs/apk/google/alpha/app-alpha.apk" ${{ secrets.DISCORD_WEBHOOK }} #Telegram curl -F "chat_id=${{ secrets.TELEGRAM_CHANNEL_ID }}" \ - -F "document=@app/build/outputs/apk/alpha/app-alpha.apk" \ + -F "document=@app/build/outputs/apk/google/alpha/app-alpha.apk" \ -F "caption=[Alpha-Build: ${VERSION}] Change logs :${commit_messages}" \ https://api.telegram.org/bot${{ secrets.TELEGRAM_BOT_TOKEN }}/sendDocument @@ -117,8 +111,13 @@ jobs: COMMIT_LOG: ${{ env.COMMIT_LOG }} VERSION: ${{ env.VERSION }} - - + - name: Upload Current SHA as Artifact + uses: actions/upload-artifact@v2 + with: + name: last-sha + path: last_sha.txt + + - name: Delete Old Pre-Releases id: delete-pre-releases uses: sgpublic/delete-release-action@master diff --git a/app/build.gradle b/app/build.gradle index f5f81594..3bfe651d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,7 +17,7 @@ android { applicationId "ani.dantotsu" minSdk 23 targetSdk 34 - versionCode ((System.currentTimeMillis() / 60000).toInteger()) + versionCode((System.currentTimeMillis() / 60000).toInteger()) versionName "2.1.0" versionCode 210 signingConfig signingConfigs.debug diff --git a/app/src/alpha/res/drawable/anim_splash.xml b/app/src/alpha/res/drawable/anim_splash.xml index d399d0df..ac1d1ee9 100644 --- a/app/src/alpha/res/drawable/anim_splash.xml +++ b/app/src/alpha/res/drawable/anim_splash.xml @@ -1,5 +1,4 @@ - + android:pathData="M 384 128.04 C 329.836 127.869 276.99 144.889 233.11 176.638 C 189.23 208.387 156.539 253.255 139.769 304.75 C 122.999 356.244 122.999 411.756 139.769 463.25 C 156.539 514.745 189.23 559.613 233.11 591.362 C 276.99 623.111 329.836 640.131 384 639.96 C 451.869 639.96 517.028 612.974 565.019 564.991 C 613.01 517.008 640 451.859 640 384 C 640 316.141 613.01 250.992 565.019 203.009 C 517.028 155.026 451.869 128.04 384 128.04 Z" /> + android:pathData="M 128 128 L 640 128 L 640 639.96 L 128 639.96 Z" + android:strokeWidth="1" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" + android:strokeWidth="1" /> @@ -43,12 +42,12 @@ android:rotation="-90"> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:scaleY="1.2" /> + android:pathData="M 539.28 128 C 503.71 317.07 337.72 460.12 138.31 460.12 C 134.86 460.12 131.42 460.06 128 459.98 L 128 465.73 C 168.23 476.19 210.43 481.78 253.93 481.78 C 409.53 481.78 548.48 410.55 640 298.94 L 640 128.01 L 539.28 128.01 Z" + android:strokeWidth="1" /> @@ -100,9 +99,9 @@ android:translateX="-360"> + android:pathData="M 481.82 384 C 481.82 438.03 438.02 481.82 384 481.82 L 0 481.82 L 0 286.18 L 384 286.18 C 438.02 286.18 481.82 329.98 481.82 384 Z" + android:strokeWidth="1" /> + android:pathData="M 44.26 128 C 44.26 174.25 81.75 211.74 128 211.74 L 384 211.74 C 479.13 211.74 556.26 288.86 556.26 384 C 556.26 479.13 479.14 556.26 384 556.26 L 128 556.26 C 81.76 556.26 44.28 593.73 44.26 639.97 L 768 639.97 L 768 128 L 44.26 128 Z" + android:strokeWidth="1" /> + android:scaleY="3"> + android:fillColor="#FFD8DF" + android:pathData="M 442 366.7 L 365.98 322.81 C 352.66 315.12 336.02 324.73 336.02 340.11 L 336.02 427.89 C 336.02 443.27 352.67 452.88 365.98 445.19 L 442 401.3 C 455.32 393.61 455.32 374.39 442 366.7 Z" + android:strokeWidth="1" /> @@ -138,19 +137,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -158,177 +157,177 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -336,19 +335,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -356,21 +355,21 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/debug/res/drawable/anim_splash.xml b/app/src/debug/res/drawable/anim_splash.xml index 3338cb41..43638d8d 100644 --- a/app/src/debug/res/drawable/anim_splash.xml +++ b/app/src/debug/res/drawable/anim_splash.xml @@ -1,5 +1,4 @@ - + android:pathData="M 384 128.04 C 329.836 127.869 276.99 144.889 233.11 176.638 C 189.23 208.387 156.539 253.255 139.769 304.75 C 122.999 356.244 122.999 411.756 139.769 463.25 C 156.539 514.745 189.23 559.613 233.11 591.362 C 276.99 623.111 329.836 640.131 384 639.96 C 451.869 639.96 517.028 612.974 565.019 564.991 C 613.01 517.008 640 451.859 640 384 C 640 316.141 613.01 250.992 565.019 203.009 C 517.028 155.026 451.869 128.04 384 128.04 Z" /> + android:pathData="M 128 128 L 640 128 L 640 639.96 L 128 639.96 Z" + android:strokeWidth="1" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" + android:strokeWidth="1" /> @@ -43,12 +42,12 @@ android:rotation="-90"> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:scaleY="1.2" /> + android:pathData="M 539.28 128 C 503.71 317.07 337.72 460.12 138.31 460.12 C 134.86 460.12 131.42 460.06 128 459.98 L 128 465.73 C 168.23 476.19 210.43 481.78 253.93 481.78 C 409.53 481.78 548.48 410.55 640 298.94 L 640 128.01 L 539.28 128.01 Z" + android:strokeWidth="1" /> @@ -100,9 +99,9 @@ android:translateX="-360"> + android:pathData="M 481.82 384 C 481.82 438.03 438.02 481.82 384 481.82 L 0 481.82 L 0 286.18 L 384 286.18 C 438.02 286.18 481.82 329.98 481.82 384 Z" + android:strokeWidth="1" /> + android:pathData="M 44.26 128 C 44.26 174.25 81.75 211.74 128 211.74 L 384 211.74 C 479.13 211.74 556.26 288.86 556.26 384 C 556.26 479.13 479.14 556.26 384 556.26 L 128 556.26 C 81.76 556.26 44.28 593.73 44.26 639.97 L 768 639.97 L 768 128 L 44.26 128 Z" + android:strokeWidth="1" /> + android:scaleY="3"> + android:fillColor="#efe7ff" + android:pathData="M 442 366.7 L 365.98 322.81 C 352.66 315.12 336.02 324.73 336.02 340.11 L 336.02 427.89 C 336.02 443.27 352.67 452.88 365.98 445.19 L 442 401.3 C 455.32 393.61 455.32 374.39 442 366.7 Z" + android:strokeWidth="1" /> @@ -138,19 +137,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -158,177 +157,177 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -336,19 +335,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -356,21 +355,21 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c61e37dd..57e6b8c2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,8 @@ android:required="false" /> - @@ -289,13 +290,13 @@ + android:exported="true" + android:permission="android.permission.BIND_REMOTEVIEWS" /> - + @@ -317,19 +318,22 @@ android:name=".download.novel.NovelDownloaderService" android:exported="false" android:foregroundServiceType="dataSync" /> - - + - + \ No newline at end of file diff --git a/app/src/main/java/ani/dantotsu/App.kt b/app/src/main/java/ani/dantotsu/App.kt index d05db59a..91500e4c 100644 --- a/app/src/main/java/ani/dantotsu/App.kt +++ b/app/src/main/java/ani/dantotsu/App.kt @@ -15,8 +15,8 @@ import ani.dantotsu.parsers.MangaSources import ani.dantotsu.parsers.NovelSources import ani.dantotsu.parsers.novel.NovelExtensionManager import ani.dantotsu.settings.SettingsActivity -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.google.android.material.color.DynamicColors import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.extension.anime.AnimeExtensionManager diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt index ec1d4322..05d872ad 100644 --- a/app/src/main/java/ani/dantotsu/Functions.kt +++ b/app/src/main/java/ani/dantotsu/Functions.kt @@ -48,8 +48,8 @@ import ani.dantotsu.connections.crashlytics.CrashlyticsInterface import ani.dantotsu.databinding.ItemCountDownBinding import ani.dantotsu.media.Media import ani.dantotsu.parsers.ShowResponse -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.internal.PreferenceKeystore import ani.dantotsu.settings.saving.internal.PreferenceKeystore.Companion.generateSalt import ani.dantotsu.subcriptions.NotificationClickReceiver @@ -62,7 +62,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.internal.ViewUtils import com.google.android.material.snackbar.Snackbar -import com.google.gson.Gson import eu.kanade.tachiyomi.data.notification.Notifications import kotlinx.coroutines.* import nl.joery.animatedbottombar.AnimatedBottomBar @@ -304,7 +303,8 @@ class ZoomOutPageTransformer() : 0.5f to 0f ) ObjectAnimator.ofFloat(view, "alpha", 0f, 1.0f) - .setDuration((200 * (PrefManager.getVal(PrefName.AnimationSpeed) as Float)).toLong()).start() + .setDuration((200 * (PrefManager.getVal(PrefName.AnimationSpeed) as Float)).toLong()) + .start() } } } @@ -592,7 +592,12 @@ fun saveImageToDownloads(title: String, bitmap: Bitmap, context: Context) { ) } -fun savePrefsToDownloads(title: String, serialized: String, context: Context, password: CharArray? = null) { +fun savePrefsToDownloads( + title: String, + serialized: String, + context: Context, + password: CharArray? = null +) { FileProvider.getUriForFile( context, "$APPLICATION_ID.provider", @@ -634,7 +639,13 @@ fun savePrefs(serialized: String, path: String, title: String, context: Context) } } -fun savePrefs(serialized: String, path: String, title: String, context: Context, password: CharArray): File? { +fun savePrefs( + serialized: String, + path: String, + title: String, + context: Context, + password: CharArray +): File? { var file = File(path, "$title.ani") var counter = 1 while (file.exists()) { diff --git a/app/src/main/java/ani/dantotsu/MainActivity.kt b/app/src/main/java/ani/dantotsu/MainActivity.kt index 11790fab..8f5dd79f 100644 --- a/app/src/main/java/ani/dantotsu/MainActivity.kt +++ b/app/src/main/java/ani/dantotsu/MainActivity.kt @@ -44,11 +44,10 @@ import ani.dantotsu.home.MangaFragment import ani.dantotsu.home.NoInternet import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.others.CustomBottomDialog -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefManager.asLiveBool +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.SharedPreferenceBooleanLiveData -import ani.dantotsu.settings.saving.internal.Location import ani.dantotsu.subcriptions.Subscription.Companion.startSubscription import ani.dantotsu.themes.ThemeManager import eu.kanade.domain.source.service.SourcePreferences diff --git a/app/src/main/java/ani/dantotsu/aniyomi/anime/custom/InjektModules.kt b/app/src/main/java/ani/dantotsu/aniyomi/anime/custom/InjektModules.kt index 882a07db..c3a19008 100644 --- a/app/src/main/java/ani/dantotsu/aniyomi/anime/custom/InjektModules.kt +++ b/app/src/main/java/ani/dantotsu/aniyomi/anime/custom/InjektModules.kt @@ -2,14 +2,11 @@ package ani.dantotsu.aniyomi.anime.custom import android.app.Application -import android.content.Context import androidx.annotation.OptIn import androidx.core.content.ContextCompat import androidx.media3.common.util.UnstableApi import androidx.media3.database.StandaloneDatabaseProvider -import ani.dantotsu.BuildConfig import ani.dantotsu.connections.crashlytics.CrashlyticsInterface -import ani.dantotsu.connections.crashlytics.CrashlyticsStub import ani.dantotsu.download.DownloadsManager import ani.dantotsu.media.manga.MangaCache import ani.dantotsu.parsers.novel.NovelExtensionManager diff --git a/app/src/main/java/ani/dantotsu/connections/UpdateProgress.kt b/app/src/main/java/ani/dantotsu/connections/UpdateProgress.kt index 20ff176a..acfd0cdb 100644 --- a/app/src/main/java/ani/dantotsu/connections/UpdateProgress.kt +++ b/app/src/main/java/ani/dantotsu/connections/UpdateProgress.kt @@ -6,8 +6,8 @@ import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.mal.MAL import ani.dantotsu.currContext import ani.dantotsu.media.Media -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.toast import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt b/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt index 562d9b0a..117b2fa8 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/Anilist.kt @@ -12,7 +12,6 @@ import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.toast import ani.dantotsu.tryWithSuspend -import java.io.File import java.util.Calendar object Anilist { diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt index 4f503529..d56dd111 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistQueries.kt @@ -1,6 +1,7 @@ package ani.dantotsu.connections.anilist import android.app.Activity +import android.util.Base64 import ani.dantotsu.R import ani.dantotsu.checkGenreTime import ani.dantotsu.checkId @@ -17,18 +18,17 @@ import ani.dantotsu.media.Character import ani.dantotsu.media.Media import ani.dantotsu.media.Studio import ani.dantotsu.others.MalScraper -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.runBlocking +import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream +import java.io.ObjectInputStream import java.io.ObjectOutputStream import java.io.Serializable -import android.util.Base64 -import java.io.ByteArrayInputStream -import java.io.ObjectInputStream import kotlin.system.measureTimeMillis class AnilistQueries { @@ -357,9 +357,9 @@ class AnilistQueries { private suspend fun bannerImage(type: String): String? { //var image = loadData("banner_$type") val image: BannerImage? = BannerImage( - PrefManager.getCustomVal("banner_${type}_url", null), - PrefManager.getCustomVal("banner_${type}_time", 0L) - ) + PrefManager.getCustomVal("banner_${type}_url", null), + PrefManager.getCustomVal("banner_${type}_time", 0L) + ) if (image == null || image.checkTime()) { val response = executeQuery("""{ MediaListCollection(userId: ${Anilist.userid}, type: $type, chunk:1,perChunk:25, sort: [SCORE_DESC,UPDATED_TIME_DESC]) { lists { entries{ media { id bannerImage } } } } } """) @@ -445,14 +445,16 @@ class AnilistQueries { suspend fun getGenresAndTags(activity: Activity): Boolean { - var genres: ArrayList? = PrefManager.getVal>(PrefName.GenresList).toMutableList() as ArrayList? + var genres: ArrayList? = PrefManager.getVal>(PrefName.GenresList) + .toMutableList() as ArrayList? val adultTags = PrefManager.getVal>(PrefName.TagsListIsAdult).toMutableList() - val nonAdultTags = PrefManager.getVal>(PrefName.TagsListNonAdult).toMutableList() + val nonAdultTags = + PrefManager.getVal>(PrefName.TagsListNonAdult).toMutableList() var tags = if (adultTags.isEmpty() || nonAdultTags.isEmpty()) null else mapOf( - true to adultTags, - false to nonAdultTags - ) + true to adultTags, + false to nonAdultTags + ) if (genres.isNullOrEmpty()) { executeQuery( @@ -530,9 +532,10 @@ class AnilistQueries { } } - private suspend fun getGenreThumbnail(genre: String): Genre? { - val genres: MutableMap = loadSerializableMap("genre_thumb")?.toMutableMap() - ?: mutableMapOf() + private suspend fun getGenreThumbnail(genre: String): Genre? { + val genres: MutableMap = + loadSerializableMap("genre_thumb")?.toMutableMap() + ?: mutableMapOf() if (genres.checkGenreTime(genre)) { try { val genreQuery = diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt index 9a2e6b2e..ef10fb73 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/AnilistViewModel.kt @@ -11,8 +11,8 @@ import ani.dantotsu.connections.discord.Discord import ani.dantotsu.connections.mal.MAL import ani.dantotsu.media.Media import ani.dantotsu.others.AppUpdater -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.tryWithSuspend import kotlinx.coroutines.CoroutineScope diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/Login.kt b/app/src/main/java/ani/dantotsu/connections/anilist/Login.kt index caf61f25..7512fc5d 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/Login.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/Login.kt @@ -1,6 +1,5 @@ package ani.dantotsu.connections.anilist -import android.content.Context import android.net.Uri import android.os.Bundle import androidx.appcompat.app.AppCompatActivity @@ -14,14 +13,14 @@ import ani.dantotsu.themes.ThemeManager class Login : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() val data: Uri? = intent?.data logger(data.toString()) try { Anilist.token = Regex("""(?<=access_token=).+(?=&token_type)""").find(data.toString())!!.value - PrefManager.setVal(PrefName.AnilistToken, Anilist.token?:"") + PrefManager.setVal(PrefName.AnilistToken, Anilist.token ?: "") } catch (e: Exception) { logError(e) } diff --git a/app/src/main/java/ani/dantotsu/connections/anilist/UrlMedia.kt b/app/src/main/java/ani/dantotsu/connections/anilist/UrlMedia.kt index 53df3c05..98d63d27 100644 --- a/app/src/main/java/ani/dantotsu/connections/anilist/UrlMedia.kt +++ b/app/src/main/java/ani/dantotsu/connections/anilist/UrlMedia.kt @@ -11,7 +11,7 @@ import ani.dantotsu.themes.ThemeManager class UrlMedia : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() var id: Int? = intent?.extras?.getInt("media", 0) ?: 0 var isMAL = false diff --git a/app/src/main/java/ani/dantotsu/connections/discord/Discord.kt b/app/src/main/java/ani/dantotsu/connections/discord/Discord.kt index c6b4fbed..c151850d 100644 --- a/app/src/main/java/ani/dantotsu/connections/discord/Discord.kt +++ b/app/src/main/java/ani/dantotsu/connections/discord/Discord.kt @@ -5,8 +5,8 @@ import android.content.Intent import android.widget.TextView import ani.dantotsu.R import ani.dantotsu.others.CustomBottomDialog -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.toast import ani.dantotsu.tryWith import io.noties.markwon.Markwon @@ -22,7 +22,8 @@ object Discord { fun getSavedToken(context: Context): Boolean { token = PrefManager.getVal( - PrefName.DiscordToken, null as String?) + PrefName.DiscordToken, null as String? + ) return token != null } diff --git a/app/src/main/java/ani/dantotsu/connections/discord/DiscordService.kt b/app/src/main/java/ani/dantotsu/connections/discord/DiscordService.kt index f310e134..761dbeac 100644 --- a/app/src/main/java/ani/dantotsu/connections/discord/DiscordService.kt +++ b/app/src/main/java/ani/dantotsu/connections/discord/DiscordService.kt @@ -24,8 +24,8 @@ import ani.dantotsu.R import ani.dantotsu.connections.discord.serializers.Presence import ani.dantotsu.connections.discord.serializers.User import ani.dantotsu.isOnline -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.google.gson.JsonArray import com.google.gson.JsonObject import com.google.gson.JsonParser diff --git a/app/src/main/java/ani/dantotsu/connections/discord/Login.kt b/app/src/main/java/ani/dantotsu/connections/discord/Login.kt index 5d39cc86..676f11e2 100644 --- a/app/src/main/java/ani/dantotsu/connections/discord/Login.kt +++ b/app/src/main/java/ani/dantotsu/connections/discord/Login.kt @@ -19,7 +19,7 @@ class Login : AppCompatActivity() { @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { val process = getProcessName() diff --git a/app/src/main/java/ani/dantotsu/connections/mal/Login.kt b/app/src/main/java/ani/dantotsu/connections/mal/Login.kt index 0b5ac515..c06baf38 100644 --- a/app/src/main/java/ani/dantotsu/connections/mal/Login.kt +++ b/app/src/main/java/ani/dantotsu/connections/mal/Login.kt @@ -9,8 +9,8 @@ import ani.dantotsu.client import ani.dantotsu.connections.mal.MAL.clientId import ani.dantotsu.connections.mal.MAL.saveResponse import ani.dantotsu.logError -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.startMainActivity import ani.dantotsu.themes.ThemeManager @@ -21,7 +21,7 @@ import kotlinx.coroutines.launch class Login : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() try { val data: Uri = intent?.data diff --git a/app/src/main/java/ani/dantotsu/connections/mal/MAL.kt b/app/src/main/java/ani/dantotsu/connections/mal/MAL.kt index 8bcaf115..9eaffdca 100644 --- a/app/src/main/java/ani/dantotsu/connections/mal/MAL.kt +++ b/app/src/main/java/ani/dantotsu/connections/mal/MAL.kt @@ -10,8 +10,8 @@ import ani.dantotsu.R import ani.dantotsu.client import ani.dantotsu.currContext import ani.dantotsu.openLinkInBrowser -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.tryWithSuspend import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -66,8 +66,9 @@ object MAL { suspend fun getSavedToken(context: FragmentActivity): Boolean { return tryWithSuspend(false) { - var res: ResponseToken = PrefManager.getNullableVal(PrefName.MALToken, null) - ?: return@tryWithSuspend false + var res: ResponseToken = + PrefManager.getNullableVal(PrefName.MALToken, null) + ?: return@tryWithSuspend false if (System.currentTimeMillis() > res.expiresIn) res = refreshToken() ?: throw Exception(currContext()?.getString(R.string.refreshing_token_failed)) diff --git a/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt b/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt index fdeebaec..0cbfa1bc 100644 --- a/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt +++ b/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt @@ -3,8 +3,8 @@ package ani.dantotsu.download import android.content.Context import android.os.Environment import android.widget.Toast -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.google.gson.Gson import com.google.gson.reflect.TypeToken import java.io.File diff --git a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeAdapter.kt b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeAdapter.kt index 79f86ad9..ef0c4148 100644 --- a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeAdapter.kt +++ b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeAdapter.kt @@ -12,8 +12,8 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.cardview.widget.CardView import ani.dantotsu.R -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName class OfflineAnimeAdapter( diff --git a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt index 459065da..4c91a43b 100644 --- a/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/anime/OfflineAnimeFragment.kt @@ -39,8 +39,8 @@ import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.navBarHeight import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.settings.SettingsDialogFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import com.google.android.material.card.MaterialCardView import com.google.android.material.imageview.ShapeableImageView @@ -197,7 +197,9 @@ class OfflineAnimeFragment : Fragment(), OfflineAnimeSearchListener { builder.setMessage("Are you sure you want to delete ${item.title}?") builder.setPositiveButton("Yes") { _, _ -> downloadManager.removeMedia(item.title, type) - val mediaIds = PrefManager.getAnimeDownloadPreferences().all?.filter { it.key.contains(item.title) }?.values ?: emptySet() + val mediaIds = + PrefManager.getAnimeDownloadPreferences().all?.filter { it.key.contains(item.title) }?.values + ?: emptySet() if (mediaIds.isEmpty()) { snackString("No media found") // if this happens, terrible things have happened } diff --git a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt index c9ecd330..4ef12c03 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaAdapter.kt @@ -11,8 +11,8 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.cardview.widget.CardView import ani.dantotsu.R -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName class OfflineMangaAdapter( diff --git a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt index daabe70a..7bd43c9a 100644 --- a/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/download/manga/OfflineMangaFragment.kt @@ -36,8 +36,8 @@ import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.navBarHeight import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.settings.SettingsDialogFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import com.google.android.material.card.MaterialCardView import com.google.android.material.imageview.ShapeableImageView diff --git a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt index 6994e0af..f3baeb3f 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimeFragment.kt @@ -32,8 +32,8 @@ import ani.dantotsu.media.ProgressAdapter import ani.dantotsu.media.SearchActivity import ani.dantotsu.navBarHeight import ani.dantotsu.px -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import kotlinx.coroutines.Dispatchers @@ -264,8 +264,11 @@ class AnimeFragment : Fragment() { model.loaded = true model.loadTrending(1) model.loadUpdated() - model.loadPopular("ANIME", sort = Anilist.sortBy[1], onList = PrefManager.getVal( - PrefName.PopularAnimeList)) + model.loadPopular( + "ANIME", sort = Anilist.sortBy[1], onList = PrefManager.getVal( + PrefName.PopularAnimeList + ) + ) } live.postValue(false) _binding?.animeRefresh?.isRefreshing = false diff --git a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt index 114325e8..295b49b2 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt @@ -31,8 +31,8 @@ import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.setSlideIn import ani.dantotsu.setSlideUp import ani.dantotsu.settings.SettingsDialogFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import com.google.android.material.card.MaterialCardView import com.google.android.material.textfield.TextInputLayout diff --git a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt index 002171fe..2792a832 100644 --- a/app/src/main/java/ani/dantotsu/home/HomeFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/HomeFragment.kt @@ -36,8 +36,8 @@ import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.setSlideIn import ani.dantotsu.setSlideUp import ani.dantotsu.settings.SettingsDialogFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import kotlinx.coroutines.Dispatchers @@ -337,7 +337,8 @@ class HomeFragment : Fragment() { model.loaded = true model.setListImages() var empty = true - val homeLayoutShow: List = PrefManager.getVal(PrefName.HomeLayoutShow) + val homeLayoutShow: List = + PrefManager.getVal(PrefName.HomeLayoutShow) (array.indices).forEach { i -> if (homeLayoutShow.elementAt(i)) { array[i].run() diff --git a/app/src/main/java/ani/dantotsu/home/LoginFragment.kt b/app/src/main/java/ani/dantotsu/home/LoginFragment.kt index 7bd8865d..8efa8ac3 100644 --- a/app/src/main/java/ani/dantotsu/home/LoginFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/LoginFragment.kt @@ -16,10 +16,8 @@ import ani.dantotsu.databinding.FragmentLoginBinding import ani.dantotsu.openLinkInBrowser import ani.dantotsu.settings.saving.internal.PreferenceKeystore import ani.dantotsu.settings.saving.internal.PreferencePackager -import ani.dantotsu.statusBarHeight import ani.dantotsu.toast import com.google.android.material.textfield.TextInputEditText -import eltos.simpledialogfragment.SimpleDialog class LoginFragment : Fragment() { @@ -41,47 +39,50 @@ class LoginFragment : Fragment() { binding.loginGithub.setOnClickListener { openLinkInBrowser(getString(R.string.github)) } binding.loginTelegram.setOnClickListener { openLinkInBrowser(getString(R.string.telegram)) } - val openDocumentLauncher = registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> - if (uri != null) { - try { - val jsonString = requireActivity().contentResolver.openInputStream(uri)?.readBytes() - ?: throw Exception("Error reading file") - val name = DocumentFile.fromSingleUri(requireActivity(), uri)?.name ?: "settings" - //.sani is encrypted, .ani is not - if (name.endsWith(".sani")) { - passwordAlertDialog() { password -> - if (password != null) { - val salt = jsonString.copyOfRange(0, 16) - val encrypted = jsonString.copyOfRange(16, jsonString.size) - val decryptedJson = try { - PreferenceKeystore.decryptWithPassword( - password, - encrypted, - salt - ) - } catch (e: Exception) { - toast("Incorrect password") - return@passwordAlertDialog + val openDocumentLauncher = + registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> + if (uri != null) { + try { + val jsonString = + requireActivity().contentResolver.openInputStream(uri)?.readBytes() + ?: throw Exception("Error reading file") + val name = + DocumentFile.fromSingleUri(requireActivity(), uri)?.name ?: "settings" + //.sani is encrypted, .ani is not + if (name.endsWith(".sani")) { + passwordAlertDialog() { password -> + if (password != null) { + val salt = jsonString.copyOfRange(0, 16) + val encrypted = jsonString.copyOfRange(16, jsonString.size) + val decryptedJson = try { + PreferenceKeystore.decryptWithPassword( + password, + encrypted, + salt + ) + } catch (e: Exception) { + toast("Incorrect password") + return@passwordAlertDialog + } + if (PreferencePackager.unpack(decryptedJson)) + restartApp() + } else { + toast("Password cannot be empty") } - if(PreferencePackager.unpack(decryptedJson)) - restartApp() - } else { - toast("Password cannot be empty") } + } else if (name.endsWith(".ani")) { + val decryptedJson = jsonString.toString(Charsets.UTF_8) + if (PreferencePackager.unpack(decryptedJson)) + restartApp() + } else { + toast("Invalid file type") } - } else if (name.endsWith(".ani")) { - val decryptedJson = jsonString.toString(Charsets.UTF_8) - if(PreferencePackager.unpack(decryptedJson)) - restartApp() - } else { - toast("Invalid file type") + } catch (e: Exception) { + e.printStackTrace() + toast("Error importing settings") } - } catch (e: Exception) { - e.printStackTrace() - toast("Error importing settings") } } - } binding.importSettingsButton.setOnClickListener { openDocumentLauncher.launch(arrayOf("*/*")) @@ -92,7 +93,8 @@ class LoginFragment : Fragment() { val password = CharArray(16).apply { fill('0') } // Inflate the dialog layout - val dialogView = LayoutInflater.from(requireActivity()).inflate(R.layout.dialog_user_agent, null) + val dialogView = + LayoutInflater.from(requireActivity()).inflate(R.layout.dialog_user_agent, null) dialogView.findViewById(R.id.userAgentTextBox)?.hint = "Password" val subtitleTextView = dialogView.findViewById(R.id.subtitle) subtitleTextView?.visibility = View.VISIBLE diff --git a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt index 7b3e5948..efe39ed6 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaFragment.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaFragment.kt @@ -29,8 +29,8 @@ import ani.dantotsu.media.MediaAdaptor import ani.dantotsu.media.ProgressAdapter import ani.dantotsu.navBarHeight import ani.dantotsu.px -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import kotlinx.coroutines.Dispatchers @@ -238,8 +238,11 @@ class MangaFragment : Fragment() { model.loaded = true model.loadTrending() model.loadTrendingNovel() - model.loadPopular("MANGA", sort = Anilist.sortBy[1], onList = PrefManager.getVal( - PrefName.PopularMangaList)) + model.loadPopular( + "MANGA", sort = Anilist.sortBy[1], onList = PrefManager.getVal( + PrefName.PopularMangaList + ) + ) } live.postValue(false) _binding?.mangaRefresh?.isRefreshing = false diff --git a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt index 82fb5bc0..6cedbb80 100644 --- a/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/MangaPageAdapter.kt @@ -30,8 +30,8 @@ import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.setSlideIn import ani.dantotsu.setSlideUp import ani.dantotsu.settings.SettingsDialogFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import com.google.android.material.card.MaterialCardView import com.google.android.material.textfield.TextInputLayout diff --git a/app/src/main/java/ani/dantotsu/home/NoInternet.kt b/app/src/main/java/ani/dantotsu/home/NoInternet.kt index 098576cc..ac79fe0a 100644 --- a/app/src/main/java/ani/dantotsu/home/NoInternet.kt +++ b/app/src/main/java/ani/dantotsu/home/NoInternet.kt @@ -25,8 +25,8 @@ import ani.dantotsu.initActivity import ani.dantotsu.navBarHeight import ani.dantotsu.offline.OfflineFragment import ani.dantotsu.selectedOption -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.themes.ThemeManager import nl.joery.animatedbottombar.AnimatedBottomBar @@ -35,7 +35,7 @@ class NoInternet : AppCompatActivity() { private lateinit var binding: ActivityNoInternetBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityNoInternetBinding.inflate(layoutInflater) diff --git a/app/src/main/java/ani/dantotsu/media/AuthorActivity.kt b/app/src/main/java/ani/dantotsu/media/AuthorActivity.kt index e2939b28..22bc54f1 100644 --- a/app/src/main/java/ani/dantotsu/media/AuthorActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/AuthorActivity.kt @@ -35,7 +35,7 @@ class AuthorActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityAuthorBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/ani/dantotsu/media/CalendarActivity.kt b/app/src/main/java/ani/dantotsu/media/CalendarActivity.kt index 1a5bb6c3..e6bc8b3b 100644 --- a/app/src/main/java/ani/dantotsu/media/CalendarActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/CalendarActivity.kt @@ -18,8 +18,8 @@ import ani.dantotsu.Refresh import ani.dantotsu.databinding.ActivityListBinding import ani.dantotsu.media.user.ListViewPagerAdapter import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager import com.google.android.material.tabs.TabLayout @@ -37,7 +37,7 @@ class CalendarActivity : AppCompatActivity() { @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityListBinding.inflate(layoutInflater) diff --git a/app/src/main/java/ani/dantotsu/media/CharacterDetailsActivity.kt b/app/src/main/java/ani/dantotsu/media/CharacterDetailsActivity.kt index 00771dce..6c987096 100644 --- a/app/src/main/java/ani/dantotsu/media/CharacterDetailsActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/CharacterDetailsActivity.kt @@ -22,8 +22,8 @@ import ani.dantotsu.navBarHeight import ani.dantotsu.others.ImageViewDialog import ani.dantotsu.others.getSerialized import ani.dantotsu.px -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager import com.google.android.material.appbar.AppBarLayout @@ -40,7 +40,7 @@ class CharacterDetailsActivity : AppCompatActivity(), AppBarLayout.OnOffsetChang override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityCharacterBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/ani/dantotsu/media/GenreActivity.kt b/app/src/main/java/ani/dantotsu/media/GenreActivity.kt index 6b7ee40a..0c49ec11 100644 --- a/app/src/main/java/ani/dantotsu/media/GenreActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/GenreActivity.kt @@ -13,8 +13,8 @@ import ani.dantotsu.connections.anilist.GenresViewModel import ani.dantotsu.databinding.ActivityGenreBinding import ani.dantotsu.initActivity import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager import kotlinx.coroutines.Dispatchers @@ -27,7 +27,7 @@ class GenreActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityGenreBinding.inflate(layoutInflater) setContentView(binding.root) @@ -54,8 +54,9 @@ class GenreActivity : AppCompatActivity() { GridLayoutManager(this, (screenWidth / 156f).toInt()) lifecycleScope.launch(Dispatchers.IO) { - model.loadGenres(Anilist.genres ?: - loadLocalGenres() ?: arrayListOf()) { + model.loadGenres( + Anilist.genres ?: loadLocalGenres() ?: arrayListOf() + ) { MainScope().launch { adapter.addGenre(it) } @@ -65,7 +66,8 @@ class GenreActivity : AppCompatActivity() { } private fun loadLocalGenres(): ArrayList? { - val genres = PrefManager.getVal>(PrefName.GenresList).toMutableList() as ArrayList? + val genres = PrefManager.getVal>(PrefName.GenresList) + .toMutableList() as ArrayList? return if (genres.isNullOrEmpty()) { null } else { diff --git a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt index f8cef3f9..6e48dc07 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaAdaptor.kt @@ -26,8 +26,8 @@ import ani.dantotsu.databinding.ItemMediaCompactBinding import ani.dantotsu.databinding.ItemMediaLargeBinding import ani.dantotsu.databinding.ItemMediaPageBinding import ani.dantotsu.databinding.ItemMediaPageSmallBinding -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.bumptech.glide.Glide import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.model.GlideUrl diff --git a/app/src/main/java/ani/dantotsu/media/MediaDetailsActivity.kt b/app/src/main/java/ani/dantotsu/media/MediaDetailsActivity.kt index 4724e026..77224111 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaDetailsActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaDetailsActivity.kt @@ -42,8 +42,8 @@ import ani.dantotsu.navBarHeight import ani.dantotsu.openLinkInBrowser import ani.dantotsu.others.ImageViewDialog import ani.dantotsu.others.getSerialized -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager diff --git a/app/src/main/java/ani/dantotsu/media/MediaDetailsViewModel.kt b/app/src/main/java/ani/dantotsu/media/MediaDetailsViewModel.kt index 9c3f39d6..8f10863f 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaDetailsViewModel.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaDetailsViewModel.kt @@ -25,8 +25,8 @@ import ani.dantotsu.parsers.NovelSources import ani.dantotsu.parsers.ShowResponse import ani.dantotsu.parsers.VideoExtractor import ani.dantotsu.parsers.WatchSources -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.tryWithSuspend import com.bumptech.glide.load.resource.bitmap.BitmapTransformation @@ -43,13 +43,14 @@ class MediaDetailsViewModel : ViewModel() { fun loadSelected(media: Media, isDownload: Boolean = false): Selected { - val data = PrefManager.getNullableCustomVal("Selected-${media.id}", null, Selected::class.java) - ?: Selected().let { - it.sourceIndex = 0 - it.preferDub = PrefManager.getVal(PrefName.SettingsPreferDub) - saveSelected(media.id, it) - it - } + val data = + PrefManager.getNullableCustomVal("Selected-${media.id}", null, Selected::class.java) + ?: Selected().let { + it.sourceIndex = 0 + it.preferDub = PrefManager.getVal(PrefName.SettingsPreferDub) + saveSelected(media.id, it) + it + } if (isDownload) { data.sourceIndex = if (media.anime != null) { AnimeSources.list.size - 1 diff --git a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt index 213ed19e..e3d4a363 100644 --- a/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/MediaInfoFragment.kt @@ -25,8 +25,8 @@ import ani.dantotsu.* import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.anilist.GenresViewModel import ani.dantotsu.databinding.* -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import io.noties.markwon.Markwon import io.noties.markwon.SoftBreakAddsNewLinePlugin import kotlinx.coroutines.Dispatchers @@ -97,28 +97,29 @@ class MediaInfoFragment : Fragment() { if (media.anime != null) { val episodeDuration = media.anime.episodeDuration -binding.mediaInfoDuration.text = when { - episodeDuration != null -> { - val hours = episodeDuration / 60 - val minutes = episodeDuration % 60 + binding.mediaInfoDuration.text = when { + episodeDuration != null -> { + val hours = episodeDuration / 60 + val minutes = episodeDuration % 60 - val formattedDuration = buildString { - if (hours > 0) { - append("$hours hour") - if (hours > 1) append("s") - } + val formattedDuration = buildString { + if (hours > 0) { + append("$hours hour") + if (hours > 1) append("s") + } - if (minutes > 0) { - if (hours > 0) append(", ") - append("$minutes min") - if (minutes > 1) append("s") - } - } + if (minutes > 0) { + if (hours > 0) append(", ") + append("$minutes min") + if (minutes > 1) append("s") + } + } - formattedDuration - } - else -> "??" -} + formattedDuration + } + + else -> "??" + } binding.mediaInfoDurationContainer.visibility = View.VISIBLE binding.mediaInfoSeasonContainer.visibility = View.VISIBLE binding.mediaInfoSeason.text = diff --git a/app/src/main/java/ani/dantotsu/media/SearchActivity.kt b/app/src/main/java/ani/dantotsu/media/SearchActivity.kt index 3a32083d..2962a527 100644 --- a/app/src/main/java/ani/dantotsu/media/SearchActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/SearchActivity.kt @@ -16,8 +16,8 @@ import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.anilist.AnilistSearch import ani.dantotsu.connections.anilist.SearchResults import ani.dantotsu.databinding.ActivitySearchBinding -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.themes.ThemeManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -41,7 +41,7 @@ class SearchActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivitySearchBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/ani/dantotsu/media/SearchAdapter.kt b/app/src/main/java/ani/dantotsu/media/SearchAdapter.kt index 3a294296..ced90bc4 100644 --- a/app/src/main/java/ani/dantotsu/media/SearchAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/SearchAdapter.kt @@ -22,8 +22,8 @@ import ani.dantotsu.R import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.databinding.ItemChipBinding import ani.dantotsu.databinding.ItemSearchHeaderBinding -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.google.android.material.checkbox.MaterialCheckBox.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/ani/dantotsu/media/SearchHistoryAdapter.kt b/app/src/main/java/ani/dantotsu/media/SearchHistoryAdapter.kt index 45ac2347..720b07ef 100644 --- a/app/src/main/java/ani/dantotsu/media/SearchHistoryAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/SearchHistoryAdapter.kt @@ -8,15 +8,16 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.R import ani.dantotsu.databinding.ItemSearchHistoryBinding -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefManager.asLiveStringSet +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.SharedPreferenceStringSetLiveData import java.util.Locale -class SearchHistoryAdapter(private val type: String, private val searchClicked: (String) -> Unit) : ListAdapter( - DIFF_CALLBACK_INSTALLED -) { +class SearchHistoryAdapter(private val type: String, private val searchClicked: (String) -> Unit) : + ListAdapter( + DIFF_CALLBACK_INSTALLED + ) { private var searchHistoryLiveData: SharedPreferenceStringSetLiveData? = null private var searchHistory: MutableSet? = null private var historyType: PrefName = when (type.lowercase(Locale.ROOT)) { @@ -26,7 +27,8 @@ class SearchHistoryAdapter(private val type: String, private val searchClicked: } init { - searchHistoryLiveData = PrefManager.getLiveVal(historyType, mutableSetOf()).asLiveStringSet() + searchHistoryLiveData = + PrefManager.getLiveVal(historyType, mutableSetOf()).asLiveStringSet() searchHistoryLiveData?.observeForever { searchHistory = it.toMutableSet() submitList(searchHistory?.reversed()) diff --git a/app/src/main/java/ani/dantotsu/media/StudioActivity.kt b/app/src/main/java/ani/dantotsu/media/StudioActivity.kt index cfce7d6f..ac28cd5f 100644 --- a/app/src/main/java/ani/dantotsu/media/StudioActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/StudioActivity.kt @@ -35,7 +35,7 @@ class StudioActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityStudioBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt index 6950366e..0ad6ecaf 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt @@ -26,8 +26,8 @@ import ani.dantotsu.others.webview.CookieCatcher import ani.dantotsu.parsers.AnimeSources import ani.dantotsu.parsers.DynamicAnimeParser import ani.dantotsu.parsers.WatchSources -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Notifications.Companion.openSettings import ani.dantotsu.subcriptions.Subscription.Companion.getChannelId import com.google.android.material.chip.Chip @@ -198,7 +198,8 @@ class AnimeWatchAdapter( var refresh = false var run = false var reversed = media.selected!!.recyclerReversed - var style = media.selected!!.recyclerStyle ?: PrefManager.getVal(PrefName.AnimeDefaultView) + var style = + media.selected!!.recyclerStyle ?: PrefManager.getVal(PrefName.AnimeDefaultView) dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" dialogBinding.animeSourceTop.setOnClickListener { @@ -356,7 +357,9 @@ class AnimeWatchAdapter( val episodes = media.anime.episodes!!.keys.toTypedArray() val anilistEp = (media.userProgress ?: 0).plus(1) - val appEp = PrefManager.getCustomVal("${media.id}_current_ep", "")?.toIntOrNull() ?: 1 + val appEp = + PrefManager.getCustomVal("${media.id}_current_ep", "")?.toIntOrNull() + ?: 1 var continueEp = (if (anilistEp > appEp) anilistEp else appEp).toString() if (episodes.contains(continueEp)) { @@ -368,7 +371,10 @@ class AnimeWatchAdapter( media.id, continueEp ) - if ((binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams).weight > PrefManager.getVal(PrefName.WatchPercentage)) { + if ((binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams).weight > PrefManager.getVal( + PrefName.WatchPercentage + ) + ) { val e = episodes.indexOf(continueEp) if (e != -1 && e + 1 < episodes.size) { continueEp = episodes[e + 1] @@ -395,7 +401,10 @@ class AnimeWatchAdapter( fragment.onEpisodeClick(continueEp) } if (fragment.continueEp) { - if ((binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams).weight < PrefManager.getVal(PrefName.WatchPercentage)) { + if ((binding.itemEpisodeProgress.layoutParams as LinearLayout.LayoutParams).weight < PrefManager.getVal( + PrefName.WatchPercentage + ) + ) { binding.animeSourceContinue.performClick() fragment.continueEp = false } diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt index bf83544b..9d720020 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchFragment.kt @@ -41,8 +41,8 @@ import ani.dantotsu.parsers.AnimeParser import ani.dantotsu.parsers.AnimeSources import ani.dantotsu.parsers.HAnimeSources import ani.dantotsu.settings.extensionprefs.AnimeSourcePreferencesFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Notifications import ani.dantotsu.subcriptions.Notifications.Group.ANIME_GROUP import ani.dantotsu.subcriptions.Subscription.Companion.getChannelId diff --git a/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt index 9ac2e529..86254920 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/SelectorDialogFragment.kt @@ -28,8 +28,8 @@ import ani.dantotsu.others.Download.download import ani.dantotsu.parsers.Subtitle import ani.dantotsu.parsers.VideoExtractor import ani.dantotsu.parsers.VideoType -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -303,7 +303,7 @@ class SelectorDialogFragment : BottomSheetDialogFragment() { extractor.server.name media!!.anime!!.episodes!![media!!.anime!!.selectedEpisode!!]!!.selectedVideo = position - if ((PrefManager.getVal(PrefName.DownloadManager) as Int) != 0) { + if ((PrefManager.getVal(PrefName.DownloadManager) as Int) != 0) { download( requireActivity(), media!!.anime!!.episodes!![media!!.anime!!.selectedEpisode!!]!!, diff --git a/app/src/main/java/ani/dantotsu/media/anime/SubtitleDialogFragment.kt b/app/src/main/java/ani/dantotsu/media/anime/SubtitleDialogFragment.kt index 88c7bd4a..3fae8c79 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/SubtitleDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/SubtitleDialogFragment.kt @@ -107,7 +107,8 @@ class SubtitleDialogFragment : BottomSheetDialogFragment() { } model.getMedia().observe(viewLifecycleOwner) { media -> val mediaID: Int = media.id - val selSubs: String? = PrefManager.getCustomVal("subLang_${mediaID}", null) + val selSubs: String? = + PrefManager.getCustomVal("subLang_${mediaID}", null) if (episode.selectedSubtitle != position - 1 && selSubs != subtitles[position - 1].language) { binding.root.setCardBackgroundColor(TRANSPARENT) } @@ -118,7 +119,10 @@ class SubtitleDialogFragment : BottomSheetDialogFragment() { model.setEpisode(episode, "Subtitle") model.getMedia().observe(viewLifecycleOwner) { media -> val mediaID: Int = media.id - PrefManager.setCustomVal("subLang_${mediaID}", subtitles[position - 1].language) + PrefManager.setCustomVal( + "subLang_${mediaID}", + subtitles[position - 1].language + ) } dismiss() } diff --git a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt index c39e0325..e990f94e 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt @@ -27,8 +27,8 @@ import ani.dantotsu.others.webview.CookieCatcher import ani.dantotsu.parsers.DynamicMangaParser import ani.dantotsu.parsers.MangaReadSources import ani.dantotsu.parsers.MangaSources -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Notifications.Companion.openSettings import ani.dantotsu.subcriptions.Subscription.Companion.getChannelId import com.google.android.material.chip.Chip @@ -70,8 +70,9 @@ class MangaReadAdapter( null ) } - val offline = if (!isOnline(binding.root.context) || PrefManager.getVal(PrefName.OfflineMode) - ) View.GONE else View.VISIBLE + val offline = + if (!isOnline(binding.root.context) || PrefManager.getVal(PrefName.OfflineMode) + ) View.GONE else View.VISIBLE binding.animeSourceNameContainer.visibility = offline binding.animeSourceSettings.visibility = offline @@ -160,7 +161,8 @@ class MangaReadAdapter( var refresh = false var run = false var reversed = media.selected!!.recyclerReversed - var style = media.selected!!.recyclerStyle ?: PrefManager.getVal(PrefName.MangaDefaultView) + var style = + media.selected!!.recyclerStyle ?: PrefManager.getVal(PrefName.MangaDefaultView) dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" dialogBinding.animeSourceTop.setOnClickListener { @@ -389,7 +391,8 @@ class MangaReadAdapter( if (media.manga?.chapters != null) { val chapters = media.manga.chapters!!.keys.toTypedArray() val anilistEp = (media.userProgress ?: 0).plus(1) - val appEp = PrefManager.getCustomVal("${media.id}_current_chp", null)?.toIntOrNull() ?: 1 + val appEp = PrefManager.getCustomVal("${media.id}_current_chp", null) + ?.toIntOrNull() ?: 1 var continueEp = (if (anilistEp > appEp) anilistEp else appEp).toString() val filteredChapters = chapters.filter { chapterKey -> val chapter = media.manga.chapters!![chapterKey]!! diff --git a/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt b/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt index 2d4134a5..e21d7fc7 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/MangaReadFragment.kt @@ -44,8 +44,8 @@ import ani.dantotsu.parsers.HMangaSources import ani.dantotsu.parsers.MangaParser import ani.dantotsu.parsers.MangaSources import ani.dantotsu.settings.extensionprefs.MangaSourcePreferencesFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Notifications import ani.dantotsu.subcriptions.Notifications.Group.MANGA_GROUP import ani.dantotsu.subcriptions.Subscription.Companion.getChannelId @@ -181,7 +181,9 @@ open class MangaReadFragment : Fragment(), ScanlatorSelectionListener { headerAdapter = MangaReadAdapter(it, this, model.mangaReadSources!!) headerAdapter.scanlatorSelectionListener = this chapterAdapter = - MangaChapterAdapter(style ?: PrefManager.getVal(PrefName.MangaDefaultView), media, this) + MangaChapterAdapter( + style ?: PrefManager.getVal(PrefName.MangaDefaultView), media, this + ) for (download in downloadManager.mangaDownloadedTypes) { if (download.title == media.mainName()) { diff --git a/app/src/main/java/ani/dantotsu/media/manga/mangareader/ImageAdapter.kt b/app/src/main/java/ani/dantotsu/media/manga/mangareader/ImageAdapter.kt index 68870d5c..92beb469 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/mangareader/ImageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/mangareader/ImageAdapter.kt @@ -14,8 +14,8 @@ import ani.dantotsu.media.manga.MangaChapter import ani.dantotsu.settings.CurrentReaderSettings.Directions.LEFT_TO_RIGHT import ani.dantotsu.settings.CurrentReaderSettings.Directions.RIGHT_TO_LEFT import ani.dantotsu.settings.CurrentReaderSettings.Layouts.PAGED -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.bumptech.glide.load.resource.bitmap.BitmapTransformation import com.davemorrissey.labs.subscaleview.ImageSource import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView diff --git a/app/src/main/java/ani/dantotsu/media/novel/novelreader/NovelReaderActivity.kt b/app/src/main/java/ani/dantotsu/media/novel/novelreader/NovelReaderActivity.kt index c45acaef..b77cdc77 100644 --- a/app/src/main/java/ani/dantotsu/media/novel/novelreader/NovelReaderActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/novel/novelreader/NovelReaderActivity.kt @@ -37,8 +37,8 @@ import ani.dantotsu.others.ImageViewDialog import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.settings.CurrentNovelReaderSettings import ani.dantotsu.settings.CurrentReaderSettings -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.themes.ThemeManager import ani.dantotsu.tryWith @@ -175,7 +175,7 @@ class NovelReaderActivity : AppCompatActivity(), EbookReaderEventListener { return } - + ThemeManager(this).applyTheme() binding = ActivityNovelReaderBinding.inflate(layoutInflater) setContentView(binding.root) @@ -286,7 +286,8 @@ class NovelReaderActivity : AppCompatActivity(), EbookReaderEventListener { binding.bookReader.getAppearance { currentTheme = it themes.add(0, it) - defaultSettings = loadReaderSettings("${sanitizedBookId}_current_settings") ?: defaultSettings + defaultSettings = + loadReaderSettings("${sanitizedBookId}_current_settings") ?: defaultSettings applySettings() } @@ -486,7 +487,11 @@ class NovelReaderActivity : AppCompatActivity(), EbookReaderEventListener { } @Suppress("UNCHECKED_CAST") - private fun loadReaderSettings(fileName: String, context: Context? = null, toast: Boolean = true): T? { + private fun loadReaderSettings( + fileName: String, + context: Context? = null, + toast: Boolean = true + ): T? { val a = context ?: currContext() try { if (a?.fileList() != null) diff --git a/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt b/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt index b504c13f..7db5f057 100644 --- a/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt +++ b/app/src/main/java/ani/dantotsu/media/user/ListActivity.kt @@ -18,8 +18,8 @@ import ani.dantotsu.R import ani.dantotsu.Refresh import ani.dantotsu.databinding.ActivityListBinding import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager import com.google.android.material.tabs.TabLayout @@ -36,7 +36,7 @@ class ListActivity : AppCompatActivity() { @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityListBinding.inflate(layoutInflater) diff --git a/app/src/main/java/ani/dantotsu/media/user/ListViewModel.kt b/app/src/main/java/ani/dantotsu/media/user/ListViewModel.kt index 9753d3aa..06fd29a9 100644 --- a/app/src/main/java/ani/dantotsu/media/user/ListViewModel.kt +++ b/app/src/main/java/ani/dantotsu/media/user/ListViewModel.kt @@ -5,8 +5,8 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.media.Media -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.tryWithSuspend class ListViewModel : ViewModel() { diff --git a/app/src/main/java/ani/dantotsu/offline/OfflineFragment.kt b/app/src/main/java/ani/dantotsu/offline/OfflineFragment.kt index 9b6bbc24..5807cb48 100644 --- a/app/src/main/java/ani/dantotsu/offline/OfflineFragment.kt +++ b/app/src/main/java/ani/dantotsu/offline/OfflineFragment.kt @@ -10,8 +10,8 @@ import ani.dantotsu.R import ani.dantotsu.databinding.FragmentOfflineBinding import ani.dantotsu.isOnline import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.startMainActivity import ani.dantotsu.statusBarHeight diff --git a/app/src/main/java/ani/dantotsu/others/Download.kt b/app/src/main/java/ani/dantotsu/others/Download.kt index 010d2a3f..3a266af4 100644 --- a/app/src/main/java/ani/dantotsu/others/Download.kt +++ b/app/src/main/java/ani/dantotsu/others/Download.kt @@ -16,8 +16,8 @@ import ani.dantotsu.currContext import ani.dantotsu.defaultHeaders import ani.dantotsu.media.anime.Episode import ani.dantotsu.parsers.Book -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.toast import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt b/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt index 653ff984..4f70998a 100644 --- a/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt +++ b/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt @@ -51,7 +51,7 @@ class ImageSearchActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + initActivity(this) ThemeManager(this).applyTheme() binding = ActivityImageSearchBinding.inflate(layoutInflater) diff --git a/app/src/main/java/ani/dantotsu/parsers/AnimeParser.kt b/app/src/main/java/ani/dantotsu/parsers/AnimeParser.kt index 47108080..8914c440 100644 --- a/app/src/main/java/ani/dantotsu/parsers/AnimeParser.kt +++ b/app/src/main/java/ani/dantotsu/parsers/AnimeParser.kt @@ -181,7 +181,11 @@ abstract class AnimeParser : BaseParser() { override suspend fun loadSavedShowResponse(mediaId: Int): ShowResponse? { checkIfVariablesAreEmpty() val dub = if (isDubAvailableSeparately()) "_${if (selectDub) "dub" else "sub"}" else "" - var loaded = PrefManager.getNullableCustomVal("${saveName}${dub}_$mediaId", null, ShowResponse::class.java) + var loaded = PrefManager.getNullableCustomVal( + "${saveName}${dub}_$mediaId", + null, + ShowResponse::class.java + ) if (loaded == null && malSyncBackupName.isNotEmpty()) loaded = MalSyncBackup.get(mediaId, malSyncBackupName, selectDub) ?.also { saveShowResponse(mediaId, it, true) } diff --git a/app/src/main/java/ani/dantotsu/parsers/AnimeSources.kt b/app/src/main/java/ani/dantotsu/parsers/AnimeSources.kt index 4176b5dc..9806767a 100644 --- a/app/src/main/java/ani/dantotsu/parsers/AnimeSources.kt +++ b/app/src/main/java/ani/dantotsu/parsers/AnimeSources.kt @@ -1,6 +1,5 @@ package ani.dantotsu.parsers -import android.content.Context import ani.dantotsu.Lazier import ani.dantotsu.lazyList import ani.dantotsu.settings.saving.PrefManager @@ -14,8 +13,9 @@ object AnimeSources : WatchSources() { var pinnedAnimeSources: List = emptyList() suspend fun init(fromExtensions: StateFlow>) { - pinnedAnimeSources = PrefManager.getNullableVal>(PrefName.AnimeSourcesOrder, null) - ?: emptyList() + pinnedAnimeSources = + PrefManager.getNullableVal>(PrefName.AnimeSourcesOrder, null) + ?: emptyList() // Initialize with the first value from StateFlow val initialExtensions = fromExtensions.first() diff --git a/app/src/main/java/ani/dantotsu/parsers/BaseParser.kt b/app/src/main/java/ani/dantotsu/parsers/BaseParser.kt index 79cbb9a7..e61c6890 100644 --- a/app/src/main/java/ani/dantotsu/parsers/BaseParser.kt +++ b/app/src/main/java/ani/dantotsu/parsers/BaseParser.kt @@ -134,7 +134,11 @@ abstract class BaseParser { * **/ open suspend fun loadSavedShowResponse(mediaId: Int): ShowResponse? { checkIfVariablesAreEmpty() - return PrefManager.getNullableCustomVal("${saveName}_$mediaId", null, ShowResponse::class.java) + return PrefManager.getNullableCustomVal( + "${saveName}_$mediaId", + null, + ShowResponse::class.java + ) } /** diff --git a/app/src/main/java/ani/dantotsu/parsers/MangaSources.kt b/app/src/main/java/ani/dantotsu/parsers/MangaSources.kt index 884c526c..34c3e0a0 100644 --- a/app/src/main/java/ani/dantotsu/parsers/MangaSources.kt +++ b/app/src/main/java/ani/dantotsu/parsers/MangaSources.kt @@ -2,8 +2,8 @@ package ani.dantotsu.parsers import ani.dantotsu.Lazier import ani.dantotsu.lazyList -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import eu.kanade.tachiyomi.extension.manga.model.MangaExtension import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.first @@ -13,8 +13,9 @@ object MangaSources : MangaReadSources() { var pinnedMangaSources: List = emptyList() suspend fun init(fromExtensions: StateFlow>) { - pinnedMangaSources = PrefManager.getNullableVal>(PrefName.MangaSourcesOrder, null) - ?: emptyList() + pinnedMangaSources = + PrefManager.getNullableVal>(PrefName.MangaSourcesOrder, null) + ?: emptyList() // Initialize with the first value from StateFlow val initialExtensions = fromExtensions.first() diff --git a/app/src/main/java/ani/dantotsu/parsers/NovelSources.kt b/app/src/main/java/ani/dantotsu/parsers/NovelSources.kt index 342f428b..8fb66650 100644 --- a/app/src/main/java/ani/dantotsu/parsers/NovelSources.kt +++ b/app/src/main/java/ani/dantotsu/parsers/NovelSources.kt @@ -14,8 +14,9 @@ object NovelSources : NovelReadSources() { var pinnedNovelSources: List = emptyList() suspend fun init(fromExtensions: StateFlow>) { - pinnedNovelSources = PrefManager.getNullableVal>(PrefName.NovelSourcesOrder, null) - ?: emptyList() + pinnedNovelSources = + PrefManager.getNullableVal>(PrefName.NovelSourcesOrder, null) + ?: emptyList() // Initialize with the first value from StateFlow val initialExtensions = fromExtensions.first() diff --git a/app/src/main/java/ani/dantotsu/parsers/novel/NovelExtensionGithubApi.kt b/app/src/main/java/ani/dantotsu/parsers/novel/NovelExtensionGithubApi.kt index f65639d8..4381ee27 100644 --- a/app/src/main/java/ani/dantotsu/parsers/novel/NovelExtensionGithubApi.kt +++ b/app/src/main/java/ani/dantotsu/parsers/novel/NovelExtensionGithubApi.kt @@ -3,8 +3,8 @@ package ani.dantotsu.parsers.novel import android.content.Context import ani.dantotsu.logger -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import eu.kanade.tachiyomi.extension.ExtensionUpdateNotifier import eu.kanade.tachiyomi.extension.anime.model.AnimeExtension import eu.kanade.tachiyomi.extension.anime.model.AnimeLoadResult diff --git a/app/src/main/java/ani/dantotsu/settings/CurrentNovelReaderSettings.kt b/app/src/main/java/ani/dantotsu/settings/CurrentNovelReaderSettings.kt index fc6174b6..eae49c8d 100644 --- a/app/src/main/java/ani/dantotsu/settings/CurrentNovelReaderSettings.kt +++ b/app/src/main/java/ani/dantotsu/settings/CurrentNovelReaderSettings.kt @@ -1,14 +1,16 @@ package ani.dantotsu.settings -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import java.io.Serializable data class CurrentNovelReaderSettings( var currentThemeName: String = PrefManager.getVal(PrefName.CurrentThemeName), var layout: Layouts = Layouts[PrefManager.getVal(PrefName.LayoutNovel)] ?: Layouts.PAGED, - var dualPageMode: CurrentReaderSettings.DualPageModes = CurrentReaderSettings.DualPageModes[PrefManager.getVal(PrefName.DualPageModeNovel)] + var dualPageMode: CurrentReaderSettings.DualPageModes = CurrentReaderSettings.DualPageModes[PrefManager.getVal( + PrefName.DualPageModeNovel + )] ?: CurrentReaderSettings.DualPageModes.Automatic, var lineHeight: Float = PrefManager.getVal(PrefName.LineHeight), var margin: Float = PrefManager.getVal(PrefName.Margin), diff --git a/app/src/main/java/ani/dantotsu/settings/CurrentReaderSettings.kt b/app/src/main/java/ani/dantotsu/settings/CurrentReaderSettings.kt index 8d14aac5..2aca1b3e 100644 --- a/app/src/main/java/ani/dantotsu/settings/CurrentReaderSettings.kt +++ b/app/src/main/java/ani/dantotsu/settings/CurrentReaderSettings.kt @@ -1,7 +1,7 @@ package ani.dantotsu.settings -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import java.io.Serializable data class CurrentReaderSettings( diff --git a/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt b/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt index 7874070a..5300bbcd 100644 --- a/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/ExtensionsActivity.kt @@ -18,8 +18,8 @@ import androidx.viewpager2.widget.ViewPager2 import ani.dantotsu.* import ani.dantotsu.databinding.ActivityExtensionsBinding import ani.dantotsu.others.LanguageMapper -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.themes.ThemeManager import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator @@ -30,7 +30,7 @@ class ExtensionsActivity : AppCompatActivity() { @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityExtensionsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -65,7 +65,8 @@ class ExtensionsActivity : AppCompatActivity() { searchView.setText("") searchView.clearFocus() tabLayout.clearFocus() - if (tab.text?.contains("Installed") == true) binding.languageselect.visibility = View.GONE + if (tab.text?.contains("Installed") == true) binding.languageselect.visibility = + View.GONE else binding.languageselect.visibility = View.VISIBLE viewPager.updateLayoutParams { height = ViewGroup.LayoutParams.MATCH_PARENT @@ -119,13 +120,18 @@ class ExtensionsActivity : AppCompatActivity() { initActivity(this) binding.languageselect.setOnClickListener { - val languageOptions = LanguageMapper.Companion.Language.entries.map{ it.name }.toTypedArray() + val languageOptions = + LanguageMapper.Companion.Language.entries.map { it.name }.toTypedArray() val builder = AlertDialog.Builder(currContext(), R.style.MyPopup) val listOrder: String = PrefManager.getVal(PrefName.LangSort) - val index = LanguageMapper.Companion.Language.entries.toTypedArray().indexOfFirst{it.code == listOrder} + val index = LanguageMapper.Companion.Language.entries.toTypedArray() + .indexOfFirst { it.code == listOrder } builder.setTitle("Language") - builder.setSingleChoiceItems(languageOptions, index){ dialog, i -> - PrefManager.setVal(PrefName.LangSort, LanguageMapper.Companion.Language.entries[i].code) + builder.setSingleChoiceItems(languageOptions, index) { dialog, i -> + PrefManager.setVal( + PrefName.LangSort, + LanguageMapper.Companion.Language.entries[i].code + ) val currentFragment = supportFragmentManager.findFragmentByTag("f${viewPager.currentItem}") if (currentFragment is SearchQueryHandler) { diff --git a/app/src/main/java/ani/dantotsu/settings/FAQActivity.kt b/app/src/main/java/ani/dantotsu/settings/FAQActivity.kt index d91f4a4a..49656f55 100644 --- a/app/src/main/java/ani/dantotsu/settings/FAQActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/FAQActivity.kt @@ -100,7 +100,7 @@ class FAQActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityFaqBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt index 044fc129..ec48c238 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledAnimeExtensionsFragment.kt @@ -192,15 +192,20 @@ class InstalledAnimeExtensionsFragment : Fragment(), SearchQueryHandler { extensionsRecyclerView.adapter = extensionsAdapter val itemTouchHelperCallback = object : ItemTouchHelper.SimpleCallback( - ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0) { + ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0 + ) { override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder ): Boolean { - extensionsAdapter.onMove(viewHolder.absoluteAdapterPosition, target.absoluteAdapterPosition) + extensionsAdapter.onMove( + viewHolder.absoluteAdapterPosition, + target.absoluteAdapterPosition + ) return true } + override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {} override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { @@ -211,7 +216,10 @@ class InstalledAnimeExtensionsFragment : Fragment(), SearchQueryHandler { } } - override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) { + override fun clearView( + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder + ) { super.clearView(recyclerView, viewHolder) viewHolder.itemView.elevation = 0f viewHolder.itemView.translationZ = 0f @@ -243,7 +251,10 @@ class InstalledAnimeExtensionsFragment : Fragment(), SearchQueryHandler { } override fun updateContentBasedOnQuery(query: String?) { - extensionsAdapter.filter(query ?: "", sortToAnimeSourcesList(animeExtensionManager.installedExtensionsFlow.value)) + extensionsAdapter.filter( + query ?: "", + sortToAnimeSourcesList(animeExtensionManager.installedExtensionsFlow.value) + ) } override fun notifyDataChanged() { // Do nothing diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt index 1a70fe82..a142e7b8 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledMangaExtensionsFragment.kt @@ -29,8 +29,8 @@ import ani.dantotsu.databinding.FragmentMangaExtensionsBinding import ani.dantotsu.others.LanguageMapper import ani.dantotsu.parsers.MangaSources import ani.dantotsu.settings.extensionprefs.MangaSourcePreferencesFragment -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import com.google.android.material.tabs.TabLayout import com.google.android.material.textfield.TextInputLayout @@ -188,15 +188,20 @@ class InstalledMangaExtensionsFragment : Fragment(), SearchQueryHandler { extensionsRecyclerView.adapter = extensionsAdapter val itemTouchHelperCallback = object : ItemTouchHelper.SimpleCallback( - ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0) { + ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0 + ) { override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder ): Boolean { - extensionsAdapter.onMove(viewHolder.absoluteAdapterPosition, target.absoluteAdapterPosition) + extensionsAdapter.onMove( + viewHolder.absoluteAdapterPosition, + target.absoluteAdapterPosition + ) return true } + override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {} override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { @@ -207,7 +212,10 @@ class InstalledMangaExtensionsFragment : Fragment(), SearchQueryHandler { } } - override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) { + override fun clearView( + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder + ) { super.clearView(recyclerView, viewHolder) viewHolder.itemView.elevation = 0f viewHolder.itemView.translationZ = 0f @@ -237,7 +245,10 @@ class InstalledMangaExtensionsFragment : Fragment(), SearchQueryHandler { } override fun updateContentBasedOnQuery(query: String?) { - extensionsAdapter.filter(query ?: "", sortToMangaSourcesList(mangaExtensionManager.installedExtensionsFlow.value)) + extensionsAdapter.filter( + query ?: "", + sortToMangaSourcesList(mangaExtensionManager.installedExtensionsFlow.value) + ) } override fun notifyDataChanged() { // Do nothing diff --git a/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt b/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt index 0f44d92a..7c732ad3 100644 --- a/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/InstalledNovelExtensionsFragment.kt @@ -27,8 +27,8 @@ import ani.dantotsu.others.LanguageMapper import ani.dantotsu.parsers.NovelSources import ani.dantotsu.parsers.novel.NovelExtension import ani.dantotsu.parsers.novel.NovelExtensionManager -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import eu.kanade.tachiyomi.data.notification.Notifications import kotlinx.coroutines.launch @@ -117,15 +117,20 @@ class InstalledNovelExtensionsFragment : Fragment(), SearchQueryHandler { extensionsRecyclerView.adapter = extensionsAdapter val itemTouchHelperCallback = object : ItemTouchHelper.SimpleCallback( - ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0) { + ItemTouchHelper.UP or ItemTouchHelper.DOWN, 0 + ) { override fun onMove( recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder, target: RecyclerView.ViewHolder ): Boolean { - extensionsAdapter.onMove(viewHolder.absoluteAdapterPosition, target.absoluteAdapterPosition) + extensionsAdapter.onMove( + viewHolder.absoluteAdapterPosition, + target.absoluteAdapterPosition + ) return true } + override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {} override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) { @@ -136,7 +141,10 @@ class InstalledNovelExtensionsFragment : Fragment(), SearchQueryHandler { } } - override fun clearView(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder) { + override fun clearView( + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder + ) { super.clearView(recyclerView, viewHolder) viewHolder.itemView.elevation = 0f viewHolder.itemView.translationZ = 0f @@ -167,7 +175,10 @@ class InstalledNovelExtensionsFragment : Fragment(), SearchQueryHandler { } override fun updateContentBasedOnQuery(query: String?) { - extensionsAdapter.filter(query ?: "", sortToNovelSourcesList(novelExtensionManager.installedExtensionsFlow.value)) + extensionsAdapter.filter( + query ?: "", + sortToNovelSourcesList(novelExtensionManager.installedExtensionsFlow.value) + ) } override fun notifyDataChanged() { // do nothing diff --git a/app/src/main/java/ani/dantotsu/settings/PlayerSettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/PlayerSettingsActivity.kt index 16e3c9fe..9ae30a27 100644 --- a/app/src/main/java/ani/dantotsu/settings/PlayerSettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/PlayerSettingsActivity.kt @@ -18,8 +18,8 @@ import ani.dantotsu.media.Media import ani.dantotsu.navBarHeight import ani.dantotsu.others.getSerialized import ani.dantotsu.parsers.Subtitle -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager @@ -38,7 +38,7 @@ class PlayerSettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityPlayerSettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -88,12 +88,18 @@ class PlayerSettingsActivity : AppCompatActivity() { var curSpeedArr = if (PrefManager.getVal(PrefName.CursedSpeeds)) cursedSpeeds else speeds var speedsName = curSpeedArr.map { "${it}x" }.toTypedArray() binding.playerSettingsSpeed.text = - getString(R.string.default_playback_speed, speedsName[PrefManager.getVal(PrefName.DefaultSpeed)]) + getString( + R.string.default_playback_speed, + speedsName[PrefManager.getVal(PrefName.DefaultSpeed)] + ) val speedDialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle(getString(R.string.default_speed)) binding.playerSettingsSpeed.setOnClickListener { val dialog = - speedDialog.setSingleChoiceItems(speedsName, PrefManager.getVal(PrefName.DefaultSpeed)) { dialog, i -> + speedDialog.setSingleChoiceItems( + speedsName, + PrefManager.getVal(PrefName.DefaultSpeed) + ) { dialog, i -> PrefManager.setVal(PrefName.DefaultSpeed, i) binding.playerSettingsSpeed.text = getString(R.string.default_playback_speed, speedsName[i]) @@ -110,7 +116,10 @@ class PlayerSettingsActivity : AppCompatActivity() { PrefManager.setVal(PrefName.DefaultSpeed, newDefaultSpeed) speedsName = curSpeedArr.map { "${it}x" }.toTypedArray() binding.playerSettingsSpeed.text = - getString(R.string.default_playback_speed, speedsName[PrefManager.getVal(PrefName.DefaultSpeed)]) + getString( + R.string.default_playback_speed, + speedsName[PrefManager.getVal(PrefName.DefaultSpeed)] + ) } @@ -120,12 +129,14 @@ class PlayerSettingsActivity : AppCompatActivity() { PrefManager.setVal(PrefName.TimeStampsEnabled, isChecked) } - binding.playerSettingsTimeStampsProxy.isChecked = PrefManager.getVal(PrefName.UseProxyForTimeStamps) + binding.playerSettingsTimeStampsProxy.isChecked = + PrefManager.getVal(PrefName.UseProxyForTimeStamps) binding.playerSettingsTimeStampsProxy.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.UseProxyForTimeStamps, isChecked) } - binding.playerSettingsShowTimeStamp.isChecked = PrefManager.getVal(PrefName.ShowTimeStampButton) + binding.playerSettingsShowTimeStamp.isChecked = + PrefManager.getVal(PrefName.ShowTimeStampButton) binding.playerSettingsShowTimeStamp.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.ShowTimeStampButton, isChecked) } @@ -147,16 +158,19 @@ class PlayerSettingsActivity : AppCompatActivity() { } //Update Progress - binding.playerSettingsAskUpdateProgress.isChecked = PrefManager.getVal(PrefName.AskIndividualPlayer) + binding.playerSettingsAskUpdateProgress.isChecked = + PrefManager.getVal(PrefName.AskIndividualPlayer) binding.playerSettingsAskUpdateProgress.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.AskIndividualPlayer, isChecked) } - binding.playerSettingsAskUpdateHentai.isChecked = PrefManager.getVal(PrefName.UpdateForHPlayer) + binding.playerSettingsAskUpdateHentai.isChecked = + PrefManager.getVal(PrefName.UpdateForHPlayer) binding.playerSettingsAskUpdateHentai.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.UpdateForHPlayer, isChecked) if (isChecked) snackString(getString(R.string.very_bold)) } - binding.playerSettingsCompletePercentage.value = (PrefManager.getVal(PrefName.WatchPercentage) * 100).roundToInt().toFloat() + binding.playerSettingsCompletePercentage.value = + (PrefManager.getVal(PrefName.WatchPercentage) * 100).roundToInt().toFloat() binding.playerSettingsCompletePercentage.addOnChangeListener { _, value, _ -> PrefManager.setVal(PrefName.WatchPercentage, value / 100) } @@ -229,7 +243,10 @@ class PlayerSettingsActivity : AppCompatActivity() { val resizeDialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle(getString(R.string.default_resize_mode)) binding.playerResizeMode.setOnClickListener { - val dialog = resizeDialog.setSingleChoiceItems(resizeModes, PrefManager.getVal(PrefName.Resize)) { dialog, count -> + val dialog = resizeDialog.setSingleChoiceItems( + resizeModes, + PrefManager.getVal(PrefName.Resize) + ) { dialog, count -> PrefManager.setVal(PrefName.Resize, count) dialog.dismiss() }.show() @@ -425,7 +442,10 @@ class PlayerSettingsActivity : AppCompatActivity() { val fontDialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle(getString(R.string.subtitle_font)) binding.videoSubFont.setOnClickListener { - val dialog = fontDialog.setSingleChoiceItems(fonts, PrefManager.getVal(PrefName.Font)) { dialog, count -> + val dialog = fontDialog.setSingleChoiceItems( + fonts, + PrefManager.getVal(PrefName.Font) + ) { dialog, count -> PrefManager.setVal(PrefName.Font, count) dialog.dismiss() }.show() diff --git a/app/src/main/java/ani/dantotsu/settings/ReaderSettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/ReaderSettingsActivity.kt index e154d9ff..f3846245 100644 --- a/app/src/main/java/ani/dantotsu/settings/ReaderSettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/ReaderSettingsActivity.kt @@ -8,8 +8,8 @@ import ani.dantotsu.R import ani.dantotsu.databinding.ActivityReaderSettingsBinding import ani.dantotsu.initActivity import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.snackString import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager @@ -20,7 +20,7 @@ class ReaderSettingsActivity : AppCompatActivity() { private var defaultSettingsLN = CurrentNovelReaderSettings() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityReaderSettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -107,7 +107,10 @@ class ReaderSettingsActivity : AppCompatActivity() { defaultSettings.dualPageMode = CurrentReaderSettings.DualPageModes[index] ?: CurrentReaderSettings.DualPageModes.Automatic binding.readerSettingsDualPageText.text = defaultSettings.dualPageMode.toString() - PrefManager.setVal(PrefName.DualPageModeReader, defaultSettings.dualPageMode.ordinal) + PrefManager.setVal( + PrefName.DualPageModeReader, + defaultSettings.dualPageMode.ordinal + ) } } binding.readerSettingsTrueColors.isChecked = defaultSettings.trueColors @@ -215,7 +218,10 @@ class ReaderSettingsActivity : AppCompatActivity() { defaultSettingsLN.dualPageMode = CurrentReaderSettings.DualPageModes[index] ?: CurrentReaderSettings.DualPageModes.Automatic binding.LNdualPageText.text = defaultSettingsLN.dualPageMode.toString() - PrefManager.setVal(PrefName.DualPageModeNovel, defaultSettingsLN.dualPageMode.ordinal) + PrefManager.setVal( + PrefName.DualPageModeNovel, + defaultSettingsLN.dualPageMode.ordinal + ) } } @@ -339,11 +345,13 @@ class ReaderSettingsActivity : AppCompatActivity() { } //Update Progress - binding.readerSettingsAskUpdateProgress.isChecked = PrefManager.getVal(PrefName.AskIndividualReader) + binding.readerSettingsAskUpdateProgress.isChecked = + PrefManager.getVal(PrefName.AskIndividualReader) binding.readerSettingsAskUpdateProgress.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.AskIndividualReader, isChecked) } - binding.readerSettingsAskUpdateDoujins.isChecked = PrefManager.getVal(PrefName.UpdateForHReader) + binding.readerSettingsAskUpdateDoujins.isChecked = + PrefManager.getVal(PrefName.UpdateForHReader) binding.readerSettingsAskUpdateDoujins.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.UpdateForHReader, isChecked) if (isChecked) snackString(getString(R.string.very_bold)) diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt index dbefc1a0..16c91861 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt @@ -4,8 +4,12 @@ import android.annotation.SuppressLint import android.app.AlertDialog import android.content.Intent import android.graphics.drawable.Animatable -import android.os.Build.* -import android.os.Build.VERSION.* +import android.os.Build.BRAND +import android.os.Build.DEVICE +import android.os.Build.SUPPORTED_ABIS +import android.os.Build.VERSION.CODENAME +import android.os.Build.VERSION.RELEASE +import android.os.Build.VERSION.SDK_INT import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -14,9 +18,7 @@ import android.widget.ArrayAdapter import android.widget.TextView import android.widget.Toast import androidx.activity.OnBackPressedCallback -import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts -import androidx.activity.result.contract.ActivityResultContracts.CreateDocument import androidx.annotation.OptIn import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat @@ -25,34 +27,45 @@ import androidx.documentfile.provider.DocumentFile import androidx.lifecycle.lifecycleScope import androidx.media3.common.util.UnstableApi import androidx.media3.exoplayer.offline.DownloadService -import ani.dantotsu.* -import ani.dantotsu.Mapper.json +import ani.dantotsu.BuildConfig +import ani.dantotsu.R +import ani.dantotsu.Refresh import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.discord.Discord import ani.dantotsu.connections.mal.MAL +import ani.dantotsu.copyToClipboard +import ani.dantotsu.currContext import ani.dantotsu.databinding.ActivitySettingsBinding import ani.dantotsu.download.DownloadedType import ani.dantotsu.download.DownloadsManager import ani.dantotsu.download.video.ExoplayerDownloadService +import ani.dantotsu.initActivity +import ani.dantotsu.loadImage +import ani.dantotsu.logger +import ani.dantotsu.navBarHeight +import ani.dantotsu.openLinkInBrowser import ani.dantotsu.others.AppUpdater import ani.dantotsu.others.CustomBottomDialog -import ani.dantotsu.parsers.AnimeSources -import ani.dantotsu.parsers.MangaSources -import ani.dantotsu.settings.saving.PrefName +import ani.dantotsu.pop +import ani.dantotsu.savePrefsToDownloads +import ani.dantotsu.setSafeOnClickListener import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.internal.Location import ani.dantotsu.settings.saving.internal.PreferenceKeystore import ani.dantotsu.settings.saving.internal.PreferencePackager +import ani.dantotsu.snackString +import ani.dantotsu.startMainActivity +import ani.dantotsu.statusBarHeight import ani.dantotsu.subcriptions.Notifications import ani.dantotsu.subcriptions.Notifications.Companion.openSettings import ani.dantotsu.subcriptions.Subscription.Companion.defaultTime import ani.dantotsu.subcriptions.Subscription.Companion.startSubscription import ani.dantotsu.subcriptions.Subscription.Companion.timeMinutes import ani.dantotsu.themes.ThemeManager +import ani.dantotsu.toast import com.google.android.material.snackbar.Snackbar import com.google.android.material.textfield.TextInputEditText -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import eltos.simpledialogfragment.SimpleDialog import eltos.simpledialogfragment.SimpleDialog.OnDialogResultListener.BUTTON_POSITIVE import eltos.simpledialogfragment.color.SimpleColorDialog @@ -85,47 +98,48 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene initActivity(this) - val openDocumentLauncher = registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> - if (uri != null) { - try { - val jsonString = contentResolver.openInputStream(uri)?.readBytes() - ?: throw Exception("Error reading file") - val name = DocumentFile.fromSingleUri(this, uri)?.name ?: "settings" - //.sani is encrypted, .ani is not - if (name.endsWith(".sani")) { - passwordAlertDialog(false) { password -> - if (password != null) { - val salt = jsonString.copyOfRange(0, 16) - val encrypted = jsonString.copyOfRange(16, jsonString.size) - val decryptedJson = try { - PreferenceKeystore.decryptWithPassword( - password, - encrypted, - salt - ) - } catch (e: Exception) { - toast("Incorrect password") - return@passwordAlertDialog + val openDocumentLauncher = + registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri -> + if (uri != null) { + try { + val jsonString = contentResolver.openInputStream(uri)?.readBytes() + ?: throw Exception("Error reading file") + val name = DocumentFile.fromSingleUri(this, uri)?.name ?: "settings" + //.sani is encrypted, .ani is not + if (name.endsWith(".sani")) { + passwordAlertDialog(false) { password -> + if (password != null) { + val salt = jsonString.copyOfRange(0, 16) + val encrypted = jsonString.copyOfRange(16, jsonString.size) + val decryptedJson = try { + PreferenceKeystore.decryptWithPassword( + password, + encrypted, + salt + ) + } catch (e: Exception) { + toast("Incorrect password") + return@passwordAlertDialog + } + if (PreferencePackager.unpack(decryptedJson)) + restartApp() + } else { + toast("Password cannot be empty") } - if(PreferencePackager.unpack(decryptedJson)) - restartApp() - } else { - toast("Password cannot be empty") } + } else if (name.endsWith(".ani")) { + val decryptedJson = jsonString.toString(Charsets.UTF_8) + if (PreferencePackager.unpack(decryptedJson)) + restartApp() + } else { + toast("Unknown file type") } - } else if (name.endsWith(".ani")) { - val decryptedJson = jsonString.toString(Charsets.UTF_8) - if(PreferencePackager.unpack(decryptedJson)) - restartApp() - } else { - toast("Unknown file type") + } catch (e: Exception) { + e.printStackTrace() + toast("Error importing settings") } - } catch (e: Exception) { - e.printStackTrace() - toast("Error importing settings") } } - } binding.settingsVersion.text = getString(R.string.version_current, BuildConfig.VERSION_NAME) binding.settingsVersion.setOnLongClickListener { @@ -244,7 +258,10 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene selectedArray.addAll(List(filteredLocations.size - 1) { false }) val dialog = AlertDialog.Builder(this, R.style.MyPopup) .setTitle("Import/Export Settings") - .setMultiChoiceItems( filteredLocations.map { it.name }.toTypedArray(), selectedArray.toBooleanArray()) { _, which, isChecked -> + .setMultiChoiceItems( + filteredLocations.map { it.name }.toTypedArray(), + selectedArray.toBooleanArray() + ) { _, which, isChecked -> selectedArray[which] = isChecked } .setPositiveButton("Import...") { dialog, _ -> @@ -257,7 +274,8 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene return@setNegativeButton } dialog.dismiss() - val selected = filteredLocations.filterIndexed { index, _ -> selectedArray[index] } + val selected = + filteredLocations.filterIndexed { index, _ -> selectedArray[index] } if (selected.contains(Location.Protected)) { passwordAlertDialog(true) { password -> if (password != null) { @@ -360,7 +378,7 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene } binding.NSFWExtension.isChecked = PrefManager.getVal(PrefName.NSFWExtension) binding.NSFWExtension.setOnCheckedChangeListener { _, isChecked -> - PrefManager.setVal(PrefName.NSFWExtension,isChecked) + PrefManager.setVal(PrefName.NSFWExtension, isChecked) } @@ -847,7 +865,8 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene show() } } - private fun passwordAlertDialog(isExporting:Boolean, callback: (CharArray?) -> Unit) { + + private fun passwordAlertDialog(isExporting: Boolean, callback: (CharArray?) -> Unit) { val password = CharArray(16).apply { fill('0') } // Inflate the dialog layout diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt b/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt index e12fdc7c..7b349929 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsDialogFragment.kt @@ -3,8 +3,6 @@ package ani.dantotsu.settings import android.content.Intent import android.graphics.Color import android.os.Bundle -import java.util.* -import kotlin.concurrent.schedule import android.util.TypedValue import android.view.LayoutInflater import android.view.View @@ -27,9 +25,11 @@ import ani.dantotsu.offline.OfflineFragment import ani.dantotsu.openLinkInBrowser import ani.dantotsu.others.imagesearch.ImageSearchActivity import ani.dantotsu.setSafeOnClickListener -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.startMainActivity +import java.util.Timer +import kotlin.concurrent.schedule class SettingsDialogFragment : BottomSheetDialogFragment() { private var _binding: BottomSheetSettingsBinding? = null @@ -103,58 +103,58 @@ class SettingsDialogFragment : BottomSheetDialogFragment() { binding.settingsDownloads.isChecked = PrefManager.getVal(PrefName.OfflineMode) binding.settingsDownloads.setOnCheckedChangeListener { _, isChecked -> - Timer().schedule(300){ - when (pageType) { - PageType.MANGA -> { - val intent = Intent(activity, NoInternet::class.java) - intent.putExtra( - "FRAGMENT_CLASS_NAME", - OfflineMangaFragment::class.java.name - ) - startActivity(intent) + Timer().schedule(300) { + when (pageType) { + PageType.MANGA -> { + val intent = Intent(activity, NoInternet::class.java) + intent.putExtra( + "FRAGMENT_CLASS_NAME", + OfflineMangaFragment::class.java.name + ) + startActivity(intent) + } + + PageType.ANIME -> { + val intent = Intent(activity, NoInternet::class.java) + intent.putExtra( + "FRAGMENT_CLASS_NAME", + OfflineAnimeFragment::class.java.name + ) + startActivity(intent) + } + + PageType.HOME -> { + val intent = Intent(activity, NoInternet::class.java) + intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name) + startActivity(intent) + } + + PageType.OfflineMANGA -> { + val intent = Intent(activity, MainActivity::class.java) + intent.putExtra("FRAGMENT_CLASS_NAME", MangaFragment::class.java.name) + startActivity(intent) + } + + PageType.OfflineHOME -> { + val intent = Intent(activity, MainActivity::class.java) + intent.putExtra( + "FRAGMENT_CLASS_NAME", + if (Anilist.token != null) HomeFragment::class.java.name else LoginFragment::class.java.name + ) + startActivity(intent) + } + + PageType.OfflineANIME -> { + val intent = Intent(activity, MainActivity::class.java) + intent.putExtra("FRAGMENT_CLASS_NAME", AnimeFragment::class.java.name) + startActivity(intent) + } } - PageType.ANIME -> { - val intent = Intent(activity, NoInternet::class.java) - intent.putExtra( - "FRAGMENT_CLASS_NAME", - OfflineAnimeFragment::class.java.name - ) - startActivity(intent) - } - - PageType.HOME -> { - val intent = Intent(activity, NoInternet::class.java) - intent.putExtra("FRAGMENT_CLASS_NAME", OfflineFragment::class.java.name) - startActivity(intent) - } - - PageType.OfflineMANGA -> { - val intent = Intent(activity, MainActivity::class.java) - intent.putExtra("FRAGMENT_CLASS_NAME", MangaFragment::class.java.name) - startActivity(intent) - } - - PageType.OfflineHOME -> { - val intent = Intent(activity, MainActivity::class.java) - intent.putExtra( - "FRAGMENT_CLASS_NAME", - if (Anilist.token != null) HomeFragment::class.java.name else LoginFragment::class.java.name - ) - startActivity(intent) - } - - PageType.OfflineANIME -> { - val intent = Intent(activity, MainActivity::class.java) - intent.putExtra("FRAGMENT_CLASS_NAME", AnimeFragment::class.java.name) - startActivity(intent) - } + dismiss() + PrefManager.setVal(PrefName.OfflineMode, isChecked) } - - dismiss() - PrefManager.setVal(PrefName.OfflineMode, isChecked) } - } } override fun onDestroyView() { diff --git a/app/src/main/java/ani/dantotsu/settings/UserInterfaceSettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/UserInterfaceSettingsActivity.kt index f7f53c82..2c5fc602 100644 --- a/app/src/main/java/ani/dantotsu/settings/UserInterfaceSettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/UserInterfaceSettingsActivity.kt @@ -10,8 +10,8 @@ import ani.dantotsu.R import ani.dantotsu.databinding.ActivityUserInterfaceSettingsBinding import ani.dantotsu.initActivity import ani.dantotsu.navBarHeight -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.statusBarHeight import ani.dantotsu.themes.ThemeManager import com.google.android.material.snackbar.Snackbar @@ -21,7 +21,7 @@ class UserInterfaceSettingsActivity : AppCompatActivity() { private val ui = "ui_settings" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() binding = ActivityUserInterfaceSettingsBinding.inflate(layoutInflater) setContentView(binding.root) @@ -44,7 +44,8 @@ class UserInterfaceSettingsActivity : AppCompatActivity() { views, PrefManager.getVal>(PrefName.HomeLayoutShow).toBooleanArray() ) { _, i, value -> - val set = PrefManager.getVal>(PrefName.HomeLayoutShow).toMutableList() + val set = PrefManager.getVal>(PrefName.HomeLayoutShow) + .toMutableList() set[i] = value PrefManager.setVal(PrefName.HomeLayoutShow, set) } @@ -87,7 +88,8 @@ class UserInterfaceSettingsActivity : AppCompatActivity() { 0f to 0f ) val mapReverse = map.map { it.value to it.key }.toMap() - binding.uiSettingsAnimationSpeed.value = mapReverse[PrefManager.getVal(PrefName.AnimationSpeed)] ?: 1f + binding.uiSettingsAnimationSpeed.value = + mapReverse[PrefManager.getVal(PrefName.AnimationSpeed)] ?: 1f binding.uiSettingsAnimationSpeed.addOnChangeListener { _, value, _ -> PrefManager.setVal(PrefName.AnimationSpeed, map[value] ?: 1f) restartApp() diff --git a/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt index 779b3bf6..53fe43cb 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/AnimePagingSource.kt @@ -20,8 +20,8 @@ import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.R import ani.dantotsu.databinding.ItemExtensionAllBinding import ani.dantotsu.others.LanguageMapper -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.bumptech.glide.Glide import eu.kanade.tachiyomi.extension.anime.AnimeExtensionManager import eu.kanade.tachiyomi.extension.anime.model.AnimeExtension @@ -103,7 +103,8 @@ class AnimeExtensionPagingSource( availableExtensions.filter { it.name.contains(query, ignoreCase = true) } } val lang: String = PrefManager.getVal(PrefName.LangSort) - val langFilter = if (lang != "all") filteredExtensions.filter { it.lang == lang } else filteredExtensions + val langFilter = + if (lang != "all") filteredExtensions.filter { it.lang == lang } else filteredExtensions val filternfsw = if (isNsfwEnabled) langFilter else langFilter.filterNot { it.isNsfw } return try { val sublist = filternfsw.subList( diff --git a/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt index c2a2e942..140eb549 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/MangaPagingSource.kt @@ -20,8 +20,8 @@ import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.R import ani.dantotsu.databinding.ItemExtensionAllBinding import ani.dantotsu.others.LanguageMapper -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.bumptech.glide.Glide import eu.kanade.tachiyomi.extension.manga.MangaExtensionManager import eu.kanade.tachiyomi.extension.manga.model.MangaExtension @@ -102,7 +102,8 @@ class MangaExtensionPagingSource( availableExtensions.filter { it.name.contains(query, ignoreCase = true) } } val lang: String = PrefManager.getVal(PrefName.LangSort) - val langFilter = if (lang != "all") filteredExtensions.filter { it.lang == lang } else filteredExtensions + val langFilter = + if (lang != "all") filteredExtensions.filter { it.lang == lang } else filteredExtensions val filternfsw = if (isNsfwEnabled) langFilter else langFilter.filterNot { it.isNsfw } return try { val sublist = filternfsw.subList( diff --git a/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt b/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt index d9d6dfe9..46379b76 100644 --- a/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt +++ b/app/src/main/java/ani/dantotsu/settings/paging/NovelPagingSource.kt @@ -21,8 +21,8 @@ import ani.dantotsu.databinding.ItemExtensionAllBinding import ani.dantotsu.others.LanguageMapper import ani.dantotsu.parsers.novel.NovelExtension import ani.dantotsu.parsers.novel.NovelExtensionManager -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.bumptech.glide.Glide import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt b/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt index 4bc23d10..8f1b87ec 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/PrefManager.kt @@ -22,12 +22,18 @@ object PrefManager { private var protectedPreferences: SharedPreferences? = null fun init(context: Context) { //must be called in Application class or will crash - generalPreferences = context.getSharedPreferences(Location.General.location, Context.MODE_PRIVATE) - playerPreferences = context.getSharedPreferences(Location.Player.location, Context.MODE_PRIVATE) - readerPreferences = context.getSharedPreferences(Location.Reader.location, Context.MODE_PRIVATE) - irrelevantPreferences = context.getSharedPreferences(Location.Irrelevant.location, Context.MODE_PRIVATE) - animeDownloadsPreferences = context.getSharedPreferences(Location.AnimeDownloads.location, Context.MODE_PRIVATE) - protectedPreferences = context.getSharedPreferences(Location.Protected.location, Context.MODE_PRIVATE) + generalPreferences = + context.getSharedPreferences(Location.General.location, Context.MODE_PRIVATE) + playerPreferences = + context.getSharedPreferences(Location.Player.location, Context.MODE_PRIVATE) + readerPreferences = + context.getSharedPreferences(Location.Reader.location, Context.MODE_PRIVATE) + irrelevantPreferences = + context.getSharedPreferences(Location.Irrelevant.location, Context.MODE_PRIVATE) + animeDownloadsPreferences = + context.getSharedPreferences(Location.AnimeDownloads.location, Context.MODE_PRIVATE) + protectedPreferences = + context.getSharedPreferences(Location.Protected.location, Context.MODE_PRIVATE) Compat.importOldPrefs(context) } @@ -49,7 +55,7 @@ object PrefManager { } @Suppress("UNCHECKED_CAST") - fun getVal(prefName: PrefName, default: T) : T { + fun getVal(prefName: PrefName, default: T): T { return try { val pref = getPrefLocation(prefName.data.prefLocation) when (prefName.data.type) { @@ -58,8 +64,17 @@ object PrefManager { Float::class -> pref.getFloat(prefName.name, default as Float) as T Long::class -> pref.getLong(prefName.name, default as Long) as T String::class -> pref.getString(prefName.name, default as String?) as T - Set::class -> convertFromStringSet(pref.getStringSet(prefName.name, null), default) as T - List::class -> deserializeClass(prefName.name, default, prefName.data.prefLocation) as T + Set::class -> convertFromStringSet( + pref.getStringSet(prefName.name, null), + default + ) as T + + List::class -> deserializeClass( + prefName.name, + default, + prefName.data.prefLocation + ) as T + else -> throw IllegalArgumentException("Type not supported") } } catch (e: Exception) { @@ -68,17 +83,34 @@ object PrefManager { } @Suppress("UNCHECKED_CAST") - fun getVal(prefName: PrefName) : T { + fun getVal(prefName: PrefName): T { return try { val pref = getPrefLocation(prefName.data.prefLocation) when (prefName.data.type) { - Boolean::class -> pref.getBoolean(prefName.name, prefName.data.default as Boolean) as T + Boolean::class -> pref.getBoolean( + prefName.name, + prefName.data.default as Boolean + ) as T + Int::class -> pref.getInt(prefName.name, prefName.data.default as Int) as T Float::class -> pref.getFloat(prefName.name, prefName.data.default as Float) as T Long::class -> pref.getLong(prefName.name, prefName.data.default as Long) as T - String::class -> pref.getString(prefName.name, prefName.data.default as String?) as T - Set::class -> convertFromStringSet(pref.getStringSet(prefName.name, null), prefName.data.default) as T - List::class -> deserializeClass(prefName.name, prefName.data.default, prefName.data.prefLocation) as T + String::class -> pref.getString( + prefName.name, + prefName.data.default as String? + ) as T + + Set::class -> convertFromStringSet( + pref.getStringSet(prefName.name, null), + prefName.data.default + ) as T + + List::class -> deserializeClass( + prefName.name, + prefName.data.default, + prefName.data.prefLocation + ) as T + else -> throw IllegalArgumentException("Type not supported") } } catch (e: Exception) { @@ -87,7 +119,10 @@ object PrefManager { } @Suppress("UNCHECKED_CAST") - fun getNullableVal(prefName: PrefName, default: T?) : T? { //Strings don't necessarily need to use this one + fun getNullableVal( + prefName: PrefName, + default: T? + ): T? { //Strings don't necessarily need to use this one return try { val pref = getPrefLocation(prefName.data.prefLocation) when (prefName.data.type) { @@ -96,7 +131,11 @@ object PrefManager { Float::class -> pref.getFloat(prefName.name, default as Float) as T? Long::class -> pref.getLong(prefName.name, default as Long) as T? String::class -> pref.getString(prefName.name, default as String?) as T? - Set::class -> convertFromStringSet(pref.getStringSet(prefName.name, null), default) as T? + Set::class -> convertFromStringSet( + pref.getStringSet(prefName.name, null), + default + ) as T? + else -> deserializeClass(prefName.name, default, prefName.data.prefLocation) } } catch (e: Exception) { @@ -113,7 +152,11 @@ object PrefManager { is Float -> irrelevantPreferences!!.getFloat(key, default) as T is Long -> irrelevantPreferences!!.getLong(key, default) as T is String -> irrelevantPreferences!!.getString(key, default) as T - is Set<*> -> convertFromStringSet(irrelevantPreferences!!.getStringSet(key, null), default) as T + is Set<*> -> convertFromStringSet( + irrelevantPreferences!!.getStringSet(key, null), + default + ) as T + else -> throw IllegalArgumentException("Type not supported") } } catch (e: Exception) { @@ -125,12 +168,36 @@ object PrefManager { fun getNullableCustomVal(key: String, default: T?, clazz: Class): T? { return try { when { - clazz.isAssignableFrom(Boolean::class.java) -> irrelevantPreferences!!.getBoolean(key, default as? Boolean ?: false) as T? - clazz.isAssignableFrom(Int::class.java) -> irrelevantPreferences!!.getInt(key, default as? Int ?: 0) as T? - clazz.isAssignableFrom(Float::class.java) -> irrelevantPreferences!!.getFloat(key, default as? Float ?: 0f) as T? - clazz.isAssignableFrom(Long::class.java) -> irrelevantPreferences!!.getLong(key, default as? Long ?: 0L) as T? - clazz.isAssignableFrom(String::class.java) -> irrelevantPreferences!!.getString(key, default as? String) as T? - clazz.isAssignableFrom(Set::class.java) -> convertFromStringSet(irrelevantPreferences!!.getStringSet(key, null), default) as T? + clazz.isAssignableFrom(Boolean::class.java) -> irrelevantPreferences!!.getBoolean( + key, + default as? Boolean ?: false + ) as T? + + clazz.isAssignableFrom(Int::class.java) -> irrelevantPreferences!!.getInt( + key, + default as? Int ?: 0 + ) as T? + + clazz.isAssignableFrom(Float::class.java) -> irrelevantPreferences!!.getFloat( + key, + default as? Float ?: 0f + ) as T? + + clazz.isAssignableFrom(Long::class.java) -> irrelevantPreferences!!.getLong( + key, + default as? Long ?: 0L + ) as T? + + clazz.isAssignableFrom(String::class.java) -> irrelevantPreferences!!.getString( + key, + default as? String + ) as T? + + clazz.isAssignableFrom(Set::class.java) -> convertFromStringSet( + irrelevantPreferences!!.getStringSet(key, null), + default + ) as T? + else -> deserializeClass(key, default, Location.Irrelevant) } } catch (e: Exception) { @@ -173,7 +240,7 @@ object PrefManager { } @Suppress("UNCHECKED_CAST") - fun getLiveVal(prefName: PrefName, default: T) : SharedPreferenceLiveData { + fun getLiveVal(prefName: PrefName, default: T): SharedPreferenceLiveData { val pref = getPrefLocation(prefName.data.prefLocation) return when (prefName.data.type) { Boolean::class -> SharedPreferenceBooleanLiveData( @@ -181,31 +248,37 @@ object PrefManager { prefName.name, default as Boolean ) as SharedPreferenceLiveData + Int::class -> SharedPreferenceIntLiveData( pref, prefName.name, default as Int ) as SharedPreferenceLiveData + Float::class -> SharedPreferenceFloatLiveData( pref, prefName.name, default as Float ) as SharedPreferenceLiveData + Long::class -> SharedPreferenceLongLiveData( pref, prefName.name, default as Long ) as SharedPreferenceLiveData + String::class -> SharedPreferenceStringLiveData( pref, prefName.name, default as String ) as SharedPreferenceLiveData + Set::class -> SharedPreferenceStringSetLiveData( pref, prefName.name, default as Set ) as SharedPreferenceLiveData + else -> throw IllegalArgumentException("Type not supported") } } @@ -234,7 +307,8 @@ object PrefManager { this as? SharedPreferenceStringSetLiveData ?: throw ClassCastException("Cannot cast to SharedPreferenceLiveData>") - fun getAnimeDownloadPreferences(): SharedPreferences = animeDownloadsPreferences!! //needs to be used externally + fun getAnimeDownloadPreferences(): SharedPreferences = + animeDownloadsPreferences!! //needs to be used externally fun exportAllPrefs(prefLocation: List): String { return PreferencePackager.pack( @@ -272,7 +346,7 @@ object PrefManager { return if (hadError) { snackString("Error importing preferences") false - } else { + } else { snackString("Preferences imported") true } @@ -331,7 +405,7 @@ object PrefManager { } - private fun serializeClass(key: String, value: T, location: Location){ + private fun serializeClass(key: String, value: T, location: Location) { val pref = getPrefLocation(location) try { val bos = ByteArrayOutputStream() diff --git a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt index e499e669..533dc2ba 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt @@ -2,8 +2,8 @@ package ani.dantotsu.settings.saving import android.graphics.Color import ani.dantotsu.connections.mal.MAL -import ani.dantotsu.settings.saving.internal.Pref import ani.dantotsu.settings.saving.internal.Location +import ani.dantotsu.settings.saving.internal.Pref enum class PrefName(val data: Pref) { //TODO: Split this into multiple files //General @@ -20,7 +20,13 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files CheckUpdate(Pref(Location.General, Boolean::class, true)), VerboseLogging(Pref(Location.General, Boolean::class, false)), DohProvider(Pref(Location.General, Int::class, 0)), - DefaultUserAgent(Pref(Location.General, String::class, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:110.0) Gecko/20100101 Firefox/110.0")), + DefaultUserAgent( + Pref( + Location.General, + String::class, + "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:110.0) Gecko/20100101 Firefox/110.0" + ) + ), AnimeSourcesOrder(Pref(Location.General, List::class, listOf())), AnimeSearchHistory(Pref(Location.General, Set::class, setOf())), MangaSourcesOrder(Pref(Location.General, List::class, listOf())), @@ -42,7 +48,13 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files ImmersiveMode(Pref(Location.UI, Boolean::class, false)), SmallView(Pref(Location.UI, Boolean::class, true)), DefaultStartUpTab(Pref(Location.UI, Int::class, 1)), - HomeLayoutShow(Pref(Location.UI, List::class, listOf(true, false, false, true, false, false, true))), + HomeLayoutShow( + Pref( + Location.UI, + List::class, + listOf(true, false, false, true, false, false, true) + ) + ), BannerAnimations(Pref(Location.UI, Boolean::class, true)), LayoutAnimations(Pref(Location.UI, Boolean::class, true)), AnimationSpeed(Pref(Location.UI, Float::class, 1f)), diff --git a/app/src/main/java/ani/dantotsu/settings/saving/internal/Compat.kt b/app/src/main/java/ani/dantotsu/settings/saving/internal/Compat.kt index d063da48..68392e79 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/internal/Compat.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/internal/Compat.kt @@ -1,8 +1,8 @@ package ani.dantotsu.settings.saving.internal import android.content.Context -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName class Compat { companion object { diff --git a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceInternal.kt b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceInternal.kt index 2fe5aee5..c55f274a 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceInternal.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceInternal.kt @@ -8,6 +8,7 @@ data class Pref( val type: KClass<*>, val default: Any ) + enum class Location(val location: String, val exportable: Boolean) { General("ani.dantotsu.general", true), UI("ani.dantotsu.ui", true), diff --git a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceKeystore.kt b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceKeystore.kt index ad7b2810..c790f9d1 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceKeystore.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferenceKeystore.kt @@ -2,7 +2,6 @@ package ani.dantotsu.settings.saving.internal import android.security.keystore.KeyGenParameterSpec import android.security.keystore.KeyProperties -import java.security.KeyStore import java.security.SecureRandom import javax.crypto.Cipher import javax.crypto.KeyGenerator @@ -15,7 +14,8 @@ import javax.crypto.spec.PBEKeySpec class PreferenceKeystore { companion object { fun generateKey(alias: String) { - val keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore") + val keyGenerator = + KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore") keyGenerator.init( KeyGenParameterSpec.Builder( @@ -30,17 +30,31 @@ class PreferenceKeystore { keyGenerator.generateKey() } - fun encryptWithPassword(password: CharArray, plaintext: String, salt: ByteArray): ByteArray { + fun encryptWithPassword( + password: CharArray, + plaintext: String, + salt: ByteArray + ): ByteArray { val secretKey = deriveKeyFromPassword(password, salt) - val cipher = Cipher.getInstance("${KeyProperties.KEY_ALGORITHM_AES}/${KeyProperties.BLOCK_MODE_CBC}/${KeyProperties.ENCRYPTION_PADDING_PKCS7}") + val cipher = + Cipher.getInstance("${KeyProperties.KEY_ALGORITHM_AES}/${KeyProperties.BLOCK_MODE_CBC}/${KeyProperties.ENCRYPTION_PADDING_PKCS7}") cipher.init(Cipher.ENCRYPT_MODE, secretKey, IvParameterSpec(ByteArray(16))) return cipher.doFinal(plaintext.toByteArray(Charsets.UTF_8)) } - fun decryptWithPassword(password: CharArray, ciphertext: ByteArray, salt: ByteArray): String { + fun decryptWithPassword( + password: CharArray, + ciphertext: ByteArray, + salt: ByteArray + ): String { val secretKey = deriveKeyFromPassword(password, salt) - val cipher = Cipher.getInstance("${KeyProperties.KEY_ALGORITHM_AES}/${KeyProperties.BLOCK_MODE_CBC}/${KeyProperties.ENCRYPTION_PADDING_PKCS7}") - cipher.init(Cipher.DECRYPT_MODE, secretKey, IvParameterSpec(ByteArray(16))) // Use the correct IV + val cipher = + Cipher.getInstance("${KeyProperties.KEY_ALGORITHM_AES}/${KeyProperties.BLOCK_MODE_CBC}/${KeyProperties.ENCRYPTION_PADDING_PKCS7}") + cipher.init( + Cipher.DECRYPT_MODE, + secretKey, + IvParameterSpec(ByteArray(16)) + ) // Use the correct IV return cipher.doFinal(ciphertext).toString(Charsets.UTF_8) } diff --git a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferencePackager.kt b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferencePackager.kt index 6ad2456f..d37424b7 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferencePackager.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/internal/PreferencePackager.kt @@ -1,11 +1,7 @@ package ani.dantotsu.settings.saving.internal import android.content.SharedPreferences -import android.net.Uri -import androidx.documentfile.provider.DocumentFile -import ani.dantotsu.connections.discord.serializers.Activity import ani.dantotsu.settings.saving.PrefManager -import ani.dantotsu.toast import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -28,8 +24,10 @@ class PreferencePackager { */ fun unpack(decryptedJson: String): Boolean { val gson = Gson() - val type = object : TypeToken>>>() {}.type //oh god... - val rawPrefsMap: Map>> = gson.fromJson(decryptedJson, type) + val type = object : + TypeToken>>>() {}.type //oh god... + val rawPrefsMap: Map>> = + gson.fromJson(decryptedJson, type) val deserializedMap = mutableMapOf>() diff --git a/app/src/main/java/ani/dantotsu/subcriptions/AlarmReceiver.kt b/app/src/main/java/ani/dantotsu/subcriptions/AlarmReceiver.kt index 71e78c7d..c1c17e1f 100644 --- a/app/src/main/java/ani/dantotsu/subcriptions/AlarmReceiver.kt +++ b/app/src/main/java/ani/dantotsu/subcriptions/AlarmReceiver.kt @@ -8,8 +8,8 @@ import android.content.Intent import ani.dantotsu.currContext import ani.dantotsu.isOnline import ani.dantotsu.logger -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Subscription.Companion.defaultTime import ani.dantotsu.subcriptions.Subscription.Companion.startSubscription import ani.dantotsu.subcriptions.Subscription.Companion.timeMinutes diff --git a/app/src/main/java/ani/dantotsu/subcriptions/NotificationClickReceiver.kt b/app/src/main/java/ani/dantotsu/subcriptions/NotificationClickReceiver.kt index 571a55b4..410d9b23 100644 --- a/app/src/main/java/ani/dantotsu/subcriptions/NotificationClickReceiver.kt +++ b/app/src/main/java/ani/dantotsu/subcriptions/NotificationClickReceiver.kt @@ -5,8 +5,8 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import ani.dantotsu.INCOGNITO_CHANNEL_ID -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName class NotificationClickReceiver : BroadcastReceiver() { diff --git a/app/src/main/java/ani/dantotsu/subcriptions/Subscription.kt b/app/src/main/java/ani/dantotsu/subcriptions/Subscription.kt index a7d7d05a..050953ce 100644 --- a/app/src/main/java/ani/dantotsu/subcriptions/Subscription.kt +++ b/app/src/main/java/ani/dantotsu/subcriptions/Subscription.kt @@ -8,8 +8,8 @@ import androidx.core.app.NotificationManagerCompat import ani.dantotsu.* import ani.dantotsu.parsers.Episode import ani.dantotsu.parsers.MangaChapter -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay diff --git a/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionHelper.kt b/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionHelper.kt index 260aba33..1929ce3c 100644 --- a/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionHelper.kt +++ b/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionHelper.kt @@ -14,8 +14,8 @@ import ani.dantotsu.parsers.HMangaSources import ani.dantotsu.parsers.MangaChapter import ani.dantotsu.parsers.MangaParser import ani.dantotsu.parsers.MangaSources -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.tryWithSuspend import kotlinx.coroutines.withTimeoutOrNull @@ -27,11 +27,13 @@ class SubscriptionHelper { isAdult: Boolean, isAnime: Boolean ): Selected { - val data = PrefManager.getNullableCustomVal("${mediaId}-select", null, Selected::class.java) ?: Selected().let { - it.sourceIndex = 0 - it.preferDub = PrefManager.getVal(PrefName.SettingsPreferDub) - it - } + val data = + PrefManager.getNullableCustomVal("${mediaId}-select", null, Selected::class.java) + ?: Selected().let { + it.sourceIndex = 0 + it.preferDub = PrefManager.getVal(PrefName.SettingsPreferDub) + it + } return data } @@ -126,12 +128,20 @@ class SubscriptionHelper { @Suppress("UNCHECKED_CAST") fun getSubscriptions(): Map = - (PrefManager.getNullableCustomVal(subscriptions, null, Map::class.java) as? Map) + (PrefManager.getNullableCustomVal( + subscriptions, + null, + Map::class.java + ) as? Map) ?: mapOf().also { PrefManager.setCustomVal(subscriptions, it) } @Suppress("UNCHECKED_CAST") fun saveSubscription(context: Context, media: Media, subscribed: Boolean) { - val data = PrefManager.getNullableCustomVal(subscriptions, null, Map::class.java) as? MutableMap + val data = PrefManager.getNullableCustomVal( + subscriptions, + null, + Map::class.java + ) as? MutableMap ?: mutableMapOf() if (subscribed) { if (!data.containsKey(media.id)) { diff --git a/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionWorker.kt b/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionWorker.kt index 72d77f90..00c7650f 100644 --- a/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionWorker.kt +++ b/app/src/main/java/ani/dantotsu/subcriptions/SubscriptionWorker.kt @@ -8,8 +8,8 @@ import androidx.work.NetworkType import androidx.work.PeriodicWorkRequest import androidx.work.WorkManager import androidx.work.WorkerParameters -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.subcriptions.Subscription.Companion.defaultTime import ani.dantotsu.subcriptions.Subscription.Companion.timeMinutes import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/ani/dantotsu/themes/ThemeManager.kt b/app/src/main/java/ani/dantotsu/themes/ThemeManager.kt index befd9db9..d3086353 100644 --- a/app/src/main/java/ani/dantotsu/themes/ThemeManager.kt +++ b/app/src/main/java/ani/dantotsu/themes/ThemeManager.kt @@ -7,8 +7,8 @@ import android.graphics.Bitmap import android.view.Window import android.view.WindowManager import ani.dantotsu.R -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.google.android.material.color.DynamicColors import com.google.android.material.color.DynamicColorsOptions diff --git a/app/src/main/java/ani/dantotsu/widgets/CurrentlyAiringWidgetConfigureActivity.kt b/app/src/main/java/ani/dantotsu/widgets/CurrentlyAiringWidgetConfigureActivity.kt index 762013ef..186f5151 100644 --- a/app/src/main/java/ani/dantotsu/widgets/CurrentlyAiringWidgetConfigureActivity.kt +++ b/app/src/main/java/ani/dantotsu/widgets/CurrentlyAiringWidgetConfigureActivity.kt @@ -45,7 +45,7 @@ class CurrentlyAiringWidgetConfigureActivity : Activity() { private lateinit var binding: CurrentlyAiringWidgetConfigureBinding public override fun onCreate(icicle: Bundle?) { - + ThemeManager(this).applyTheme() super.onCreate(icicle) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/anime/util/AnimeExtensionInstallActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/anime/util/AnimeExtensionInstallActivity.kt index d36be2fd..2b66f10d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/anime/util/AnimeExtensionInstallActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/anime/util/AnimeExtensionInstallActivity.kt @@ -25,7 +25,7 @@ class AnimeExtensionInstallActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() val installIntent = Intent(Intent.ACTION_INSTALL_PACKAGE) diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/manga/util/MangaExtensionInstallActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/manga/util/MangaExtensionInstallActivity.kt index 4f1a688e..7424bd3f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/manga/util/MangaExtensionInstallActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/manga/util/MangaExtensionInstallActivity.kt @@ -25,7 +25,7 @@ class MangaExtensionInstallActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - + ThemeManager(this).applyTheme() val installIntent = Intent(Intent.ACTION_INSTALL_PACKAGE) diff --git a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt index eae96a0f..4d14f649 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -3,8 +3,8 @@ package eu.kanade.tachiyomi.network import android.content.Context import android.os.Build import ani.dantotsu.Mapper -import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefManager +import ani.dantotsu.settings.saving.PrefName import com.lagradost.nicehttp.Requests import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor import eu.kanade.tachiyomi.network.interceptor.UncaughtExceptionInterceptor diff --git a/app/src/main/res/anim/over_shoot.xml b/app/src/main/res/anim/over_shoot.xml index bd86f9ac..af9b71c0 100644 --- a/app/src/main/res/anim/over_shoot.xml +++ b/app/src/main/res/anim/over_shoot.xml @@ -1,3 +1,3 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/anim/slide_down.xml b/app/src/main/res/anim/slide_down.xml index 2ea726e0..f546ff43 100644 --- a/app/src/main/res/anim/slide_down.xml +++ b/app/src/main/res/anim/slide_down.xml @@ -1,7 +1,7 @@ + android:toYDelta="100%" /> diff --git a/app/src/main/res/anim/slide_up.xml b/app/src/main/res/anim/slide_up.xml index 616a20a3..b793a771 100644 --- a/app/src/main/res/anim/slide_up.xml +++ b/app/src/main/res/anim/slide_up.xml @@ -1,7 +1,7 @@ + android:toYDelta="0%" /> diff --git a/app/src/main/res/color/button_switch_track.xml b/app/src/main/res/color/button_switch_track.xml index b6b00672..f169ede0 100644 --- a/app/src/main/res/color/button_switch_track.xml +++ b/app/src/main/res/color/button_switch_track.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/color/chip_background_color.xml b/app/src/main/res/color/chip_background_color.xml index b0838002..def90aca 100644 --- a/app/src/main/res/color/chip_background_color.xml +++ b/app/src/main/res/color/chip_background_color.xml @@ -1,8 +1,8 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/color/chip_text_color.xml b/app/src/main/res/color/chip_text_color.xml index fbe928c3..0904b084 100644 --- a/app/src/main/res/color/chip_text_color.xml +++ b/app/src/main/res/color/chip_text_color.xml @@ -1,7 +1,7 @@ - + - + diff --git a/app/src/main/res/color/tab_layout_icon.xml b/app/src/main/res/color/tab_layout_icon.xml index f1102309..4cdbe759 100644 --- a/app/src/main/res/color/tab_layout_icon.xml +++ b/app/src/main/res/color/tab_layout_icon.xml @@ -1,5 +1,5 @@ - - + + diff --git a/app/src/main/res/color/tab_layout_text.xml b/app/src/main/res/color/tab_layout_text.xml index 905c345c..cdd18182 100644 --- a/app/src/main/res/color/tab_layout_text.xml +++ b/app/src/main/res/color/tab_layout_text.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/color/text_input_layout_stroke_color.xml b/app/src/main/res/color/text_input_layout_stroke_color.xml index db77cba8..7055cb6a 100644 --- a/app/src/main/res/color/text_input_layout_stroke_color.xml +++ b/app/src/main/res/color/text_input_layout_stroke_color.xml @@ -1,7 +1,7 @@ - + - + diff --git a/app/src/main/res/drawable/anim_pause_to_play.xml b/app/src/main/res/drawable/anim_pause_to_play.xml index 80782ef2..c9760881 100644 --- a/app/src/main/res/drawable/anim_pause_to_play.xml +++ b/app/src/main/res/drawable/anim_pause_to_play.xml @@ -1,5 +1,4 @@ - + android:fillColor="#fff" + android:pathData="M 7 6 C 5.9 6 5 6.9 5 8 L 5 8 C 5 9.1 5.9 10 7 10 L 12 10 L 17 10 C 18.1 10 19 9.1 19 8 C 19 6.9 18.1 6 17 6 C 13.667 6 10.333 6 7 6 M 7 14 C 5.9 14 5 14.9 5 16 C 5 17.1 5.9 18 7 18 L 17 18 C 18.1 18 19 17.1 19 16 C 19 14.9 18.1 14 17 14 L 17 14 L 12 14 L 7 14" /> @@ -28,54 +27,54 @@ + android:valueType="pathType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/res/drawable/anim_play_to_pause.xml b/app/src/main/res/drawable/anim_play_to_pause.xml index dc8138b0..05b71586 100644 --- a/app/src/main/res/drawable/anim_play_to_pause.xml +++ b/app/src/main/res/drawable/anim_play_to_pause.xml @@ -1,5 +1,4 @@ - + android:fillColor="#fff" + android:pathData="M 8 6.82 L 8 17.18 C 8 17.97 8.87 18.45 9.54 18.02 L 17.68 12.84 C 18.3 12.45 18.3 11.55 17.68 11.15 L 9.54 5.98 C 8.87 5.55 8 6.03 8 6.82 Z" /> + android:valueType="pathType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/res/drawable/anim_rewind.xml b/app/src/main/res/drawable/anim_rewind.xml index de77a5a3..10a32d2d 100644 --- a/app/src/main/res/drawable/anim_rewind.xml +++ b/app/src/main/res/drawable/anim_rewind.xml @@ -1,5 +1,4 @@ - + android:fillColor="#eeeeee" + android:pathData="M 28.3 14.9 L 5.7 0.7 C 3.2 -0.8 0 1 0 3.9 L 0 32.3 C 0 35.2 3.2 37 5.7 35.4 L 28.3 21.2 C 30.6 19.8 30.6 16.4 28.3 14.9 Z" /> + android:fillColor="#eeeeee" + android:pathData="M 52.3 14.9 L 29.7 0.7 C 27.2 -0.8 24 1 24 3.9 L 24 32.3 C 24 35.2 27.2 37 29.7 35.4 L 52.3 21.2 C 54.6 19.8 54.6 16.4 52.3 14.9 Z" /> + android:fillColor="#eeeeee" + android:pathData="M 28.3 14.9 L 5.7 0.7 C 3.2 -0.8 0 1 0 3.9 L 0 32.3 C 0 35.2 3.2 37 5.7 35.4 L 28.3 21.2 C 30.6 19.8 30.6 16.4 28.3 14.9 Z" /> @@ -45,78 +44,78 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/res/drawable/anim_skip.xml b/app/src/main/res/drawable/anim_skip.xml index 3dc6dad4..922216e8 100644 --- a/app/src/main/res/drawable/anim_skip.xml +++ b/app/src/main/res/drawable/anim_skip.xml @@ -1,5 +1,4 @@ - + android:fillColor="#eeeeee" + android:pathData="M 28.3 14.9 L 5.7 0.7 C 3.2 -0.8 0 1 0 3.9 L 0 32.3 C 0 35.2 3.2 37 5.7 35.4 L 28.3 21.2 C 30.6 19.8 30.6 16.4 28.3 14.9 Z" /> + android:fillColor="#eeeeee" + android:pathData="M 52.3 14.9 L 29.7 0.7 C 27.2 -0.8 24 1 24 3.9 L 24 32.3 C 24 35.2 27.2 37 29.7 35.4 L 52.3 21.2 C 54.6 19.8 54.6 16.4 52.3 14.9 Z" /> + android:fillColor="#eeeeee" + android:pathData="M 28.3 14.9 L 5.7 0.7 C 3.2 -0.8 0 1 0 3.9 L 0 32.3 C 0 35.2 3.2 37 5.7 35.4 L 28.3 21.2 C 30.6 19.8 30.6 16.4 28.3 14.9 Z" /> @@ -45,78 +44,78 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/res/drawable/anim_splash.xml b/app/src/main/res/drawable/anim_splash.xml index f841df4f..987094b3 100644 --- a/app/src/main/res/drawable/anim_splash.xml +++ b/app/src/main/res/drawable/anim_splash.xml @@ -1,5 +1,4 @@ - + android:pathData="M 384 128.04 C 329.836 127.869 276.99 144.889 233.11 176.638 C 189.23 208.387 156.539 253.255 139.769 304.75 C 122.999 356.244 122.999 411.756 139.769 463.25 C 156.539 514.745 189.23 559.613 233.11 591.362 C 276.99 623.111 329.836 640.131 384 639.96 C 451.869 639.96 517.028 612.974 565.019 564.991 C 613.01 517.008 640 451.859 640 384 C 640 316.141 613.01 250.992 565.019 203.009 C 517.028 155.026 451.869 128.04 384 128.04 Z" /> + android:pathData="M 128 128 L 640 128 L 640 639.96 L 128 639.96 Z" + android:strokeWidth="1" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" + android:strokeWidth="1" /> @@ -43,12 +42,12 @@ android:rotation="-90"> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" /> + android:pathData="M 384 211.74 C 338.331 211.74 294.486 229.901 262.194 262.194 C 229.901 294.486 211.74 338.331 211.74 384 C 211.74 429.669 229.901 473.514 262.194 505.806 C 294.486 538.099 338.331 556.26 384 556.26 C 429.669 556.26 473.514 538.099 505.806 505.806 C 538.099 473.514 556.26 429.669 556.26 384 C 556.26 338.331 538.099 294.486 505.806 262.194 C 473.514 229.901 429.669 211.74 384 211.74 Z" /> + android:pathData="M 128 128 L 128 463.26 C 151.32 466.96 175.23 468.89 199.58 468.89 C 411.17 468.89 588.92 323.99 639.01 128 L 128 128 Z" + android:strokeWidth="1" /> + android:scaleY="1.2" /> + android:pathData="M 539.28 128 C 503.71 317.07 337.72 460.12 138.31 460.12 C 134.86 460.12 131.42 460.06 128 459.98 L 128 465.73 C 168.23 476.19 210.43 481.78 253.93 481.78 C 409.53 481.78 548.48 410.55 640 298.94 L 640 128.01 L 539.28 128.01 Z" + android:strokeWidth="1" /> @@ -100,9 +99,9 @@ android:translateX="-360"> + android:pathData="M 481.82 384 C 481.82 438.03 438.02 481.82 384 481.82 L 0 481.82 L 0 286.18 L 384 286.18 C 438.02 286.18 481.82 329.98 481.82 384 Z" + android:strokeWidth="1" /> + android:pathData="M 44.26 128 C 44.26 174.25 81.75 211.74 128 211.74 L 384 211.74 C 479.13 211.74 556.26 288.86 556.26 384 C 556.26 479.13 479.14 556.26 384 556.26 L 128 556.26 C 81.76 556.26 44.28 593.73 44.26 639.97 L 768 639.97 L 768 128 L 44.26 128 Z" + android:strokeWidth="1" /> + android:scaleY="3"> + android:fillColor="#efe7ff" + android:pathData="M 442 366.7 L 365.98 322.81 C 352.66 315.12 336.02 324.73 336.02 340.11 L 336.02 427.89 C 336.02 443.27 352.67 452.88 365.98 445.19 L 442 401.3 C 455.32 393.61 455.32 374.39 442 366.7 Z" + android:strokeWidth="1" /> @@ -138,19 +137,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -158,177 +157,177 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -336,19 +335,19 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> @@ -356,21 +355,21 @@ + android:valueType="floatType" /> + android:valueType="floatType" /> diff --git a/app/src/main/res/drawable/bottom_nav.xml b/app/src/main/res/drawable/bottom_nav.xml index b42dd3ce..560d286d 100644 --- a/app/src/main/res/drawable/bottom_nav.xml +++ b/app/src/main/res/drawable/bottom_nav.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_nav_gray.xml b/app/src/main/res/drawable/bottom_nav_gray.xml index b42dd3ce..560d286d 100644 --- a/app/src/main/res/drawable/bottom_nav_gray.xml +++ b/app/src/main/res/drawable/bottom_nav_gray.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/card_outline.xml b/app/src/main/res/drawable/card_outline.xml index 70356674..ad2e9253 100644 --- a/app/src/main/res/drawable/card_outline.xml +++ b/app/src/main/res/drawable/card_outline.xml @@ -1,15 +1,19 @@ - + - - + + - + - - + + diff --git a/app/src/main/res/drawable/ic_anilist.xml b/app/src/main/res/drawable/ic_anilist.xml index adc02990..14223c58 100644 --- a/app/src/main/res/drawable/ic_anilist.xml +++ b/app/src/main/res/drawable/ic_anilist.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="23.97"> + diff --git a/app/src/main/res/drawable/ic_bmc_button.xml b/app/src/main/res/drawable/ic_bmc_button.xml index 4d403248..938f6344 100644 --- a/app/src/main/res/drawable/ic_bmc_button.xml +++ b/app/src/main/res/drawable/ic_bmc_button.xml @@ -1,23 +1,71 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_check.xml b/app/src/main/res/drawable/ic_check.xml index f97e17d5..e54f6657 100644 --- a/app/src/main/res/drawable/ic_check.xml +++ b/app/src/main/res/drawable/ic_check.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="960" android:viewportHeight="960"> - + diff --git a/app/src/main/res/drawable/ic_circle_add.xml b/app/src/main/res/drawable/ic_circle_add.xml index 4f65263e..ae35e921 100644 --- a/app/src/main/res/drawable/ic_circle_add.xml +++ b/app/src/main/res/drawable/ic_circle_add.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_circle_cancel.xml b/app/src/main/res/drawable/ic_circle_cancel.xml index 72bb239b..e92bf6aa 100644 --- a/app/src/main/res/drawable/ic_circle_cancel.xml +++ b/app/src/main/res/drawable/ic_circle_cancel.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_circle_check.xml b/app/src/main/res/drawable/ic_circle_check.xml index ea65d8d2..86bd6bdc 100644 --- a/app/src/main/res/drawable/ic_circle_check.xml +++ b/app/src/main/res/drawable/ic_circle_check.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_dantotsu_round.xml b/app/src/main/res/drawable/ic_dantotsu_round.xml index 5b43bb34..bff8123c 100644 --- a/app/src/main/res/drawable/ic_dantotsu_round.xml +++ b/app/src/main/res/drawable/ic_dantotsu_round.xml @@ -3,40 +3,39 @@ android:height="768dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - - - - - - + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_discord.xml b/app/src/main/res/drawable/ic_discord.xml index 5aead85f..38c7d759 100644 --- a/app/src/main/res/drawable/ic_discord.xml +++ b/app/src/main/res/drawable/ic_discord.xml @@ -3,9 +3,9 @@ android:height="24dp" android:viewportWidth="500" android:viewportHeight="500"> - + diff --git a/app/src/main/res/drawable/ic_download_24.xml b/app/src/main/res/drawable/ic_download_24.xml index dd79e4cc..8c8a51d7 100644 --- a/app/src/main/res/drawable/ic_download_24.xml +++ b/app/src/main/res/drawable/ic_download_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_extension.xml b/app/src/main/res/drawable/ic_extension.xml index 386c47bf..66263c43 100644 --- a/app/src/main/res/drawable/ic_extension.xml +++ b/app/src/main/res/drawable/ic_extension.xml @@ -1,35 +1,35 @@ - + - + - + - + + C421.979,233.961,409.193,221.176,393.479,221.176z" /> diff --git a/app/src/main/res/drawable/ic_github.xml b/app/src/main/res/drawable/ic_github.xml index 215402e6..acf374f9 100644 --- a/app/src/main/res/drawable/ic_github.xml +++ b/app/src/main/res/drawable/ic_github.xml @@ -1,4 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_incognito_24.xml b/app/src/main/res/drawable/ic_incognito_24.xml index 752403ad..2dd40925 100644 --- a/app/src/main/res/drawable/ic_incognito_24.xml +++ b/app/src/main/res/drawable/ic_incognito_24.xml @@ -1,6 +1,12 @@ - - + + android:strokeWidth="1" + android:strokeColor="#00000000" /> diff --git a/app/src/main/res/drawable/ic_internet.xml b/app/src/main/res/drawable/ic_internet.xml index e7b4b2cc..3b7123a0 100644 --- a/app/src/main/res/drawable/ic_internet.xml +++ b/app/src/main/res/drawable/ic_internet.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_launcher_alpha_background.xml b/app/src/main/res/drawable/ic_launcher_alpha_background.xml index 9a302d01..1696d662 100644 --- a/app/src/main/res/drawable/ic_launcher_alpha_background.xml +++ b/app/src/main/res/drawable/ic_launcher_alpha_background.xml @@ -3,23 +3,22 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - - - + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_alpha_foreground.xml b/app/src/main/res/drawable/ic_launcher_alpha_foreground.xml index f19b9a98..389bdb23 100644 --- a/app/src/main/res/drawable/ic_launcher_alpha_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_alpha_foreground.xml @@ -3,20 +3,19 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 0b330624..0ac58521 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -3,28 +3,27 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - - - + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_beta_background.xml b/app/src/main/res/drawable/ic_launcher_beta_background.xml index 657fc674..47711abd 100644 --- a/app/src/main/res/drawable/ic_launcher_beta_background.xml +++ b/app/src/main/res/drawable/ic_launcher_beta_background.xml @@ -3,28 +3,27 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - - - + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_beta_foreground.xml b/app/src/main/res/drawable/ic_launcher_beta_foreground.xml index f19b9a98..389bdb23 100644 --- a/app/src/main/res/drawable/ic_launcher_beta_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_beta_foreground.xml @@ -3,20 +3,19 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml index f19b9a98..389bdb23 100644 --- a/app/src/main/res/drawable/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -3,20 +3,19 @@ android:height="108dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - - + + + + + + diff --git a/app/src/main/res/drawable/ic_myanimelist.xml b/app/src/main/res/drawable/ic_myanimelist.xml index d12a8ddb..54dc60bf 100644 --- a/app/src/main/res/drawable/ic_myanimelist.xml +++ b/app/src/main/res/drawable/ic_myanimelist.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_page_numbering.xml b/app/src/main/res/drawable/ic_page_numbering.xml index 05081892..8d95bcee 100644 --- a/app/src/main/res/drawable/ic_page_numbering.xml +++ b/app/src/main/res/drawable/ic_page_numbering.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_palette.xml b/app/src/main/res/drawable/ic_palette.xml index 581c3ba9..fa171f15 100644 --- a/app/src/main/res/drawable/ic_palette.xml +++ b/app/src/main/res/drawable/ic_palette.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_pin.xml b/app/src/main/res/drawable/ic_pin.xml index ecb8624f..cb5bac6f 100644 --- a/app/src/main/res/drawable/ic_pin.xml +++ b/app/src/main/res/drawable/ic_pin.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="960" android:viewportHeight="960"> - + diff --git a/app/src/main/res/drawable/ic_round_accessible_forward_24.xml b/app/src/main/res/drawable/ic_round_accessible_forward_24.xml index d50cad13..a2113566 100644 --- a/app/src/main/res/drawable/ic_round_accessible_forward_24.xml +++ b/app/src/main/res/drawable/ic_round_accessible_forward_24.xml @@ -1,14 +1,14 @@ - - + android:viewportWidth="24" + android:viewportHeight="24"> + + diff --git a/app/src/main/res/drawable/ic_round_add_circle_24.xml b/app/src/main/res/drawable/ic_round_add_circle_24.xml index 1906afe5..85175feb 100644 --- a/app/src/main/res/drawable/ic_round_add_circle_24.xml +++ b/app/src/main/res/drawable/ic_round_add_circle_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_add_circle_outline_24.xml b/app/src/main/res/drawable/ic_round_add_circle_outline_24.xml index 28bd03ff..18876e35 100644 --- a/app/src/main/res/drawable/ic_round_add_circle_outline_24.xml +++ b/app/src/main/res/drawable/ic_round_add_circle_outline_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_alpha_t_box_24.xml b/app/src/main/res/drawable/ic_round_alpha_t_box_24.xml index f9aaabc1..d02b36b6 100644 --- a/app/src/main/res/drawable/ic_round_alpha_t_box_24.xml +++ b/app/src/main/res/drawable/ic_round_alpha_t_box_24.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:pathData="M9,7V9H11V17H13V9H15V7H9M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z" /> diff --git a/app/src/main/res/drawable/ic_round_amp_stories_24.xml b/app/src/main/res/drawable/ic_round_amp_stories_24.xml index 7e2e61ba..9782f0e3 100644 --- a/app/src/main/res/drawable/ic_round_amp_stories_24.xml +++ b/app/src/main/res/drawable/ic_round_amp_stories_24.xml @@ -1,7 +1,16 @@ - - - - + + + + diff --git a/app/src/main/res/drawable/ic_round_animation_24.xml b/app/src/main/res/drawable/ic_round_animation_24.xml index 8851c082..31fabc2a 100644 --- a/app/src/main/res/drawable/ic_round_animation_24.xml +++ b/app/src/main/res/drawable/ic_round_animation_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_arrow_back_ios_new_24.xml b/app/src/main/res/drawable/ic_round_arrow_back_ios_new_24.xml index adb433ef..fa21b705 100644 --- a/app/src/main/res/drawable/ic_round_arrow_back_ios_new_24.xml +++ b/app/src/main/res/drawable/ic_round_arrow_back_ios_new_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_art_track_24.xml b/app/src/main/res/drawable/ic_round_art_track_24.xml index 66353a48..821e38b0 100644 --- a/app/src/main/res/drawable/ic_round_art_track_24.xml +++ b/app/src/main/res/drawable/ic_round_art_track_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_audiotrack_24.xml b/app/src/main/res/drawable/ic_round_audiotrack_24.xml index 20ed3ccf..acbb5ff5 100644 --- a/app/src/main/res/drawable/ic_round_audiotrack_24.xml +++ b/app/src/main/res/drawable/ic_round_audiotrack_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_auto_awesome_24.xml b/app/src/main/res/drawable/ic_round_auto_awesome_24.xml index 1c769838..e38f2303 100644 --- a/app/src/main/res/drawable/ic_round_auto_awesome_24.xml +++ b/app/src/main/res/drawable/ic_round_auto_awesome_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_book_24.xml b/app/src/main/res/drawable/ic_round_book_24.xml index 3ab0b826..34c687f8 100644 --- a/app/src/main/res/drawable/ic_round_book_24.xml +++ b/app/src/main/res/drawable/ic_round_book_24.xml @@ -4,7 +4,7 @@ android:tint="?attr/colorControlNormal" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_brightness_4_24.xml b/app/src/main/res/drawable/ic_round_brightness_4_24.xml index 565dcceb..32a6f0a7 100644 --- a/app/src/main/res/drawable/ic_round_brightness_4_24.xml +++ b/app/src/main/res/drawable/ic_round_brightness_4_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_brightness_auto_24.xml b/app/src/main/res/drawable/ic_round_brightness_auto_24.xml index af592824..d12cc1fb 100644 --- a/app/src/main/res/drawable/ic_round_brightness_auto_24.xml +++ b/app/src/main/res/drawable/ic_round_brightness_auto_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_brightness_high_24.xml b/app/src/main/res/drawable/ic_round_brightness_high_24.xml index 00d43502..751ddc60 100644 --- a/app/src/main/res/drawable/ic_round_brightness_high_24.xml +++ b/app/src/main/res/drawable/ic_round_brightness_high_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_brightness_medium_24.xml b/app/src/main/res/drawable/ic_round_brightness_medium_24.xml index 74e246e1..3d8a9d27 100644 --- a/app/src/main/res/drawable/ic_round_brightness_medium_24.xml +++ b/app/src/main/res/drawable/ic_round_brightness_medium_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_calendar_today_24.xml b/app/src/main/res/drawable/ic_round_calendar_today_24.xml index 04e95cdb..f2bcf666 100644 --- a/app/src/main/res/drawable/ic_round_calendar_today_24.xml +++ b/app/src/main/res/drawable/ic_round_calendar_today_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_cast_24.xml b/app/src/main/res/drawable/ic_round_cast_24.xml index c0e072f5..1a6d14df 100644 --- a/app/src/main/res/drawable/ic_round_cast_24.xml +++ b/app/src/main/res/drawable/ic_round_cast_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_close_24.xml b/app/src/main/res/drawable/ic_round_close_24.xml index 6059f359..7836f6bf 100644 --- a/app/src/main/res/drawable/ic_round_close_24.xml +++ b/app/src/main/res/drawable/ic_round_close_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_collections_bookmark_24.xml b/app/src/main/res/drawable/ic_round_collections_bookmark_24.xml index 6109c4cd..8c4fb6a0 100644 --- a/app/src/main/res/drawable/ic_round_collections_bookmark_24.xml +++ b/app/src/main/res/drawable/ic_round_collections_bookmark_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_color_24.xml b/app/src/main/res/drawable/ic_round_color_24.xml index 2d430c16..1ad382e5 100644 --- a/app/src/main/res/drawable/ic_round_color_24.xml +++ b/app/src/main/res/drawable/ic_round_color_24.xml @@ -1,10 +1,10 @@ + android:viewportHeight="24"> + android:pathData="M12 3a9 9 0 0 0 0 18c0.83 0 1.5-0.67 1.5-1.5c0-0.39-0.15-0.74-0.39-1.01c-0.23-0.26-0.38-0.61-0.38-0.99c0-0.83 0.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5c0-4.42-4.03-8-9-8zm-5.5 9c-0.83 0-1.5-0.67-1.5-1.5S5.67 9 6.5 9S8 9.67 8 10.5S7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5 0.67 1.5 1.5S10.33 8 9.5 8zm5 0c-0.83 0-1.5-0.67-1.5-1.5S13.67 5 14.5 5s1.5 0.67 1.5 1.5S15.33 8 14.5 8zm3 4c-0.83 0-1.5-0.67-1.5-1.5S16.67 9 17.5 9s1.5 0.67 1.5 1.5s-0.67 1.5-1.5 1.5z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_round_color_picker_24.xml b/app/src/main/res/drawable/ic_round_color_picker_24.xml index b18b2010..c4e79808 100644 --- a/app/src/main/res/drawable/ic_round_color_picker_24.xml +++ b/app/src/main/res/drawable/ic_round_color_picker_24.xml @@ -1,5 +1,10 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_round_date_range_24.xml b/app/src/main/res/drawable/ic_round_date_range_24.xml index ccabff08..d393cbc8 100644 --- a/app/src/main/res/drawable/ic_round_date_range_24.xml +++ b/app/src/main/res/drawable/ic_round_date_range_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_delete_24.xml b/app/src/main/res/drawable/ic_round_delete_24.xml index 9dd59ef9..4a978d76 100644 --- a/app/src/main/res/drawable/ic_round_delete_24.xml +++ b/app/src/main/res/drawable/ic_round_delete_24.xml @@ -1,4 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_dns_24.xml b/app/src/main/res/drawable/ic_round_dns_24.xml index a43abccb..adb315f1 100644 --- a/app/src/main/res/drawable/ic_round_dns_24.xml +++ b/app/src/main/res/drawable/ic_round_dns_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_dots_vertical_24.xml b/app/src/main/res/drawable/ic_round_dots_vertical_24.xml index db5b6d10..9f9d4f5c 100644 --- a/app/src/main/res/drawable/ic_round_dots_vertical_24.xml +++ b/app/src/main/res/drawable/ic_round_dots_vertical_24.xml @@ -1,7 +1,13 @@ - - + + android:strokeWidth="2" + android:strokeColor="#000000" + android:strokeLineCap="round" + android:strokeLineJoin="round" /> diff --git a/app/src/main/res/drawable/ic_round_edit_note_24.xml b/app/src/main/res/drawable/ic_round_edit_note_24.xml index e3635672..a2fdf236 100644 --- a/app/src/main/res/drawable/ic_round_edit_note_24.xml +++ b/app/src/main/res/drawable/ic_round_edit_note_24.xml @@ -1,10 +1,10 @@ + android:viewportHeight="24"> + android:pathData="M14,11c0,0.55 -0.45,1 -1,1H4c-0.55,0 -1,-0.45 -1,-1s0.45,-1 1,-1h9C13.55,10 14,10.45 14,11zM3,7c0,0.55 0.45,1 1,1h9c0.55,0 1,-0.45 1,-1s-0.45,-1 -1,-1H4C3.45,6 3,6.45 3,7zM10,15c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1s0.45,1 1,1h5C9.55,16 10,15.55 10,15zM18.01,12.87l0.71,-0.71c0.39,-0.39 1.02,-0.39 1.41,0l0.71,0.71c0.39,0.39 0.39,1.02 0,1.41l-0.71,0.71L18.01,12.87zM17.3,13.58l-5.16,5.16C12.05,18.83 12,18.95 12,19.09v1.41c0,0.28 0.22,0.5 0.5,0.5h1.41c0.13,0 0.26,-0.05 0.35,-0.15l5.16,-5.16L17.3,13.58z" /> diff --git a/app/src/main/res/drawable/ic_round_equal_24.xml b/app/src/main/res/drawable/ic_round_equal_24.xml index ed114340..8fd70fd5 100644 --- a/app/src/main/res/drawable/ic_round_equal_24.xml +++ b/app/src/main/res/drawable/ic_round_equal_24.xml @@ -1,13 +1,13 @@ - - + android:viewportHeight="24"> + + diff --git a/app/src/main/res/drawable/ic_round_fast_forward_24.xml b/app/src/main/res/drawable/ic_round_fast_forward_24.xml index ad3ea31c..a8227be8 100644 --- a/app/src/main/res/drawable/ic_round_fast_forward_24.xml +++ b/app/src/main/res/drawable/ic_round_fast_forward_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_fast_rewind_24.xml b/app/src/main/res/drawable/ic_round_fast_rewind_24.xml index 87580957..0e5fba57 100644 --- a/app/src/main/res/drawable/ic_round_fast_rewind_24.xml +++ b/app/src/main/res/drawable/ic_round_fast_rewind_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_favorite_24.xml b/app/src/main/res/drawable/ic_round_favorite_24.xml index a046b08a..9a1dabd7 100644 --- a/app/src/main/res/drawable/ic_round_favorite_24.xml +++ b/app/src/main/res/drawable/ic_round_favorite_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_favorite_border_24.xml b/app/src/main/res/drawable/ic_round_favorite_border_24.xml index 1cff7203..c4c445ed 100644 --- a/app/src/main/res/drawable/ic_round_favorite_border_24.xml +++ b/app/src/main/res/drawable/ic_round_favorite_border_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_filter_24.xml b/app/src/main/res/drawable/ic_round_filter_24.xml index 103f0771..dcc324b1 100644 --- a/app/src/main/res/drawable/ic_round_filter_24.xml +++ b/app/src/main/res/drawable/ic_round_filter_24.xml @@ -1,12 +1,27 @@ - - - - + + + + diff --git a/app/src/main/res/drawable/ic_round_filter_alt_24.xml b/app/src/main/res/drawable/ic_round_filter_alt_24.xml index 3f74d40d..41bf1423 100644 --- a/app/src/main/res/drawable/ic_round_filter_alt_24.xml +++ b/app/src/main/res/drawable/ic_round_filter_alt_24.xml @@ -1,9 +1,9 @@ + android:viewportHeight="24"> diff --git a/app/src/main/res/drawable/ic_round_font_size_24.xml b/app/src/main/res/drawable/ic_round_font_size_24.xml index 9b961072..1ca4feb0 100644 --- a/app/src/main/res/drawable/ic_round_font_size_24.xml +++ b/app/src/main/res/drawable/ic_round_font_size_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_format_text_24.xml b/app/src/main/res/drawable/ic_round_format_text_24.xml index 0446eeec..f4e9d5f1 100644 --- a/app/src/main/res/drawable/ic_round_format_text_24.xml +++ b/app/src/main/res/drawable/ic_round_format_text_24.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:pathData="M18.5,4L19.66,8.35L18.7,8.61C18.25,7.74 17.79,6.87 17.26,6.43C16.73,6 16.11,6 15.5,6H13V16.5C13,17 13,17.5 13.33,17.75C13.67,18 14.33,18 15,18V19H9V18C9.67,18 10.33,18 10.67,17.75C11,17.5 11,17 11,16.5V6H8.5C7.89,6 7.27,6 6.74,6.43C6.21,6.87 5.75,7.74 5.3,8.61L4.34,8.35L5.5,4H18.5Z" /> diff --git a/app/src/main/res/drawable/ic_round_fullscreen_24.xml b/app/src/main/res/drawable/ic_round_fullscreen_24.xml index 0dbedfee..e0911662 100644 --- a/app/src/main/res/drawable/ic_round_fullscreen_24.xml +++ b/app/src/main/res/drawable/ic_round_fullscreen_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_grid_view_24.xml b/app/src/main/res/drawable/ic_round_grid_view_24.xml index 0cc8636c..b289c173 100644 --- a/app/src/main/res/drawable/ic_round_grid_view_24.xml +++ b/app/src/main/res/drawable/ic_round_grid_view_24.xml @@ -1,19 +1,19 @@ - - - - + android:viewportHeight="24"> + + + + diff --git a/app/src/main/res/drawable/ic_round_heart_broken_24.xml b/app/src/main/res/drawable/ic_round_heart_broken_24.xml index 2659dfaa..778d822f 100644 --- a/app/src/main/res/drawable/ic_round_heart_broken_24.xml +++ b/app/src/main/res/drawable/ic_round_heart_broken_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_help_24.xml b/app/src/main/res/drawable/ic_round_help_24.xml index 4339edf2..1492de1b 100644 --- a/app/src/main/res/drawable/ic_round_help_24.xml +++ b/app/src/main/res/drawable/ic_round_help_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_high_quality_24.xml b/app/src/main/res/drawable/ic_round_high_quality_24.xml index 4dc95e69..3cc38ff6 100644 --- a/app/src/main/res/drawable/ic_round_high_quality_24.xml +++ b/app/src/main/res/drawable/ic_round_high_quality_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_home_24.xml b/app/src/main/res/drawable/ic_round_home_24.xml index f8cd095e..178a340f 100644 --- a/app/src/main/res/drawable/ic_round_home_24.xml +++ b/app/src/main/res/drawable/ic_round_home_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_import_contacts_24.xml b/app/src/main/res/drawable/ic_round_import_contacts_24.xml index 6fe25938..8d3e1f18 100644 --- a/app/src/main/res/drawable/ic_round_import_contacts_24.xml +++ b/app/src/main/res/drawable/ic_round_import_contacts_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_info_24.xml b/app/src/main/res/drawable/ic_round_info_24.xml index 0a8acfba..1a4e0e1a 100644 --- a/app/src/main/res/drawable/ic_round_info_24.xml +++ b/app/src/main/res/drawable/ic_round_info_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_lock_24.xml b/app/src/main/res/drawable/ic_round_lock_24.xml index f1c6a2d8..68cb9c1f 100644 --- a/app/src/main/res/drawable/ic_round_lock_24.xml +++ b/app/src/main/res/drawable/ic_round_lock_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_lock_open_24.xml b/app/src/main/res/drawable/ic_round_lock_open_24.xml index def7919b..e6f86a87 100644 --- a/app/src/main/res/drawable/ic_round_lock_open_24.xml +++ b/app/src/main/res/drawable/ic_round_lock_open_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_movie_filter_24.xml b/app/src/main/res/drawable/ic_round_movie_filter_24.xml index c32b03bb..249da899 100644 --- a/app/src/main/res/drawable/ic_round_movie_filter_24.xml +++ b/app/src/main/res/drawable/ic_round_movie_filter_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_new_releases_24.xml b/app/src/main/res/drawable/ic_round_new_releases_24.xml index 8e8d522d..84aaf39f 100644 --- a/app/src/main/res/drawable/ic_round_new_releases_24.xml +++ b/app/src/main/res/drawable/ic_round_new_releases_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_no_icon_24.xml b/app/src/main/res/drawable/ic_round_no_icon_24.xml index dd5404b1..7d477485 100644 --- a/app/src/main/res/drawable/ic_round_no_icon_24.xml +++ b/app/src/main/res/drawable/ic_round_no_icon_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="960" android:viewportHeight="960"> - + diff --git a/app/src/main/res/drawable/ic_round_notifications_active_24.xml b/app/src/main/res/drawable/ic_round_notifications_active_24.xml index 232999af..bdc6eb3f 100644 --- a/app/src/main/res/drawable/ic_round_notifications_active_24.xml +++ b/app/src/main/res/drawable/ic_round_notifications_active_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_notifications_none_24.xml b/app/src/main/res/drawable/ic_round_notifications_none_24.xml index ea20d697..b0b760a5 100644 --- a/app/src/main/res/drawable/ic_round_notifications_none_24.xml +++ b/app/src/main/res/drawable/ic_round_notifications_none_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_nsfw_24.xml b/app/src/main/res/drawable/ic_round_nsfw_24.xml index 7672c9c0..3fc1b114 100644 --- a/app/src/main/res/drawable/ic_round_nsfw_24.xml +++ b/app/src/main/res/drawable/ic_round_nsfw_24.xml @@ -1,7 +1,19 @@ - - - - - + + + + + diff --git a/app/src/main/res/drawable/ic_round_pause_24.xml b/app/src/main/res/drawable/ic_round_pause_24.xml index a5e498b5..f2d913f9 100644 --- a/app/src/main/res/drawable/ic_round_pause_24.xml +++ b/app/src/main/res/drawable/ic_round_pause_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_person_24.xml b/app/src/main/res/drawable/ic_round_person_24.xml index ee8540d5..4cecf074 100644 --- a/app/src/main/res/drawable/ic_round_person_24.xml +++ b/app/src/main/res/drawable/ic_round_person_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_photo_size_select_actual_24.xml b/app/src/main/res/drawable/ic_round_photo_size_select_actual_24.xml index d70b496c..7e6cafeb 100644 --- a/app/src/main/res/drawable/ic_round_photo_size_select_actual_24.xml +++ b/app/src/main/res/drawable/ic_round_photo_size_select_actual_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_picture_in_picture_alt_24.xml b/app/src/main/res/drawable/ic_round_picture_in_picture_alt_24.xml index 3a0d3952..e462dd7a 100644 --- a/app/src/main/res/drawable/ic_round_picture_in_picture_alt_24.xml +++ b/app/src/main/res/drawable/ic_round_picture_in_picture_alt_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_play_arrow_24.xml b/app/src/main/res/drawable/ic_round_play_arrow_24.xml index 2e399476..ab37f2d4 100644 --- a/app/src/main/res/drawable/ic_round_play_arrow_24.xml +++ b/app/src/main/res/drawable/ic_round_play_arrow_24.xml @@ -3,7 +3,7 @@ android:height="48dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_play_circle_24.xml b/app/src/main/res/drawable/ic_round_play_circle_24.xml index 3f3648d3..b1ce9ce8 100644 --- a/app/src/main/res/drawable/ic_round_play_circle_24.xml +++ b/app/src/main/res/drawable/ic_round_play_circle_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_play_disabled_24.xml b/app/src/main/res/drawable/ic_round_play_disabled_24.xml index 586c403f..263ea42d 100644 --- a/app/src/main/res/drawable/ic_round_play_disabled_24.xml +++ b/app/src/main/res/drawable/ic_round_play_disabled_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_playlist_add_24.xml b/app/src/main/res/drawable/ic_round_playlist_add_24.xml index 82a08b0a..5a62dbee 100644 --- a/app/src/main/res/drawable/ic_round_playlist_add_24.xml +++ b/app/src/main/res/drawable/ic_round_playlist_add_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_playlist_play_24.xml b/app/src/main/res/drawable/ic_round_playlist_play_24.xml index 4c2be06e..28e28432 100644 --- a/app/src/main/res/drawable/ic_round_playlist_play_24.xml +++ b/app/src/main/res/drawable/ic_round_playlist_play_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_reader_settings.xml b/app/src/main/res/drawable/ic_round_reader_settings.xml index ff787a1d..99ddb251 100644 --- a/app/src/main/res/drawable/ic_round_reader_settings.xml +++ b/app/src/main/res/drawable/ic_round_reader_settings.xml @@ -1,13 +1,13 @@ - - + android:viewportHeight="24"> + + diff --git a/app/src/main/res/drawable/ic_round_refresh_24.xml b/app/src/main/res/drawable/ic_round_refresh_24.xml index 5cdbeb07..9a9c070c 100644 --- a/app/src/main/res/drawable/ic_round_refresh_24.xml +++ b/app/src/main/res/drawable/ic_round_refresh_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_remove_red_eye_24.xml b/app/src/main/res/drawable/ic_round_remove_red_eye_24.xml index a3e222a2..cc9f66f1 100644 --- a/app/src/main/res/drawable/ic_round_remove_red_eye_24.xml +++ b/app/src/main/res/drawable/ic_round_remove_red_eye_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_restaurant_24.xml b/app/src/main/res/drawable/ic_round_restaurant_24.xml index 3a35f604..ea504ef0 100644 --- a/app/src/main/res/drawable/ic_round_restaurant_24.xml +++ b/app/src/main/res/drawable/ic_round_restaurant_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_screen_rotation_alt_24.xml b/app/src/main/res/drawable/ic_round_screen_rotation_alt_24.xml index 95be8605..3aa71172 100644 --- a/app/src/main/res/drawable/ic_round_screen_rotation_alt_24.xml +++ b/app/src/main/res/drawable/ic_round_screen_rotation_alt_24.xml @@ -3,10 +3,10 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - - + + diff --git a/app/src/main/res/drawable/ic_round_sd_card_24.xml b/app/src/main/res/drawable/ic_round_sd_card_24.xml index 38e95527..83fcd2b0 100644 --- a/app/src/main/res/drawable/ic_round_sd_card_24.xml +++ b/app/src/main/res/drawable/ic_round_sd_card_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_search_24.xml b/app/src/main/res/drawable/ic_round_search_24.xml index c1818d50..ac66e573 100644 --- a/app/src/main/res/drawable/ic_round_search_24.xml +++ b/app/src/main/res/drawable/ic_round_search_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_settings_24.xml b/app/src/main/res/drawable/ic_round_settings_24.xml index 0cb6c021..a0b70cd7 100644 --- a/app/src/main/res/drawable/ic_round_settings_24.xml +++ b/app/src/main/res/drawable/ic_round_settings_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_share_24.xml b/app/src/main/res/drawable/ic_round_share_24.xml index 17f4f4a9..97d628ec 100644 --- a/app/src/main/res/drawable/ic_round_share_24.xml +++ b/app/src/main/res/drawable/ic_round_share_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_skip_next_24.xml b/app/src/main/res/drawable/ic_round_skip_next_24.xml index 7437d8db..adbdcacc 100644 --- a/app/src/main/res/drawable/ic_round_skip_next_24.xml +++ b/app/src/main/res/drawable/ic_round_skip_next_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_skip_previous_24.xml b/app/src/main/res/drawable/ic_round_skip_previous_24.xml index 4b0219e8..1faf6ed5 100644 --- a/app/src/main/res/drawable/ic_round_skip_previous_24.xml +++ b/app/src/main/res/drawable/ic_round_skip_previous_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_slow_motion_video_24.xml b/app/src/main/res/drawable/ic_round_slow_motion_video_24.xml index c1c015bb..40349756 100644 --- a/app/src/main/res/drawable/ic_round_slow_motion_video_24.xml +++ b/app/src/main/res/drawable/ic_round_slow_motion_video_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_sort_24.xml b/app/src/main/res/drawable/ic_round_sort_24.xml index f48f3f55..81fc9b1d 100644 --- a/app/src/main/res/drawable/ic_round_sort_24.xml +++ b/app/src/main/res/drawable/ic_round_sort_24.xml @@ -1,11 +1,10 @@ - + android:viewportHeight="256"> + diff --git a/app/src/main/res/drawable/ic_round_source_24.xml b/app/src/main/res/drawable/ic_round_source_24.xml index 95e5d40e..cc2644a4 100644 --- a/app/src/main/res/drawable/ic_round_source_24.xml +++ b/app/src/main/res/drawable/ic_round_source_24.xml @@ -3,7 +3,7 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_round_space_bar_24.xml b/app/src/main/res/drawable/ic_round_space_bar_24.xml index e6d420a7..de7c507e 100644 --- a/app/src/main/res/drawable/ic_round_space_bar_24.xml +++ b/app/src/main/res/drawable/ic_round_space_bar_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_star_24.xml b/app/src/main/res/drawable/ic_round_star_24.xml index b95abceb..26dffcc2 100644 --- a/app/src/main/res/drawable/ic_round_star_24.xml +++ b/app/src/main/res/drawable/ic_round_star_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_straighten_24.xml b/app/src/main/res/drawable/ic_round_straighten_24.xml index 9dec197d..71422db5 100644 --- a/app/src/main/res/drawable/ic_round_straighten_24.xml +++ b/app/src/main/res/drawable/ic_round_straighten_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_subtitles_24.xml b/app/src/main/res/drawable/ic_round_subtitles_24.xml index 1effb287..93945230 100644 --- a/app/src/main/res/drawable/ic_round_subtitles_24.xml +++ b/app/src/main/res/drawable/ic_round_subtitles_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_swipe_down_alt_24.xml b/app/src/main/res/drawable/ic_round_swipe_down_alt_24.xml index 5b3dd7b5..820f5193 100644 --- a/app/src/main/res/drawable/ic_round_swipe_down_alt_24.xml +++ b/app/src/main/res/drawable/ic_round_swipe_down_alt_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_swipe_up_alt_24.xml b/app/src/main/res/drawable/ic_round_swipe_up_alt_24.xml index 65e04cdf..c32e08f4 100644 --- a/app/src/main/res/drawable/ic_round_swipe_up_alt_24.xml +++ b/app/src/main/res/drawable/ic_round_swipe_up_alt_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_swipe_vertical_24.xml b/app/src/main/res/drawable/ic_round_swipe_vertical_24.xml index 8d6d9721..fba9c503 100644 --- a/app/src/main/res/drawable/ic_round_swipe_vertical_24.xml +++ b/app/src/main/res/drawable/ic_round_swipe_vertical_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_sync_24.xml b/app/src/main/res/drawable/ic_round_sync_24.xml index 0ea3056c..4c6094a0 100644 --- a/app/src/main/res/drawable/ic_round_sync_24.xml +++ b/app/src/main/res/drawable/ic_round_sync_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_touch_app_24.xml b/app/src/main/res/drawable/ic_round_touch_app_24.xml index 7b31bd4a..3a955dc7 100644 --- a/app/src/main/res/drawable/ic_round_touch_app_24.xml +++ b/app/src/main/res/drawable/ic_round_touch_app_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_translate_24.xml b/app/src/main/res/drawable/ic_round_translate_24.xml index 4cfe3379..cdf42d68 100644 --- a/app/src/main/res/drawable/ic_round_translate_24.xml +++ b/app/src/main/res/drawable/ic_round_translate_24.xml @@ -1,7 +1,13 @@ - - + + android:strokeWidth="2" + android:strokeColor="#000000" + android:strokeLineCap="round" + android:strokeLineJoin="round" /> diff --git a/app/src/main/res/drawable/ic_round_translate_variant_24.xml b/app/src/main/res/drawable/ic_round_translate_variant_24.xml index 02aae753..5d46a22e 100644 --- a/app/src/main/res/drawable/ic_round_translate_variant_24.xml +++ b/app/src/main/res/drawable/ic_round_translate_variant_24.xml @@ -5,5 +5,5 @@ android:viewportHeight="24"> + android:pathData="M11 1H3C1.9 1 1 1.9 1 3V15L4 12H9V11C9 8.8 10.79 7 13 7V3C13 1.9 12.1 1 11 1M11 4L9.5 4C9.16 5.19 8.54 6.3 7.68 7.26L7.66 7.28L8.92 8.53L8.55 9.54L7 8L4.5 10.5L3.81 9.77L6.34 7.28C5.72 6.59 5.22 5.82 4.86 5H5.85C6.16 5.6 6.54 6.17 7 6.68C7.72 5.88 8.24 4.97 8.57 4L3 4V3H6.5V2H7.5V3H11V4M21 9H13C11.9 9 11 9.9 11 11V18C11 19.1 11.9 20 13 20H20L23 23V11C23 9.9 22.1 9 21 9M19.63 19L18.78 16.75H15.22L14.38 19H12.88L16.25 10H17.75L21.13 19H19.63M17 12L18.22 15.25H15.79L17 12Z" /> diff --git a/app/src/main/res/drawable/ic_round_video_library_24.xml b/app/src/main/res/drawable/ic_round_video_library_24.xml index 1062992a..0827f785 100644 --- a/app/src/main/res/drawable/ic_round_video_library_24.xml +++ b/app/src/main/res/drawable/ic_round_video_library_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_video_settings_24.xml b/app/src/main/res/drawable/ic_round_video_settings_24.xml index f94cfe71..40fed4ef 100644 --- a/app/src/main/res/drawable/ic_round_video_settings_24.xml +++ b/app/src/main/res/drawable/ic_round_video_settings_24.xml @@ -1,16 +1,16 @@ - - - + android:viewportHeight="24"> + + + diff --git a/app/src/main/res/drawable/ic_round_view_array_24.xml b/app/src/main/res/drawable/ic_round_view_array_24.xml index 537a3a15..266e92dd 100644 --- a/app/src/main/res/drawable/ic_round_view_array_24.xml +++ b/app/src/main/res/drawable/ic_round_view_array_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_view_column_24.xml b/app/src/main/res/drawable/ic_round_view_column_24.xml index 7d08338a..be3439b9 100644 --- a/app/src/main/res/drawable/ic_round_view_column_24.xml +++ b/app/src/main/res/drawable/ic_round_view_column_24.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/drawable/ic_round_view_comfy_24.xml b/app/src/main/res/drawable/ic_round_view_comfy_24.xml index 723e9e4f..cfae2258 100644 --- a/app/src/main/res/drawable/ic_round_view_comfy_24.xml +++ b/app/src/main/res/drawable/ic_round_view_comfy_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_view_list_24.xml b/app/src/main/res/drawable/ic_round_view_list_24.xml index 2ceb1b91..015d1235 100644 --- a/app/src/main/res/drawable/ic_round_view_list_24.xml +++ b/app/src/main/res/drawable/ic_round_view_list_24.xml @@ -1,11 +1,11 @@ - + android:viewportWidth="24" + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_round_volume_up_24.xml b/app/src/main/res/drawable/ic_round_volume_up_24.xml index 45216f95..f54e6893 100644 --- a/app/src/main/res/drawable/ic_round_volume_up_24.xml +++ b/app/src/main/res/drawable/ic_round_volume_up_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="24"> + diff --git a/app/src/main/res/drawable/ic_shuffle_24.xml b/app/src/main/res/drawable/ic_shuffle_24.xml index 2bd11b20..e3069b08 100644 --- a/app/src/main/res/drawable/ic_shuffle_24.xml +++ b/app/src/main/res/drawable/ic_shuffle_24.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_skip.xml b/app/src/main/res/drawable/ic_skip.xml index 93da1885..a62ff09c 100644 --- a/app/src/main/res/drawable/ic_skip.xml +++ b/app/src/main/res/drawable/ic_skip.xml @@ -3,10 +3,10 @@ android:height="36dp" android:viewportWidth="54" android:viewportHeight="36"> - - + + diff --git a/app/src/main/res/drawable/ic_sync.xml b/app/src/main/res/drawable/ic_sync.xml index 4ad75e53..90b95225 100644 --- a/app/src/main/res/drawable/ic_sync.xml +++ b/app/src/main/res/drawable/ic_sync.xml @@ -1,10 +1,10 @@ - + android:viewportHeight="960"> + diff --git a/app/src/main/res/drawable/ic_telegram.xml b/app/src/main/res/drawable/ic_telegram.xml index 4eb70297..4827df55 100644 --- a/app/src/main/res/drawable/ic_telegram.xml +++ b/app/src/main/res/drawable/ic_telegram.xml @@ -3,8 +3,8 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> - + diff --git a/app/src/main/res/drawable/ic_upi_icon.xml b/app/src/main/res/drawable/ic_upi_icon.xml index 8f28975b..f9549bee 100644 --- a/app/src/main/res/drawable/ic_upi_icon.xml +++ b/app/src/main/res/drawable/ic_upi_icon.xml @@ -1,8 +1,26 @@ - - - - - - + + + + + + diff --git a/app/src/main/res/drawable/item_ongoing.xml b/app/src/main/res/drawable/item_ongoing.xml index 716e3010..3bba934b 100644 --- a/app/src/main/res/drawable/item_ongoing.xml +++ b/app/src/main/res/drawable/item_ongoing.xml @@ -1,5 +1,7 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/item_score.xml b/app/src/main/res/drawable/item_score.xml index 4328f951..4aac5722 100644 --- a/app/src/main/res/drawable/item_score.xml +++ b/app/src/main/res/drawable/item_score.xml @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/item_type.xml b/app/src/main/res/drawable/item_type.xml index d69837e5..c87c1124 100644 --- a/app/src/main/res/drawable/item_type.xml +++ b/app/src/main/res/drawable/item_type.xml @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/item_user_score.xml b/app/src/main/res/drawable/item_user_score.xml index 9e105d7f..181dfe12 100644 --- a/app/src/main/res/drawable/item_user_score.xml +++ b/app/src/main/res/drawable/item_user_score.xml @@ -1,4 +1,4 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/linear_gradient_bg.xml b/app/src/main/res/drawable/linear_gradient_bg.xml index a711be1d..30260214 100644 --- a/app/src/main/res/drawable/linear_gradient_bg.xml +++ b/app/src/main/res/drawable/linear_gradient_bg.xml @@ -1,8 +1,8 @@ + android:type="linear" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/linear_gradient_black.xml b/app/src/main/res/drawable/linear_gradient_black.xml index dca6cc55..e719406d 100644 --- a/app/src/main/res/drawable/linear_gradient_black.xml +++ b/app/src/main/res/drawable/linear_gradient_black.xml @@ -1,8 +1,8 @@ + android:type="linear" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/linear_gradient_black_horizontal.xml b/app/src/main/res/drawable/linear_gradient_black_horizontal.xml index a99d7d81..f1d2f249 100644 --- a/app/src/main/res/drawable/linear_gradient_black_horizontal.xml +++ b/app/src/main/res/drawable/linear_gradient_black_horizontal.xml @@ -1,7 +1,7 @@ + android:type="linear" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/linear_gradient_nav.xml b/app/src/main/res/drawable/linear_gradient_nav.xml index f8e92642..2fdc24ba 100644 --- a/app/src/main/res/drawable/linear_gradient_nav.xml +++ b/app/src/main/res/drawable/linear_gradient_nav.xml @@ -1,8 +1,8 @@ + android:type="linear" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/mono.xml b/app/src/main/res/drawable/mono.xml index 5ce5966a..aa925d64 100644 --- a/app/src/main/res/drawable/mono.xml +++ b/app/src/main/res/drawable/mono.xml @@ -3,16 +3,15 @@ android:height="768dp" android:viewportWidth="768" android:viewportHeight="768"> - - - - - + + + + + diff --git a/app/src/main/res/drawable/monochrome.xml b/app/src/main/res/drawable/monochrome.xml index 6fd3cc32..471f459c 100644 --- a/app/src/main/res/drawable/monochrome.xml +++ b/app/src/main/res/drawable/monochrome.xml @@ -1,16 +1,16 @@ + android:viewportHeight="768"> + android:pathData="M125.71,125.71h516.58v516.58h-516.58z" /> + android:pathData="M44.26,128C44.26,173.48 80.53,210.4 125.71,211.63L125.71,128.01L642.29,128.01L642.29,639.97L768,639.97L768,128L44.26,128zM642.29,639.97L125.71,639.97L125.71,639.99L642.29,639.99L642.29,639.97zM125.71,639.97L125.71,556.38C80.54,557.6 44.28,594.5 44.26,639.97L125.71,639.97zM125.71,556.38C126.48,556.35 127.23,556.26 128,556.26L384,556.26C479.14,556.26 556.26,479.13 556.26,384C556.26,288.86 479.13,211.74 384,211.74L128,211.74C127.23,211.74 126.48,211.65 125.71,211.63L125.71,286.18L384,286.18C438.02,286.18 481.82,329.98 481.82,384C481.82,438.03 438.02,481.82 384,481.82L125.71,481.82L125.71,556.38zM125.71,481.82L125.71,286.18L0,286.18L0,481.82L125.71,481.82z" /> + android:pathData="m442,366.7l-76.02,-43.89c-13.32,-7.69 -29.96,1.92 -29.96,17.3v87.78c0,15.38 16.65,24.99 29.96,17.3l76.02,-43.89c13.32,-7.69 13.32,-26.91 0,-34.6Z" /> diff --git a/app/src/main/res/drawable/round_corner.xml b/app/src/main/res/drawable/round_corner.xml index e780a9b3..878a3dd0 100644 --- a/app/src/main/res/drawable/round_corner.xml +++ b/app/src/main/res/drawable/round_corner.xml @@ -1,5 +1,5 @@ - - - + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_top_incognito.xml b/app/src/main/res/drawable/rounded_top_incognito.xml index eb08a05d..c6ce5691 100644 --- a/app/src/main/res/drawable/rounded_top_incognito.xml +++ b/app/src/main/res/drawable/rounded_top_incognito.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_top_nav.xml b/app/src/main/res/drawable/rounded_top_nav.xml index 2871859a..f5a8425b 100644 --- a/app/src/main/res/drawable/rounded_top_nav.xml +++ b/app/src/main/res/drawable/rounded_top_nav.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_corner_16dp.xml b/app/src/main/res/drawable/shape_corner_16dp.xml index 9fadb5ae..5c0126c8 100644 --- a/app/src/main/res/drawable/shape_corner_16dp.xml +++ b/app/src/main/res/drawable/shape_corner_16dp.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/spinner_icon.xml b/app/src/main/res/drawable/spinner_icon.xml index f67fdfae..9e50e0f5 100644 --- a/app/src/main/res/drawable/spinner_icon.xml +++ b/app/src/main/res/drawable/spinner_icon.xml @@ -1,24 +1,24 @@ + android:paddingEnd="32dp" + android:paddingRight="0dp" + android:paddingMode="stack"> + android:gravity="end|center_vertical" + tools:ignore="UnusedAttribute" + tools:targetApi="m" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/spinner_icon_manga.xml b/app/src/main/res/drawable/spinner_icon_manga.xml index 26cd044e..da89f2f4 100644 --- a/app/src/main/res/drawable/spinner_icon_manga.xml +++ b/app/src/main/res/drawable/spinner_icon_manga.xml @@ -1,24 +1,24 @@ + android:paddingEnd="32dp" + android:paddingRight="0dp" + android:paddingMode="stack"> + android:gravity="end|center_vertical" + tools:ignore="UnusedAttribute" + tools:targetApi="m" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/ui_bg.xml b/app/src/main/res/drawable/ui_bg.xml index 9c0ea97f..d105a456 100644 --- a/app/src/main/res/drawable/ui_bg.xml +++ b/app/src/main/res/drawable/ui_bg.xml @@ -1,32 +1,32 @@ + android:paddingEnd="32dp" + android:paddingRight="0dp" + android:paddingMode="stack" + android:tint="?attr/colorSecondary"> + android:end="32dp" + android:gravity="end|center_vertical" + tools:ignore="UnusedAttribute" + tools:targetApi="m"> + android:toDegrees="180.0" /> \ No newline at end of file diff --git a/app/src/main/res/font/poppins_family.xml b/app/src/main/res/font/poppins_family.xml index 043cc85f..df36ea52 100644 --- a/app/src/main/res/font/poppins_family.xml +++ b/app/src/main/res/font/poppins_family.xml @@ -1,11 +1,11 @@ + app:fontWeight="400" /> + app:fontWeight="600" /> \ No newline at end of file diff --git a/app/src/main/res/layout-land/activity_media.xml b/app/src/main/res/layout-land/activity_media.xml index 08f6f37b..4c7dd397 100644 --- a/app/src/main/res/layout-land/activity_media.xml +++ b/app/src/main/res/layout-land/activity_media.xml @@ -3,8 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:orientation="horizontal" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:orientation="horizontal"> + app:itemTextColor="@color/tab_layout_icon" + app:menuGravity="center" /> @@ -173,7 +173,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" - app:contentScrim="?android:colorBackground" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" @@ -187,6 +186,7 @@ android:text="@string/slogan" android:textSize="16sp" android:transitionName="mediaTitle" + app:contentScrim="?android:colorBackground" tools:visibility="gone" /> @@ -315,13 +315,13 @@ android:src="@drawable/ic_round_close_24" tools:ignore="ContentDescription" /> + - + android:paddingTop="16dp" + android:visibility="gone"> diff --git a/app/src/main/res/layout/activity_author.xml b/app/src/main/res/layout/activity_author.xml index 24e7acbb..76566c0f 100644 --- a/app/src/main/res/layout/activity_author.xml +++ b/app/src/main/res/layout/activity_author.xml @@ -1,15 +1,15 @@ + android:layout_height="wrap_content" + android:background="?attr/colorSurface"> diff --git a/app/src/main/res/layout/activity_character.xml b/app/src/main/res/layout/activity_character.xml index 63d92ef0..1bcdea25 100644 --- a/app/src/main/res/layout/activity_character.xml +++ b/app/src/main/res/layout/activity_character.xml @@ -27,6 +27,7 @@ app:layout_collapseMode="parallax" tools:ignore="ContentDescription,ImageContrastCheck" tools:srcCompat="@tools:sample/backgrounds/scenic[0]" /> + + app:layout_anchor="@id/characterTitle" + app:layout_anchorGravity="center_horizontal"> + android:layout_height="match_parent" + android:paddingTop="32dp" /> diff --git a/app/src/main/res/layout/activity_exoplayer.xml b/app/src/main/res/layout/activity_exoplayer.xml index 6f9ad795..473e92cf 100644 --- a/app/src/main/res/layout/activity_exoplayer.xml +++ b/app/src/main/res/layout/activity_exoplayer.xml @@ -12,6 +12,5 @@ android:gravity="center" app:animation_enabled="false" app:resize_mode="fit" - app:show_buffering="when_playing"> - + app:show_buffering="when_playing"> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_extensions.xml b/app/src/main/res/layout/activity_extensions.xml index f4611599..c5f884b1 100644 --- a/app/src/main/res/layout/activity_extensions.xml +++ b/app/src/main/res/layout/activity_extensions.xml @@ -27,8 +27,7 @@ android:layout_height="wrap_content" app:cardBackgroundColor="@color/nav_bg_inv" app:cardCornerRadius="16dp" - app:cardElevation="0dp" - > + app:cardElevation="0dp"> @@ -47,7 +46,7 @@ + android:layout_weight="1" /> + app:srcCompat="@drawable/ic_round_translate_24" + app:tint="?attr/colorOnBackground" /> - + tools:ignore="UseCompoundDrawables"> @@ -76,11 +74,12 @@ android:layout_width="match_parent" android:layout_height="48dp" app:tabContentStart="32dp" + app:tabGravity="fill" app:tabMode="scrollable" app:tabPaddingEnd="16dp" app:tabPaddingStart="16dp" - app:tabTextAppearance="@style/NavBarText" - app:tabGravity="fill"/> + app:tabTextAppearance="@style/NavBarText" /> + - + android:layout_weight="1" + android:visibility="gone"> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_faq.xml b/app/src/main/res/layout/activity_faq.xml index d280e8a7..a46d0585 100644 --- a/app/src/main/res/layout/activity_faq.xml +++ b/app/src/main/res/layout/activity_faq.xml @@ -1,9 +1,9 @@ @@ -11,24 +11,24 @@ android:id="@+id/devsTitle2" android:layout_width="match_parent" android:layout_height="64dp" - android:paddingStart="32dp" android:layout_marginTop="16dp" - android:paddingEnd="64dp" android:fontFamily="@font/poppins" android:gravity="center" + android:paddingStart="32dp" + android:paddingEnd="64dp" android:text="@string/faq" android:textSize="20sp" android:textStyle="bold" - app:drawableTint="?attr/colorOnBackground" - app:drawableStartCompat="@drawable/ic_round_arrow_back_ios_new_24" /> + app:drawableStartCompat="@drawable/ic_round_arrow_back_ios_new_24" + app:drawableTint="?attr/colorOnBackground" /> + app:iconTint="?attr/colorOnPrimary" /> + + + app:srcCompat="@drawable/ic_shuffle_24" + app:tint="?attr/colorOnBackground" /> + app:srcCompat="@drawable/ic_round_sort_24" + app:tint="?attr/colorOnBackground" /> + + tools:ignore="SpeakableTextPresentCheck" /> + android:layout_height="match_parent" /> diff --git a/app/src/main/res/layout/activity_manga_reader.xml b/app/src/main/res/layout/activity_manga_reader.xml index b9ffade1..a4162b25 100644 --- a/app/src/main/res/layout/activity_manga_reader.xml +++ b/app/src/main/res/layout/activity_manga_reader.xml @@ -267,12 +267,12 @@ android:layout_height="wrap_content" android:layout_marginEnd="48dp" android:fontFamily="@font/poppins" - android:singleLine="false" - android:textColor="@color/bg_white" android:shadowColor="#000" android:shadowDx="1" android:shadowDy="1" android:shadowRadius="1" + android:singleLine="false" + android:textColor="@color/bg_white" android:textSize="12sp" tools:ignore="TextContrastCheck" tools:text="@string/popular_anime" /> @@ -361,8 +361,8 @@ app:labelStyle="@style/fontTooltip" app:thumbRadius="8dp" app:tickColor="#0000" - app:trackColorInactive="@color/grey_60" app:trackColorActive="?attr/colorPrimary" + app:trackColorInactive="@color/grey_60" app:trackHeight="2dp" /> diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml index d1e3a647..47ac2dca 100644 --- a/app/src/main/res/layout/activity_media.xml +++ b/app/src/main/res/layout/activity_media.xml @@ -84,8 +84,8 @@ android:scrollHorizontally="false" android:singleLine="false" android:text="@string/slogan" - android:textSize="16sp" android:textColor="?attr/colorOnBackground" + android:textSize="16sp" android:transitionName="mediaTitle" /> @@ -155,7 +155,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" - app:contentScrim="?android:colorBackground" android:background="?attr/colorSurface" android:ellipsize="marquee" android:focusable="true" @@ -170,6 +169,7 @@ android:text="@string/slogan" android:textSize="16sp" android:transitionName="mediaTitle" + app:contentScrim="?android:colorBackground" tools:visibility="gone" /> + app:layout_behavior="@string/appbar_scrolling_view_behavior"> @@ -315,12 +315,12 @@ tools:ignore="ContentDescription,ImageContrastCheck" tools:srcCompat="@tools:sample/backgrounds/scenic[2]" /> + - + android:paddingTop="16dp" + android:visibility="gone"> diff --git a/app/src/main/res/layout/activity_no_internet.xml b/app/src/main/res/layout/activity_no_internet.xml index eaeac199..25440a50 100644 --- a/app/src/main/res/layout/activity_no_internet.xml +++ b/app/src/main/res/layout/activity_no_internet.xml @@ -1,9 +1,9 @@ + - + android:layout_height="match_parent" + android:paddingTop="32dp"> diff --git a/app/src/main/res/layout/activity_novel_reader.xml b/app/src/main/res/layout/activity_novel_reader.xml index d3ab8b90..27bd87f7 100644 --- a/app/src/main/res/layout/activity_novel_reader.xml +++ b/app/src/main/res/layout/activity_novel_reader.xml @@ -176,8 +176,8 @@ app:labelStyle="@style/fontTooltip" app:thumbRadius="8dp" app:tickColor="#0000" - app:trackColorInactive="@color/grey_60" app:trackColorActive="?attr/colorPrimary" + app:trackColorInactive="@color/grey_60" app:trackHeight="2dp" /> @@ -301,7 +301,7 @@ + android:layout_height="wrap_content" + android:layout_gravity="center" /> diff --git a/app/src/main/res/layout/activity_player_settings.xml b/app/src/main/res/layout/activity_player_settings.xml index b22f81bd..8b76081c 100644 --- a/app/src/main/res/layout/activity_player_settings.xml +++ b/app/src/main/res/layout/activity_player_settings.xml @@ -1,9 +1,9 @@ @@ -73,333 +73,333 @@ android:clipToPadding="false" android:orientation="vertical"> - - - - -