Skip to content

Commit 4d3625d

Browse files
committed
add screen to manage startup tabs
1 parent 585e0a6 commit 4d3625d

File tree

14 files changed

+405
-22
lines changed

14 files changed

+405
-22
lines changed

app/src/main/java/com/raival/compose/file/explorer/screen/main/MainActivity.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Arrangement
88
import androidx.compose.foundation.layout.Column
99
import androidx.compose.foundation.layout.ColumnScope
1010
import androidx.compose.foundation.layout.fillMaxSize
11+
import androidx.compose.foundation.layout.fillMaxWidth
1112
import androidx.compose.foundation.pager.HorizontalPager
1213
import androidx.compose.foundation.pager.rememberPagerState
1314
import androidx.compose.material3.CircularProgressIndicator
@@ -24,6 +25,7 @@ import androidx.lifecycle.Lifecycle
2425
import androidx.lifecycle.compose.LifecycleEventEffect
2526
import com.raival.compose.file.explorer.App.Companion.globalClass
2627
import com.raival.compose.file.explorer.base.BaseActivity
28+
import com.raival.compose.file.explorer.common.toJson
2729
import com.raival.compose.file.explorer.common.ui.SafeSurface
2830
import com.raival.compose.file.explorer.screen.main.tab.apps.AppsTab
2931
import com.raival.compose.file.explorer.screen.main.tab.apps.ui.AppsTabContentView
@@ -35,6 +37,7 @@ import com.raival.compose.file.explorer.screen.main.tab.home.ui.HomeTabContentVi
3537
import com.raival.compose.file.explorer.screen.main.ui.AppInfoDialog
3638
import com.raival.compose.file.explorer.screen.main.ui.JumpToPathDialog
3739
import com.raival.compose.file.explorer.screen.main.ui.SaveTextEditorFilesDialog
40+
import com.raival.compose.file.explorer.screen.main.ui.StartupTabsSettingsScreen
3841
import com.raival.compose.file.explorer.screen.main.ui.TabLayout
3942
import com.raival.compose.file.explorer.screen.main.ui.Toolbar
4043
import com.raival.compose.file.explorer.theme.FileExplorerTheme
@@ -99,6 +102,11 @@ class MainActivity : BaseActivity() {
99102
onSave = { mainActivityManager.saveTextEditorFiles { finish() } }
100103
)
101104

105+
StartupTabsSettingsScreen(mainActivityState.showStartupTabsDialog) {
106+
mainActivityManager.toggleStartupTabsDialog(false)
107+
globalClass.preferencesManager.behaviorPrefs.startupTabs = it.toJson()
108+
}
109+
102110
Column(Modifier.fillMaxSize()) {
103111
Toolbar(
104112
title = mainActivityState.title,
@@ -125,7 +133,9 @@ class MainActivity : BaseActivity() {
125133

126134
if (state.tabs.isEmpty()) {
127135
Column(
128-
modifier = Modifier.weight(1f),
136+
modifier = Modifier
137+
.weight(1f)
138+
.fillMaxWidth(),
129139
verticalArrangement = Arrangement.Center,
130140
horizontalAlignment = Alignment.CenterHorizontally
131141
) {

app/src/main/java/com/raival/compose/file/explorer/screen/main/MainActivityManager.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ class MainActivityManager {
267267
fun loadStartupTabs() {
268268
managerScope.launch {
269269
val startupTabs: StartupTabs =
270-
fromJson(globalClass.preferencesManager.appearancePrefs.startupTabs)
270+
fromJson(globalClass.preferencesManager.behaviorPrefs.startupTabs)
271271
?: StartupTabs.default()
272272

273273
val tabs = arrayListOf<Tab>()
@@ -310,6 +310,12 @@ class MainActivityManager {
310310
)
311311
}
312312

313+
fun toggleStartupTabsDialog(show: Boolean) {
314+
_state.value = _state.value.copy(
315+
showStartupTabsDialog = show
316+
)
317+
}
318+
313319
fun reorderTabs(from: Int, to: Int) {
314320
_state.value = _state.value.copy(
315321
tabs = _state.value.tabs.toMutableList().apply {

app/src/main/java/com/raival/compose/file/explorer/screen/main/MainActivityState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ data class MainActivityState(
1313
val showAppInfoDialog: Boolean = false,
1414
val showJumpToPathDialog: Boolean = false,
1515
val showSaveEditorFilesDialog: Boolean = false,
16+
val showStartupTabsDialog: Boolean = false,
1617
val isSavingFiles: Boolean = false,
1718
val selectedTabIndex: Int = 0,
1819
val storageDevices: List<StorageDevice> = emptyList(),

app/src/main/java/com/raival/compose/file/explorer/screen/main/startup/StartupTabs.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.raival.compose.file.explorer.screen.main.startup
33
import com.raival.compose.file.explorer.common.emptyString
44

55
data class StartupTabs(
6-
val tabs: ArrayList<StartupTab>
6+
val tabs: List<StartupTab>
77
) {
88
companion object {
99
fun default() = StartupTabs(arrayListOf(StartupTab(StartupTabType.HOME)))

app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/home/ui/HomeLayoutSettingsScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ fun HomeLayoutSettingsScreen(
163163
LazyColumn(
164164
state = lazyListState,
165165
modifier = Modifier
166-
.fillMaxWidth(),
166+
.fillMaxSize(),
167167
verticalArrangement = Arrangement.spacedBy(16.dp)
168168
) {
169169
items(sections, key = { it.id }) { section ->

0 commit comments

Comments
 (0)