Coverage Summary for Class: BackupPickerLauncher_jvmKt (com.georgeci.moneysurfer.feature.settings.backup)

Class Method, % Branch, % Line, % Instruction, %
BackupPickerLauncher_jvmKt 0% (0/2) 0% (0/10) 0% (0/10) 0% (0/118)
BackupPickerLauncher_jvmKt$rememberBackupPickerLauncher$1$1 0% (0/3) 0% (0/4) 0% (0/7) 0% (0/47)
Total 0% (0/5) 0% (0/14) 0% (0/17) 0% (0/165)


 package com.georgeci.moneysurfer.feature.settings.backup
 
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import okio.BufferedSink
 import okio.BufferedSource
 import okio.buffer
 import okio.sink
 import okio.source
 import java.awt.FileDialog
 import java.awt.Frame
 import java.io.File
 
 @Composable
 actual fun rememberBackupPickerLauncher(
     @Suppress("UNUSED_PARAMETER") format: BackupPickerFormat,
     onSavePicked: (BufferedSink?) -> Unit,
     onOpenPicked: (BufferedSource?) -> Unit,
 ): BackupPickerLauncher = remember(onSavePicked, onOpenPicked) {
     object : BackupPickerLauncher {
         override fun launchSave(suggestedName: String) {
             val file = chooseFile(mode = FileDialog.SAVE, defaultName = suggestedName)
             val sink = file?.let { it.sink().buffer() }
             onSavePicked(sink)
         }
 
         override fun launchOpen() {
             val file = chooseFile(mode = FileDialog.LOAD)
             val source = file?.let { it.source().buffer() }
             onOpenPicked(source)
         }
     }
 }
 
 private fun chooseFile(mode: Int, defaultName: String? = null): File? {
     val dialog = FileDialog(null as Frame?, "MoneySurfer backup", mode)
     if (defaultName != null) dialog.file = defaultName
     dialog.isVisible = true
     val dir = dialog.directory ?: return null
     val name = dialog.file ?: return null
     return File(dir, name)
 }