Changed getCurrentOs to be a lazy property and avoid doing the check everytime

This commit is contained in:
Abdelilah El Aissaoui 2023-08-22 20:54:40 +02:00
parent 46ea80d9ce
commit f017409db8
No known key found for this signature in database
GPG Key ID: 7587FC860F594869
8 changed files with 15 additions and 17 deletions

View File

@ -2,14 +2,14 @@ package com.jetpackduba.gitnuro
import com.jetpackduba.gitnuro.extensions.openDirectory import com.jetpackduba.gitnuro.extensions.openDirectory
import com.jetpackduba.gitnuro.system.OS import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs import com.jetpackduba.gitnuro.system.currentOs
import org.apache.log4j.* import org.apache.log4j.*
import java.io.File import java.io.File
fun initLogging() { fun initLogging() {
val layout = PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n") val layout = PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n")
val filePath = when (getCurrentOs()) { val filePath = when (currentOs) {
OS.LINUX -> linuxLogsPathAppender() OS.LINUX -> linuxLogsPathAppender()
OS.WINDOWS -> windowsLogsPathAppender() OS.WINDOWS -> windowsLogsPathAppender()
OS.MAC -> macosLogsPath() OS.MAC -> macosLogsPath()

View File

@ -5,7 +5,7 @@ import com.jetpackduba.gitnuro.managers.FlatpakShellManager
import com.jetpackduba.gitnuro.managers.IShellManager import com.jetpackduba.gitnuro.managers.IShellManager
import com.jetpackduba.gitnuro.managers.ShellManager import com.jetpackduba.gitnuro.managers.ShellManager
import com.jetpackduba.gitnuro.system.OS import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs import com.jetpackduba.gitnuro.system.currentOs
import com.jetpackduba.gitnuro.terminal.ITerminalProvider import com.jetpackduba.gitnuro.terminal.ITerminalProvider
import com.jetpackduba.gitnuro.terminal.LinuxTerminalProvider import com.jetpackduba.gitnuro.terminal.LinuxTerminalProvider
import com.jetpackduba.gitnuro.terminal.MacTerminalProvider import com.jetpackduba.gitnuro.terminal.MacTerminalProvider
@ -34,7 +34,7 @@ class ShellModule {
windowsTerminalProvider: Provider<WindowsTerminalProvider>, windowsTerminalProvider: Provider<WindowsTerminalProvider>,
macTerminalProvider: Provider<MacTerminalProvider>, macTerminalProvider: Provider<MacTerminalProvider>,
): ITerminalProvider { ): ITerminalProvider {
return when (getCurrentOs()) { return when (currentOs) {
OS.LINUX -> linuxTerminalProvider.get() OS.LINUX -> linuxTerminalProvider.get()
OS.WINDOWS -> windowsTerminalProvider.get() OS.WINDOWS -> windowsTerminalProvider.get()
OS.MAC -> macTerminalProvider.get() OS.MAC -> macTerminalProvider.get()

View File

@ -5,7 +5,7 @@ package com.jetpackduba.gitnuro.keybindings
import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.input.key.* import androidx.compose.ui.input.key.*
import com.jetpackduba.gitnuro.system.OS import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs import com.jetpackduba.gitnuro.system.currentOs
data class Keybinding( data class Keybinding(
val alt: Boolean = false, val alt: Boolean = false,
@ -85,7 +85,7 @@ private fun macKeybindings(): Map<KeybindingOption, List<Keybinding>> {
} }
val keybindings by lazy { val keybindings by lazy {
return@lazy when (getCurrentOs()) { return@lazy when (currentOs) {
OS.LINUX -> linuxKeybindings() OS.LINUX -> linuxKeybindings()
OS.WINDOWS -> windowsKeybindings() OS.WINDOWS -> windowsKeybindings()
OS.MAC -> macKeybindings() OS.MAC -> macKeybindings()

View File

@ -1,7 +1,7 @@
package com.jetpackduba.gitnuro.managers package com.jetpackduba.gitnuro.managers
import com.jetpackduba.gitnuro.system.OS import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs import com.jetpackduba.gitnuro.system.currentOs
import com.jetpackduba.gitnuro.logging.printError import com.jetpackduba.gitnuro.logging.printError
import java.io.File import java.io.File
import javax.inject.Inject import javax.inject.Inject
@ -10,7 +10,7 @@ private const val TAG = "AppFilesManager"
class AppFilesManager @Inject constructor() { class AppFilesManager @Inject constructor() {
fun getAppFolder(): File { fun getAppFolder(): File {
val baseFolderPath = when (getCurrentOs()) { val baseFolderPath = when (currentOs) {
OS.LINUX -> { OS.LINUX -> {
var configFolder: String? = System.getenv("XDG_CONFIG_HOME") var configFolder: String? = System.getenv("XDG_CONFIG_HOME")

View File

@ -2,7 +2,7 @@ package com.jetpackduba.gitnuro.preferences
import com.jetpackduba.gitnuro.extensions.defaultWindowPlacement import com.jetpackduba.gitnuro.extensions.defaultWindowPlacement
import com.jetpackduba.gitnuro.system.OS import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs import com.jetpackduba.gitnuro.system.currentOs
import com.jetpackduba.gitnuro.theme.ColorsScheme import com.jetpackduba.gitnuro.theme.ColorsScheme
import com.jetpackduba.gitnuro.theme.Theme import com.jetpackduba.gitnuro.theme.Theme
import com.jetpackduba.gitnuro.viewmodels.TextDiffType import com.jetpackduba.gitnuro.viewmodels.TextDiffType
@ -258,7 +258,7 @@ class AppSettings @Inject constructor() {
// TODO migrate old prefs path to new one? // TODO migrate old prefs path to new one?
fun initPreferencesPath() { fun initPreferencesPath() {
if (getCurrentOs() == OS.LINUX) { if (currentOs == OS.LINUX) {
val xdgConfigHome: String? = System.getenv("XDG_CONFIG_HOME") val xdgConfigHome: String? = System.getenv("XDG_CONFIG_HOME")
val settingsPath = if (xdgConfigHome.isNullOrBlank()) { val settingsPath = if (xdgConfigHome.isNullOrBlank()) {

View File

@ -18,11 +18,11 @@ enum class OS {
fun isMac() = this == MAC fun isMac() = this == MAC
} }
fun getCurrentOs(): OS { val currentOs by lazy {
val os = System.getProperty("os.name").lowercase() val os = System.getProperty("os.name").lowercase()
printLog(TAG, "OS is $os") printLog(TAG, "OS is $os")
return when { return@lazy when {
os.contains("linux") -> OS.LINUX os.contains("linux") -> OS.LINUX
os.contains("windows") -> OS.WINDOWS os.contains("windows") -> OS.WINDOWS
os.contains("mac") -> OS.MAC os.contains("mac") -> OS.MAC
@ -30,7 +30,6 @@ fun getCurrentOs(): OS {
} }
} }
val systemSeparator: String by lazy { val systemSeparator: String by lazy {
FileSystems.getDefault().separator FileSystems.getDefault().separator
} }

View File

@ -21,9 +21,8 @@ class OpenFilePickerUseCase @Inject constructor(
private val shellManager: ShellManager private val shellManager: ShellManager
) { ) {
operator fun invoke(pickerType: PickerType, basePath: String?): String? { operator fun invoke(pickerType: PickerType, basePath: String?): String? {
val os = getCurrentOs() val isLinux = currentOs.isLinux()
val isLinux = os.isLinux() val isMac = currentOs.isMac()
val isMac = os.isMac()
return if (isLinux) { return if (isLinux) {
openDirectoryDialogLinux(pickerType) openDirectoryDialogLinux(pickerType)

View File

@ -19,7 +19,7 @@ class OpenPathInSystemUseCase @Inject constructor(
private val shellManager: ShellManager private val shellManager: ShellManager
) { ) {
operator fun invoke(path: String): Boolean { operator fun invoke(path: String): Boolean {
when (getCurrentOs()) { when (currentOs) {
OS.LINUX -> { OS.LINUX -> {
if (shellManager.runCommandWithoutResult(listOf("xdg-open", path))) if (shellManager.runCommandWithoutResult(listOf("xdg-open", path)))
return true return true