refactor: adjust project structure.

This commit is contained in:
oxy-macmini
2025-03-09 22:16:36 +08:00
parent a0c62ac5df
commit 444d94694d
155 changed files with 206 additions and 207 deletions

View File

@ -8,7 +8,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.channel"
namespace = "com.m3u.business.channel"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.channel
package com.m3u.business.channel
import android.database.ContentObserver
import android.os.Handler

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.channel
package com.m3u.business.channel
import android.annotation.SuppressLint
import android.media.AudioManager

View File

@ -1,4 +1,4 @@
package com.m3u.feature.channel
package com.m3u.business.channel
internal enum class MaskGesture {
VOLUME, BRIGHTNESS, SPEED

View File

@ -1,4 +1,4 @@
package com.m3u.feature.channel
package com.m3u.business.channel
import android.content.Intent
import android.content.res.Configuration

View File

@ -1,4 +1,4 @@
package com.m3u.feature.channel
package com.m3u.business.channel
import android.graphics.Rect
import androidx.compose.runtime.Immutable

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -7,7 +7,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.crash"
namespace = "com.m3u.business.crash"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -1,4 +1,4 @@
package com.m3u.feature.crash
package com.m3u.business.crash
import android.content.res.Configuration
import android.os.Bundle

View File

@ -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() {

View File

@ -1,4 +1,4 @@
package com.m3u.feature.crash
package com.m3u.business.crash
import android.app.AlarmManager
import android.app.PendingIntent

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.crash.navigation
package com.m3u.business.crash.navigation
internal sealed class Destination {
data object List : Destination()

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
package com.m3u.business.crash.screen.list.navigation
typealias NavigateToDetail = (path: String) -> Unit

View File

@ -7,7 +7,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.favorite"
namespace = "com.m3u.business.favorite"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.favorite
package com.m3u.business.favorite
import android.content.ComponentName
import android.content.Context

View File

@ -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

View File

@ -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

View File

@ -7,7 +7,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.foryou"
namespace = "com.m3u.business.foryou"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.foryou.internal
package com.m3u.business.foryou.internal
import android.content.Context
import android.hardware.Sensor

View File

@ -7,7 +7,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.playlist.configuration"
namespace = "com.m3u.business.playlist.configuration"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.playlist.configuration
package com.m3u.business.playlist.configuration
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -9,7 +9,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.playlist"
namespace = "com.m3u.business.playlist"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -7,7 +7,7 @@ plugins {
}
android {
namespace = "com.m3u.feature.setting"
namespace = "com.m3u.business.setting"
kotlinOptions {
jvmTarget = "17"
}

View File

@ -1,4 +1,4 @@
package com.m3u.feature.setting
package com.m3u.business.setting
internal enum class BackingUpAndRestoringState {
NONE, BACKING_UP, RESTORING, BOTH;

View File

@ -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

View File

@ -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

View File

@ -1,4 +1,4 @@
package com.m3u.feature.setting
package com.m3u.business.setting
import android.net.Uri
import androidx.compose.runtime.MutableState

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More