├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── report_issue.yml
│ └── request_feature.yml
└── workflows
│ ├── bug_greetings.yml
│ ├── build.yml
│ ├── feature_greetings.yml
│ ├── pr_greetings.yml
│ └── publish_alpha.yml
├── .gitignore
├── .old-androidApp
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ ├── alpha
│ └── res
│ │ ├── mipmap-anydpi-v26
│ │ └── ic_banner.xml
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ └── ic_banner_foreground.png
│ │ ├── mipmap
│ │ ├── ic_background.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_foreground.png
│ │ ├── values-night
│ │ └── themes.xml
│ │ └── values
│ │ └── ic_banner_background.xml
│ ├── beta
│ └── res
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ └── ic_banner_foreground.png
│ │ ├── mipmap
│ │ ├── ic_background.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_foreground.png
│ │ └── values-night
│ │ └── themes.xml
│ ├── debug
│ ├── kotlin
│ │ └── com
│ │ │ └── mrboomdev
│ │ │ └── awery
│ │ │ └── AweryDebug.kt
│ └── res
│ │ └── drawable
│ │ ├── sample_banner.png
│ │ └── sample_poster.jpg
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ ├── filters.json
│ │ ├── icons.json
│ │ ├── repos.json
│ │ └── tabs_templates.json
│ ├── java
│ │ ├── com
│ │ │ └── mrboomdev
│ │ │ │ └── awery
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── app
│ │ │ │ ├── App.kt
│ │ │ │ ├── AweryLifecycle.kt
│ │ │ │ ├── AweryNotifications.java
│ │ │ │ ├── CrashHandler.kt
│ │ │ │ └── update
│ │ │ │ │ ├── UpdatesChannel.java
│ │ │ │ │ └── UpdatesManager.kt
│ │ │ │ ├── data
│ │ │ │ └── Constants.java
│ │ │ │ ├── extensions
│ │ │ │ ├── ExtensionSettings.java
│ │ │ │ └── support
│ │ │ │ │ ├── internal
│ │ │ │ │ ├── InternalManager.java
│ │ │ │ │ └── InternalProviders.java
│ │ │ │ │ └── yomi
│ │ │ │ │ ├── YomiManager.kt
│ │ │ │ │ ├── YomiProvider.java
│ │ │ │ │ └── YomiRepoItem.java
│ │ │ │ ├── ui
│ │ │ │ ├── mobile
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── EmptyStateView.kt
│ │ │ │ │ │ ├── ExpandableTextView.kt
│ │ │ │ │ │ └── GesturePreviewView.java
│ │ │ │ │ ├── dialogs
│ │ │ │ │ │ ├── BasePanelDialog.kt
│ │ │ │ │ │ ├── FiltersDialog.kt
│ │ │ │ │ │ ├── MediaActionsDialog.kt
│ │ │ │ │ │ ├── MediaBookmarkDialog.kt
│ │ │ │ │ │ └── TrackingDialog.kt
│ │ │ │ │ └── screens
│ │ │ │ │ │ ├── BrowserActivity.kt
│ │ │ │ │ │ ├── GalleryActivity.kt
│ │ │ │ │ │ ├── IntentHandlerActivity.kt
│ │ │ │ │ │ ├── LoginActivity.java
│ │ │ │ │ │ ├── SplashActivity.kt
│ │ │ │ │ │ ├── catalog
│ │ │ │ │ │ ├── MediaCatalogAdapter.java
│ │ │ │ │ │ ├── MediaCategoriesAdapter.kt
│ │ │ │ │ │ └── feeds
│ │ │ │ │ │ │ ├── FailedFeedViewHolder.kt
│ │ │ │ │ │ │ ├── FeedViewHolder.java
│ │ │ │ │ │ │ ├── FeedsFragment.java
│ │ │ │ │ │ │ ├── ListFeedViewHolder.kt
│ │ │ │ │ │ │ └── PagesFeedViewHolder.kt
│ │ │ │ │ │ ├── media
│ │ │ │ │ │ ├── MediaActivity.kt
│ │ │ │ │ │ ├── MediaCommentsFragment.java
│ │ │ │ │ │ ├── MediaInfoFragment.kt
│ │ │ │ │ │ ├── MediaPlayEpisodesAdapter.java
│ │ │ │ │ │ ├── MediaPlayFragment.kt
│ │ │ │ │ │ └── MediaRelationsFragment.kt
│ │ │ │ │ │ ├── player
│ │ │ │ │ │ ├── PlayerActivity.kt
│ │ │ │ │ │ ├── PlayerController.java
│ │ │ │ │ │ ├── PlayerGestures.java
│ │ │ │ │ │ └── PlayerPip.kt
│ │ │ │ │ │ ├── search
│ │ │ │ │ │ ├── MultiSearchActivity.java
│ │ │ │ │ │ └── SearchActivity.kt
│ │ │ │ │ │ ├── settings
│ │ │ │ │ │ ├── AboutActivity.kt
│ │ │ │ │ │ ├── SettingsActions.kt
│ │ │ │ │ │ ├── SettingsActivity.java
│ │ │ │ │ │ ├── SettingsAdapter.java
│ │ │ │ │ │ ├── SettingsDataHandler.java
│ │ │ │ │ │ └── TabsSettings.java
│ │ │ │ │ │ └── setup
│ │ │ │ │ │ ├── SetupActivity.kt
│ │ │ │ │ │ ├── SetupTabsAdapter.kt
│ │ │ │ │ │ └── SetupThemeAdapter.kt
│ │ │ │ └── tv
│ │ │ │ │ ├── TvMainActivity.kt
│ │ │ │ │ ├── components
│ │ │ │ │ ├── FeaturedMediaCarousel.kt
│ │ │ │ │ ├── FeedsGroup.kt
│ │ │ │ │ ├── MediaCard.kt
│ │ │ │ │ ├── MediaRow.kt
│ │ │ │ │ └── TvSetting.kt
│ │ │ │ │ └── screens
│ │ │ │ │ ├── PlayerScreen.kt
│ │ │ │ │ ├── SearchScreen.kt
│ │ │ │ │ ├── home
│ │ │ │ │ ├── HomeScreen.kt
│ │ │ │ │ └── HomeViewModel.kt
│ │ │ │ │ └── media
│ │ │ │ │ ├── MediaCommentsScreen.kt
│ │ │ │ │ ├── MediaEpisodesScreen.kt
│ │ │ │ │ ├── MediaInfoScreen.kt
│ │ │ │ │ ├── MediaRelationsScreen.kt
│ │ │ │ │ └── MediaScreen.kt
│ │ │ │ └── util
│ │ │ │ ├── IconStateful.kt
│ │ │ │ ├── MediaUtils.java
│ │ │ │ ├── NavUtils.kt
│ │ │ │ ├── NiceUtils.java
│ │ │ │ ├── Selection.java
│ │ │ │ ├── TabsTemplate.java
│ │ │ │ ├── WeakLazy.kt
│ │ │ │ ├── exceptions
│ │ │ │ ├── ExtensionNotInstalledException.java
│ │ │ │ ├── MaybeNotBadException.java
│ │ │ │ ├── OkiThrowableMessage.kt
│ │ │ │ └── TimeoutException.java
│ │ │ │ ├── extensions
│ │ │ │ ├── ActivityExtensions.kt
│ │ │ │ ├── AnyExtensions.kt
│ │ │ │ ├── ContextExtensions.kt
│ │ │ │ ├── DateExtensions.kt
│ │ │ │ ├── DialogExtensions.kt
│ │ │ │ ├── FragmentExtensions.kt
│ │ │ │ ├── IntentExtensions.kt
│ │ │ │ ├── MapExtensions.kt
│ │ │ │ ├── NumberExtensions.kt
│ │ │ │ ├── RxExtensions.kt
│ │ │ │ ├── StringExtensions.kt
│ │ │ │ └── ViewExtensions.kt
│ │ │ │ ├── io
│ │ │ │ ├── HttpClient.kt
│ │ │ │ └── ZipFile.kt
│ │ │ │ └── ui
│ │ │ │ ├── FadeTransformer.java
│ │ │ │ ├── RecyclerItemDecoration.java
│ │ │ │ ├── ViewUtil.java
│ │ │ │ ├── adapter
│ │ │ │ ├── DropdownAdapter.java
│ │ │ │ ├── DropdownBindingAdapter.java
│ │ │ │ ├── SimpleAdapter.java
│ │ │ │ └── SingleViewAdapter.java
│ │ │ │ ├── dialog
│ │ │ │ ├── BaseDialogBuilder.java
│ │ │ │ ├── DialogBuilder.java
│ │ │ │ ├── IconPickerDialog.java
│ │ │ │ └── SelectionDialog.java
│ │ │ │ ├── fields
│ │ │ │ ├── EditTextField.java
│ │ │ │ └── FancyField.java
│ │ │ │ └── markdown
│ │ │ │ ├── LinkifyPlugin.java
│ │ │ │ └── SpoilerPlugin.java
│ │ └── eu
│ │ │ └── kanade
│ │ │ └── tachiyomi
│ │ │ └── util
│ │ │ └── lang
│ │ │ └── CloseableExtensions.kt
│ ├── kotlin
│ │ └── com
│ │ │ └── mrboomdev
│ │ │ └── awery
│ │ │ ├── AweryCompatibility.kt
│ │ │ ├── app
│ │ │ ├── AweryLocales.kt
│ │ │ ├── services
│ │ │ │ └── BackupService.kt
│ │ │ └── theme
│ │ │ │ ├── MobileTheme.kt
│ │ │ │ ├── ThemeManager.kt
│ │ │ │ └── TvTheme.kt
│ │ │ └── platform
│ │ │ └── PlatformSettingHandler.kt
│ └── res
│ │ ├── anim
│ │ └── over_shoot.xml
│ │ ├── drawable
│ │ ├── anim_pause_to_play.xml
│ │ ├── anim_play_to_pause.xml
│ │ ├── gradient_linear_bg.xml
│ │ ├── gradient_linear_black.xml
│ │ ├── gradient_linear_horizontal_black.xml
│ │ ├── gradient_linear_nav.xml
│ │ ├── ic_add.xml
│ │ ├── ic_amp_stories_filled.xml
│ │ ├── ic_back.xml
│ │ ├── ic_block_outlined.xml
│ │ ├── ic_book.xml
│ │ ├── ic_book_filled.xml
│ │ ├── ic_book_outlined.xml
│ │ ├── ic_bookmark_filled.xml
│ │ ├── ic_bookmark_outlined.xml
│ │ ├── ic_brightness_medium_outlined.xml
│ │ ├── ic_chat_outlined.xml
│ │ ├── ic_check.xml
│ │ ├── ic_circle_cancel.xml
│ │ ├── ic_circle_check.xml
│ │ ├── ic_close.xml
│ │ ├── ic_collections_bookmark.xml
│ │ ├── ic_collections_bookmark_filled.xml
│ │ ├── ic_collections_bookmark_outlined.xml
│ │ ├── ic_contrast.xml
│ │ ├── ic_dark_mode_filled.xml
│ │ ├── ic_dark_mode_outlined.xml
│ │ ├── ic_delete_outlined.xml
│ │ ├── ic_discord.xml
│ │ ├── ic_dislike_filled.xml
│ │ ├── ic_dislike_outlined.xml
│ │ ├── ic_done.xml
│ │ ├── ic_download.xml
│ │ ├── ic_edit_outlined.xml
│ │ ├── ic_experiment_outlined.xml
│ │ ├── ic_extension_filled.xml
│ │ ├── ic_fast_forward_outlined.xml
│ │ ├── ic_favorite_outlined.xml
│ │ ├── ic_filter_list.xml
│ │ ├── ic_forum.xml
│ │ ├── ic_forum_filled.xml
│ │ ├── ic_forum_outlined.xml
│ │ ├── ic_fullscreen.xml
│ │ ├── ic_github.xml
│ │ ├── ic_home_filled.xml
│ │ ├── ic_home_outlined.xml
│ │ ├── ic_info.xml
│ │ ├── ic_info_filled.xml
│ │ ├── ic_info_outlined.xml
│ │ ├── ic_language.xml
│ │ ├── ic_like_filled.xml
│ │ ├── ic_like_outlined.xml
│ │ ├── ic_list.xml
│ │ ├── ic_lock_filled.xml
│ │ ├── ic_logout.xml
│ │ ├── ic_menu.xml
│ │ ├── ic_menu_book_filled.xml
│ │ ├── ic_minus.xml
│ │ ├── ic_more.xml
│ │ ├── ic_movie_filled.xml
│ │ ├── ic_movie_outlined.xml
│ │ ├── ic_notifications_outlined.xml
│ │ ├── ic_paint_filled.xml
│ │ ├── ic_paint_outlined.xml
│ │ ├── ic_palette_filled.xml
│ │ ├── ic_palette_outlined.xml
│ │ ├── ic_pinch_filled.xml
│ │ ├── ic_pip_outlined.xml
│ │ ├── ic_play.xml
│ │ ├── ic_play_filled.xml
│ │ ├── ic_play_outlined.xml
│ │ ├── ic_refresh.xml
│ │ ├── ic_round_alpha_t_box_24.xml
│ │ ├── ic_round_amp_stories_24.xml
│ │ ├── ic_round_audiotrack_24.xml
│ │ ├── ic_round_auto_awesome_24.xml
│ │ ├── ic_round_block_24.xml
│ │ ├── ic_round_brightness_high_24.xml
│ │ ├── ic_round_color_picker_24.xml
│ │ ├── ic_round_dots_vertical_24.xml
│ │ ├── ic_round_error_24.xml
│ │ ├── ic_round_fast_forward_24.xml
│ │ ├── ic_round_fast_rewind_24.xml
│ │ ├── ic_round_font_size_24.xml
│ │ ├── ic_round_grid_view_24.xml
│ │ ├── ic_round_help_24.xml
│ │ ├── ic_round_high_quality_24.xml
│ │ ├── ic_round_import_contacts_24.xml
│ │ ├── ic_round_menu_book_24.xml
│ │ ├── ic_round_movie_filter_24.xml
│ │ ├── ic_round_nsfw_24.xml
│ │ ├── ic_round_pause_24.xml
│ │ ├── ic_round_play_arrow_24.xml
│ │ ├── ic_round_play_disabled_24.xml
│ │ ├── ic_round_reader_settings.xml
│ │ ├── ic_round_remove_red_eye_24.xml
│ │ ├── ic_round_report.xml
│ │ ├── ic_round_screen_rotation_alt_24.xml
│ │ ├── ic_round_signal_no_internet_24.xml
│ │ ├── ic_round_skip_next_24.xml
│ │ ├── ic_round_skip_previous_24.xml
│ │ ├── ic_round_slow_motion_video_24.xml
│ │ ├── ic_round_star_24.xml
│ │ ├── ic_round_sync_24.xml
│ │ ├── ic_round_touch_app_24.xml
│ │ ├── ic_round_video_library_24.xml
│ │ ├── ic_round_video_settings_24.xml
│ │ ├── ic_round_view_array_24.xml
│ │ ├── ic_round_view_column_24.xml
│ │ ├── ic_round_volume_up_24.xml
│ │ ├── ic_schedule_filled.xml
│ │ ├── ic_search.xml
│ │ ├── ic_send_outlined.xml
│ │ ├── ic_settings_filled.xml
│ │ ├── ic_settings_outlined.xml
│ │ ├── ic_share_filled.xml
│ │ ├── ic_share_outlined.xml
│ │ ├── ic_sharp_dark_mode.xml
│ │ ├── ic_shuffle_24.xml
│ │ ├── ic_sort.xml
│ │ ├── ic_storage.xml
│ │ ├── ic_subtitles_filled.xml
│ │ ├── ic_subtitles_outlined.xml
│ │ ├── ic_swipe_right_filled.xml
│ │ ├── ic_swipe_up_filled.xml
│ │ ├── ic_sync.xml
│ │ ├── ic_telegram.xml
│ │ ├── ic_video_settings.xml
│ │ ├── ic_view_cozy.xml
│ │ ├── ic_volume_up_outlined.xml
│ │ ├── ic_zero.xml
│ │ ├── item_ongoing.xml
│ │ ├── item_score.xml
│ │ ├── item_type.xml
│ │ ├── item_user_score.xml
│ │ ├── logo_aniyomi.png
│ │ ├── logo_dantotsu.png
│ │ ├── logo_tachiyomi.jpg
│ │ ├── ripple_circle_white.xml
│ │ ├── ripple_rect_you.xml
│ │ ├── ripple_round_you.xml
│ │ ├── ui_bubble_navbar_background.xml
│ │ ├── ui_button_popup_background.xml
│ │ ├── ui_button_popup_foreground.xml
│ │ ├── ui_comment_send_background.xml
│ │ ├── ui_dialog_background.xml
│ │ ├── ui_gesture_background.xml
│ │ ├── ui_gesture_foreground.xml
│ │ └── ui_tv_tab_background.xml
│ │ ├── font
│ │ ├── century_gothic_bold.TTF
│ │ ├── century_gothic_regular.TTF
│ │ ├── poppins.ttf
│ │ ├── poppins_bold.ttf
│ │ ├── poppins_family.xml
│ │ ├── poppins_semi_bold.ttf
│ │ └── poppins_thin.ttf
│ │ ├── layout-land
│ │ ├── feed_featured_item.xml
│ │ ├── feed_featured_wrapper.xml
│ │ ├── layout_header_home.xml
│ │ ├── layout_media_details.xml
│ │ ├── media_details_overview_layout.xml
│ │ ├── screen_about.xml
│ │ ├── screen_main.xml
│ │ ├── screen_media_details.xml
│ │ └── screen_setup.xml
│ │ ├── layout
│ │ ├── feed_failed.xml
│ │ ├── feed_featured_item.xml
│ │ ├── feed_featured_wrapper.xml
│ │ ├── feed_list.xml
│ │ ├── grid_media_catalog.xml
│ │ ├── grid_simple_card.xml
│ │ ├── item_list_dropdown.xml
│ │ ├── item_list_episode.xml
│ │ ├── item_list_setting.xml
│ │ ├── layout_comments_header.xml
│ │ ├── layout_header_home.xml
│ │ ├── layout_header_search.xml
│ │ ├── layout_loading.xml
│ │ ├── layout_media_details.xml
│ │ ├── layout_tracking_options.xml
│ │ ├── layout_watch_variants.xml
│ │ ├── media_catalog_fragment.xml
│ │ ├── media_details_overview_layout.xml
│ │ ├── popup_media_actions.xml
│ │ ├── popup_media_bookmark.xml
│ │ ├── popup_simple_header.xml
│ │ ├── popup_simple_item.xml
│ │ ├── screen_about.xml
│ │ ├── screen_about_info.xml
│ │ ├── screen_browser.xml
│ │ ├── screen_feed.xml
│ │ ├── screen_main.xml
│ │ ├── screen_media_details.xml
│ │ ├── screen_player.xml
│ │ ├── screen_search.xml
│ │ ├── screen_settings.xml
│ │ ├── screen_setup.xml
│ │ ├── screen_splash.xml
│ │ ├── widget_circle_button.xml
│ │ ├── widget_comment.xml
│ │ ├── widget_comment_send.xml
│ │ ├── widget_dropdown.xml
│ │ ├── widget_edittext_outlined.xml
│ │ └── widget_icon_edittext.xml
│ │ ├── menu
│ │ ├── manga_menu_detail.xml
│ │ └── media_details_menu.xml
│ │ ├── mipmap-v26
│ │ ├── ic_banner.xml
│ │ └── ic_launcher.xml
│ │ ├── values-night
│ │ ├── colors.xml
│ │ └── themes.xml
│ │ ├── values
│ │ ├── attr.xml
│ │ ├── colors.xml
│ │ ├── dimen.xml
│ │ ├── font_certs.xml
│ │ ├── preloaded_fonts.xml
│ │ ├── style.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── network_security_config.xml
│ │ └── provider_paths.xml
│ ├── release
│ ├── kotlin
│ │ └── com
│ │ │ └── mrboomdev
│ │ │ └── awery
│ │ │ └── AweryDebug.kt
│ └── res
│ │ └── drawable
│ │ └── debug_stub.xml
│ └── stable
│ └── res
│ ├── mipmap-xhdpi
│ ├── ic_banner.png
│ └── ic_banner_foreground.png
│ └── mipmap
│ ├── ic_background.png
│ ├── ic_launcher.png
│ └── ic_launcher_foreground.png
├── .old-app
├── build.gradle.kts
└── src
│ ├── androidAlpha
│ └── res
│ │ ├── mipmap-anydpi-v26
│ │ └── ic_banner.xml
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ └── ic_banner_foreground.png
│ │ ├── mipmap
│ │ ├── ic_background.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_foreground.png
│ │ ├── values-night
│ │ └── themes.xml
│ │ └── values
│ │ └── ic_banner_background.xml
│ ├── androidBeta
│ └── res
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ └── ic_banner_foreground.png
│ │ ├── mipmap
│ │ ├── ic_background.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_foreground.png
│ │ └── values-night
│ │ └── themes.xml
│ ├── androidMain
│ ├── AndroidManifest.xml
│ ├── kotlin
│ │ └── com
│ │ │ └── mrboomdev
│ │ │ └── awery
│ │ │ ├── App.kt
│ │ │ └── MainActivity.kt
│ └── res
│ │ ├── mipmap-v26
│ │ ├── ic_banner.xml
│ │ └── ic_launcher.xml
│ │ ├── values
│ │ └── themes.xml
│ │ └── xml
│ │ └── provider_paths.xml
│ ├── androidStable
│ └── res
│ │ ├── mipmap-xhdpi
│ │ ├── ic_banner.png
│ │ └── ic_banner_foreground.png
│ │ └── mipmap
│ │ ├── ic_background.png
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_foreground.png
│ └── desktopMain
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── Main.kt
├── .old-buildSrc
├── build.gradle.kts
├── settings.gradle.kts
└── src
│ └── main
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── gradle
│ ├── GenerateConfigurationsTask.kt
│ ├── settings
│ ├── GenerateSettingsImpl.kt
│ └── GenerateSettingsTask.kt
│ └── util
│ ├── Json.kt
│ ├── PropertyUtils.kt
│ └── Xml.kt
├── .old-compat
├── .gitignore
├── build.gradle.kts
└── src
│ └── main
│ └── java
│ ├── android
│ ├── content
│ │ ├── Context.java
│ │ └── SharedPreferences.java
│ ├── net
│ │ └── Uri.java
│ └── widget
│ │ └── EditText.java
│ └── androidx
│ └── preference
│ ├── CheckBoxPreference.java
│ ├── DialogPreference.java
│ ├── EditTextPreference.java
│ ├── ListPreference.java
│ ├── MultiSelectListPreference.java
│ ├── Preference.java
│ ├── PreferenceScreen.java
│ ├── SwitchPreferenceCompat.java
│ └── TwoStatePreference.java
├── .old-desktopApp
├── .gitignore
├── build.gradle.kts
└── src
│ └── jvmMain
│ ├── kotlin
│ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── desktop
│ │ ├── Main.kt
│ │ └── ui
│ │ └── components
│ │ └── StatusBar.kt
│ └── resources
│ └── icon
│ ├── close.xml
│ ├── minimize.xml
│ └── select_window_2.xml
├── .old-ext
├── .gitignore
├── README.md
├── build.gradle.kts
├── platform
│ ├── .gitignore
│ ├── build.gradle.kts
│ └── src
│ │ └── main
│ │ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── ext
│ │ ├── AweryClient.kt
│ │ └── ResourcesProvider.kt
└── src
│ └── main
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── ext
│ ├── constants
│ ├── AgeRating.kt
│ └── AweryFilters.kt
│ ├── data
│ ├── CatalogComment.kt
│ ├── CatalogFeed.kt
│ ├── CatalogFile.kt
│ ├── CatalogMedia.kt
│ ├── CatalogSearchResults.kt
│ ├── CatalogTag.kt
│ ├── ExternalLink.kt
│ └── Setting.kt
│ ├── source
│ ├── AbstractSource.kt
│ ├── Context.kt
│ ├── Preferences.kt
│ ├── Source.kt
│ ├── SourcesManager.kt
│ └── module
│ │ ├── CatalogModule.kt
│ │ ├── CommentsModule.kt
│ │ ├── Module.kt
│ │ ├── NotificationsModule.kt
│ │ ├── ProfileModule.kt
│ │ ├── SettingsModule.kt
│ │ ├── StatusModule.kt
│ │ ├── SubtitlesModule.kt
│ │ ├── TrackerModule.kt
│ │ └── WatchModule.kt
│ └── util
│ ├── GlobalId.kt
│ ├── Image.kt
│ ├── LocaleAware.kt
│ ├── PendingTask.kt
│ ├── Progress.kt
│ └── exceptions
│ ├── ExtensionInstallException.kt
│ ├── ExtensionLoadException.kt
│ └── ZeroResultsException.kt
├── .old-shared
├── .gitignore
├── build.gradle.kts
└── src
│ ├── androidMain
│ ├── AndroidManifest.xml
│ └── kotlin
│ │ ├── com
│ │ └── mrboomdev
│ │ │ └── awery
│ │ │ ├── PlatformAliases.android.kt
│ │ │ ├── data
│ │ │ └── AweryDB.android.kt
│ │ │ ├── platform
│ │ │ ├── CrashHandler.android.kt
│ │ │ ├── ExecutorActivity.kt
│ │ │ ├── Platform.android.kt
│ │ │ ├── PlatformImage.android.kt
│ │ │ ├── PlatformPreferences.android.kt
│ │ │ └── PlatformResources.android.kt
│ │ │ ├── sources
│ │ │ ├── ExtensionsManager.android.kt
│ │ │ └── yomi
│ │ │ │ ├── YomiManager.kt
│ │ │ │ ├── YomiSource.kt
│ │ │ │ ├── aniyomi
│ │ │ │ ├── AniyomiManager.kt
│ │ │ │ ├── AniyomiMedia.kt
│ │ │ │ └── AniyomiSource.kt
│ │ │ │ └── tachiyomi
│ │ │ │ ├── TachiyomiManager.kt
│ │ │ │ ├── TachiyomiMedia.kt
│ │ │ │ └── TachiyomiSource.kt
│ │ │ ├── ui
│ │ │ ├── AweryRootAndroid.kt
│ │ │ ├── components
│ │ │ │ └── VideoPlayer.android.kt
│ │ │ └── utils
│ │ │ │ └── BackEffect.android.kt
│ │ │ └── utils
│ │ │ ├── ActivityUtils.kt
│ │ │ ├── ContextUtils.kt
│ │ │ ├── FileExtensions.kt
│ │ │ ├── IntentUtils.kt
│ │ │ ├── Logger.android.kt
│ │ │ └── WebViewClientCompat.kt
│ │ └── eu
│ │ └── kanade
│ │ └── tachiyomi
│ │ └── network
│ │ ├── JavaScriptEngine.android.kt
│ │ ├── NetworkHelper.android.kt
│ │ ├── PlatformCookieJar.kt
│ │ └── interceptor
│ │ ├── CloudflareInterceptor.kt
│ │ └── WebViewInterceptor.kt
│ ├── androidMobile
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── ui
│ │ ├── AweryRoot.android.kt
│ │ └── routes
│ │ └── MainRoute.android.kt
│ ├── androidTv
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── ui
│ │ ├── AweryRoot.android.kt
│ │ ├── routes
│ │ └── MainRoute.android.kt
│ │ └── screens
│ │ └── TvMainScreen.kt
│ ├── commonMain
│ └── kotlin
│ │ ├── com
│ │ └── mrboomdev
│ │ │ └── awery
│ │ │ ├── PlatformAliases.kt
│ │ │ ├── app
│ │ │ └── theme
│ │ │ │ └── AweryTheme.kt
│ │ │ ├── data
│ │ │ ├── AweryAppFilters.kt
│ │ │ ├── AweryDB.kt
│ │ │ ├── ContentType.kt
│ │ │ ├── dao
│ │ │ │ ├── ListDao.kt
│ │ │ │ ├── MediaDao.kt
│ │ │ │ ├── MediaProgressDao.kt
│ │ │ │ └── RepositoryDao.kt
│ │ │ ├── entity
│ │ │ │ ├── DBList.kt
│ │ │ │ ├── DBMedia.kt
│ │ │ │ ├── DBMediaProgress.kt
│ │ │ │ └── DBRepository.kt
│ │ │ └── settings
│ │ │ │ ├── ComposableSetting.kt
│ │ │ │ ├── InMemorySetting.kt
│ │ │ │ ├── PlatformSetting.kt
│ │ │ │ └── SettingsExtensions.kt
│ │ │ ├── generated
│ │ │ └── GeneratedSetting.kt
│ │ │ ├── platform
│ │ │ ├── CrashHandler.kt
│ │ │ ├── Platform.kt
│ │ │ ├── PlatformImage.kt
│ │ │ ├── PlatformPreferences.kt
│ │ │ ├── PlatformResources.kt
│ │ │ └── SettingHandler.kt
│ │ │ ├── sources
│ │ │ ├── ExtensionsManager.kt
│ │ │ ├── FeedLoader.kt
│ │ │ ├── SourcesSettingsFactory.kt
│ │ │ └── jvm
│ │ │ │ ├── JvmEntry.kt
│ │ │ │ └── JvmManager.kt
│ │ │ ├── ui
│ │ │ ├── AweryRoot.kt
│ │ │ ├── Themes.kt
│ │ │ ├── components
│ │ │ │ ├── Button.kt
│ │ │ │ ├── ExpandableText.kt
│ │ │ │ ├── Feed.kt
│ │ │ │ ├── Fitter.kt
│ │ │ │ ├── LargeCard.kt
│ │ │ │ ├── MaterialDialog.kt
│ │ │ │ ├── SettingsItem.kt
│ │ │ │ ├── SmallCard.kt
│ │ │ │ ├── StateBox.kt
│ │ │ │ └── VideoPlayer.kt
│ │ │ ├── navigation
│ │ │ │ ├── JetpackNavigation.kt
│ │ │ │ ├── NavigationExperience.kt
│ │ │ │ ├── NavigationRoute.kt
│ │ │ │ └── NavigationTemplates.kt
│ │ │ ├── pane
│ │ │ │ └── FeedsPane.kt
│ │ │ ├── routes
│ │ │ │ ├── MainRoute.kt
│ │ │ │ ├── MediaRoute.kt
│ │ │ │ ├── NotificationsRoute.kt
│ │ │ │ ├── PlayerRoute.kt
│ │ │ │ ├── ReaderRoute.kt
│ │ │ │ ├── Routes.kt
│ │ │ │ ├── SearchRoute.kt
│ │ │ │ ├── SettingsRoute.kt
│ │ │ │ ├── ThemeRoute.kt
│ │ │ │ └── WelcomeRoute.kt
│ │ │ ├── screens
│ │ │ │ ├── SplashScreen.kt
│ │ │ │ ├── player
│ │ │ │ │ ├── PlayerScreen.kt
│ │ │ │ │ └── PlayerViewModel.kt
│ │ │ │ └── settings
│ │ │ │ │ ├── SettingScreen.kt
│ │ │ │ │ └── SettingsScreen.kt
│ │ │ └── utils
│ │ │ │ ├── BackEffect.kt
│ │ │ │ ├── ComposeExtensions.kt
│ │ │ │ ├── InsetsController.kt
│ │ │ │ ├── NavType.kt
│ │ │ │ ├── ResultReceiver.kt
│ │ │ │ ├── ScrollFixer.kt
│ │ │ │ ├── Toast.kt
│ │ │ │ └── ViewModel.kt
│ │ │ └── utils
│ │ │ ├── CollectionUtils.kt
│ │ │ ├── ExtExtensions.kt
│ │ │ ├── ExtensionSdk.kt
│ │ │ ├── FileExtensions.kt
│ │ │ ├── Logger.kt
│ │ │ ├── NumberExtensions.kt
│ │ │ ├── SerializationUtils.kt
│ │ │ ├── StringExtensions.kt
│ │ │ ├── UniqueIdGenerator.kt
│ │ │ ├── Utils.kt
│ │ │ ├── Weak.kt
│ │ │ ├── annotations
│ │ │ ├── AweryExperimentalApi.kt
│ │ │ └── AweryInternalApi.kt
│ │ │ └── exceptions
│ │ │ ├── BotSecurityBypassException.kt
│ │ │ └── OkiThrowableMessage.kt
│ │ ├── eu
│ │ └── kanade
│ │ │ └── tachiyomi
│ │ │ ├── AppInfo.kt
│ │ │ ├── animesource
│ │ │ ├── AnimeCatalogueSource.kt
│ │ │ ├── AnimeSource.kt
│ │ │ ├── AnimeSourceFactory.kt
│ │ │ ├── ConfigurableAnimeSource.kt
│ │ │ ├── UnmeteredSource.kt
│ │ │ ├── model
│ │ │ │ ├── AnimeFilter.kt
│ │ │ │ ├── AnimeFilterList.kt
│ │ │ │ ├── AnimeUpdateStrategy.kt
│ │ │ │ ├── AnimesPage.kt
│ │ │ │ ├── SAnime.kt
│ │ │ │ ├── SEpisode.kt
│ │ │ │ └── Video.kt
│ │ │ └── online
│ │ │ │ ├── AnimeHttpSource.kt
│ │ │ │ └── ParsedAnimeHttpSource.kt
│ │ │ ├── network
│ │ │ ├── JavaScriptEngine.kt
│ │ │ ├── NetworkHelper.kt
│ │ │ ├── OkHttpExtensions.kt
│ │ │ ├── PlatformCookieJar.kt
│ │ │ ├── Progress.kt
│ │ │ ├── Requests.kt
│ │ │ └── interceptor
│ │ │ │ ├── RateLimitInterceptor.kt
│ │ │ │ ├── SpecificHostRateLimitInterceptor.kt
│ │ │ │ ├── UncaughtExceptionInterceptor.kt
│ │ │ │ └── UserAgentInterceptor.kt
│ │ │ ├── source
│ │ │ ├── CatalogueSource.kt
│ │ │ ├── ConfigurableSource.kt
│ │ │ ├── Source.kt
│ │ │ ├── SourceFactory.kt
│ │ │ ├── UnmeteredSource.kt
│ │ │ ├── model
│ │ │ │ ├── Filter.kt
│ │ │ │ ├── FilterList.kt
│ │ │ │ ├── MangasPage.kt
│ │ │ │ ├── Page.kt
│ │ │ │ ├── SChapter.kt
│ │ │ │ ├── SManga.kt
│ │ │ │ └── UpdateStrategy.kt
│ │ │ └── online
│ │ │ │ ├── HttpSource.kt
│ │ │ │ └── ParsedHttpSource.kt
│ │ │ └── util
│ │ │ ├── JsoupExtensions.kt
│ │ │ └── RxExtensions.kt
│ │ └── mihonx
│ │ ├── network
│ │ └── rateLimit.kt
│ │ ├── source
│ │ └── utils
│ │ │ └── preferences.kt
│ │ └── utils
│ │ └── json.kt
│ └── desktopMain
│ └── kotlin
│ ├── com
│ └── mrboomdev
│ │ └── awery
│ │ ├── PlatformAliases.desktop.kt
│ │ ├── data
│ │ └── AweryDB.desktop.kt
│ │ ├── platform
│ │ ├── CrashHandler.desktop.kt
│ │ ├── Platform.desktop.kt
│ │ ├── PlatformImage.desktop.kt
│ │ ├── PlatformPreferences.desktop.kt
│ │ └── PlatformResources.desktop.kt
│ │ ├── sources
│ │ └── ExtensionsManager.desktop.kt
│ │ ├── ui
│ │ ├── AweryRoot.desktop.kt
│ │ ├── components
│ │ │ └── VideoPlayer.desktop.kt
│ │ ├── routes
│ │ │ └── MainRoute.desktop.kt
│ │ ├── screens
│ │ │ └── BrowserScreen.kt
│ │ └── utils
│ │ │ └── BackEffect.desktop.kt
│ │ └── utils
│ │ └── Logger.desktop.kt
│ └── eu
│ └── kanade
│ └── tachiyomi
│ └── network
│ ├── JavaScriptEngine.desktop.kt
│ ├── NetworkHelper.desktop.kt
│ └── PlatformCookieJar.desktop.kt
├── .run
└── GenerateComposeResources.run.xml
├── LICENSE.md
├── README.md
├── app
├── build.gradle.kts
└── src
│ └── androidMain
│ ├── AndroidManifest.xml
│ ├── kotlin
│ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── app
│ │ ├── ApplicationImpl.kt
│ │ └── MainActivity.kt
│ └── res
│ ├── mipmap-v26
│ ├── ic_banner.xml
│ └── ic_launcher.xml
│ ├── mipmap-xhdpi
│ ├── ic_banner.png
│ └── ic_banner_foreground.png
│ ├── mipmap
│ ├── ic_background.png
│ ├── ic_launcher.png
│ └── ic_launcher_foreground.png
│ ├── resources.properties
│ ├── values-night
│ └── themes.xml
│ └── values
│ └── themes.xml
├── build.gradle.kts
├── compose-stability.txt
├── core
├── build.gradle.kts
└── src
│ ├── androidMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── core
│ │ └── Awery.android.kt
│ ├── commonMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── core
│ │ ├── Awery.kt
│ │ └── utils
│ │ └── StringUtils.kt
│ └── desktopMain
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── core
│ └── Awery.desktop.kt
├── data
├── build.gradle.kts
└── src
│ ├── androidMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── data
│ │ └── settings
│ │ └── Setting.android.kt
│ ├── commonMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── data
│ │ ├── gawaii
│ │ ├── AniyomiGawaii.kt
│ │ ├── CloudstreamGawaii.kt
│ │ ├── DantotsuGawaii.kt
│ │ ├── Gawaii.kt
│ │ └── MihonGawaii.kt
│ │ └── settings
│ │ ├── Delegate.kt
│ │ ├── Setting.kt
│ │ └── Settings.kt
│ └── desktopMain
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── data
│ └── settings
│ └── Setting.desktop.kt
├── docs
├── app_icon.png
├── banner.webp
└── screenshot1.jpg
├── extension
├── core-api
│ └── build.gradle.kts
├── loaders
│ ├── android-compat
│ │ ├── build.gradle.kts
│ │ └── src
│ │ │ ├── androidMain
│ │ │ └── kotlin
│ │ │ │ └── Aliases.android.kt
│ │ │ ├── commonMain
│ │ │ └── kotlin
│ │ │ │ └── Aliases.kt
│ │ │ └── desktopMain
│ │ │ └── kotlin
│ │ │ ├── Aliases.desktop.kt
│ │ │ └── android
│ │ │ └── content
│ │ │ └── Context.kt
│ ├── build.gradle.kts
│ └── src
│ │ └── commonMain
│ │ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── extension
│ │ └── loaders
│ │ └── ExtensionLoader.kt
└── platform-api
│ └── build.gradle.kts
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── resources
├── build.gradle.kts
└── src
│ └── commonMain
│ ├── composeResources
│ ├── drawable
│ │ ├── ic_amp_stories_filled.xml
│ │ ├── ic_back.xml
│ │ ├── ic_book_filled.xml
│ │ ├── ic_book_outlined.xml
│ │ ├── ic_bookmark_filled.xml
│ │ ├── ic_brightness_medium_outlined.xml
│ │ ├── ic_collections_bookmark_filled.xml
│ │ ├── ic_collections_bookmark_outlined.xml
│ │ ├── ic_download.xml
│ │ ├── ic_experiment_outlined.xml
│ │ ├── ic_extension_filled.xml
│ │ ├── ic_fast_forward_outlined.xml
│ │ ├── ic_fullscreen.xml
│ │ ├── ic_home_filled.xml
│ │ ├── ic_home_outlined.xml
│ │ ├── ic_info_filled.xml
│ │ ├── ic_language.xml
│ │ ├── ic_list.xml
│ │ ├── ic_movie_filled.xml
│ │ ├── ic_movie_outlined.xml
│ │ ├── ic_paint_filled.xml
│ │ ├── ic_pip_outlined.xml
│ │ ├── ic_play_filled.xml
│ │ ├── ic_search.xml
│ │ ├── ic_send_outlined.xml
│ │ ├── ic_settings_filled.xml
│ │ ├── ic_share_filled.xml
│ │ ├── ic_storage.xml
│ │ ├── ic_subtitles_filled.xml
│ │ ├── ic_swipe_up_filled.xml
│ │ ├── ic_sync.xml
│ │ ├── ic_video_settings.xml
│ │ ├── ic_view_cozy.xml
│ │ ├── logo_aniyomi.png
│ │ ├── logo_awery.png
│ │ ├── logo_dantotsu.png
│ │ └── logo_tachiyomi.jpg
│ ├── files
│ │ ├── app_settings.json
│ │ └── system_settings.json
│ ├── values-as
│ │ └── strings.xml
│ ├── values-bg
│ │ └── strings.xml
│ ├── values-bn
│ │ └── strings.xml
│ ├── values-cs
│ │ └── strings.xml
│ ├── values-da
│ │ └── strings.xml
│ ├── values-de
│ │ └── strings.xml
│ ├── values-el
│ │ └── strings.xml
│ ├── values-en-rIN
│ │ └── strings.xml
│ ├── values-es
│ │ └── strings.xml
│ ├── values-fil
│ │ └── strings.xml
│ ├── values-fr
│ │ └── strings.xml
│ ├── values-gu
│ │ └── strings.xml
│ ├── values-hi
│ │ └── strings.xml
│ ├── values-hu
│ │ └── strings.xml
│ ├── values-hy
│ │ └── strings.xml
│ ├── values-in
│ │ └── strings.xml
│ ├── values-it
│ │ └── strings.xml
│ ├── values-iw
│ │ └── strings.xml
│ ├── values-ja
│ │ └── strings.xml
│ ├── values-ko
│ │ └── strings.xml
│ ├── values-mr
│ │ └── strings.xml
│ ├── values-nl
│ │ └── strings.xml
│ ├── values-pl
│ │ └── strings.xml
│ ├── values-pt
│ │ └── strings.xml
│ ├── values-ro
│ │ └── strings.xml
│ ├── values-ru
│ │ └── strings.xml
│ ├── values-sa
│ │ └── strings.xml
│ ├── values-ta
│ │ └── strings.xml
│ ├── values-th
│ │ └── strings.xml
│ ├── values-tr
│ │ └── strings.xml
│ ├── values-vi
│ │ └── strings.xml
│ ├── values-zh-rCN
│ │ └── strings.xml
│ └── values
│ │ └── strings.xml
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── resources
│ └── Utils.kt
├── settings.gradle.kts
├── ui
├── build.gradle.kts
└── src
│ ├── androidMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── ui
│ │ ├── AweryTheme.android.kt
│ │ └── screens
│ │ └── main
│ │ └── MainScreen.android.kt
│ ├── commonMain
│ └── kotlin
│ │ └── com
│ │ └── mrboomdev
│ │ └── awery
│ │ └── ui
│ │ ├── App.kt
│ │ ├── AweryTheme.kt
│ │ ├── Navigation.kt
│ │ └── screens
│ │ └── main
│ │ ├── MainScreen.kt
│ │ ├── MainScreenTab.kt
│ │ └── MainScreenViewModel.kt
│ └── desktopMain
│ └── kotlin
│ └── com
│ └── mrboomdev
│ └── awery
│ └── ui
│ ├── AweryTheme.desktop.kt
│ └── screens
│ └── main
│ └── MainScreen.desktop.kt
└── workflowscripts
└── tel_parser.sed
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: 🧑💻 Awery Help on Discord
4 | url: https://discord.gg/yepfCz4pvW
5 | about: Get support, ask questions, and join the community discussions.
6 |
7 | - name: 📱 Awery Help on Telegram
8 | url: https://t.me/mrboomdev_awery
9 | about: Connect with the community, ask questions, and get help directly on Telegram.
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Gradle files
2 | .gradle/
3 | build/
4 |
5 | # Local configuration file (sdk path, etc)
6 | local.properties
7 |
8 | # Log/OS Files
9 | *.log
10 |
11 | # Android Studio generated files and folders
12 | captures/
13 | .externalNativeBuild/
14 | .cxx/
15 | *.apk
16 | output.json
17 |
18 | # IntelliJ
19 | *.iml
20 | .idea/
21 |
22 | # Keystore files
23 | *.jks
24 | *.keystore
25 |
26 | # Android Profiling
27 | *.hprof
28 |
29 | #other
30 | scripts/
31 | /.kotlin/
--------------------------------------------------------------------------------
/.old-androidApp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | /debug
3 | /debug/output-metadata.json
4 | /release
--------------------------------------------------------------------------------
/.old-androidApp/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | -dontwarn java.beans.*
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/alpha/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/alpha/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/alpha/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/alpha/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/alpha/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/alpha/res/values/ic_banner_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #111111
4 |
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/beta/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/beta/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/beta/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/beta/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/beta/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-androidApp/src/beta/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/debug/kotlin/com/mrboomdev/awery/AweryDebug.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | import com.mrboomdev.awery.R as RealR
4 |
5 | object AweryDebug {
6 | @Suppress("ClassName")
7 | object R {
8 | object drawable {
9 | val sample_banner
10 | get() = RealR.drawable.sample_banner
11 |
12 | val sample_poster
13 | get() = RealR.drawable.sample_poster
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/debug/res/drawable/sample_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/debug/res/drawable/sample_banner.png
--------------------------------------------------------------------------------
/.old-androidApp/src/debug/res/drawable/sample_poster.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/debug/res/drawable/sample_poster.jpg
--------------------------------------------------------------------------------
/.old-androidApp/src/main/assets/filters.json:
--------------------------------------------------------------------------------
1 | {
2 | "tags": [ "Tags", "Genres", "Genre", "Теги", "Жанр", "Generos", "Generi", "Selecionar Gêneros", "Gêneros" ],
3 | "type": [ "Categories", "Type", "Tipo", "Формат" ],
4 | "status": [ "Status", "Stato", "Статус тайтла" ],
5 | "year": [ "Year", "Date", "Anno di Uscita", "Ano" ],
6 | "authors": [ "Brands", "Producer", "Studios", "Studio", "Estudio", "Estúdios" ],
7 | "sort": [ "Sort by", "Sort", "Order", "Order by", "Ordenar por", "Сортировать по" ],
8 | "none": [ "", "" ]
9 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/assets/repos.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "type": "AweryJS",
4 | "title": "Awery - Official Repository",
5 | "url": "https://github.com/MrBoomDeveloper/AweryRepository"
6 | }
7 | ]
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/app/update/UpdatesChannel.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.app.update;
2 |
3 | public enum UpdatesChannel {
4 | STABLE, BETA, ALPHA
5 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/mobile/dialogs/TrackingDialog.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.mobile.dialogs
2 |
3 | import android.content.Context
4 | import com.mrboomdev.awery.ext.data.CatalogMedia
5 |
6 | class TrackingDialog(val media: CatalogMedia) {
7 |
8 | fun show(context: Context) {
9 |
10 | }
11 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/mobile/screens/settings/SettingsActions.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.mobile.screens.settings
2 |
3 | import com.mrboomdev.awery.app.AweryLifecycle.Companion.anyContext
4 | import com.mrboomdev.awery.data.settings.SettingsItem
5 | import com.mrboomdev.awery.data.settings.PlatformSetting
6 | import com.mrboomdev.awery.platform.PlatformSettingHandler
7 |
8 | @Deprecated(message = "old shit")
9 | object SettingsActions {
10 |
11 | @JvmStatic
12 | fun run(item: SettingsItem) {
13 | PlatformSettingHandler.handlePlatformClick(anyContext, PlatformSetting(
14 | key = item.key
15 | )
16 | )
17 | }
18 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/mobile/screens/settings/SettingsDataHandler.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.mobile.screens.settings;
2 |
3 | import com.mrboomdev.awery.data.settings.SettingsItem;
4 |
5 | public interface SettingsDataHandler {
6 | void onScreenLaunchRequest(SettingsItem item);
7 | void saveValue(SettingsItem item, Object newValue);
8 | Object restoreValue(SettingsItem item);
9 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/tv/components/TvSetting.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.tv.components
2 |
3 | class TvSetting
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/tv/screens/PlayerScreen.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.tv.screens
2 |
3 | import androidx.compose.runtime.Composable
4 |
5 | @Composable
6 | fun PlayerScreen() {
7 |
8 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/tv/screens/SearchScreen.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.tv.screens
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/tv/screens/media/MediaCommentsScreen.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.tv.screens.media
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.mrboomdev.awery.ext.data.CatalogMedia
5 |
6 | @Composable
7 | fun MediaCommentsScreen(media: CatalogMedia) {
8 |
9 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/ui/tv/screens/media/MediaRelationsScreen.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.tv.screens.media
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.mrboomdev.awery.ext.data.CatalogMedia
5 |
6 | @Composable
7 | fun MediaRelationsScreen(media: CatalogMedia) {
8 |
9 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/TabsTemplate.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util;
2 |
3 | import com.mrboomdev.awery.data.db.item.DBTab;
4 |
5 | import java.util.List;
6 |
7 | public class TabsTemplate {
8 | public String id, title, icon, description;
9 | public List tabs;
10 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/WeakLazy.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util
2 |
3 | import java.lang.ref.WeakReference
4 |
5 | /**
6 | * The actual value may be cleared at any time by the gc if there's no references left out in the whole process.
7 | * Then the specified initializer would be called again to restore the value.
8 | */
9 | class WeakLazy(val initializer: () -> T): Lazy {
10 | private var weakReference: WeakReference? = null
11 |
12 | private fun initValue(): T {
13 | val value = initializer()
14 | weakReference = WeakReference(value)
15 | return value
16 | }
17 |
18 | override val value: T
19 | get() = weakReference?.get() ?: initValue()
20 |
21 | override fun isInitialized(): Boolean {
22 | return weakReference?.get() != null
23 | }
24 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/exceptions/ExtensionNotInstalledException.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.exceptions;
2 |
3 | public class ExtensionNotInstalledException extends Exception {
4 | private final String extensionName;
5 |
6 | public ExtensionNotInstalledException(String extensionName) {
7 | super("Extension not installed! " + extensionName);
8 | this.extensionName = extensionName;
9 | }
10 |
11 | public ExtensionNotInstalledException(String extensionName, Throwable cause) {
12 | super("Extension not installed! " + extensionName, cause);
13 | this.extensionName = extensionName;
14 | }
15 |
16 | public String getExtensionName() {
17 | return extensionName;
18 | }
19 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/exceptions/MaybeNotBadException.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.exceptions;
2 |
3 | public interface MaybeNotBadException {
4 |
5 | boolean isBad();
6 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/exceptions/TimeoutException.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.exceptions;
2 |
3 | public class TimeoutException extends Exception {
4 |
5 | public TimeoutException(String name) {
6 | super(name);
7 | }
8 |
9 | public TimeoutException(Throwable t) {
10 | super(t);
11 | }
12 |
13 | public TimeoutException(String name, Throwable t) {
14 | super(name, t);
15 | }
16 |
17 | public TimeoutException() {
18 | super();
19 | }
20 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/extensions/AnyExtensions.kt:
--------------------------------------------------------------------------------
1 | @file:OptIn(ExperimentalContracts::class)
2 |
3 | package com.mrboomdev.awery.util.extensions
4 |
5 | import kotlin.contracts.ExperimentalContracts
6 | import kotlin.contracts.InvocationKind
7 | import kotlin.contracts.contract
8 |
9 | inline fun I.letWith(callback: I.() -> O): O {
10 | contract {
11 | callsInPlace(callback, InvocationKind.EXACTLY_ONCE)
12 | }
13 |
14 | return callback()
15 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/extensions/DateExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.extensions
2 |
3 | import java.util.Calendar
4 |
5 | fun Calendar.mutate(): Calendar {
6 | return Calendar.getInstance(timeZone).also {
7 | it.timeInMillis = timeInMillis
8 | }
9 | }
10 |
11 | fun Long.toCalendar(): Calendar {
12 | return Calendar.getInstance().apply {
13 | timeInMillis = this@toCalendar
14 | }
15 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/extensions/IntentExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.extensions
2 |
3 | import android.content.Intent
4 |
5 | fun Intent.toChooser(title: CharSequence) = Intent.createChooser(this, title)
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/extensions/NumberExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.extensions
2 |
3 | import android.content.res.ColorStateList
4 |
5 | fun Int.toColorState(): ColorStateList {
6 | return ColorStateList.valueOf(this)
7 | }
8 |
9 | operator fun Int?.plus(string: String): String {
10 | return toString() + string
11 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/ui/FadeTransformer.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.ui;
2 |
3 | import android.animation.ObjectAnimator;
4 | import android.view.View;
5 |
6 | import androidx.annotation.NonNull;
7 | import androidx.viewpager2.widget.ViewPager2;
8 |
9 | public class FadeTransformer implements ViewPager2.PageTransformer {
10 |
11 | @Override
12 | public void transformPage(@NonNull View page, float position) {
13 | if(position != 0) return;
14 |
15 | ObjectAnimator.ofFloat(page, "alpha", 0, 1)
16 | .setDuration(150)
17 | .start();
18 | }
19 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/java/com/mrboomdev/awery/util/ui/fields/FancyField.java:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.util.ui.fields;
2 |
3 | import android.view.View;
4 |
5 | public abstract class FancyField {
6 | private T view;
7 |
8 | public T getView() {
9 | return getView(true);
10 | }
11 |
12 | public T getView(boolean createIfDoesNotExist) {
13 | if(!createIfDoesNotExist) return view;
14 | return view != null ? view : (view = createView());
15 | }
16 |
17 | public boolean isCreated() {
18 | return view != null;
19 | }
20 |
21 | public abstract T createView();
22 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/main/kotlin/com/mrboomdev/awery/AweryCompatibility.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | import com.mrboomdev.awery.data.settings.NicePreferences
4 | import com.mrboomdev.awery.data.settings.SettingsItem
5 | import com.mrboomdev.awery.generated.GeneratedSetting
6 |
7 | fun GeneratedSetting.asDeprecatedSetting(): SettingsItem = NicePreferences.getSettingsMap().findItem(key)
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/anim/over_shoot.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/gradient_linear_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/gradient_linear_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/gradient_linear_horizontal_black.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/gradient_linear_nav.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_add.xml:
--------------------------------------------------------------------------------
1 |
7 |
13 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_amp_stories_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_back.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_book.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_bookmark_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_bookmark_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_chat_outlined.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_check.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_circle_cancel.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_circle_check.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_close.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_collections_bookmark.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_collections_bookmark_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_collections_bookmark_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_dark_mode_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_dislike_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_dislike_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_done.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_download.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_edit_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_fast_forward_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_filter_list.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_forum.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_forum_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_forum_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_fullscreen.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_home_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_home_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_info.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_like_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_like_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_logout.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_menu.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_minus.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_movie_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_movie_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_pip_outlined.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_play.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_play_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_play_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_refresh.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_alpha_t_box_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_amp_stories_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_audiotrack_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_block_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_brightness_high_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_color_picker_24.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_dots_vertical_24.xml:
--------------------------------------------------------------------------------
1 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_error_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_fast_forward_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_fast_rewind_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_font_size_24.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_high_quality_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_pause_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_play_arrow_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_play_disabled_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_remove_red_eye_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_signal_no_internet_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_skip_next_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_skip_previous_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_star_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_touch_app_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_video_library_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_view_array_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_view_column_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_round_volume_up_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_schedule_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_send_outlined.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_sharp_dark_mode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_shuffle_24.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_sort.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_storage.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_subtitles_filled.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_subtitles_outlined.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_sync.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ic_telegram.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/item_ongoing.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/item_score.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/item_type.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/item_user_score.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/logo_aniyomi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/drawable/logo_aniyomi.png
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/logo_dantotsu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/drawable/logo_dantotsu.png
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/logo_tachiyomi.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/drawable/logo_tachiyomi.jpg
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ripple_circle_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | -
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ripple_rect_you.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | -
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ripple_round_you.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | -
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_bubble_navbar_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_button_popup_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_button_popup_foreground.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 | -
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_comment_send_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_dialog_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_gesture_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/drawable/ui_gesture_foreground.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/century_gothic_bold.TTF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/century_gothic_bold.TTF
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/century_gothic_regular.TTF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/century_gothic_regular.TTF
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/poppins.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/poppins.ttf
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/poppins_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/poppins_bold.ttf
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/poppins_family.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/poppins_semi_bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/poppins_semi_bold.ttf
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/font/poppins_thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/main/res/font/poppins_thin.ttf
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/layout/widget_circle_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/layout/widget_edittext_outlined.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/menu/manga_menu_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/menu/media_details_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/mipmap-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/mipmap-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #22eeeeee
4 |
5 | #000000
6 | @color/bg_white
7 | #1C1C1C
8 | #001C1C1C
9 | #40ffffff
10 | #54000000
11 | #29FF6B08
12 | #b3aead
13 | #E8222222
14 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/values/dimen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 600dp
4 | 325dp
5 | 32dp
6 | 16dp
7 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/values/preloaded_fonts.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - @font/poppins_bold
5 | - @font/poppins_thin
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/xml/network_security_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.old-androidApp/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
14 |
15 |
18 |
19 |
22 |
--------------------------------------------------------------------------------
/.old-androidApp/src/release/kotlin/com/mrboomdev/awery/AweryDebug.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | import com.mrboomdev.awery.R as RealR
4 |
5 | object AweryDebug {
6 | @Suppress("ClassName", "PropertyName")
7 | object R {
8 | object drawable {
9 | private val debug_stub
10 | get() = RealR.drawable.debug_stub
11 |
12 | val sample_banner = debug_stub
13 | val sample_poster = debug_stub
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/.old-androidApp/src/release/res/drawable/debug_stub.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.old-androidApp/src/stable/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/stable/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-androidApp/src/stable/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/stable/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-androidApp/src/stable/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/stable/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-androidApp/src/stable/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/stable/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-androidApp/src/stable/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-androidApp/src/stable/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap-anydpi-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidAlpha/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidAlpha/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidAlpha/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidAlpha/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidAlpha/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.old-app/src/androidAlpha/res/values/ic_banner_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #111111
4 |
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidBeta/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidBeta/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidBeta/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidBeta/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidBeta/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidBeta/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/.old-app/src/androidMain/kotlin/com/mrboomdev/awery/App.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | import android.app.Application
4 | import com.mrboomdev.awery.platform.Platform
5 | import com.mrboomdev.awery.platform.init
6 | import kotlinx.coroutines.DelicateCoroutinesApi
7 | import kotlinx.coroutines.Dispatchers
8 | import kotlinx.coroutines.GlobalScope
9 | import kotlinx.coroutines.launch
10 |
11 | class App: Application() {
12 | init {
13 | Platform.attachBaseContext(this)
14 | }
15 |
16 | @OptIn(DelicateCoroutinesApi::class)
17 | override fun onCreate() {
18 | super.onCreate()
19 |
20 | GlobalScope.launch(Dispatchers.Default) {
21 | Platform.init()
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/.old-app/src/androidMain/res/mipmap-v26/ic_banner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-app/src/androidMain/res/mipmap-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.old-app/src/androidMain/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
14 |
15 |
18 |
19 |
22 |
--------------------------------------------------------------------------------
/.old-app/src/androidStable/res/mipmap-xhdpi/ic_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidStable/res/mipmap-xhdpi/ic_banner.png
--------------------------------------------------------------------------------
/.old-app/src/androidStable/res/mipmap-xhdpi/ic_banner_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidStable/res/mipmap-xhdpi/ic_banner_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/androidStable/res/mipmap/ic_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidStable/res/mipmap/ic_background.png
--------------------------------------------------------------------------------
/.old-app/src/androidStable/res/mipmap/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidStable/res/mipmap/ic_launcher.png
--------------------------------------------------------------------------------
/.old-app/src/androidStable/res/mipmap/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MrBoomDeveloper/Awery/e02cd6b6b187e461c64344f14691a4616498d553/.old-app/src/androidStable/res/mipmap/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/.old-app/src/desktopMain/kotlin/com/mrboomdev/awery/Main.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | import kotlin.system.exitProcess
4 |
5 | fun main() {
6 | println("This shit isn't done yet!")
7 | exitProcess(0)
8 | }
--------------------------------------------------------------------------------
/.old-buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | `kotlin-dsl`
3 | alias(libs.plugins.kotlin.serialization)
4 | }
5 |
6 | dependencies {
7 | implementation(libs.kotlinx.serialization.json)
8 | }
--------------------------------------------------------------------------------
/.old-buildSrc/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | mavenCentral()
4 | gradlePluginPortal()
5 | }
6 | }
7 |
8 | dependencyResolutionManagement {
9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
10 | repositories {
11 | mavenCentral()
12 | google()
13 | }
14 |
15 | versionCatalogs {
16 | create("libs") {
17 | from(files("../gradle/libs.versions.toml"))
18 | }
19 | }
20 | }
21 |
22 | enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
23 | rootProject.name = "AweryBuildScripts"
--------------------------------------------------------------------------------
/.old-buildSrc/src/main/kotlin/com/mrboomdev/awery/gradle/util/Json.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.gradle.util
2 |
3 | import kotlinx.serialization.json.JsonArray
4 | import kotlinx.serialization.json.JsonElement
5 | import kotlinx.serialization.json.JsonNull
6 | import kotlinx.serialization.json.JsonPrimitive
7 | import kotlinx.serialization.json.contentOrNull
8 |
9 | val JsonElement?.isNull: Boolean
10 | get() = this == null || this is JsonNull
11 |
12 | val JsonElement.textContent: String?
13 | get() = if(this is JsonPrimitive) contentOrNull else null
14 |
15 | val JsonElement.items: JsonArray?
16 | get() = if(this is JsonArray) this else null
--------------------------------------------------------------------------------
/.old-buildSrc/src/main/kotlin/com/mrboomdev/awery/gradle/util/PropertyUtils.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.gradle.util
2 |
3 | import org.gradle.api.provider.ListProperty
4 |
5 | operator fun ListProperty.plusAssign(list: List) = addAll(list)
--------------------------------------------------------------------------------
/.old-compat/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/.old-compat/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("java-library")
3 | alias(libs.plugins.kotlin.jvm)
4 | }
5 |
6 | java {
7 | sourceCompatibility = JavaVersion.VERSION_17
8 | targetCompatibility = JavaVersion.VERSION_17
9 | }
10 |
11 | kotlin {
12 | compilerOptions {
13 | jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/android/content/Context.java:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 | public abstract class Context {}
--------------------------------------------------------------------------------
/.old-compat/src/main/java/android/content/SharedPreferences.java:
--------------------------------------------------------------------------------
1 | package android.content;
2 |
3 | public interface SharedPreferences {
4 | }
5 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/android/net/Uri.java:
--------------------------------------------------------------------------------
1 | package android.net;
2 |
3 | public abstract class Uri {
4 | @Override
5 | public abstract String toString();
6 | }
7 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/android/widget/EditText.java:
--------------------------------------------------------------------------------
1 | package android.widget;
2 |
3 | import android.content.Context;
4 |
5 | public class EditText {
6 | public EditText(Context context) {}
7 | }
8 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/androidx/preference/CheckBoxPreference.java:
--------------------------------------------------------------------------------
1 | package androidx.preference;
2 |
3 | import android.content.Context;
4 | public class CheckBoxPreference extends TwoStatePreference {
5 | public CheckBoxPreference(Context context) {
6 | super(context);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/androidx/preference/DialogPreference.java:
--------------------------------------------------------------------------------
1 | package androidx.preference;
2 |
3 | public abstract class DialogPreference extends Preference {
4 | public CharSequence title, message;
5 |
6 | public CharSequence getDialogTitle() {
7 | return title;
8 | }
9 |
10 | public void setDialogTitle(CharSequence dialogTitle) {
11 | this.title = dialogTitle;
12 | }
13 |
14 | public CharSequence getDialogMessage() {
15 | return message;
16 | }
17 |
18 | public void setDialogMessage(CharSequence dialogMessage) {
19 | this.message = dialogMessage;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.old-compat/src/main/java/androidx/preference/PreferenceScreen.java:
--------------------------------------------------------------------------------
1 | package androidx.preference;
2 |
3 | import android.content.Context;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | public class PreferenceScreen {
9 | public List preferences = new ArrayList<>();
10 |
11 | public boolean addPreference(Preference preference) {
12 | return preferences.add(preference);
13 | }
14 |
15 | public Context getContext() {
16 | throw new UnsupportedOperationException();
17 | }
18 | }
--------------------------------------------------------------------------------
/.old-compat/src/main/java/androidx/preference/SwitchPreferenceCompat.java:
--------------------------------------------------------------------------------
1 | package androidx.preference;
2 |
3 | import android.content.Context;
4 |
5 | public class SwitchPreferenceCompat extends TwoStatePreference {
6 | public SwitchPreferenceCompat(Context context) {
7 | super(context);
8 | }
9 | }
--------------------------------------------------------------------------------
/.old-desktopApp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/.old-desktopApp/src/jvmMain/resources/icon/close.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
--------------------------------------------------------------------------------
/.old-desktopApp/src/jvmMain/resources/icon/minimize.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
--------------------------------------------------------------------------------
/.old-ext/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/.old-ext/README.md:
--------------------------------------------------------------------------------
1 | # Awery Extension Library
2 | A bridge between all extensions and the application.
3 | [Official Documentation](https://awery.mrboomdev.ru)
--------------------------------------------------------------------------------
/.old-ext/platform/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/.old-ext/platform/src/main/kotlin/com/mrboomdev/awery/ext/AweryClient.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext
2 |
3 | import java.util.Locale
4 |
5 | object AweryClient {
6 | val NAME: String
7 | get() = throw NotImplementedError()
8 |
9 | val ID: Int
10 | get() = throw NotImplementedError()
11 |
12 | val USER_AGENT: String
13 | get() = throw NotImplementedError()
14 |
15 | val VERSION: Int
16 | get() = throw NotImplementedError()
17 |
18 | val LOCALE: Locale
19 | get() = throw NotImplementedError()
20 | }
--------------------------------------------------------------------------------
/.old-ext/platform/src/main/kotlin/com/mrboomdev/awery/ext/ResourcesProvider.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext
2 |
3 | import com.mrboomdev.awery.ext.source.Context
4 | import java.io.File
5 |
6 | object ResourcesProvider {
7 | fun getFile(context: Context, path: String): File = throw NotImplementedError("Stub!")
8 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/constants/AgeRating.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.constants
2 |
3 | @JvmInline
4 | value class AgeRating(val age: Int) {
5 | companion object {
6 | val EVERYONE = AgeRating(0)
7 | val NSFW = AgeRating(18)
8 |
9 | fun match(string: String): AgeRating? {
10 | string.substringBefore("+").toIntOrNull()?.also {
11 | return AgeRating(it)
12 | }
13 |
14 | return when(string.lowercase()) {
15 | "everyone", "e" -> EVERYONE
16 | "nsfw" -> NSFW
17 | else -> null
18 | }
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/constants/AweryFilters.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.constants
2 |
3 | object AweryFilters {
4 | const val EPISODE = "AWERY.EPISODE"
5 | const val MEDIA = "AWERY.MEDIA"
6 | const val FEED = "AWERY.FEED"
7 | const val PAGE = "AWERY.PAGE"
8 | const val QUERY = "AWERY.QUERY"
9 | const val TAG = "AWERY.TAG"
10 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/data/CatalogComment.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.data
2 |
3 | class CatalogComment(
4 | val avatar: String? = null,
5 | val name: String,
6 | val message: String,
7 | val flairs: Array? = null,
8 | val likes: Int? = null,
9 | val dislikes: Int? = null,
10 | val votes: Int? = null,
11 | val repliesCount: Int? = null
12 | )
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/data/CatalogFeed.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.data
2 |
3 | import kotlinx.serialization.Contextual
4 | import java.io.Serializable
5 |
6 | @kotlinx.serialization.Serializable
7 | class CatalogFeed(
8 | val managerId: String? = null,
9 | val sourceId: String? = null,
10 | val feedId: String? = null,
11 | val title: String,
12 | val style: Style = Style.ROW,
13 | val hideIfEmpty: Boolean = false,
14 | val filters: List<@Contextual Setting>? = null
15 | ): Serializable {
16 | sealed interface Style {
17 | data object SLIDER: Style
18 | data object ROW: Style
19 | data object COLUMN: Style
20 | }
21 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/data/CatalogSearchResults.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.data
2 |
3 | import java.util.Collections
4 | import java.util.LinkedList
5 |
6 | class CatalogSearchResults(
7 | items: Collection,
8 | val hasNextPage: Boolean = false
9 | ): LinkedList(items) {
10 | companion object {
11 | private val EMPTY = CatalogSearchResults(Collections.emptyList())
12 |
13 | @Suppress("UNCHECKED_CAST")
14 | fun empty() = EMPTY as CatalogSearchResults
15 | }
16 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/data/CatalogTag.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.data
2 |
3 | import java.io.Serial
4 | import java.io.Serializable
5 |
6 | @kotlinx.serialization.Serializable
7 | class CatalogTag @JvmOverloads constructor(
8 | val name: String,
9 | val description: String? = null,
10 | val isAdult: Boolean = false,
11 | val isSpoiler: Boolean = false
12 | ) : Serializable {
13 | companion object {
14 | @Serial
15 | private val serialVersionUID = 1L
16 | }
17 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/data/ExternalLink.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.data
2 |
3 | import kotlinx.serialization.Serializable
4 |
5 | @Serializable
6 | data class ExternalLink(
7 | val title: String,
8 | val link: String,
9 | val icon: String
10 | ): java.io.Serializable
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/AbstractSource.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source
2 |
3 | abstract class AbstractSource {
4 | private lateinit var baseContext: Context
5 |
6 | fun attachContext(context: Context) {
7 | if(::baseContext.isInitialized) {
8 | throw IllegalStateException("You cannot attach an Context twice!")
9 | }
10 |
11 | baseContext = context
12 | }
13 |
14 | open val context: Context
15 | get() = baseContext
16 |
17 | /**
18 | * Will be called before unloading this source, so that you can free all your resources.
19 | */
20 | open fun onUnload() {}
21 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/Context.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source
2 |
3 | import com.mrboomdev.awery.ext.constants.AgeRating
4 | import com.mrboomdev.awery.ext.util.Image
5 |
6 | interface Context {
7 | val id: String
8 | val isEnabled: Boolean
9 | val name: String?
10 | val exception: Throwable?
11 | val icon: Image?
12 |
13 | interface SourceContext: Context {
14 | val manager: SourcesManager
15 | val ageRating: AgeRating?
16 | }
17 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/Preferences.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source
2 |
3 | interface Preferences {
4 | fun getString(key: String): String?
5 | fun getInt(key: String): Int?
6 | fun getBoolean(key: String): Boolean?
7 | fun getFloat(key: String): Float?
8 |
9 | operator fun set(key: String, value: String?)
10 | operator fun set(key: String, value: Int?)
11 | operator fun set(key: String, value: Boolean?)
12 | operator fun set(key: String, value: Float?)
13 |
14 | fun remove(key: String)
15 | fun save()
16 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/Source.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source
2 |
3 | import com.mrboomdev.awery.ext.source.module.Module
4 |
5 | /**
6 | * Source is the provider of feeds, media, subtitles and more...
7 | * An context will be created by the manager,
8 | * so that you won't need to repeat same values multiple times.
9 | */
10 | abstract class Source: AbstractSource() {
11 | override val context: Context.SourceContext
12 | get() = super.context as Context.SourceContext
13 |
14 | abstract fun createModules(): List
15 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/CatalogModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | import com.mrboomdev.awery.ext.data.CatalogFeed
4 | import com.mrboomdev.awery.ext.data.CatalogMedia
5 | import com.mrboomdev.awery.ext.data.CatalogSearchResults
6 | import com.mrboomdev.awery.ext.data.Setting
7 |
8 | interface CatalogModule: Module {
9 | suspend fun createFeeds(): CatalogSearchResults
10 | suspend fun search(filters: List): CatalogSearchResults
11 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/CommentsModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface CommentsModule: Module {
4 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/Module.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | sealed interface Module
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/NotificationsModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface NotificationsModule: Module {
4 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/ProfileModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface ProfileModule: Module {
4 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/SettingsModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | import com.mrboomdev.awery.ext.data.Setting
4 |
5 | interface SettingsModule: Module {
6 | fun getSettings(): List
7 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/StatusModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | import com.mrboomdev.awery.ext.data.CatalogMedia
4 |
5 | interface StatusModule: Module {
6 | fun onStatus(status: Status)
7 |
8 | sealed class Status(val startTime: Long) {
9 | class Offline(
10 | startTime: Long
11 | ): Status(startTime)
12 |
13 | sealed class Online(
14 | startTime: Long
15 | ): Status(startTime)
16 |
17 | class Watching(
18 | startTime: Long,
19 | val media: CatalogMedia
20 | ): Online(startTime)
21 | }
22 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/SubtitlesModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface SubtitlesModule: Module {
4 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/TrackerModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface TrackerModule: Module {
4 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/source/module/WatchModule.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.source.module
2 |
3 | interface WatchModule: Module {
4 |
5 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/Image.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util
2 |
3 | interface Image
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/LocaleAware.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util
2 |
3 | /**
4 | * App will understand that it can use original data from this object to show information to user.
5 | */
6 | interface LocaleAware
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/PendingTask.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util
2 |
3 | abstract class PendingTask {
4 | abstract val data: T
5 | abstract val size: Long?
6 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/Progress.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util
2 |
3 | data class Progress(
4 | var max: Long = 0,
5 | var value: Long = 0
6 | ) {
7 | fun increment() {
8 | value++
9 | }
10 |
11 | val isCompleted: Boolean
12 | get() = value >= max
13 |
14 | fun finish() {
15 | value = max
16 | }
17 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/exceptions/ExtensionInstallException.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util.exceptions
2 |
3 | class ExtensionInstallException(
4 | message: String? = null,
5 | cause: Throwable? = null,
6 | val reason: Int
7 | ) : Exception(message, cause) {
8 | companion object {
9 | const val REASON_OTHER = 0
10 | const val REASON_UNSUPPORTED = 1
11 | const val REASON_LOW_STORAGE = 2
12 | const val REASON_NSFW_BLOCKED = 3
13 | const val REASON_INVALID = 4
14 | }
15 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/exceptions/ExtensionLoadException.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util.exceptions
2 |
3 | class ExtensionLoadException(
4 | message: String? = null,
5 | cause: Throwable? = null,
6 | val reason: Int
7 | ) : Exception(message, cause) {
8 | companion object {
9 | const val REASON_OTHER = 0
10 | const val REASON_NSFW_BLOCKED = 1
11 | const val REASON_INVALID = 2
12 | }
13 | }
--------------------------------------------------------------------------------
/.old-ext/src/main/kotlin/com/mrboomdev/awery/ext/util/exceptions/ZeroResultsException.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ext.util.exceptions
2 |
3 | import com.mrboomdev.awery.ext.util.LocaleAware
4 |
5 | class ZeroResultsException(
6 | message: String? = null,
7 | cause: Throwable?,
8 | private val detailedMessage: String? = null
9 | ) : Exception(message, cause), LocaleAware {
10 | constructor(message: String? = null, detailedMessage: String? = null): this(message, null, detailedMessage)
11 | override fun getLocalizedMessage() = detailedMessage ?: message
12 | }
--------------------------------------------------------------------------------
/.old-shared/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/com/mrboomdev/awery/data/AweryDB.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data
2 |
3 | import androidx.room.Room
4 | import androidx.room.RoomDatabase
5 | import com.mrboomdev.awery.platform.Platform
6 |
7 | internal actual fun AweryDB.Companion.builder(): RoomDatabase.Builder {
8 | return Room.databaseBuilder(
9 | context = Platform,
10 | name = "db"
11 | )
12 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/com/mrboomdev/awery/sources/ExtensionsManager.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.sources
2 |
3 | import com.mrboomdev.awery.ext.source.SourcesManager
4 | import com.mrboomdev.awery.sources.yomi.YomiManager
5 | import com.mrboomdev.awery.sources.yomi.aniyomi.AniyomiManager
6 | import com.mrboomdev.awery.sources.yomi.tachiyomi.TachiyomiManager
7 |
8 | internal actual fun ExtensionsManager.BootstrapManager.createPlatformSourceManagers(): List {
9 | YomiManager.initYomiShit()
10 |
11 | return listOf(
12 | AniyomiManager(),
13 | TachiyomiManager()
14 | )
15 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/com/mrboomdev/awery/ui/utils/BackEffect.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.utils
2 |
3 | import android.annotation.SuppressLint
4 | import androidx.activity.compose.PredictiveBackHandler
5 | import androidx.compose.runtime.Composable
6 | import kotlinx.coroutines.flow.Flow
7 | import kotlinx.coroutines.flow.map
8 |
9 | @SuppressLint("NoCollectCallFound")
10 | @Composable
11 | actual fun BackEffect(
12 | isEnabled: Boolean,
13 | onBack: suspend (progress: Flow) -> Unit
14 | ) {
15 | PredictiveBackHandler(isEnabled) { flow ->
16 | onBack(flow.map { it.progress })
17 | }
18 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/com/mrboomdev/awery/utils/Logger.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils
2 |
3 | import android.util.Log
4 |
5 | actual class Logger actual constructor(private val tag: String) {
6 | actual fun d(message: String, t: Throwable?) {
7 | Log.d(tag, message, t)
8 | }
9 |
10 | actual fun w(message: String, t: Throwable?) {
11 | Log.w(tag, message, t)
12 | }
13 |
14 | actual fun e(message: String, t: Throwable?) {
15 | Log.e(tag, message, t)
16 | }
17 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/eu/kanade/tachiyomi/network/JavaScriptEngine.android.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.network
2 |
3 | import app.cash.quickjs.QuickJs
4 | import com.mrboomdev.awery.AndroidContext
5 | import com.mrboomdev.awery.utils.ExtensionSdk
6 | import kotlinx.coroutines.Dispatchers
7 | import kotlinx.coroutines.withContext
8 |
9 | @ExtensionSdk
10 | actual class JavaScriptEngine actual constructor(context: AndroidContext) {
11 | @ExtensionSdk
12 | @Suppress("UNCHECKED_CAST")
13 | actual suspend fun evaluate(script: String) = withContext(Dispatchers.Default) {
14 | QuickJs.create().use { it.evaluate(script) } as T
15 | }
16 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMain/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.android.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.network
2 |
3 | import com.mrboomdev.awery.platform.Platform
4 | import eu.kanade.tachiyomi.network.interceptor.CloudflareInterceptor
5 | import eu.kanade.tachiyomi.network.interceptor.UncaughtExceptionInterceptor
6 | import eu.kanade.tachiyomi.network.interceptor.UserAgentInterceptor
7 | import okhttp3.Interceptor
8 |
9 | actual val NetworkHelper.interceptors: List
10 | get() = listOf(
11 | UncaughtExceptionInterceptor(),
12 | UserAgentInterceptor(::defaultUserAgentProvider),
13 | CloudflareInterceptor(Platform, PlatformCookieJar, ::defaultUserAgentProvider)
14 | )
--------------------------------------------------------------------------------
/.old-shared/src/androidMobile/kotlin/com/mrboomdev/awery/ui/AweryRoot.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui
2 |
3 | import androidx.compose.runtime.Composable
4 |
5 | @Composable
6 | actual fun AweryRootImpl(content: @Composable () -> Unit) {
7 | AweryRootAndroid(content)
8 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidMobile/kotlin/com/mrboomdev/awery/ui/routes/MainRoute.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import androidx.compose.runtime.Composable
4 |
5 | @Composable
6 | actual fun MainRoute.Content(viewModel: MainRouteViewModel) = DefaultMainRouteContent(viewModel)
--------------------------------------------------------------------------------
/.old-shared/src/androidTv/kotlin/com/mrboomdev/awery/ui/routes/MainRoute.android.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.mrboomdev.awery.ui.screens.TvMainScreen
5 |
6 | @Composable
7 | actual fun MainRoute.Content() {
8 | TvMainScreen()
9 | }
--------------------------------------------------------------------------------
/.old-shared/src/androidTv/kotlin/com/mrboomdev/awery/ui/screens/TvMainScreen.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.screens
2 |
3 | import androidx.compose.runtime.Composable
4 | import androidx.compose.ui.graphics.Color
5 | import androidx.tv.material3.Text
6 |
7 | @Composable
8 | fun TvMainScreen() {
9 | Text(
10 | text = "Tv main screen",
11 | color = Color.Red
12 | )
13 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/PlatformAliases.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery
2 |
3 | expect abstract class AndroidContext
4 | expect interface SharedPreferences
5 | expect class AndroidEditText
6 | expect class Preference
7 | expect class PreferenceScreen
8 | expect class SwitchPreferenceCompat
9 | expect abstract class TwoStatePreference
10 | expect class CheckBoxPreference
11 | expect abstract class DialogPreference
12 | expect class EditTextPreference
13 | expect class ListPreference
14 | expect class MultiSelectListPreference
15 |
16 | expect abstract class AndroidUri {
17 | abstract override fun toString(): String
18 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/app/theme/AweryTheme.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.app.theme
2 |
3 | import androidx.compose.runtime.compositionLocalOf
4 |
5 | interface AweryTheme {
6 | val isDark: Boolean
7 | val isAmoled: Boolean
8 | }
9 |
10 | val LocalAweryTheme = compositionLocalOf {
11 | error("No AweryTheme was defined in the scope!")
12 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/AweryAppFilters.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data
2 |
3 | import com.mrboomdev.awery.utils.annotations.AweryExperimentalApi
4 |
5 | object AweryAppFilters {
6 | const val PROCESSOR_MANAGER = "AWERY.PROCESSOR"
7 |
8 | const val FEED_AUTOGENERATE = "AWERY.FEED.AUTOGENERATE"
9 | const val FIRST_FEED_LARGE = "AWERY.FILTER.FIRST_FEED_LARGE"
10 |
11 | @AweryExperimentalApi
12 | const val FEED_CONTINUE = "AWERY.FEED.CONTINUE"
13 |
14 | @AweryExperimentalApi
15 | const val FEED_BOOKMARKS = "AWERY.FEED.BOOKMARKS"
16 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/ContentType.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data
2 |
3 | enum class FileType(val extension: String) {
4 | DANTOTSU_BACKUP(".ani"),
5 | AWERY_BACKUP(".awerybck"),
6 | YOMI_BACKUP(".tachibk"),
7 | APK(".apk");
8 |
9 | companion object {
10 | fun test(fileName: String): FileType? {
11 | for(type in entries) {
12 | if(fileName.endsWith(type.extension)) {
13 | return type
14 | }
15 | }
16 |
17 | return null
18 | }
19 | }
20 |
21 | }
22 |
23 | enum class ContentType(val mimeType: String) {
24 | JSON("application/json"),
25 | APK("application/vnd.android.package-archive"),
26 | ANY("*/*");
27 |
28 | override fun toString(): String {
29 | return mimeType
30 | }
31 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/dao/ListDao.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.dao
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Delete
5 | import androidx.room.Insert
6 | import androidx.room.OnConflictStrategy
7 | import androidx.room.Query
8 | import com.mrboomdev.awery.data.entity.DBList
9 |
10 | @Dao
11 | interface ListDao {
12 | @Query("SELECT * FROM DBList")
13 | suspend fun getAll(): List
14 |
15 | @Query("SELECT * FROM DBList WHERE id = :id")
16 | suspend fun get(id: String): DBList
17 |
18 | @Insert(onConflict = OnConflictStrategy.REPLACE)
19 | suspend fun insert(vararg list: DBList)
20 |
21 | @Delete
22 | suspend fun delete(list: DBList)
23 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/dao/MediaDao.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.dao
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Delete
5 | import androidx.room.Insert
6 | import androidx.room.OnConflictStrategy
7 | import androidx.room.Query
8 | import com.mrboomdev.awery.data.entity.DBMedia
9 |
10 | @Dao
11 | interface MediaDao {
12 | @Insert(onConflict = OnConflictStrategy.REPLACE)
13 | suspend fun insert(media: DBMedia)
14 |
15 | @Delete
16 | suspend fun delete(media: DBMedia)
17 |
18 | @Query("SELECT * FROM DBMedia WHERE title LIKE :query OR extras LIKE :query")
19 | suspend fun find(query: String?): List
20 |
21 | @Query("SELECT * FROM DBMedia WHERE globalId = :id")
22 | suspend fun get(id: String): DBMedia?
23 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/dao/MediaProgressDao.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.dao
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Insert
5 | import androidx.room.OnConflictStrategy
6 | import androidx.room.Query
7 | import com.mrboomdev.awery.data.entity.DBMediaProgress
8 |
9 | @Dao
10 | interface MediaProgressDao {
11 | @Insert(onConflict = OnConflictStrategy.REPLACE)
12 | suspend fun insert(progress: DBMediaProgress)
13 |
14 | @Query("SELECT * FROM DBMediaProgress WHERE globalId = :globalId")
15 | suspend fun get(globalId: String): DBMediaProgress
16 |
17 | @Query("SELECT * FROM DBMediaProgress WHERE lists LIKE '%;;;' || :list || ';;;%'")
18 | suspend fun getAllFromList(list: String): List
19 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/dao/RepositoryDao.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.dao
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Delete
5 | import androidx.room.Insert
6 | import androidx.room.OnConflictStrategy
7 | import androidx.room.Query
8 | import com.mrboomdev.awery.data.entity.DBRepository
9 |
10 | @Dao
11 | interface RepositoryDao {
12 | @Insert(onConflict = OnConflictStrategy.REPLACE)
13 | suspend fun insert(repository: DBRepository)
14 |
15 | @Delete
16 | suspend fun delete(repository: DBRepository)
17 |
18 | @Query("SELECT * FROM DBRepository WHERE manager = :manager")
19 | suspend fun fromManager(manager: String): List
20 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/entity/DBList.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.entity
2 |
3 | import androidx.room.Entity
4 | import androidx.room.PrimaryKey
5 |
6 | @Entity
7 | class DBList(
8 | @PrimaryKey(true) val id: Long,
9 | val name: String,
10 | val icon: String? = null
11 | ) {
12 | companion object {
13 | const val LIST_HIDDEN = -1L
14 | const val LIST_HISTORY = -2L
15 | }
16 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/entity/DBMedia.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.entity
2 |
3 | import androidx.room.Entity
4 | import androidx.room.PrimaryKey
5 | import com.mrboomdev.awery.ext.data.CatalogMedia
6 | import com.mrboomdev.awery.ext.util.GlobalId
7 |
8 | @Entity
9 | data class DBMedia(
10 | @PrimaryKey val globalId: String,
11 | val title: String,
12 | val ids: Map,
13 | val extras: Map
14 | ) {
15 | fun asCatalogMedia() = CatalogMedia(
16 | globalId = GlobalId(globalId),
17 | title = title,
18 | ids = ids,
19 | extras = extras
20 | )
21 | }
22 |
23 | internal fun CatalogMedia.asDBMedia() = DBMedia(
24 | globalId = globalId.value,
25 | title = title,
26 | ids = ids,
27 | extras = extras
28 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/entity/DBRepository.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.entity
2 |
3 | import androidx.room.Entity
4 | import androidx.room.PrimaryKey
5 |
6 | @Entity
7 | data class DBRepository(
8 | @PrimaryKey val url: String,
9 | val manager: String,
10 | val isEnabled: Boolean = true,
11 | val title: String? = null,
12 | val description: String? = null,
13 | val author: String? = null
14 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/data/settings/ComposableSetting.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.data.settings
2 |
3 | import androidx.compose.runtime.Composable
4 |
5 | interface ComposableSetting {
6 | @Composable
7 | fun Content()
8 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/platform/CrashHandler.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.platform
2 |
3 | import java.io.File
4 |
5 | expect object CrashHandler {
6 | fun setup()
7 | val crashLogs: List
8 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/platform/PlatformImage.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.platform
2 |
3 | import androidx.compose.runtime.Composable
4 | import androidx.compose.ui.graphics.painter.Painter
5 | import com.mrboomdev.awery.ext.util.Image
6 |
7 | expect class PlatformImage: Image {
8 | @Composable
9 | fun rememberPainter(): Painter
10 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/platform/PlatformPreferences.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.platform
2 |
3 | import com.mrboomdev.awery.ext.source.Preferences
4 |
5 | expect object PlatformPreferences: Preferences
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/platform/SettingHandler.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.platform
2 |
3 | import androidx.compose.runtime.compositionLocalOf
4 | import com.mrboomdev.awery.ext.data.Setting
5 |
6 | interface SettingHandler {
7 | fun openScreen(screen: Setting)
8 | fun handleClick(setting: Setting)
9 | }
10 |
11 | val LocalSettingHandler = compositionLocalOf {
12 | throw NotImplementedError("No LocalSettingHandler was provided!")
13 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/sources/SourcesSettingsFactory.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.sources
2 |
3 | import com.mrboomdev.awery.data.settings.InMemorySetting
4 | import com.mrboomdev.awery.data.settings.InMemorySettingsFactory
5 |
6 | class SourcesSettingsFactory: InMemorySettingsFactory {
7 | override fun create(setting: InMemorySetting): InMemorySetting {
8 | throw UnsupportedOperationException("Sync setting creation isn't implemented!")
9 | }
10 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/sources/jvm/JvmEntry.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.sources.jvm
2 |
3 | import kotlinx.serialization.Serializable
4 |
5 | @Serializable
6 | class JvmEntry(
7 | val id: String,
8 | val main: String,
9 | val name: String?,
10 | val icon: String?,
11 | val type: Type,
12 | val ageRating: Int?,
13 | val features: Array
14 | ) {
15 | enum class Type {
16 | SOURCE, MANAGER
17 | }
18 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/components/Feed.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.components
2 |
3 | import androidx.compose.foundation.clickable
4 | import androidx.compose.foundation.layout.Row
5 | import androidx.compose.foundation.layout.Spacer
6 | import androidx.compose.runtime.Composable
7 | import androidx.compose.ui.Alignment
8 | import androidx.compose.ui.Modifier
9 | import com.mrboomdev.awery.ui.utils.update
10 |
11 | @Composable
12 | fun FeedHeader(
13 | modifier: Modifier = Modifier,
14 | title: @Composable () -> Unit,
15 | onClick: (() -> Unit)? = null,
16 | actionButton: (@Composable () -> Unit)? = null
17 | ) {
18 | Row(
19 | modifier = modifier.update { onClick?.let { clickable { it() } } },
20 | verticalAlignment = Alignment.CenterVertically
21 | ) {
22 | title()
23 | Spacer(Modifier.weight(1f))
24 | actionButton?.let { it() }
25 | }
26 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/components/LargeCard.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.components
2 |
3 | import androidx.compose.runtime.Composable
4 | import androidx.compose.ui.Modifier
5 |
6 | @Composable
7 | fun LargeCard(
8 | modifier: Modifier = Modifier
9 | ) {
10 | TODO()
11 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/navigation/JetpackNavigation.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.navigation
2 |
3 | import androidx.compose.runtime.staticCompositionLocalOf
4 | import androidx.navigation.NavHostController
5 |
6 | val LocalNavHostController = staticCompositionLocalOf {
7 | throw NotImplementedError()
8 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/navigation/NavigationExperience.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.navigation
2 |
3 | import org.jetbrains.compose.resources.DrawableResource
4 |
5 | data class NavigationExperience(
6 | val name: String,
7 | val topBar: List- ,
8 | val navigationBar: List
-
9 | ) {
10 | data class Item(
11 | val name: String,
12 | val inActiveIcon: DrawableResource,
13 | val activeIcon: DrawableResource = inActiveIcon,
14 | val route: NavigationRoute
15 | )
16 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/navigation/NavigationRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.navigation
2 |
3 | import com.mrboomdev.awery.ext.data.CatalogFeed
4 |
5 | sealed interface NavigationRoute {
6 | data class Feeds(val feeds: List): NavigationRoute
7 | data class Feed(val feed: CatalogFeed): NavigationRoute
8 | data class Settings(val initialPath: List? = null): NavigationRoute
9 | data object Search: NavigationRoute
10 | data object Notifications: NavigationRoute
11 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/NotificationsRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import kotlinx.serialization.Serializable
4 |
5 | @Serializable
6 | class NotificationsRoute
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/PlayerRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import com.mrboomdev.awery.ext.data.CatalogMedia
4 | import com.mrboomdev.awery.ext.data.CatalogVideoFile
5 | import kotlinx.serialization.Serializable
6 |
7 | @Serializable
8 | class PlayerRoute(
9 | val media: CatalogMedia,
10 | val initialEpisode: Int,
11 | val episodes: List,
12 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/ReaderRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import kotlinx.serialization.Serializable
4 |
5 | @Serializable
6 | class ReaderRoute(
7 |
8 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/Routes.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | import androidx.compose.runtime.Composable
4 | import com.mrboomdev.awery.ext.data.Setting
5 | import com.mrboomdev.awery.ui.screens.SplashScreen
6 | import com.mrboomdev.navigation.core.TypeSafeNavigation
7 | import kotlinx.serialization.Serializable
8 |
9 | val AweryNavigation = TypeSafeNavigation(Routes::class)
10 |
11 | @Serializable
12 | sealed interface Routes {
13 | data object Splash: Routes
14 | data object Main: Routes
15 | data class Settings(val setting: Setting): Routes
16 | }
17 |
18 | @Composable
19 | fun Routes.Splash.Content() = SplashScreen()
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/ThemeRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | class ThemeRoute
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/routes/WelcomeRoute.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.routes
2 |
3 | class WelcomeRoute
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/screens/player/PlayerViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.screens.player
2 |
3 | import androidx.compose.runtime.getValue
4 | import androidx.compose.runtime.mutableIntStateOf
5 | import androidx.compose.runtime.setValue
6 | import androidx.lifecycle.ViewModel
7 |
8 | class PlayerViewModel(
9 | initialEpisode: Int
10 | ): ViewModel() {
11 | var currentEpisode by mutableIntStateOf(initialEpisode)
12 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/utils/BackEffect.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.utils
2 |
3 | import androidx.compose.runtime.Composable
4 | import kotlinx.coroutines.flow.Flow
5 |
6 | /**
7 | * Will be invoked once an Back Navigation has started.
8 | */
9 | @Composable
10 | expect fun BackEffect(
11 | isEnabled: Boolean,
12 | onBack: suspend (progress: Flow) -> Unit
13 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/utils/Toast.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.utils
2 |
3 | import androidx.compose.runtime.staticCompositionLocalOf
4 | import com.dokar.sonner.ToasterState
5 |
6 | val LocalToaster = staticCompositionLocalOf {
7 | throw NotImplementedError("No LocalToast was provided!")
8 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/ui/utils/ViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.ui.utils
2 |
3 | import androidx.lifecycle.SavedStateHandle
4 | import androidx.lifecycle.ViewModel
5 | import androidx.lifecycle.ViewModelProvider
6 | import androidx.lifecycle.createSavedStateHandle
7 | import androidx.lifecycle.viewmodel.CreationExtras
8 | import kotlin.reflect.KClass
9 |
10 | fun viewModelFactory(factory: (SavedStateHandle) -> ViewModel): ViewModelProvider.Factory {
11 | return object : ViewModelProvider.Factory {
12 | override fun create(modelClass: KClass, extras: CreationExtras): T {
13 | @Suppress("UNCHECKED_CAST")
14 | return factory(extras.createSavedStateHandle()) as T
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/ExtensionSdk.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils
2 |
3 | /**
4 | * Annotated thing is a member of an public extension sdk,
5 | * so hence it cannot be removed for compatibility reasons.
6 | *
7 | * This code may be unused by the host application,
8 | * but we don't know if extensions do use it or no, so we keep it.
9 | */
10 | @Retention(AnnotationRetention.SOURCE)
11 | annotation class ExtensionSdk(
12 | val since: String = ""
13 | )
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/NumberExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils
2 |
3 | import kotlin.math.round
4 | import kotlin.math.roundToLong
5 |
6 | operator fun Number.compareTo(other: Number) = when(this) {
7 | is Int -> compareTo(other.toInt())
8 | is Float -> compareTo(other.toFloat())
9 | is Double -> compareTo(other.toDouble())
10 | is Long -> compareTo(other.toLong())
11 | else -> throw UnsupportedOperationException("Unsupported number type!")
12 | }
13 |
14 | fun Float.toStrippedString() = if(round(this) == this) {
15 | roundToLong().toString()
16 | } else toString()
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/Weak.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils
2 |
3 | import java.lang.ref.WeakReference
4 | import kotlin.reflect.KProperty
5 |
6 | class Weak(
7 | val factory: () -> T
8 | ) {
9 | private var _value: WeakReference? = null
10 |
11 | val value: T
12 | get() = _value?.get() ?: factory().also {
13 | _value = WeakReference(it)
14 | }
15 | }
16 |
17 | fun Weak.getValue(thisRef: Any?, property: KProperty<*>): T {
18 | return value
19 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/annotations/AweryExperimentalApi.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils.annotations
2 |
3 | @RequiresOptIn(
4 | message = "Warning! This functionality is still under work and requires an explicit opt in!",
5 | level = RequiresOptIn.Level.ERROR
6 | )
7 | @Target(
8 | AnnotationTarget.CLASS,
9 | AnnotationTarget.PROPERTY,
10 | AnnotationTarget.FIELD,
11 | AnnotationTarget.VALUE_PARAMETER,
12 | AnnotationTarget.CONSTRUCTOR,
13 | AnnotationTarget.FUNCTION,
14 | AnnotationTarget.PROPERTY_SETTER,
15 | AnnotationTarget.LOCAL_VARIABLE,
16 | AnnotationTarget.TYPEALIAS,
17 | AnnotationTarget.ANNOTATION_CLASS,
18 | AnnotationTarget.PROPERTY_GETTER
19 | )
20 | annotation class AweryExperimentalApi(val message: String = "")
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/annotations/AweryInternalApi.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils.annotations
2 |
3 | @RequiresOptIn(
4 | message = "Warning! Direct usage of this api is a bad practice and may lead to crashes! " +
5 | "Opt in only if you REALLY do know are you doing!",
6 | level = RequiresOptIn.Level.ERROR)
7 | @Target(
8 | AnnotationTarget.CLASS,
9 | AnnotationTarget.PROPERTY,
10 | AnnotationTarget.FIELD,
11 | AnnotationTarget.VALUE_PARAMETER,
12 | AnnotationTarget.CONSTRUCTOR,
13 | AnnotationTarget.FUNCTION,
14 | AnnotationTarget.PROPERTY_SETTER)
15 | annotation class AweryInternalApi
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/com/mrboomdev/awery/utils/exceptions/BotSecurityBypassException.kt:
--------------------------------------------------------------------------------
1 | package com.mrboomdev.awery.utils.exceptions
2 |
3 | import java.io.IOException
4 |
5 | class BotSecurityBypassException(
6 | val blocker: String,
7 | message: String? = null,
8 | cause: Throwable? = null
9 | ): IOException(message, cause) {
10 | companion object {
11 | const val CLOUDFLARE = "Cloudflare"
12 | }
13 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/AppInfo.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi
2 |
3 | import com.mrboomdev.awery.generated.*
4 | import com.mrboomdev.awery.utils.ExtensionSdk
5 |
6 | @ExtensionSdk
7 | object AppInfo {
8 |
9 | @ExtensionSdk
10 | fun getVersionCode(): Int = BuildKonfig.VERSION_CODE
11 |
12 |
13 | @ExtensionSdk
14 | fun getVersionName(): String = BuildKonfig.VERSION_NAME
15 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/AnimeSourceFactory.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 |
5 | @ExtensionSdk
6 | interface AnimeSourceFactory {
7 | @ExtensionSdk
8 | fun createSources(): List
9 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/ConfigurableAnimeSource.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource
2 |
3 | import com.mrboomdev.awery.PreferenceScreen
4 | import com.mrboomdev.awery.utils.ExtensionSdk
5 |
6 | @ExtensionSdk
7 | interface ConfigurableAnimeSource {
8 | @ExtensionSdk
9 | fun setupPreferenceScreen(screen: PreferenceScreen)
10 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/UnmeteredSource.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 |
5 | @ExtensionSdk
6 | interface UnmeteredSource
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/model/AnimeFilterList.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource.model
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 |
5 | @ExtensionSdk
6 | data class AnimeFilterList(val list: List>) : List> by list {
7 |
8 | constructor(vararg fs: AnimeFilter<*>) : this(if (fs.isNotEmpty()) fs.asList() else emptyList())
9 |
10 | override fun equals(other: Any?): Boolean {
11 | return false
12 | }
13 |
14 | override fun hashCode(): Int {
15 | return list.hashCode()
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/model/AnimeUpdateStrategy.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource.model
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 |
5 | @ExtensionSdk
6 | enum class AnimeUpdateStrategy {
7 | ALWAYS_UPDATE,
8 | @Suppress("unused")
9 | ONLY_FETCH_ONCE
10 | }
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/model/AnimesPage.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource.model
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 |
5 | @ExtensionSdk
6 | data class AnimesPage(val animes: List, val hasNextPage: Boolean)
7 |
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/model/SEpisode.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource.model
2 |
3 | import com.mrboomdev.awery.utils.ExtensionSdk
4 | import java.io.Serializable
5 |
6 | @Suppress("PropertyName")
7 | @ExtensionSdk
8 | interface SEpisode : Serializable {
9 | var url: String
10 | var name: String
11 | var date_upload: Long
12 | var episode_number: Float
13 | var scanlator: String?
14 |
15 | companion object {
16 | @ExtensionSdk
17 | fun create(): SEpisode = object : SEpisode {
18 | override lateinit var url: String
19 | override lateinit var name: String
20 | override var date_upload: Long = 0
21 | override var episode_number: Float = -1F
22 | override var scanlator: String? = null
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.old-shared/src/commonMain/kotlin/eu/kanade/tachiyomi/animesource/model/Video.kt:
--------------------------------------------------------------------------------
1 | package eu.kanade.tachiyomi.animesource.model
2 |
3 | import com.mrboomdev.awery.AndroidUri
4 | import com.mrboomdev.awery.utils.ExtensionSdk
5 | import okhttp3.Headers
6 |
7 | @ExtensionSdk
8 | data class Track(val url: String, val lang: String)
9 |
10 | @ExtensionSdk
11 | data class Video(
12 | val url: String,
13 | val quality: String,
14 | var videoUrl: String?,
15 | val headers: Headers? = null,
16 | val subtitleTracks: List