From c644def18e3ee5d7c20fea987330a8213c15bd4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Tue, 3 Oct 2023 08:08:39 +0200 Subject: [PATCH] Move action building to a separate function --- .../flashlight/screens/MainScreen.kt | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/flashlight/screens/MainScreen.kt b/app/src/main/kotlin/com/simplemobiletools/flashlight/screens/MainScreen.kt index 2b4e913..1b8ed56 100644 --- a/app/src/main/kotlin/com/simplemobiletools/flashlight/screens/MainScreen.kt +++ b/app/src/main/kotlin/com/simplemobiletools/flashlight/screens/MainScreen.kt @@ -33,6 +33,7 @@ import com.simplemobiletools.commons.compose.settings.scaffold.topAppBarPaddings import com.simplemobiletools.commons.compose.theme.AppThemeSurface import com.simplemobiletools.flashlight.R import com.simplemobiletools.flashlight.views.SleepTimer +import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.toImmutableList @Composable @@ -68,17 +69,7 @@ internal fun MainScreen( TopAppBar( title = {}, actions = { - val actionMenus = remember { - val settings = - ActionItem(R.string.settings, icon = Icons.Filled.Settings, doAction = openSettings, overflowMode = OverflowMode.NEVER_OVERFLOW) - val about = ActionItem(R.string.about, icon = Icons.Outlined.Info, doAction = openAbout, overflowMode = OverflowMode.NEVER_OVERFLOW) - val sleepTimer = ActionItem(R.string.sleep_timer, doAction = openSleepTimer, overflowMode = OverflowMode.ALWAYS_OVERFLOW) - val list = mutableListOf(settings, about, sleepTimer) - if (showMoreApps) { - list += ActionItem(R.string.more_apps_from_us, doAction = moreAppsFromUs, overflowMode = OverflowMode.ALWAYS_OVERFLOW) - } - list.toImmutableList() - } + val actionMenus = remember { buildActionMenu(showMoreApps, openSettings, openAbout, openSleepTimer, moreAppsFromUs) } var isMenuVisible by remember { mutableStateOf(false) } ActionMenu( items = actionMenus, @@ -204,6 +195,24 @@ internal fun MainScreen( } } +private fun buildActionMenu( + showMoreApps: Boolean, + openSettings: () -> Unit, + openAbout: () -> Unit, + openSleepTimer: () -> Unit, + moreAppsFromUs: () -> Unit, +): ImmutableList { + val settings = + ActionItem(R.string.settings, icon = Icons.Filled.Settings, doAction = openSettings, overflowMode = OverflowMode.NEVER_OVERFLOW) + val about = ActionItem(R.string.about, icon = Icons.Outlined.Info, doAction = openAbout, overflowMode = OverflowMode.NEVER_OVERFLOW) + val sleepTimer = ActionItem(R.string.sleep_timer, doAction = openSleepTimer, overflowMode = OverflowMode.ALWAYS_OVERFLOW) + val list = mutableListOf(settings, about, sleepTimer) + if (showMoreApps) { + list += ActionItem(R.string.more_apps_from_us, doAction = moreAppsFromUs, overflowMode = OverflowMode.ALWAYS_OVERFLOW) + } + return list.toImmutableList() +} + @Composable @MyDevices internal fun MainScreenPreview() {