From 3aa8bee4cfa2edf363a63d22756dfca8784734dc Mon Sep 17 00:00:00 2001 From: rhenwinch Date: Thu, 7 Mar 2024 01:44:35 +0800 Subject: [PATCH] add: init plugins system --- .idea/gradle.xml | 2 +- .idea/inspectionProfiles/Project_Default.xml | 3 + app/build.gradle.kts | 2 +- .../com/flixclusive/FlixclusiveApplication.kt | 9 +- .../flixclusive/mobile/MobileAppNavigator.kt | 4 +- .../com/flixclusive/mobile/MobileNavGraphs.kt | 4 +- .../com/flixclusive/tv/AppTvNavigator.kt | 2 +- .../com/flixclusive/core/theme/Color.kt | 2 +- .../src/main/res/drawable/plugin_logo.xml | 9 + .../main/res/drawable/provider_settings.xml | 9 + .../util/common/provider/ProviderConstants.kt | 5 + .../core/util/network/JsonHelper.kt | 6 + core/util/src/main/res/values/strings.xml | 9 +- data/provider/build.gradle.kts | 1 + .../provider/DefaultProviderRepository.kt | 175 --------- .../data/provider/PluginManager.kt | 331 ++++++++++++++++++ .../data/provider/ProviderRepository.kt | 39 ++- .../data/provider/di/ProviderModule.kt | 8 - .../data/provider/util/FileHelper.kt | 15 + .../provider/SourceLinksProviderUseCase.kt | 12 +- .../flixclusive/extractor/upcloud/VidCloud.kt | 26 +- .../extractor/upcloud/dto/Keys4Fun.kt | 19 + .../extractor/upcloud/dto/UpCloudEmbedData.kt | 2 +- .../extractor/upcloud/util/DecryptHelper.kt | 81 ----- .../mobile/{provider => plugin}/.gitignore | 0 .../{provider => plugin}/build.gradle.kts | 4 +- .../mobile/plugin/PluginScreenViewModel.kt | 50 +++ .../feature/mobile/plugin/PluginsScreen.kt} | 34 +- .../plugin/component/BottomCardContent.kt | 115 ++++++ .../mobile/plugin/component/PluginCard.kt} | 115 +++++- .../mobile/plugin/component/TopCardContent.kt | 164 +++++++++ .../mobile/plugin}/util/DragAndDropUtils.kt | 2 +- .../plugin}/util/ItemListDragAndDropState.kt | 2 +- .../res/drawable/round_drag_indicator_24.xml | 0 .../provider/ProvidersScreenViewModel.kt | 38 -- .../feature/splashScreen/component/Consent.kt | 27 ++ gradle/libs.versions.toml | 4 + model/datastore/build.gradle.kts | 1 + .../model/datastore/AppSettings.kt | 2 +- .../model/datastore/PluginPreference.kt | 15 + .../model/datastore/ProviderPreference.kt | 13 - provider/base/build.gradle.kts | 2 + .../flixclusive/provider/base/ProviderData.kt | 16 - .../provider/base/plugin/Plugin.kt | 18 +- .../provider/base/plugin/PluginManifest.kt | 40 --- .../base/plugin/settings/PluginSettings.kt | 234 +++++++++++++ .../plugin/settings/PluginSettingsManager.kt | 227 ++++++++++++ provider/ghostx/.gitignore | 1 + provider/ghostx/build.gradle.kts | 11 + settings.gradle.kts | 2 +- 50 files changed, 1467 insertions(+), 445 deletions(-) create mode 100644 core/ui/common/src/main/res/drawable/plugin_logo.xml create mode 100644 core/ui/common/src/main/res/drawable/provider_settings.xml create mode 100644 core/util/src/main/kotlin/com/flixclusive/core/util/common/provider/ProviderConstants.kt delete mode 100644 data/provider/src/main/kotlin/com/flixclusive/data/provider/DefaultProviderRepository.kt create mode 100644 data/provider/src/main/kotlin/com/flixclusive/data/provider/PluginManager.kt create mode 100644 data/provider/src/main/kotlin/com/flixclusive/data/provider/util/FileHelper.kt create mode 100644 extractor/upcloud/src/main/kotlin/com/flixclusive/extractor/upcloud/dto/Keys4Fun.kt delete mode 100644 extractor/upcloud/src/main/kotlin/com/flixclusive/extractor/upcloud/util/DecryptHelper.kt rename feature/mobile/{provider => plugin}/.gitignore (100%) rename feature/mobile/{provider => plugin}/build.gradle.kts (80%) create mode 100644 feature/mobile/plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin/PluginScreenViewModel.kt rename feature/mobile/{provider/src/main/kotlin/com/flixclusive/feature/mobile/provider/ProvidersScreen.kt => plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin/PluginsScreen.kt} (72%) create mode 100644 feature/mobile/plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin/component/BottomCardContent.kt rename feature/mobile/{provider/src/main/kotlin/com/flixclusive/feature/mobile/provider/ProviderCard.kt => plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin/component/PluginCard.kt} (53%) create mode 100644 feature/mobile/plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin/component/TopCardContent.kt rename feature/mobile/{provider/src/main/kotlin/com/flixclusive/feature/mobile/provider => plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin}/util/DragAndDropUtils.kt (97%) rename feature/mobile/{provider/src/main/kotlin/com/flixclusive/feature/mobile/provider => plugin/src/main/kotlin/com/flixclusive/feature/mobile/plugin}/util/ItemListDragAndDropState.kt (99%) rename feature/mobile/{provider => plugin}/src/main/res/drawable/round_drag_indicator_24.xml (100%) delete mode 100644 feature/mobile/provider/src/main/kotlin/com/flixclusive/feature/mobile/provider/ProvidersScreenViewModel.kt create mode 100644 model/datastore/src/main/kotlin/com/flixclusive/model/datastore/PluginPreference.kt delete mode 100644 model/datastore/src/main/kotlin/com/flixclusive/model/datastore/ProviderPreference.kt delete mode 100644 provider/base/src/main/kotlin/com/flixclusive/provider/base/ProviderData.kt delete mode 100644 provider/base/src/main/kotlin/com/flixclusive/provider/base/plugin/PluginManifest.kt create mode 100644 provider/base/src/main/kotlin/com/flixclusive/provider/base/plugin/settings/PluginSettings.kt create mode 100644 provider/base/src/main/kotlin/com/flixclusive/provider/base/plugin/settings/PluginSettingsManager.kt create mode 100644 provider/ghostx/.gitignore create mode 100644 provider/ghostx/build.gradle.kts diff --git a/.idea/gradle.xml b/.idea/gradle.xml index cea339be..dbc317af 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -63,8 +63,8 @@