Gitnuro/src/main/kotlin/com/jetpackduba/gitnuro/system/OpenFileInExternalAppUseCase.kt
2023-04-17 17:03:06 +02:00

32 lines
858 B
Kotlin

package com.jetpackduba.gitnuro.system
import com.jetpackduba.gitnuro.logging.printError
import java.awt.Desktop
import java.io.File
import javax.inject.Inject
private const val TAG = "SystemUtils"
/**
* Opens a file with the default external app.
* An example would be opening an image with the default image viewer
*/
class OpenFileInExternalAppUseCase @Inject constructor(
private val openPathInSystemUseCase: OpenPathInSystemUseCase
) {
operator fun invoke(filePath: String) {
if (!openPathInSystemUseCase(filePath)) {
openFileJdk(filePath)
}
}
private fun openFileJdk(filePath: String) {
try {
Desktop.getDesktop().open(File(filePath))
} catch (ex: Exception) {
printError(TAG, "Failed to open URL in browser")
ex.printStackTrace()
}
}
}