Milan Jurkulak 1 年間 前
親
コミット
951749ea01

+ 9 - 0
composeApp/src/androidMain/kotlin/org/mjdev/desktop/activity/MainActivity.kt

@@ -2,9 +2,11 @@ package org.mjdev.desktop.activity
 
 import android.graphics.Color
 import android.os.Bundle
+import android.util.Log
 import android.view.WindowManager
 import androidx.activity.ComponentActivity
 import androidx.activity.SystemBarStyle
+import androidx.activity.compose.BackHandler
 import androidx.activity.compose.setContent
 import androidx.activity.enableEdgeToEdge
 import androidx.compose.foundation.layout.Box
@@ -56,6 +58,9 @@ class MainActivity : ComponentActivity() {
             systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
         }
         setContent {
+            BackHandler(true) {
+                Log.d(TAG, "OnBackPressed")
+            }
             rememberPermissionManager()
             CompositionLocalProvider(
                 LocalDesktopContext provides rememberDesktopContext(baseContext)
@@ -78,6 +83,10 @@ class MainActivity : ComponentActivity() {
     private fun ComponentActivity.resetKeepScreenOn() {
         window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
     }
+
+    companion object {
+        private val TAG = MainActivity::class.simpleName
+    }
 }
 
 @OptIn(ExperimentalPermissionsApi::class)

+ 2 - 2
composeApp/src/commonMain/kotlin/org/mjdev/desktop/components/custom/Clock.kt

@@ -17,8 +17,8 @@ import androidx.compose.ui.unit.sp
 import org.mjdev.desktop.components.text.TextWithShadow
 import org.mjdev.desktop.extensions.Compose.preview
 import org.mjdev.desktop.extensions.Modifier.size
-import org.mjdev.desktop.extensions.Custom.dateFlow
-import org.mjdev.desktop.extensions.Custom.timeFlow
+import org.mjdev.desktop.extensions.CustomExt.dateFlow
+import org.mjdev.desktop.extensions.CustomExt.timeFlow
 import org.mjdev.desktop.extensions.MutableStateExt.rememberState
 import org.mjdev.desktop.context.DesktopContextScope.Companion.withDesktopContext
 import org.mjdev.desktop.extensions.LaunchedEffect.runAsync

+ 26 - 0
composeApp/src/commonMain/kotlin/org/mjdev/desktop/extensions/Compose.kt

@@ -296,4 +296,30 @@ object Compose {
     }
 
     fun Modifier.greyScale(): Modifier = this then GreyScaleModifier()
+
+//    @Composable
+//    fun DisableBackHandler(
+//        isDisabled: Boolean,
+//        content: @Composable () -> Unit,
+//    ) {
+//        CompositionLocalProvider(
+//            values = LocalOnBackPressedDispatcherOwner.current?.let { parentDispatcherOwner ->
+//                arrayOf(
+//                    LocalOnBackPressedDispatcherOwner provides if (isDisabled) {
+//                        DummyOnBackPressedDispatcherOwner(parentDispatcherOwner.lifecycle)
+//                    } else {
+//                        parentDispatcherOwner
+//                    },
+//                )
+//            } ?: arrayOf(),
+//            content = content,
+//        )
+//    }
+
+//    private class DummyOnBackPressedDispatcherOwner(
+//        override val lifecycle: Lifecycle,
+//    ) : OnBackPressedDispatcherOwner {
+//        override val onBackPressedDispatcher: OnBackPressedDispatcher
+//            get() = OnBackPressedDispatcher()
+//    }
 }

+ 1 - 1
composeApp/src/commonMain/kotlin/org/mjdev/desktop/extensions/Custom.kt

@@ -10,7 +10,7 @@ import kotlinx.datetime.toLocalDate
 import kotlinx.datetime.toLocalDateTime
 import kotlinx.datetime.toLocalTime
 
-object Custom {
+object CustomExt {
 
     val dateFlow
         @Composable

+ 1 - 1
composeApp/src/desktopMain/kotlin/org/mjdev/desktop/components/controlcenter/ControlCenterWindow.kt

@@ -132,6 +132,6 @@ fun ControlCenterWindow(
 @Suppress("unused")
 @Preview
 @Composable
-fun ControlCenterPreview() = preview {
+fun ControlCenterWindowPreview() = preview {
     ControlCenterWindow()
 }

+ 1 - 1
composeApp/src/desktopMain/kotlin/org/mjdev/desktop/components/desktoppanel/DesktopPanelWindow.kt

@@ -159,6 +159,6 @@ fun DesktopPanelWindow(
 // todo
 @Preview
 @Composable
-fun DesktopPanelPreview() = preview {
+fun DesktopPanelWindowPreview() = preview {
     DesktopPanelWindow()
 }

+ 1 - 1
composeApp/src/desktopMain/kotlin/org/mjdev/desktop/components/greeter/GreeterWindow.kt

@@ -41,6 +41,6 @@ fun GreeterWindow() = withDesktopContext {
 
 @Preview
 @Composable
-fun GreeterPreview() = preview {
+fun GreeterWindowPreview() = preview {
     GreeterWindow()
 }

+ 1 - 1
composeApp/src/desktopMain/kotlin/org/mjdev/desktop/components/installer/InstallerWindow.kt

@@ -30,6 +30,6 @@ fun InstallerWindow(
 @Suppress("unused")
 @Preview
 @Composable
-fun InfoWindowPreview() = preview {
+fun InstallerWindowPreview() = preview {
     InstallerWindow()
 }

+ 1 - 1
composeApp/src/desktopMain/kotlin/org/mjdev/desktop/context/DeskptopContext.kt

@@ -92,7 +92,7 @@ class DesktopContext(
 
     // todo state
     override val currentUser: IUser
-        get() = allUsers.firstOrNull { u -> u.isLoggedIn } ?: User.Nobody
+        get() = allUsers.firstOrNull { u -> u.isLoggedIn } ?: User.DEFAULT
     override val theme: ITheme
         get() = currentUser.theme
     override val containerSize: DpSize