diff --git a/feature/channel/.gitignore b/business/channel/.gitignore
similarity index 100%
rename from feature/channel/.gitignore
rename to business/channel/.gitignore
diff --git a/feature/channel/build.gradle.kts b/business/channel/build.gradle.kts
similarity index 96%
rename from feature/channel/build.gradle.kts
rename to business/channel/build.gradle.kts
index 3c2ac184..323ee91c 100644
--- a/feature/channel/build.gradle.kts
+++ b/business/channel/build.gradle.kts
@@ -8,7 +8,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.channel"
+ namespace = "com.m3u.business.channel"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/channel/consumer-rules.pro b/business/channel/consumer-rules.pro
similarity index 100%
rename from feature/channel/consumer-rules.pro
rename to business/channel/consumer-rules.pro
diff --git a/feature/channel/proguard-rules.pro b/business/channel/proguard-rules.pro
similarity index 100%
rename from feature/channel/proguard-rules.pro
rename to business/channel/proguard-rules.pro
diff --git a/feature/channel/src/main/AndroidManifest.xml b/business/channel/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/channel/src/main/AndroidManifest.xml
rename to business/channel/src/main/AndroidManifest.xml
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt b/business/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt
similarity index 98%
rename from feature/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt
index 6c889fea..069f05f2 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/ChannelMask.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.content.pm.ActivityInfo
import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
@@ -74,11 +74,11 @@ import androidx.media3.common.Player
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.core.util.basic.isNotEmpty
import com.m3u.data.database.model.AdjacentChannels
-import com.m3u.feature.channel.MaskCenterRole.Pause
-import com.m3u.feature.channel.MaskCenterRole.Play
-import com.m3u.feature.channel.MaskCenterRole.Replay
-import com.m3u.feature.channel.components.MaskTextButton
-import com.m3u.feature.channel.components.PlayerMask
+import com.m3u.business.channel.MaskCenterRole.Pause
+import com.m3u.business.channel.MaskCenterRole.Play
+import com.m3u.business.channel.MaskCenterRole.Replay
+import com.m3u.business.channel.components.MaskTextButton
+import com.m3u.business.channel.components.PlayerMask
import com.m3u.i18n.R.string
import com.m3u.material.components.mask.MaskButton
import com.m3u.material.components.mask.MaskCircleButton
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt b/business/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt
index 6b8a2d9c..d672a007 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/ChannelMaskUtils.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.database.ContentObserver
import android.os.Handler
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt b/business/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt
similarity index 97%
rename from feature/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt
index af8fc195..e6023a4e 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/ChannelScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.Manifest
import android.content.Intent
@@ -42,12 +42,12 @@ import com.m3u.core.util.basic.title
import com.m3u.data.database.model.AdjacentChannels
import com.m3u.data.database.model.Channel
import com.m3u.data.database.model.Playlist
-import com.m3u.feature.channel.components.CoverPlaceholder
-import com.m3u.feature.channel.components.DlnaDevicesBottomSheet
-import com.m3u.feature.channel.components.FormatsBottomSheet
-import com.m3u.feature.channel.components.MaskGestureValuePanel
-import com.m3u.feature.channel.components.PlayerPanel
-import com.m3u.feature.channel.components.VerticalGestureArea
+import com.m3u.business.channel.components.CoverPlaceholder
+import com.m3u.business.channel.components.DlnaDevicesBottomSheet
+import com.m3u.business.channel.components.FormatsBottomSheet
+import com.m3u.business.channel.components.MaskGestureValuePanel
+import com.m3u.business.channel.components.PlayerPanel
+import com.m3u.business.channel.components.VerticalGestureArea
import com.m3u.i18n.R.string
import com.m3u.material.components.Background
import com.m3u.material.components.PullPanelLayout
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt b/business/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt
index 9c7360e6..a34a7c27 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/ChannelViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.annotation.SuppressLint
import android.media.AudioManager
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt b/business/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt
similarity index 67%
rename from feature/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt
index c160a9dc..bee35607 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/MaskGesture.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
internal enum class MaskGesture {
VOLUME, BRIGHTNESS, SPEED
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt b/business/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt
index 856afe8a..5b6c7154 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/PlayerActivity.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.content.Intent
import android.content.res.Configuration
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt b/business/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt
similarity index 92%
rename from feature/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt
index c44fc61a..27d0242a 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/PlayerState.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel
+package com.m3u.business.channel
import android.graphics.Rect
import androidx.compose.runtime.Immutable
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt
similarity index 97%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt
index 0be0d12d..b1255a57 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/CoverPlaceholder.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.tween
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt
similarity index 94%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt
index f804829a..79c983d9 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDeviceItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.clickable
import androidx.compose.material.icons.Icons
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt
index 94c19e85..63648fc5 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/DlnaDevicesBottomSheet.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.clickable
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt
similarity index 97%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt
index 5ae61c56..21e8988d 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/FormatItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.clickable
import androidx.compose.material3.ListItem
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt
index 42fb6e36..d0312d91 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/FormatsBottomSheet.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt
similarity index 97%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt
index a7266085..30658a34 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/MaskGestureValuePanel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt
similarity index 98%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt
index c50c9ea1..4c13436d 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/MaskValueButton.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt
similarity index 98%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt
index 7cebfac1..075795d7 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/PlayerMask.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt
index 64b494ea..54f16853 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/PlayerPanel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt
similarity index 99%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt
index 6ce08e9f..7f782112 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/ProgrammeGuide.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.Spring
diff --git a/feature/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt b/business/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt
similarity index 93%
rename from feature/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt
rename to business/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt
index f9e6b465..f55712ee 100644
--- a/feature/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt
+++ b/business/channel/src/main/java/com/m3u/feature/channel/components/VerticalGestureArea.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.channel.components
+package com.m3u.business.channel.components
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
@@ -10,7 +10,7 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberUpdatedState
import androidx.compose.ui.Modifier
-import com.m3u.feature.channel.ChannelMaskUtils.detectVerticalGesture
+import com.m3u.business.channel.ChannelMaskUtils.detectVerticalGesture
import com.m3u.material.ktx.thenIf
@Composable
diff --git a/annotation/.gitignore b/business/crash/.gitignore
similarity index 100%
rename from annotation/.gitignore
rename to business/crash/.gitignore
diff --git a/feature/crash/build.gradle.kts b/business/crash/build.gradle.kts
similarity index 95%
rename from feature/crash/build.gradle.kts
rename to business/crash/build.gradle.kts
index c366bb80..44f95c07 100644
--- a/feature/crash/build.gradle.kts
+++ b/business/crash/build.gradle.kts
@@ -7,7 +7,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.crash"
+ namespace = "com.m3u.business.crash"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/crash/consumer-rules.pro b/business/crash/consumer-rules.pro
similarity index 100%
rename from feature/crash/consumer-rules.pro
rename to business/crash/consumer-rules.pro
diff --git a/feature/crash/proguard-rules.pro b/business/crash/proguard-rules.pro
similarity index 100%
rename from feature/crash/proguard-rules.pro
rename to business/crash/proguard-rules.pro
diff --git a/feature/crash/src/main/AndroidManifest.xml b/business/crash/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/crash/src/main/AndroidManifest.xml
rename to business/crash/src/main/AndroidManifest.xml
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt b/business/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt
similarity index 96%
rename from feature/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt
index 01b25a28..0ebd1998 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/CrashActivity.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash
+package com.m3u.business.crash
import android.content.res.Configuration
import android.os.Bundle
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt b/business/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt
similarity index 85%
rename from feature/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt
index 7ac03001..0aaf27f6 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/CrashApp.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash
+package com.m3u.business.crash
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.Box
@@ -10,9 +10,9 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
-import com.m3u.feature.crash.navigation.Destination
-import com.m3u.feature.crash.screen.detail.DetailScreen
-import com.m3u.feature.crash.screen.list.ListScreen
+import com.m3u.business.crash.navigation.Destination
+import com.m3u.business.crash.screen.detail.DetailScreen
+import com.m3u.business.crash.screen.list.ListScreen
@Composable
internal fun CrashApp() {
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt b/business/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt
similarity index 97%
rename from feature/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt
index 78e1ae18..aa1d4ff0 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/CrashHandler.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash
+package com.m3u.business.crash
import android.app.AlarmManager
import android.app.PendingIntent
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt b/business/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt
similarity index 97%
rename from feature/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt
index 42f97aa3..6df8bffe 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/components/FileItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.components
+package com.m3u.business.crash.components
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Adb
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt b/business/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt
similarity index 75%
rename from feature/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt
index d6ad6c73..c2f88d53 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/navigation/Destination.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.navigation
+package com.m3u.business.crash.navigation
internal sealed class Destination {
data object List : Destination()
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt b/business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt
similarity index 98%
rename from feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt
index d5bbf76c..6997aa13 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.screen.detail
+package com.m3u.business.crash.screen.detail
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt b/business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt
similarity index 95%
rename from feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt
index 222544ef..3cb8fca8 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/screen/detail/DetailViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.screen.detail
+package com.m3u.business.crash.screen.detail
import android.net.Uri
import androidx.compose.runtime.getValue
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt
similarity index 86%
rename from feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt
index 8c2d6668..a6c0d22e 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.screen.list
+package com.m3u.business.crash.screen.list
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.fillMaxSize
@@ -7,8 +7,8 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.hilt.navigation.compose.hiltViewModel
-import com.m3u.feature.crash.components.FileItem
-import com.m3u.feature.crash.screen.list.navigation.NavigateToDetail
+import com.m3u.business.crash.components.FileItem
+import com.m3u.business.crash.screen.list.navigation.NavigateToDetail
import com.m3u.material.components.Background
@Composable
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt
similarity index 89%
rename from feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt
rename to business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt
index 6f980dca..ee8619ce 100644
--- a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt
+++ b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/ListViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.crash.screen.list
+package com.m3u.business.crash.screen.list
import androidx.lifecycle.ViewModel
import com.m3u.core.architecture.FileProvider
diff --git a/business/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt
new file mode 100644
index 00000000..b44ac764
--- /dev/null
+++ b/business/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt
@@ -0,0 +1,3 @@
+package com.m3u.business.crash.screen.list.navigation
+
+typealias NavigateToDetail = (path: String) -> Unit
\ No newline at end of file
diff --git a/feature/favorite/.gitignore b/business/favorite/.gitignore
similarity index 100%
rename from feature/favorite/.gitignore
rename to business/favorite/.gitignore
diff --git a/feature/favorite/build.gradle.kts b/business/favorite/build.gradle.kts
similarity index 94%
rename from feature/favorite/build.gradle.kts
rename to business/favorite/build.gradle.kts
index bc0aaaa3..fe040d14 100644
--- a/feature/favorite/build.gradle.kts
+++ b/business/favorite/build.gradle.kts
@@ -7,7 +7,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.favorite"
+ namespace = "com.m3u.business.favorite"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/favorite/consumer-rules.pro b/business/favorite/consumer-rules.pro
similarity index 100%
rename from feature/favorite/consumer-rules.pro
rename to business/favorite/consumer-rules.pro
diff --git a/feature/favorite/proguard-rules.pro b/business/favorite/proguard-rules.pro
similarity index 100%
rename from feature/favorite/proguard-rules.pro
rename to business/favorite/proguard-rules.pro
diff --git a/feature/favorite/src/main/AndroidManifest.xml b/business/favorite/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/favorite/src/main/AndroidManifest.xml
rename to business/favorite/src/main/AndroidManifest.xml
diff --git a/feature/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt b/business/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt
similarity index 98%
rename from feature/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt
rename to business/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt
index 17f8f46c..31c82f3d 100644
--- a/feature/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt
+++ b/business/favorite/src/main/java/com/m3u/feature/favorite/FavoriteScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.favorite
+package com.m3u.business.favorite
import android.content.res.Configuration
import android.view.KeyEvent
@@ -30,7 +30,7 @@ import com.m3u.core.wrapper.Resource
import com.m3u.data.database.model.Channel
import com.m3u.data.database.model.isSeries
import com.m3u.data.service.MediaCommand
-import com.m3u.feature.favorite.components.FavouriteGallery
+import com.m3u.business.favorite.components.FavouriteGallery
import com.m3u.i18n.R
import com.m3u.material.ktx.interceptVolumeEvent
import com.m3u.material.ktx.thenIf
diff --git a/feature/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt b/business/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt
similarity index 99%
rename from feature/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt
rename to business/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt
index 5fad77ab..b08717de 100644
--- a/feature/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt
+++ b/business/favorite/src/main/java/com/m3u/feature/favorite/FavouriteViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.favorite
+package com.m3u.business.favorite
import android.content.ComponentName
import android.content.Context
diff --git a/feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt b/business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt
similarity index 98%
rename from feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt
rename to business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt
index c299ea1a..f4e8285d 100644
--- a/feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt
+++ b/business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteGallery.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.favorite.components
+package com.m3u.business.favorite.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
diff --git a/feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt b/business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt
similarity index 98%
rename from feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt
rename to business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt
index 905a9599..fc8b213a 100644
--- a/feature/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt
+++ b/business/favorite/src/main/java/com/m3u/feature/favorite/components/FavoriteItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.favorite.components
+package com.m3u.business.favorite.components
import androidx.compose.foundation.combinedClickable
import androidx.compose.material3.CardDefaults
diff --git a/feature/favorite/src/main/res/drawable/round_play_arrow_24.xml b/business/favorite/src/main/res/drawable/round_play_arrow_24.xml
similarity index 100%
rename from feature/favorite/src/main/res/drawable/round_play_arrow_24.xml
rename to business/favorite/src/main/res/drawable/round_play_arrow_24.xml
diff --git a/feature/foryou/.gitignore b/business/foryou/.gitignore
similarity index 100%
rename from feature/foryou/.gitignore
rename to business/foryou/.gitignore
diff --git a/feature/foryou/build.gradle.kts b/business/foryou/build.gradle.kts
similarity index 95%
rename from feature/foryou/build.gradle.kts
rename to business/foryou/build.gradle.kts
index dd4d5cf0..6c37b048 100644
--- a/feature/foryou/build.gradle.kts
+++ b/business/foryou/build.gradle.kts
@@ -7,7 +7,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.foryou"
+ namespace = "com.m3u.business.foryou"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/foryou/consumer-rules.pro b/business/foryou/consumer-rules.pro
similarity index 100%
rename from feature/foryou/consumer-rules.pro
rename to business/foryou/consumer-rules.pro
diff --git a/feature/foryou/proguard-rules.pro b/business/foryou/proguard-rules.pro
similarity index 100%
rename from feature/foryou/proguard-rules.pro
rename to business/foryou/proguard-rules.pro
diff --git a/feature/foryou/src/main/AndroidManifest.xml b/business/foryou/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/foryou/src/main/AndroidManifest.xml
rename to business/foryou/src/main/AndroidManifest.xml
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt
similarity index 97%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt
index 51f94efe..4afc4e33 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/ForyouScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou
+package com.m3u.business.foryou
import android.content.res.Configuration.ORIENTATION_PORTRAIT
import android.view.KeyEvent
@@ -39,10 +39,10 @@ import com.m3u.data.database.model.Playlist
import com.m3u.data.database.model.PlaylistWithCount
import com.m3u.data.database.model.isSeries
import com.m3u.data.service.MediaCommand
-import com.m3u.feature.foryou.components.HeadlineBackground
-import com.m3u.feature.foryou.components.PlaylistGallery
-import com.m3u.feature.foryou.components.recommend.Recommend
-import com.m3u.feature.foryou.components.recommend.RecommendGallery
+import com.m3u.business.foryou.components.HeadlineBackground
+import com.m3u.business.foryou.components.PlaylistGallery
+import com.m3u.business.foryou.components.recommend.Recommend
+import com.m3u.business.foryou.components.recommend.RecommendGallery
import com.m3u.i18n.R.string
import com.m3u.material.ktx.composableOf
import com.m3u.material.ktx.interceptVolumeEvent
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt
similarity index 98%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt
index cac0a7b2..f0a75c33 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/ForyouViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou
+package com.m3u.business.foryou
import androidx.compose.runtime.snapshotFlow
import androidx.lifecycle.ViewModel
@@ -26,7 +26,7 @@ import com.m3u.data.repository.channel.ChannelRepository
import com.m3u.data.repository.playlist.PlaylistRepository
import com.m3u.data.repository.programme.ProgrammeRepository
import com.m3u.data.worker.SubscriptionWorker
-import com.m3u.feature.foryou.components.recommend.Recommend
+import com.m3u.business.foryou.components.recommend.Recommend
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt
similarity index 98%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt
index 886ffb9c..ad137584 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/HeadlineBackground.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components
+package com.m3u.business.foryou.components
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.tween
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt
similarity index 83%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt
index 9b5d0e9e..ccbef5b8 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/Loading.kt
@@ -1,9 +1,9 @@
-package com.m3u.feature.foryou.components
+package com.m3u.business.foryou.components
import androidx.annotation.FloatRange
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-import com.m3u.feature.foryou.R
+import com.m3u.business.foryou.R
import com.m3u.material.components.ProgressLottie
@Composable
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt
similarity index 99%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt
index e945f5b9..98c7e999 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistGallery.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components
+package com.m3u.business.foryou.components
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.layout.Arrangement
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt
similarity index 99%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt
index 4f24a8c9..383ae431 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/PlaylistItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components
+package com.m3u.business.foryou.components
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt
similarity index 94%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt
index 5b8741d9..ec305dd6 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/Recommend.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components.recommend
+package com.m3u.business.foryou.components.recommend
import androidx.compose.runtime.Immutable
import com.m3u.core.unit.DataUnit
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt
similarity index 98%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt
index 68f07987..ad1b7ffc 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendGallery.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components.recommend
+package com.m3u.business.foryou.components.recommend
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt
similarity index 99%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt
index cbdbd9db..40489d18 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/components/recommend/RecommendItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.components.recommend
+package com.m3u.business.foryou.components.recommend
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
diff --git a/feature/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt b/business/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt
similarity index 96%
rename from feature/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt
rename to business/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt
index 2db1ea53..557bc39d 100644
--- a/feature/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt
+++ b/business/foryou/src/main/java/com/m3u/feature/foryou/internal/SensorOffset.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.foryou.internal
+package com.m3u.business.foryou.internal
import android.content.Context
import android.hardware.Sensor
diff --git a/feature/foryou/src/main/res/raw/empty.json b/business/foryou/src/main/res/raw/empty.json
similarity index 100%
rename from feature/foryou/src/main/res/raw/empty.json
rename to business/foryou/src/main/res/raw/empty.json
diff --git a/feature/foryou/src/main/res/raw/loading.json b/business/foryou/src/main/res/raw/loading.json
similarity index 100%
rename from feature/foryou/src/main/res/raw/loading.json
rename to business/foryou/src/main/res/raw/loading.json
diff --git a/feature/crash/.gitignore b/business/playlist-configuration/.gitignore
similarity index 100%
rename from feature/crash/.gitignore
rename to business/playlist-configuration/.gitignore
diff --git a/feature/playlist-configuration/build.gradle.kts b/business/playlist-configuration/build.gradle.kts
similarity index 93%
rename from feature/playlist-configuration/build.gradle.kts
rename to business/playlist-configuration/build.gradle.kts
index 72006cd5..8d02cad5 100644
--- a/feature/playlist-configuration/build.gradle.kts
+++ b/business/playlist-configuration/build.gradle.kts
@@ -7,7 +7,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.playlist.configuration"
+ namespace = "com.m3u.business.playlist.configuration"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/playlist-configuration/consumer-rules.pro b/business/playlist-configuration/consumer-rules.pro
similarity index 100%
rename from feature/playlist-configuration/consumer-rules.pro
rename to business/playlist-configuration/consumer-rules.pro
diff --git a/feature/playlist-configuration/proguard-rules.pro b/business/playlist-configuration/proguard-rules.pro
similarity index 100%
rename from feature/playlist-configuration/proguard-rules.pro
rename to business/playlist-configuration/proguard-rules.pro
diff --git a/feature/playlist-configuration/src/main/AndroidManifest.xml b/business/playlist-configuration/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/playlist-configuration/src/main/AndroidManifest.xml
rename to business/playlist-configuration/src/main/AndroidManifest.xml
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt
similarity index 97%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt
index 802fb62d..313e6425 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationNavigation.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration
+package com.m3u.business.playlist.configuration
import android.net.Uri
import androidx.compose.animation.fadeIn
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt
similarity index 96%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt
index c2fb4085..620958dc 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration
+package com.m3u.business.playlist.configuration
import android.Manifest
import android.content.Intent
@@ -50,10 +50,10 @@ import com.m3u.data.database.model.Playlist
import com.m3u.data.database.model.epgUrlsOrXtreamXmlUrl
import com.m3u.data.parser.xtream.XtreamInfo
import com.m3u.data.repository.playlist.PlaylistRepository
-import com.m3u.feature.playlist.configuration.components.AutoSyncProgrammesButton
-import com.m3u.feature.playlist.configuration.components.EpgManifestGallery
-import com.m3u.feature.playlist.configuration.components.SyncProgrammesButton
-import com.m3u.feature.playlist.configuration.components.XtreamPanel
+import com.m3u.business.playlist.configuration.components.AutoSyncProgrammesButton
+import com.m3u.business.playlist.configuration.components.EpgManifestGallery
+import com.m3u.business.playlist.configuration.components.SyncProgrammesButton
+import com.m3u.business.playlist.configuration.components.XtreamPanel
import com.m3u.i18n.R.string
import com.m3u.material.components.Background
import androidx.compose.material3.Icon
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt
similarity index 99%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt
index 6b2aef50..088b666e 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/PlaylistConfigurationViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration
+package com.m3u.business.playlist.configuration
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt
similarity index 97%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt
index f375e32a..68f9cee7 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/AutoSyncProgrammesButton.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration.components
+package com.m3u.business.playlist.configuration.components
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt
similarity index 97%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt
index fda20c88..2f4dadc3 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/EpgManifestGallery.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration.components
+package com.m3u.business.playlist.configuration.components
import androidx.compose.foundation.background
import androidx.compose.foundation.border
@@ -24,7 +24,7 @@ import androidx.compose.ui.unit.dp
import com.m3u.core.util.basic.title
import com.m3u.data.database.model.Playlist
import com.m3u.data.repository.playlist.PlaylistRepository
-import com.m3u.feature.playlist.configuration.EpgManifest
+import com.m3u.business.playlist.configuration.EpgManifest
import com.m3u.i18n.R.string
import com.m3u.material.components.SelectionsDefaults
import com.m3u.material.model.LocalSpacing
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt
similarity index 98%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt
index 5504f3e4..2e68cf02 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/SyncProgrammesButton.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration.components
+package com.m3u.business.playlist.configuration.components
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.fadeIn
diff --git a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt
similarity index 98%
rename from feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt
rename to business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt
index fc3edad2..ce36a3c1 100644
--- a/feature/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt
+++ b/business/playlist-configuration/src/main/java/com/m3u/feature/playlist/configuration/components/XtreamPanel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.configuration.components
+package com.m3u.business.playlist.configuration.components
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.layout.Arrangement
diff --git a/feature/playlist/.gitignore b/business/playlist/.gitignore
similarity index 100%
rename from feature/playlist/.gitignore
rename to business/playlist/.gitignore
diff --git a/feature/playlist/build.gradle.kts b/business/playlist/build.gradle.kts
similarity index 96%
rename from feature/playlist/build.gradle.kts
rename to business/playlist/build.gradle.kts
index f7583b6d..28544d63 100644
--- a/feature/playlist/build.gradle.kts
+++ b/business/playlist/build.gradle.kts
@@ -9,7 +9,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.playlist"
+ namespace = "com.m3u.business.playlist"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/playlist/consumer-rules.pro b/business/playlist/consumer-rules.pro
similarity index 100%
rename from feature/playlist/consumer-rules.pro
rename to business/playlist/consumer-rules.pro
diff --git a/feature/playlist/proguard-rules.pro b/business/playlist/proguard-rules.pro
similarity index 100%
rename from feature/playlist/proguard-rules.pro
rename to business/playlist/proguard-rules.pro
diff --git a/feature/playlist/src/main/AndroidManifest.xml b/business/playlist/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/playlist/src/main/AndroidManifest.xml
rename to business/playlist/src/main/AndroidManifest.xml
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt
similarity index 96%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt
index b5d89c0f..9819a205 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistMessage.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist
+package com.m3u.business.playlist
import com.m3u.core.wrapper.Message
import com.m3u.i18n.R.string
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt
similarity index 99%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt
index 3e1da978..4799b79c 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistScreen.kt
@@ -1,6 +1,6 @@
@file:Suppress("UsingMaterialAndMaterial3Libraries")
-package com.m3u.feature.playlist
+package com.m3u.business.playlist
import android.Manifest
import android.content.Intent
@@ -92,8 +92,8 @@ import com.m3u.data.database.model.isSeries
import com.m3u.data.database.model.isVod
import com.m3u.data.database.model.type
import com.m3u.data.service.MediaCommand
-import com.m3u.feature.playlist.components.PlaylistTabRow
-import com.m3u.feature.playlist.components.ChannelGallery
+import com.m3u.business.playlist.components.PlaylistTabRow
+import com.m3u.business.playlist.components.ChannelGallery
import com.m3u.i18n.R.string
import com.m3u.material.components.TextField
import com.m3u.material.ktx.checkPermissionOrRationale
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt
similarity index 99%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt
index 2cc49240..ad7882a1 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/PlaylistViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist
+package com.m3u.business.playlist
import android.annotation.SuppressLint
import android.app.Activity
@@ -51,8 +51,8 @@ import com.m3u.data.service.MediaCommand
import com.m3u.data.service.Messager
import com.m3u.data.service.PlayerManager
import com.m3u.data.worker.SubscriptionWorker
-import com.m3u.feature.playlist.PlaylistMessage.ChannelCoverSaved
-import com.m3u.feature.playlist.navigation.PlaylistNavigation
+import com.m3u.business.playlist.PlaylistMessage.ChannelCoverSaved
+import com.m3u.business.playlist.navigation.PlaylistNavigation
import com.m3u.ui.Sort
import com.m3u.ui.toCommonSort
import dagger.hilt.android.lifecycle.HiltViewModel
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt
similarity index 97%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt
index 2b90e284..99674604 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelGallery.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.components
+package com.m3u.business.playlist.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
@@ -22,7 +22,7 @@ import androidx.paging.compose.collectAsLazyPagingItems
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.data.database.model.Channel
import com.m3u.data.database.model.Programme
-import com.m3u.feature.playlist.PlaylistViewModel
+import com.m3u.business.playlist.PlaylistViewModel
import com.m3u.material.components.CircularProgressIndicator
import com.m3u.material.components.VerticalDraggableScrollbar
import com.m3u.material.ktx.plus
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt
similarity index 99%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt
index 83b7034f..88474414 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/components/ChannelItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.components
+package com.m3u.business.playlist.components
import androidx.compose.animation.Crossfade
import androidx.compose.foundation.combinedClickable
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt
similarity index 99%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt
index 98219663..80b5447b 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/components/PlaylistTabRow.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.components
+package com.m3u.business.playlist.components
import androidx.compose.animation.AnimatedContent
import androidx.compose.foundation.background
diff --git a/feature/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt b/business/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt
similarity index 95%
rename from feature/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt
rename to business/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt
index 6bde70c9..dc68b182 100644
--- a/feature/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt
+++ b/business/playlist/src/main/java/com/m3u/feature/playlist/navigation/PlaylistNavigation.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.playlist.navigation
+package com.m3u.business.playlist.navigation
import android.net.Uri
import androidx.compose.animation.fadeIn
@@ -12,7 +12,7 @@ import androidx.navigation.NavOptions
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
-import com.m3u.feature.playlist.PlaylistRoute
+import com.m3u.business.playlist.PlaylistRoute
private const val PLAYLIST_ROUTE_PATH = "playlist_route"
diff --git a/feature/playlist/src/main/res/drawable/round_play_arrow_24.xml b/business/playlist/src/main/res/drawable/round_play_arrow_24.xml
similarity index 100%
rename from feature/playlist/src/main/res/drawable/round_play_arrow_24.xml
rename to business/playlist/src/main/res/drawable/round_play_arrow_24.xml
diff --git a/feature/setting/.gitignore b/business/setting/.gitignore
similarity index 100%
rename from feature/setting/.gitignore
rename to business/setting/.gitignore
diff --git a/feature/setting/build.gradle.kts b/business/setting/build.gradle.kts
similarity index 96%
rename from feature/setting/build.gradle.kts
rename to business/setting/build.gradle.kts
index ef44119e..a315d4f0 100644
--- a/feature/setting/build.gradle.kts
+++ b/business/setting/build.gradle.kts
@@ -7,7 +7,7 @@ plugins {
}
android {
- namespace = "com.m3u.feature.setting"
+ namespace = "com.m3u.business.setting"
kotlinOptions {
jvmTarget = "17"
}
diff --git a/feature/setting/consumer-rules.pro b/business/setting/consumer-rules.pro
similarity index 100%
rename from feature/setting/consumer-rules.pro
rename to business/setting/consumer-rules.pro
diff --git a/feature/setting/proguard-rules.pro b/business/setting/proguard-rules.pro
similarity index 100%
rename from feature/setting/proguard-rules.pro
rename to business/setting/proguard-rules.pro
diff --git a/feature/setting/src/main/AndroidManifest.xml b/business/setting/src/main/AndroidManifest.xml
similarity index 100%
rename from feature/setting/src/main/AndroidManifest.xml
rename to business/setting/src/main/AndroidManifest.xml
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt b/business/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt
similarity index 92%
rename from feature/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt
index 528ac2d4..eeaef108 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/BackingUpAndRestoringState.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting
+package com.m3u.business.setting
internal enum class BackingUpAndRestoringState {
NONE, BACKING_UP, RESTORING, BOTH;
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt b/business/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt
similarity index 98%
rename from feature/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt
index af31e6c1..614ffe73 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/SettingMessage.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting
+package com.m3u.business.setting
import com.m3u.core.wrapper.Message
import com.m3u.i18n.R.string
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt b/business/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt
similarity index 97%
rename from feature/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt
index 902518c9..fd651777 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/SettingScreen.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting
+package com.m3u.business.setting
import android.net.Uri
import androidx.activity.compose.BackHandler
@@ -35,11 +35,11 @@ import com.m3u.data.database.model.Channel
import com.m3u.data.database.model.ColorScheme
import com.m3u.data.database.model.DataSource
import com.m3u.data.database.model.Playlist
-import com.m3u.feature.setting.components.CanvasBottomSheet
-import com.m3u.feature.setting.fragments.AppearanceFragment
-import com.m3u.feature.setting.fragments.OptionalFragment
-import com.m3u.feature.setting.fragments.SubscriptionsFragment
-import com.m3u.feature.setting.fragments.preferences.PreferencesFragment
+import com.m3u.business.setting.components.CanvasBottomSheet
+import com.m3u.business.setting.fragments.AppearanceFragment
+import com.m3u.business.setting.fragments.OptionalFragment
+import com.m3u.business.setting.fragments.SubscriptionsFragment
+import com.m3u.business.setting.fragments.preferences.PreferencesFragment
import com.m3u.i18n.R.string
import com.m3u.material.model.LocalHazeState
import com.m3u.ui.Destination
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt b/business/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt
similarity index 99%
rename from feature/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt
index 7b7e1b5b..eebbf75d 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/SettingViewModel.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting
+package com.m3u.business.setting
import android.net.Uri
import androidx.compose.runtime.MutableState
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt
similarity index 99%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt
index a7c91b6f..e281d2bb 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/CanvasBottomSheet.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.animation.Crossfade
import androidx.compose.foundation.layout.Box
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt
similarity index 97%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt
index 19aae2a5..dd717f4f 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/CheckBoxSharedPreference.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt
similarity index 98%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt
index c183225f..9bdb98e4 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/DataSourceSelection.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt
similarity index 96%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt
index d29328ed..42c3a09d 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/EpgPlaylistItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Delete
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt
similarity index 96%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt
index a6867976..ce52e18b 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/HiddenChannelItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.foundation.clickable
import androidx.compose.material3.ListItem
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt
similarity index 96%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt
index 5ae5c9a9..fbf428c5 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/HiddenPlaylistItem.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.foundation.clickable
import androidx.compose.material3.ListItem
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt
similarity index 98%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt
index bdecbf9f..bd46312c 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageButton.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import android.net.Uri
import androidx.activity.compose.rememberLauncherForActivityResult
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt
similarity index 95%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt
index c80911f5..5388e783 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/LocalStorageSwitch.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt b/business/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt
similarity index 98%
rename from feature/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt
index 5bb78469..33a6244d 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/components/RemoteControlSubscribeSwitch.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.components
+package com.m3u.business.setting.components
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt
similarity index 98%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt
index 34df65e0..830d8412 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/AppearanceFragment.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments
+package com.m3u.business.setting.fragments
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
@@ -33,7 +33,7 @@ import com.m3u.core.architecture.preferences.ClipMode
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.core.util.basic.title
import com.m3u.data.database.model.ColorScheme
-import com.m3u.feature.setting.components.SwitchSharedPreference
+import com.m3u.business.setting.components.SwitchSharedPreference
import com.m3u.i18n.R.string
import com.m3u.material.components.Preference
import com.m3u.material.components.TextPreference
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt
similarity index 99%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt
index 7ece9433..850fc20c 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/OptionalFragment.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments
+package com.m3u.business.setting.fragments
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
@@ -34,7 +34,7 @@ import com.m3u.core.architecture.preferences.ReconnectMode
import com.m3u.core.architecture.preferences.UnseensMilliseconds
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.core.util.basic.title
-import com.m3u.feature.setting.components.SwitchSharedPreference
+import com.m3u.business.setting.components.SwitchSharedPreference
import com.m3u.i18n.R.string
import com.m3u.material.components.TextPreference
import com.m3u.material.ktx.plus
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt
similarity index 97%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt
index 20df6cd0..d866e6d0 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/SubscriptionsFragment.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments
+package com.m3u.business.setting.fragments
import android.Manifest
import android.annotation.SuppressLint
@@ -37,14 +37,14 @@ import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.data.database.model.DataSource
import com.m3u.data.database.model.Playlist
import com.m3u.data.database.model.Channel
-import com.m3u.feature.setting.BackingUpAndRestoringState
-import com.m3u.feature.setting.components.DataSourceSelection
-import com.m3u.feature.setting.components.EpgPlaylistItem
-import com.m3u.feature.setting.components.HiddenPlaylistGroupItem
-import com.m3u.feature.setting.components.HiddenChannelItem
-import com.m3u.feature.setting.components.LocalStorageButton
-import com.m3u.feature.setting.components.LocalStorageSwitch
-import com.m3u.feature.setting.components.RemoteControlSubscribeSwitch
+import com.m3u.business.setting.BackingUpAndRestoringState
+import com.m3u.business.setting.components.DataSourceSelection
+import com.m3u.business.setting.components.EpgPlaylistItem
+import com.m3u.business.setting.components.HiddenPlaylistGroupItem
+import com.m3u.business.setting.components.HiddenChannelItem
+import com.m3u.business.setting.components.LocalStorageButton
+import com.m3u.business.setting.components.LocalStorageSwitch
+import com.m3u.business.setting.components.RemoteControlSubscribeSwitch
import com.m3u.i18n.R.string
import com.m3u.material.components.HorizontalPagerIndicator
import androidx.compose.material3.Icon
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt
similarity index 97%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt
index 91ba872e..a85636e3 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/OtherPreferences.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments.preferences
+package com.m3u.business.setting.fragments.preferences
import android.content.Intent
import android.net.Uri
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt
similarity index 96%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt
index 110d98f9..d3728be0 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/PreferencesFragment.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments.preferences
+package com.m3u.business.setting.fragments.preferences
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.PaddingValues
diff --git a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt
similarity index 97%
rename from feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt
rename to business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt
index fb3fc055..cbe1d6ba 100644
--- a/feature/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt
+++ b/business/setting/src/main/java/com/m3u/feature/setting/fragments/preferences/RegularPreferences.kt
@@ -1,4 +1,4 @@
-package com.m3u.feature.setting.fragments.preferences
+package com.m3u.business.setting.fragments.preferences
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
diff --git a/feature/setting/src/main/res/drawable/telegram.xml b/business/setting/src/main/res/drawable/telegram.xml
similarity index 100%
rename from feature/setting/src/main/res/drawable/telegram.xml
rename to business/setting/src/main/res/drawable/telegram.xml
diff --git a/core/src/main/java/com/m3u/core/Contracts.kt b/core/src/main/java/com/m3u/core/Contracts.kt
index f647ffdc..b0286251 100644
--- a/core/src/main/java/com/m3u/core/Contracts.kt
+++ b/core/src/main/java/com/m3u/core/Contracts.kt
@@ -1,7 +1,7 @@
package com.m3u.core
object Contracts {
- const val PLAYER_ACTIVITY = "com.m3u.feature.channel.PlayerActivity"
+ const val PLAYER_ACTIVITY = "com.m3u.business.channel.PlayerActivity"
const val PLAYER_SHORTCUT_CHANNEL_ID = "shortcut:channel-id"
const val PLAYER_SHORTCUT_CHANNEL_RECENTLY = "shortcut:channel-recently"
}
\ No newline at end of file
diff --git a/data/build.gradle.kts b/data/build.gradle.kts
index 11e84e52..43e4edb5 100644
--- a/data/build.gradle.kts
+++ b/data/build.gradle.kts
@@ -26,8 +26,8 @@ android {
dependencies {
implementation(project(":core"))
- implementation(project(":annotation"))
- ksp(project(":processor"))
+ implementation(project(":lint:annotation"))
+ ksp(project(":lint:processor"))
val richCodec = gradle
.startParameter
diff --git a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt b/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt
deleted file mode 100644
index 4de0a2bc..00000000
--- a/feature/crash/src/main/java/com/m3u/feature/crash/screen/list/navigation/ListNavigation.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package com.m3u.feature.crash.screen.list.navigation
-
-typealias NavigateToDetail = (path: String) -> Unit
\ No newline at end of file
diff --git a/feature/playlist-configuration/.gitignore b/lint/annotation/.gitignore
similarity index 100%
rename from feature/playlist-configuration/.gitignore
rename to lint/annotation/.gitignore
diff --git a/annotation/build.gradle.kts b/lint/annotation/build.gradle.kts
similarity index 100%
rename from annotation/build.gradle.kts
rename to lint/annotation/build.gradle.kts
diff --git a/annotation/src/main/java/com/m3u/annotation/Exclude.kt b/lint/annotation/src/main/java/com/m3u/annotation/Exclude.kt
similarity index 100%
rename from annotation/src/main/java/com/m3u/annotation/Exclude.kt
rename to lint/annotation/src/main/java/com/m3u/annotation/Exclude.kt
diff --git a/annotation/src/main/java/com/m3u/annotation/Likable.kt b/lint/annotation/src/main/java/com/m3u/annotation/Likable.kt
similarity index 100%
rename from annotation/src/main/java/com/m3u/annotation/Likable.kt
rename to lint/annotation/src/main/java/com/m3u/annotation/Likable.kt
diff --git a/annotation/src/main/java/com/m3u/annotation/Logger.kt b/lint/annotation/src/main/java/com/m3u/annotation/Logger.kt
similarity index 100%
rename from annotation/src/main/java/com/m3u/annotation/Logger.kt
rename to lint/annotation/src/main/java/com/m3u/annotation/Logger.kt
diff --git a/annotation/src/main/java/com/m3u/annotation/MyDataClass.kt b/lint/annotation/src/main/java/com/m3u/annotation/MyDataClass.kt
similarity index 100%
rename from annotation/src/main/java/com/m3u/annotation/MyDataClass.kt
rename to lint/annotation/src/main/java/com/m3u/annotation/MyDataClass.kt
diff --git a/processor/.gitignore b/lint/processor/.gitignore
similarity index 100%
rename from processor/.gitignore
rename to lint/processor/.gitignore
diff --git a/processor/build.gradle.kts b/lint/processor/build.gradle.kts
similarity index 88%
rename from processor/build.gradle.kts
rename to lint/processor/build.gradle.kts
index dc27070e..e0fbc4f0 100644
--- a/processor/build.gradle.kts
+++ b/lint/processor/build.gradle.kts
@@ -9,7 +9,7 @@ ksp {
}
dependencies {
- implementation(project(":annotation"))
+ implementation(project(":lint:annotation"))
implementation(libs.symbol.processing.api)
implementation(libs.kotlinpoet)
diff --git a/processor/consumer-rules.pro b/lint/processor/consumer-rules.pro
similarity index 100%
rename from processor/consumer-rules.pro
rename to lint/processor/consumer-rules.pro
diff --git a/processor/proguard-rules.pro b/lint/processor/proguard-rules.pro
similarity index 100%
rename from processor/proguard-rules.pro
rename to lint/processor/proguard-rules.pro
diff --git a/processor/src/main/AndroidManifest.xml b/lint/processor/src/main/AndroidManifest.xml
similarity index 100%
rename from processor/src/main/AndroidManifest.xml
rename to lint/processor/src/main/AndroidManifest.xml
diff --git a/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessor.kt b/lint/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessor.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessor.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessor.kt
diff --git a/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessorProvider.kt b/lint/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessorProvider.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessorProvider.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/LikableSymbolProcessorProvider.kt
diff --git a/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessor.kt b/lint/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessor.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessor.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessor.kt
diff --git a/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessorProvider.kt b/lint/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessorProvider.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessorProvider.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/LoggerSymbolProcessorProvider.kt
diff --git a/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessor.kt b/lint/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessor.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessor.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessor.kt
diff --git a/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessorProvider.kt b/lint/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessorProvider.kt
similarity index 100%
rename from processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessorProvider.kt
rename to lint/processor/src/main/java/com/m3u/processor/likable/MyDataClassSymbolProcessorProvider.kt
diff --git a/settings.gradle.kts b/settings.gradle.kts
index ccb6d0e6..5e7192d1 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -15,23 +15,24 @@ dependencyResolutionManagement {
}
}
rootProject.name = "M3U"
-include(":smartphone")
+include(":smartphone", ":tv")
include(":core")
include(":data")
include(":material")
include(":ui")
include(
- ":feature:foryou",
- ":feature:favorite",
- ":feature:setting",
- ":feature:playlist",
- ":feature:playlist-configuration",
- ":feature:channel",
- ":feature:crash"
+ ":business:foryou",
+ ":business:favorite",
+ ":business:setting",
+ ":business:playlist",
+ ":business:playlist-configuration",
+ ":business:channel",
+ ":business:crash"
)
include(":baselineprofile")
include(":i18n")
include(":codec:lite", ":codec:rich")
-include(":annotation")
-include(":processor")
-include(":tv")
+include(
+ ":lint:annotation",
+ ":lint:processor"
+)
diff --git a/smartphone/build.gradle.kts b/smartphone/build.gradle.kts
index 8ec7e960..87fd73ab 100644
--- a/smartphone/build.gradle.kts
+++ b/smartphone/build.gradle.kts
@@ -121,13 +121,13 @@ baselineProfile {
dependencies {
implementation(project(":core"))
implementation(project(":ui"))
- implementation(project(":feature:foryou"))
- implementation(project(":feature:favorite"))
- implementation(project(":feature:setting"))
- implementation(project(":feature:playlist"))
- implementation(project(":feature:channel"))
- implementation(project(":feature:playlist-configuration"))
- implementation(project(":feature:crash"))
+ implementation(project(":business:foryou"))
+ implementation(project(":business:favorite"))
+ implementation(project(":business:setting"))
+ implementation(project(":business:playlist"))
+ implementation(project(":business:channel"))
+ implementation(project(":business:playlist-configuration"))
+ implementation(project(":business:crash"))
implementation(libs.androidx.profileinstaller)
"baselineProfile"(project(":baselineprofile"))
diff --git a/smartphone/src/main/AndroidManifest.xml b/smartphone/src/main/AndroidManifest.xml
index e5f564b2..5c350600 100644
--- a/smartphone/src/main/AndroidManifest.xml
+++ b/smartphone/src/main/AndroidManifest.xml
@@ -57,7 +57,7 @@
android:resource="@xml/shortcuts" />
diff --git a/smartphone/src/main/java/com/m3u/smartphone/M3UApplication.kt b/smartphone/src/main/java/com/m3u/smartphone/M3UApplication.kt
index a8cb9e06..8b23d332 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/M3UApplication.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/M3UApplication.kt
@@ -5,7 +5,7 @@ import androidx.hilt.work.HiltWorkerFactory
import androidx.work.Configuration
import com.m3u.core.architecture.logger.Logger
import com.m3u.core.architecture.preferences.Preferences
-import com.m3u.feature.crash.CrashHandler
+import com.m3u.business.crash.CrashHandler
import dagger.hilt.android.HiltAndroidApp
import javax.inject.Inject
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/App.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/App.kt
index 251e3859..5ae22fac 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/App.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/App.kt
@@ -30,12 +30,14 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import androidx.navigation.navOptions
-import com.m3u.smartphone.ui.sheet.RemoteControlSheet
-import com.m3u.smartphone.ui.sheet.RemoteControlSheetValue
+import com.m3u.smartphone.ui.common.connect.RemoteControlSheet
+import com.m3u.smartphone.ui.common.connect.RemoteControlSheetValue
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.data.tv.model.RemoteDirection
import androidx.compose.material3.Icon
import com.m3u.material.model.LocalSpacing
+import com.m3u.smartphone.ui.common.AppNavHost
+import com.m3u.smartphone.ui.common.Scaffold
import com.m3u.ui.Destination
import com.m3u.ui.FontFamilies
import com.m3u.ui.SnackHost
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/AppViewModel.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/AppViewModel.kt
index f2cd7eff..41a6bc32 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/AppViewModel.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/AppViewModel.kt
@@ -7,7 +7,7 @@ import androidx.compose.runtime.snapshotFlow
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import androidx.work.WorkManager
-import com.m3u.smartphone.ui.sheet.RemoteControlSheetValue
+import com.m3u.smartphone.ui.common.connect.RemoteControlSheetValue
import com.m3u.core.architecture.Publisher
import com.m3u.core.architecture.dispatcher.Dispatcher
import com.m3u.core.architecture.dispatcher.M3uDispatchers.IO
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/AppNavHost.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/AppNavHost.kt
similarity index 89%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/AppNavHost.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/AppNavHost.kt
index e397b5f4..8e07c887 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/AppNavHost.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/AppNavHost.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui
+package com.m3u.smartphone.ui.common
import android.app.ActivityOptions
import android.content.Intent
@@ -14,11 +14,11 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import com.m3u.core.architecture.preferences.hiltPreferences
import com.m3u.core.wrapper.eventOf
-import com.m3u.feature.playlist.configuration.navigateToPlaylistConfiguration
-import com.m3u.feature.playlist.configuration.playlistConfigurationScreen
-import com.m3u.feature.playlist.navigation.navigateToPlaylist
-import com.m3u.feature.playlist.navigation.playlistScreen
-import com.m3u.feature.channel.PlayerActivity
+import com.m3u.business.playlist.configuration.navigateToPlaylistConfiguration
+import com.m3u.business.playlist.configuration.playlistConfigurationScreen
+import com.m3u.business.playlist.navigation.navigateToPlaylist
+import com.m3u.business.playlist.navigation.playlistScreen
+import com.m3u.business.channel.PlayerActivity
import com.m3u.ui.Destination
import com.m3u.ui.Events
import com.m3u.ui.SettingDestination
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/RootGraph.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/RootGraph.kt
similarity index 92%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/RootGraph.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/RootGraph.kt
index 164cba42..c7b2e569 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/RootGraph.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/RootGraph.kt
@@ -1,8 +1,7 @@
-package com.m3u.smartphone.ui
+package com.m3u.smartphone.ui.common
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
-import androidx.compose.animation.scaleIn
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
@@ -10,9 +9,9 @@ import androidx.compose.ui.Modifier
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import com.m3u.data.database.model.Playlist
-import com.m3u.feature.favorite.FavouriteRoute
-import com.m3u.feature.foryou.ForyouRoute
-import com.m3u.feature.setting.SettingRoute
+import com.m3u.business.favorite.FavouriteRoute
+import com.m3u.business.foryou.ForyouRoute
+import com.m3u.business.setting.SettingRoute
import com.m3u.material.ktx.Edge
import com.m3u.material.ktx.blurEdge
import com.m3u.ui.Destination
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/Scaffold.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/Scaffold.kt
similarity index 98%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/Scaffold.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/Scaffold.kt
index 6eefcdad..e1b52feb 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/Scaffold.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/Scaffold.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui
+package com.m3u.smartphone.ui.common
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
@@ -46,8 +46,8 @@ import com.m3u.material.components.Background
import com.m3u.material.effects.currentBackStackEntry
import com.m3u.material.model.LocalHazeState
import com.m3u.material.model.LocalSpacing
-import com.m3u.smartphone.ui.internal.SmartphoneScaffoldImpl
-import com.m3u.smartphone.ui.internal.TabletScaffoldImpl
+import com.m3u.smartphone.ui.common.internal.SmartphoneScaffoldImpl
+import com.m3u.smartphone.ui.common.internal.TabletScaffoldImpl
import com.m3u.ui.Destination
import com.m3u.ui.FontFamilies
import com.m3u.ui.helper.Fob
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/StarBackground.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/StarBackground.kt
similarity index 99%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/StarBackground.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/StarBackground.kt
index 4b19dc7c..40287016 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/StarBackground.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/StarBackground.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui
+package com.m3u.smartphone.ui.common
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.LinearEasing
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/CodeRow.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/CodeRow.kt
similarity index 98%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/CodeRow.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/CodeRow.kt
index a6b7f354..6fdec1f9 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/CodeRow.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/CodeRow.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/DPadContent.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/DPadContent.kt
similarity index 98%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/sheet/DPadContent.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/DPadContent.kt
index 66c2df76..2d1ca84b 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/DPadContent.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/DPadContent.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.sheet
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/PrepareContent.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/PrepareContent.kt
similarity index 98%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/sheet/PrepareContent.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/PrepareContent.kt
index 8e3f53fa..e8fa5347 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/PrepareContent.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/PrepareContent.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.sheet
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
@@ -26,7 +26,6 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import com.m3u.smartphone.ui.CodeRow
import com.m3u.core.util.basic.title
import com.m3u.core.wrapper.Message
import com.m3u.data.service.collectMessageAsState
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteControlSheet.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteControlSheet.kt
similarity index 98%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteControlSheet.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteControlSheet.kt
index 9682b4e2..4cf65d1d 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteControlSheet.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteControlSheet.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.sheet
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.ModalBottomSheet
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteDirectionController.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteDirectionController.kt
similarity index 99%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteDirectionController.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteDirectionController.kt
index 2abce590..d0a12464 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/RemoteDirectionController.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/RemoteDirectionController.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.sheet
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.animateColorAsState
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/VirtualNumberKeyboard.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/VirtualNumberKeyboard.kt
similarity index 99%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/sheet/VirtualNumberKeyboard.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/VirtualNumberKeyboard.kt
index 71c464c6..ee657928 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/sheet/VirtualNumberKeyboard.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/connect/VirtualNumberKeyboard.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.sheet
+package com.m3u.smartphone.ui.common.connect
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/internal/SmartphoneScaffoldImpl.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/SmartphoneScaffoldImpl.kt
similarity index 91%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/internal/SmartphoneScaffoldImpl.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/SmartphoneScaffoldImpl.kt
index c150a53a..5f066956 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/internal/SmartphoneScaffoldImpl.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/SmartphoneScaffoldImpl.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.internal
+package com.m3u.smartphone.ui.common.internal
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.PaddingValues
@@ -15,11 +15,11 @@ import androidx.compose.runtime.InternalComposeApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
-import com.m3u.smartphone.ui.Items
-import com.m3u.smartphone.ui.MainContent
-import com.m3u.smartphone.ui.NavigationItemLayout
-import com.m3u.smartphone.ui.ScaffoldLayout
-import com.m3u.smartphone.ui.ScaffoldRole
+import com.m3u.smartphone.ui.common.Items
+import com.m3u.smartphone.ui.common.MainContent
+import com.m3u.smartphone.ui.common.NavigationItemLayout
+import com.m3u.smartphone.ui.common.ScaffoldLayout
+import com.m3u.smartphone.ui.common.ScaffoldRole
import com.m3u.material.components.Background
import com.m3u.material.ktx.plus
import com.m3u.material.model.LocalHazeState
diff --git a/smartphone/src/main/java/com/m3u/smartphone/ui/internal/TabletScaffoldImpl.kt b/smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/TabletScaffoldImpl.kt
similarity index 90%
rename from smartphone/src/main/java/com/m3u/smartphone/ui/internal/TabletScaffoldImpl.kt
rename to smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/TabletScaffoldImpl.kt
index 9c410644..499a2c4b 100644
--- a/smartphone/src/main/java/com/m3u/smartphone/ui/internal/TabletScaffoldImpl.kt
+++ b/smartphone/src/main/java/com/m3u/smartphone/ui/common/internal/TabletScaffoldImpl.kt
@@ -1,4 +1,4 @@
-package com.m3u.smartphone.ui.internal
+package com.m3u.smartphone.ui.common.internal
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.PaddingValues
@@ -15,16 +15,14 @@ import androidx.compose.material3.NavigationRailItem
import androidx.compose.runtime.Composable
import androidx.compose.runtime.InternalComposeApi
import androidx.compose.ui.Modifier
-import com.m3u.smartphone.ui.Items
-import com.m3u.smartphone.ui.MainContent
-import com.m3u.smartphone.ui.NavigationItemLayout
-import com.m3u.smartphone.ui.ScaffoldLayout
-import com.m3u.smartphone.ui.ScaffoldRole
+import com.m3u.smartphone.ui.common.Items
+import com.m3u.smartphone.ui.common.MainContent
+import com.m3u.smartphone.ui.common.NavigationItemLayout
+import com.m3u.smartphone.ui.common.ScaffoldLayout
+import com.m3u.smartphone.ui.common.ScaffoldRole
import com.m3u.material.components.Background
import com.m3u.material.ktx.plus
import com.m3u.ui.Destination
-import com.m3u.ui.helper.Action
-import com.m3u.ui.helper.Fob
import com.m3u.ui.helper.Metadata
@Composable
diff --git a/smartphone/src/main/res/xml/shortcuts.xml b/smartphone/src/main/res/xml/shortcuts.xml
index be481a5d..cf25770c 100644
--- a/smartphone/src/main/res/xml/shortcuts.xml
+++ b/smartphone/src/main/res/xml/shortcuts.xml
@@ -10,7 +10,7 @@
android:shortcutShortLabel="@string/app_shortcut_channel_recently_short_label">