Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ dependencies {
implementation(projects.glue)
implementation(projects.ui)
implementation(projects.ui.crash)
implementation(projects.ui.home)
implementation(projects.ui.log)
implementation(projects.ui.main)
implementation(projects.ui.proxy)
implementation(projects.ui.profile)
implementation(projects.ui.settings)
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/kotlin/com/github/kr328/clash/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ import com.github.kr328.clash.common.util.uuid
import com.github.kr328.clash.crash.CrashRoute
import com.github.kr328.clash.crash.crashEntries
import com.github.kr328.clash.glue.R as GlueR
import com.github.kr328.clash.home.HomeRoute
import com.github.kr328.clash.home.homeEntries
import com.github.kr328.clash.log.LogRoute
import com.github.kr328.clash.log.logsEntries
import com.github.kr328.clash.main.MainRoute
import com.github.kr328.clash.main.mainEntries
import com.github.kr328.clash.model.DarkMode
import com.github.kr328.clash.profile.ProfilesRoute
import com.github.kr328.clash.profile.profilesEntries
Expand Down Expand Up @@ -88,17 +88,17 @@ class MainActivity : ComponentActivity() {
backStack = backStack,
entryProvider =
entryProvider {
mainEntries(
homeEntries(
onOpenProxy = { backStack.addIfNotLast(ProxyRoute.Proxy) },
onOpenProfiles = { backStack.addIfNotLast(ProfilesRoute.Profiles()) },
onOpenProviders = { backStack.addIfNotLast(ProfilesRoute.Providers) },
onOpenLogs = { backStack.addIfNotLast(LogRoute.Root) },
onOpenSettings = { backStack.addIfNotLast(SettingsRoute.Root) },
onOpenHelp = { backStack.addIfNotLast(MainRoute.Help) },
onOpenHelp = { backStack.addIfNotLast(HomeRoute.Help) },
)
proxyEntries {
backStack.clear()
backStack.add(MainRoute.Main)
backStack.add(HomeRoute.Home)
}
profilesEntries()
logsEntries()
Expand Down Expand Up @@ -207,7 +207,7 @@ class MainActivity : ComponentActivity() {
}

private class ViewModel(application: Application) : AndroidViewModel(application) {
val backStack = mutableStateListOf<NavKey>(MainRoute.Main)
val backStack = mutableStateListOf<NavKey>(HomeRoute.Home)

fun handleInstallConfigUri(uri: Uri) {
val url = uri.getQueryParameter("url") ?: return
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ include(
":glue",
":ui",
":ui:crash",
":ui:home",
":ui:log",
":ui:main",
":ui:proxy",
":ui:profile",
":ui:settings",
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
package com.github.kr328.clash.main
package com.github.kr328.clash.home

import androidx.navigation3.runtime.EntryProviderScope
import androidx.navigation3.runtime.NavKey
import com.github.kr328.clash.main.ui.HelpScreen
import com.github.kr328.clash.main.ui.MainScreen
import com.github.kr328.clash.home.ui.HelpScreen
import com.github.kr328.clash.home.ui.HomeScreen
import kotlinx.serialization.Serializable

sealed interface MainRoute : NavKey {
@Serializable data object Main : MainRoute
sealed interface HomeRoute : NavKey {
@Serializable data object Home : HomeRoute

@Serializable data object Help : MainRoute
@Serializable data object Help : HomeRoute
}

fun EntryProviderScope<NavKey>.mainEntries(
fun EntryProviderScope<NavKey>.homeEntries(
onOpenProxy: () -> Unit,
onOpenProfiles: () -> Unit,
onOpenProviders: () -> Unit,
onOpenLogs: () -> Unit,
onOpenSettings: () -> Unit,
onOpenHelp: () -> Unit,
) {
entry<MainRoute.Main> {
MainScreen(
entry<HomeRoute.Home> {
HomeScreen(
onOpenProxy = onOpenProxy,
onOpenProfiles = onOpenProfiles,
onOpenProviders = onOpenProviders,
Expand All @@ -30,5 +30,5 @@ fun EntryProviderScope<NavKey>.mainEntries(
onOpenHelp = onOpenHelp,
)
}
entry<MainRoute.Help> { HelpScreen() }
entry<HomeRoute.Help> { HelpScreen() }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash.main.ui
package com.github.kr328.clash.home.ui

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash.main.ui
package com.github.kr328.clash.home.ui

import android.app.Activity
import androidx.activity.compose.rememberLauncherForActivityResult
Expand Down Expand Up @@ -46,7 +46,7 @@ import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
import com.github.kr328.clash.glue.R
import com.github.kr328.clash.main.vm.MainViewModel
import com.github.kr328.clash.home.vm.HomeViewModel
import com.github.kr328.clash.ui.component.MihomoScaffold
import com.github.kr328.clash.ui.icon.BaselineApps
import com.github.kr328.clash.ui.icon.BaselineAssignment
Expand All @@ -67,9 +67,9 @@ import com.github.kr328.clash.ui.theme.PreviewMihomo
import com.github.kr328.clash.ui.theme.mihomoDimens

@Composable
internal fun MainScreen(
internal fun HomeScreen(
modifier: Modifier = Modifier,
viewModel: MainViewModel = viewModel(),
viewModel: HomeViewModel = viewModel(),
onOpenProxy: () -> Unit,
onOpenProfiles: () -> Unit,
onOpenProviders: () -> Unit,
Expand Down Expand Up @@ -119,7 +119,7 @@ internal fun MainScreen(
viewModel.consumeEvent()
}

MainContent(
HomeContent(
modifier = modifier,
snackbarHostState = snackbarHostState,
clashRunning = clashRunning,
Expand All @@ -141,7 +141,7 @@ internal fun MainScreen(
}

@Composable
private fun MainContent(
private fun HomeContent(
modifier: Modifier = Modifier,
snackbarHostState: SnackbarHostState,
clashRunning: Boolean,
Expand Down Expand Up @@ -174,17 +174,17 @@ private fun MainContent(
modifier =
Modifier.fillMaxSize()
.padding(innerPadding)
.padding(horizontal = dimens.mainPaddingHorizontal)
.padding(horizontal = dimens.homePaddingHorizontal)
.verticalScroll(rememberScrollState())
) {
Row(
modifier = Modifier.fillMaxWidth().height(dimens.mainTopBannerHeight),
modifier = Modifier.fillMaxWidth().height(dimens.homeTopBannerHeight),
verticalAlignment = Alignment.CenterVertically,
) {
Image(
imageVector = MihomoIcons.Clash,
contentDescription = null,
modifier = Modifier.size(dimens.mainLogoSize),
modifier = Modifier.size(dimens.homeLogoSize),
)
Spacer(modifier = Modifier.width(4.dp))
Text(
Expand All @@ -193,8 +193,8 @@ private fun MainContent(
)
}

MainActionCard(
modifier = Modifier.padding(vertical = dimens.mainCardMarginVertical),
HomeActionCard(
modifier = Modifier.padding(vertical = dimens.homeCardMarginVertical),
icon =
if (clashRunning) MihomoIcons.OutlineCheckCircle else MihomoIcons.OutlineNotInterested,
text = stringResource(if (clashRunning) R.string.running else R.string.stopped),
Expand All @@ -208,8 +208,8 @@ private fun MainContent(
)

AnimatedVisibility(visible = clashRunning) {
MainActionCard(
modifier = Modifier.padding(vertical = dimens.mainCardMarginVertical),
HomeActionCard(
modifier = Modifier.padding(vertical = dimens.homeCardMarginVertical),
icon = MihomoIcons.BaselineApps,
text = stringResource(R.string.proxy),
subtext = mode,
Expand All @@ -219,8 +219,8 @@ private fun MainContent(
)
}

MainActionCard(
modifier = Modifier.padding(vertical = dimens.mainCardMarginVertical),
HomeActionCard(
modifier = Modifier.padding(vertical = dimens.homeCardMarginVertical),
icon = MihomoIcons.BaselineViewList,
text = stringResource(R.string.profile),
subtext =
Expand All @@ -232,34 +232,34 @@ private fun MainContent(
)

AnimatedVisibility(visible = clashRunning && hasProviders) {
MainActionLabel(
modifier = Modifier.padding(vertical = dimens.mainLabelMarginVertical),
HomeActionLabel(
modifier = Modifier.padding(vertical = dimens.homeLabelMarginVertical),
icon = MihomoIcons.BaselineSwapVerticalCircle,
text = stringResource(R.string.providers),
onClick = onOpenProviders,
)
}

MainActionLabel(
modifier = Modifier.padding(vertical = dimens.mainLabelMarginVertical),
HomeActionLabel(
modifier = Modifier.padding(vertical = dimens.homeLabelMarginVertical),
icon = MihomoIcons.BaselineAssignment,
text = stringResource(R.string.logs),
onClick = onOpenLogs,
)
MainActionLabel(
modifier = Modifier.padding(vertical = dimens.mainLabelMarginVertical),
HomeActionLabel(
modifier = Modifier.padding(vertical = dimens.homeLabelMarginVertical),
icon = MihomoIcons.BaselineSettings,
text = stringResource(R.string.settings),
onClick = onOpenSettings,
)
MainActionLabel(
modifier = Modifier.padding(vertical = dimens.mainLabelMarginVertical),
HomeActionLabel(
modifier = Modifier.padding(vertical = dimens.homeLabelMarginVertical),
icon = MihomoIcons.BaselineHelpCenter,
text = stringResource(R.string.help),
onClick = onOpenHelp,
)
MainActionLabel(
modifier = Modifier.padding(vertical = dimens.mainLabelMarginVertical),
HomeActionLabel(
modifier = Modifier.padding(vertical = dimens.homeLabelMarginVertical),
icon = MihomoIcons.BaselineInfo,
text = stringResource(R.string.about),
onClick = onOpenAbout,
Expand All @@ -271,7 +271,7 @@ private fun MainContent(
}

@Composable
private fun MainActionCard(
private fun HomeActionCard(
icon: ImageVector,
text: String,
subtext: String?,
Expand Down Expand Up @@ -315,7 +315,7 @@ private fun MainActionCard(
}

@Composable
private fun MainActionLabel(
private fun HomeActionLabel(
icon: ImageVector,
text: String,
onClick: () -> Unit,
Expand Down Expand Up @@ -373,8 +373,8 @@ private fun AboutDialog(versionName: String, onDismiss: () -> Unit) {
@PreviewWrapper(MihomoThemeWrapper::class)
@PreviewMihomo
@Composable
private fun MainContentRunningPreview() {
MainContent(
private fun HomeContentRunningPreview() {
HomeContent(
snackbarHostState = SnackbarHostState(),
clashRunning = true,
forwarded = "1.23 GB",
Expand All @@ -397,8 +397,8 @@ private fun MainContentRunningPreview() {
@PreviewWrapper(MihomoThemeWrapper::class)
@PreviewMihomo
@Composable
private fun MainContentStoppedPreview() {
MainContent(
private fun HomeContentStoppedPreview() {
HomeContent(
snackbarHostState = SnackbarHostState(),
clashRunning = false,
forwarded = null,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.kr328.clash.main.vm
package com.github.kr328.clash.home.vm

import android.app.Application
import android.content.Intent
Expand Down Expand Up @@ -27,7 +27,7 @@ import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

internal class MainViewModel(app: Application) : AndroidViewModel(app), DefaultLifecycleObserver {
internal class HomeViewModel(app: Application) : AndroidViewModel(app), DefaultLifecycleObserver {
private var broadcastEventsJob: Job? = null
private var trafficPollingJob: Job? = null
private var fetchJob: Job? = null
Expand Down
20 changes: 10 additions & 10 deletions ui/src/main/kotlin/com/github/kr328/clash/ui/theme/Theme.kt
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,11 @@ data class MihomoDimens(
val preferenceDialogButtonBarHorizontalPadding: Dp,
val preferenceDialogButtonBarVerticalPadding: Dp,
val preferenceFullscreenButtonPadding: Dp,
val mainCardMarginVertical: Dp,
val mainLabelMarginVertical: Dp,
val mainPaddingHorizontal: Dp,
val mainLogoSize: Dp,
val mainTopBannerHeight: Dp,
val homeCardMarginVertical: Dp,
val homeLabelMarginVertical: Dp,
val homePaddingHorizontal: Dp,
val homeLogoSize: Dp,
val homeTopBannerHeight: Dp,
val proxyLayoutPadding: Dp,
val proxyContentPadding: Dp,
val proxyContentPaddingGrid3: Dp,
Expand Down Expand Up @@ -168,11 +168,11 @@ private val DefaultMihomoDimens =
preferenceDialogButtonBarHorizontalPadding = 16.dp,
preferenceDialogButtonBarVerticalPadding = 8.dp,
preferenceFullscreenButtonPadding = 20.dp,
mainCardMarginVertical = 5.dp,
mainLabelMarginVertical = 2.dp,
mainPaddingHorizontal = 30.dp,
mainLogoSize = 50.dp,
mainTopBannerHeight = 90.dp,
homeCardMarginVertical = 5.dp,
homeLabelMarginVertical = 2.dp,
homePaddingHorizontal = 30.dp,
homeLogoSize = 50.dp,
homeTopBannerHeight = 90.dp,
proxyLayoutPadding = 3.dp,
proxyContentPadding = 15.dp,
proxyContentPaddingGrid3 = 12.dp,
Expand Down