From fc6cc9698b51f9ec6dd3ef1ffbc5f9683bbbf0dd Mon Sep 17 00:00:00 2001 From: oxy Date: Mon, 4 Dec 2023 14:05:31 +0800 Subject: [PATCH] docs: update RULES.md --- .idea/codeStyles/Project.xml | 123 ++++++++ .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/icon.png | Bin 0 -> 44888 bytes RULES.md | 4 +- arch.txt | 404 --------------------------- 5 files changed, 130 insertions(+), 406 deletions(-) create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/icon.png delete mode 100644 arch.txt diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..7643783a --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,123 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000..79ee123c --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/icon.png b/.idea/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..08421fcc50424ced972436980116902eda136553 GIT binary patch literal 44888 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 List/Map/Set` or immutable data structures. +3. Do not use List/Map/Set as parameters for composable functions. Instead, consider using stable wrapper +or immutable data structures. 4. If you want to change the visibility of the system bars, you can do so by calling `Helper#statusBarsVisibility` or `Helper#navigationBarsVisibility`. 5. If you want to create a new string resource, you can do so by creating it in the i18n module and diff --git a/arch.txt b/arch.txt deleted file mode 100644 index fbcebf4c..00000000 --- a/arch.txt +++ /dev/null @@ -1,404 +0,0 @@ -. -├── androidApp -│ ├── build.gradle.kts -│ ├── debug -│ │ ├── androidApp-debug.apk -│ │ └── output-metadata.json -│ ├── proguard-rules.pro -│ ├── release -│ │ ├── androidApp-release.apk -│ │ └── output-metadata.json -│ └── src -│ ├── main -│ │ ├── AndroidManifest.xml -│ └── java/com/m3u/androidApp -│ ├── AppPublisher.kt -│ ├── M3UApplication.kt -│ ├── MainActivity.kt -│ ├── components -│ │ ├── AppBottomSheet.kt -│ │ └── AppSnackHost.kt -│ ├── di -│ │ └── AppModule.kt -│ ├── navigation -│ │ ├── M3UNavHost.kt -│ │ └── RootGraph.kt -│ └── ui -│ ├── App.kt -│ ├── AppDefaults.kt -│ ├── AppScaffold.kt -│ ├── AppState.kt -│ └── AppViewModel.kt -├── benchmark -│ ├── build.gradle.kts -│ └── src/main/com/m3u/benchmark -│ ├── ExampleStartupBenchmark.kt -├── build.gradle.kts -├── config -│ └── detekt.yml -├── core -│ ├── README.md -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── proguard-rules.pro -│ └── src/main/com/m3u/core -│ ├── annotation -│ │ ├── ClipMode.kt -│ │ ├── ConnectTimeout.kt -│ │ └── FeedStrategy.kt -│ ├── architecture -│ │ ├── Logger.kt -│ │ ├── Publisher.kt -│ │ ├── Reader.kt -│ │ ├── configuration -│ │ │ ├── Configuration.kt -│ │ │ ├── ExperimentalConfiguration.kt -│ │ │ ├── SharedConfiguration.kt -│ │ │ └── di -│ │ │ └── ConfigurationModule.kt -│ │ └── viewmodel -│ │ └── BaseViewModel.kt -│ ├── unspecified -│ │ └── UBoolean.kt -│ ├── util -│ │ ├── Collections.kt -│ │ ├── Files.kt -│ │ ├── Likable.kt -│ │ ├── Properties.kt -│ │ ├── basic -│ │ │ ├── Graphics.kt -│ │ │ └── Strings.kt -│ │ ├── collections -│ │ │ ├── Contains.kt -│ │ │ ├── ForEachNotNull.kt -│ │ │ ├── IndexOf.kt -│ │ │ ├── LoopIn.kt -│ │ │ ├── Map.kt -│ │ │ ├── ReplaceIf.kt -│ │ │ ├── UnsuitableRangeForIterable.kt -│ │ │ └── WithEach.kt -│ │ ├── compose -│ │ │ └── ObservableState.kt -│ │ ├── context -│ │ │ ├── Configuration.kt -│ │ │ ├── ResourceDecoder.kt -│ │ │ ├── SharedPreferences.kt -│ │ │ └── Toasts.kt -│ │ ├── coroutine -│ │ │ └── Element.kt -│ │ ├── serialization -│ │ │ ├── DeserializationStrategyConverter.kt -│ │ │ ├── Factory.kt -│ │ │ ├── SerializationStrategyConverter.kt -│ │ │ └── Serializer.kt -│ │ └── transform -│ │ ├── IntIterativeTransferable.kt -│ │ ├── IterativeTransferable.kt -│ │ └── Transferable.kt -│ └── wrapper -│ ├── Event.kt -│ ├── Resource.kt -│ └── Stored.kt -├── data -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── proguard-rules.pro -│ └── src/main/com/m3u/data -│ ├── api -│ │ ├── DropboxApi.kt -│ │ ├── GithubApi.kt -│ │ └── dto -│ │ └── github -│ │ ├── Asset.kt -│ │ ├── File.kt -│ │ ├── Leaf.kt -│ │ ├── Links.kt -│ │ ├── Release.kt -│ │ ├── Tree.kt -│ │ └── User.kt -│ ├── contract -│ │ ├── Apis.kt -│ │ ├── Certs.kt -│ │ └── SSL.kt -│ ├── database -│ │ ├── M3UDatabase.kt -│ │ ├── dao -│ │ │ ├── FeedDao.kt -│ │ │ └── LiveDao.kt -│ │ └── entity -│ │ ├── Feed.kt -│ │ └── Live.kt -│ ├── di -│ │ ├── ApiModule.kt -│ │ ├── BindServicesModule.kt -│ │ ├── DatabaseModule.kt -│ │ ├── LoggerModule.kt -│ │ ├── ParserModule.kt -│ │ ├── ReaderModule.kt -│ │ └── RepositoryModule.kt -│ ├── logger -│ │ ├── CommonLogger.kt -│ │ ├── FileLogger.kt -│ │ └── UiLogger.kt -│ ├── parser -│ │ ├── Parser.kt -│ │ ├── PlaylistParser.kt -│ │ └── impl -│ │ ├── DefaultPlaylistParser.kt -│ │ ├── ExperimentalPlaylistParser.kt -│ │ └── M3UData.kt -│ ├── reader -│ │ └── LogFileReader.kt -│ ├── repository -│ │ ├── CloudRepository.kt -│ │ ├── FeedRepository.kt -│ │ ├── LiveRepository.kt -│ │ ├── MediaRepository.kt -│ │ ├── ReadOnlyRepository.kt -│ │ └── impl -│ │ ├── DropboxCloudRepository.kt -│ │ ├── FeedRepositoryImpl.kt -│ │ ├── LiveRepositoryImpl.kt -│ │ └── MediaRepositoryImpl.kt -│ ├── service -│ │ ├── PlayerManager.kt -│ │ ├── UiService.kt -│ │ └── impl -│ │ ├── PlayerManagerImpl.kt -│ │ └── UiServiceImpl.kt -│ └── worker -│ ├── SubscriptionInBackgroundWorker.kt -├── detekt-twitter-compose-0.0.26-all.jar -├── docs -│ └── img -│ ├── feat_live_1.png -│ ├── feat_live_2.png -│ └── feat_live_3.png -├── features -│ ├── about -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── libs -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/about -│ │ ├── AboutScreen.kt -│ │ ├── AboutViewModel.kt -│ │ ├── components -│ │ │ └── ContributorItem.kt -│ │ ├── model -│ │ │ └── Contributor.kt -│ │ └── navigation -│ │ └── AboutNavigation.kt -│ ├── console -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/console -│ │ ├── ConsoleEvent.kt -│ │ ├── ConsoleScreen.kt -│ │ ├── ConsoleState.kt -│ │ ├── ConsoleViewModel.kt -│ │ ├── MonoStyle.kt -│ │ ├── command -│ │ │ ├── CommandHandler.kt -│ │ │ ├── CommandResource.kt -│ │ │ ├── CommandScope.kt -│ │ │ └── impl -│ │ │ ├── EmptyCommandHandler.kt -│ │ │ ├── LoggerCommandHandler.kt -│ │ │ └── UpnpCommandHandler.kt -│ │ └── navigation -│ │ └── ConsoleNavigation.kt -│ ├── crash -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/crash -│ │ ├── CrashActivity.kt -│ │ ├── CrashApp.kt -│ │ ├── CrashHandler.kt -│ │ ├── components -│ │ │ └── FileItem.kt -│ │ ├── navigation -│ │ └── Destination.kt -│ │ ├── screen -│ │ ├── detail -│ │ │ ├── DetailEvent.kt -│ │ │ ├── DetailScreen.kt -│ │ │ ├── DetailState.kt -│ │ │ └── DetailViewModel.kt -│ │ └── list -│ │ ├── ListEvent.kt -│ │ ├── ListScreen.kt -│ │ ├── ListState.kt -│ │ ├── ListViewModel.kt -│ │ └── navigation -│ │ └── ListNavigation.kt -│ ├── favorite -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/favorite -│ │ ├── FavoriteEvent.kt -│ │ ├── FavoriteScreen.kt -│ │ ├── FavoriteState.kt -│ │ ├── FavouriteViewModel.kt -│ │ ├── components -│ │ │ └── FavoriteLiveItem.kt -│ ├── feed -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/feed -│ │ ├── FeedEvent.kt -│ │ ├── FeedScreen.kt -│ │ ├── FeedState.kt -│ │ ├── FeedViewModel.kt -│ │ ├── components -│ │ │ ├── FeedDialog.kt -│ │ │ └── LiveItem.kt -│ │ └── navigation -│ │ └── FeedNavigation.kt -│ ├── live -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/live -│ │ ├── LiveEvent.kt -│ │ ├── LiveScreen.kt -│ │ ├── LiveState.kt -│ │ ├── LiveViewModel.kt -│ │ ├── components -│ │ │ ├── CoverPlaceholder.kt -│ │ │ ├── DlnaDeviceItem.kt -│ │ │ ├── DlnaDevicesBottomSheet.kt -│ │ │ └── LiveMask.kt -│ │ ├── fragments -│ │ │ └── LiveFragment.kt -│ │ └── navigation -│ │ └── LiveNavigation.kt -│ ├── main -│ │ ├── build.gradle.kts -│ │ ├── consumer-rules.pro -│ │ ├── proguard-rules.pro -│ │ └── src/main/com/m3u/features/main -│ │ ├── MainEvent.kt -│ │ ├── MainScreen.kt -│ │ ├── MainState.kt -│ │ ├── MainViewModel.kt -│ │ ├── components -│ │ │ ├── FeedItem.kt -│ │ │ ├── Loading.kt -│ │ │ └── MainDialog.kt -│ │ └── model -│ │ └── FeedDetail.kt -│ └── setting -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── proguard-rules.pro -│ └── src/main/com/m3u/features/setting -│ ├── SettingEvent.kt -│ ├── SettingFragments.kt -│ ├── SettingScreen.kt -│ ├── SettingState.kt -│ ├── SettingViewModel.kt -│ ├── components -│ │ └── MutedLiveItem.kt -│ └── fragments -│ ├── PreferencesFragment.kt -│ ├── ScriptsFragment.kt -│ └── SubscriptionsFragment.kt -├── gradle -│ ├── libs.versions.toml -│ └── wrapper -│ ├── gradle-wrapper.jar -│ └── gradle-wrapper.properties -├── gradle.properties -├── gradlew -├── gradlew.bat -├── i18n -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── proguard-rules.pro -│ └── src/main -│ └── AndroidManifest.xml -├── lint -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── libs -│ ├── proguard-rules.pro -│ └── src/main/java/com/m3u/lint -│ ├── M3UIssueRegistry.kt -│ ├── detectors -│ │ ├── HelperDetector.kt -│ │ └── StaredImportsDetector.kt -│ └── resources -│ └── META-INF -│ └── services -│ └── com.android.tools.lint.client.api.IssueRegistry -├── lint.xml -├── local.properties -├── material -│ ├── build.gradle.kts -│ ├── consumer-rules.pro -│ ├── proguard-rules.pro -│ └── src -│ └── main -│ ├── AndroidManifest.xml -│ └── java/com/m3u/material -│ ├── components -│ │ ├── AppBars.kt -│ │ ├── Backgrounds.kt -│ │ ├── Badges.kt -│ │ ├── Brushes.kt -│ │ ├── Buttons.kt -│ │ ├── Dialogs.kt -│ │ ├── Images.kt -│ │ ├── Indicators.kt -│ │ ├── Layouts.kt -│ │ ├── Lotties.kt -│ │ ├── Mask.kt -│ │ ├── NavigationSheet.kt -│ │ ├── Preferences.kt -│ │ ├── Selection.kt -│ │ ├── TextFields.kt -│ │ └── ThemeSelection.kt -│ ├── ktx -│ │ ├── Animations.kt -│ │ ├── Blurs.kt -│ │ ├── Effects.kt -│ │ ├── Interaction.kt -│ │ ├── InterceptEvent.kt -│ │ ├── LifecycleEffect.kt -│ │ ├── ScrollableState.kt -│ │ └── Specified.kt -│ └── model -│ ├── Duration.kt -│ ├── GradientColors.kt -│ ├── Scalable.kt -│ ├── Spacing.kt -│ ├── StepColor.kt -│ ├── SugarColors.kt -│ └── Theme.kt -├── play_store_512.png -├── release.jks -├── settings.gradle.kts -└── ui - ├── build.gradle.kts - ├── consumer-rules.pro - ├── libs - ├── proguard-rules.pro - └── src - ├── androidTest - └── main - ├── AndroidManifest.xml - └── java/com/m3u/ui - ├── AppFont.kt - ├── Destination.kt - ├── EventHandler.kt - ├── M3ULocalProvider.kt - ├── MonoText.kt - ├── OnUserLeaveHint.kt - ├── Player.kt - ├── ResumeEvent.kt - └── ScrollableState.kt