Fixed crash when opening gitnuro without existing tabs

This commit is contained in:
Abdelilah El Aissaoui 2023-04-24 22:14:05 +02:00
parent 1c079b9b43
commit 6ae68957e3
No known key found for this signature in database
GPG Key ID: 7587FC860F594869
2 changed files with 7 additions and 30 deletions

View File

@ -4,29 +4,14 @@ package com.jetpackduba.gitnuro
import androidx.compose.foundation.* import androidx.compose.foundation.*
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.LocalTextContextMenu import androidx.compose.foundation.text.LocalTextContextMenu
import androidx.compose.foundation.text.TextContextMenu
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.focus.FocusDirection
import androidx.compose.ui.focus.FocusManager
import androidx.compose.ui.input.InputMode
import androidx.compose.ui.input.InputModeManager
import androidx.compose.ui.input.key.KeyEventType
import androidx.compose.ui.input.key.key
import androidx.compose.ui.input.key.nativeKeyCode
import androidx.compose.ui.input.key.type
import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.LocalInputModeManager
import androidx.compose.ui.platform.LocalLocalization
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.Density
import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.DpSize
@ -43,7 +28,6 @@ import com.jetpackduba.gitnuro.preferences.AppSettings
import com.jetpackduba.gitnuro.system.systemSeparator import com.jetpackduba.gitnuro.system.systemSeparator
import com.jetpackduba.gitnuro.theme.AppTheme import com.jetpackduba.gitnuro.theme.AppTheme
import com.jetpackduba.gitnuro.theme.Theme import com.jetpackduba.gitnuro.theme.Theme
import com.jetpackduba.gitnuro.theme.isDark
import com.jetpackduba.gitnuro.theme.onBackgroundSecondary import com.jetpackduba.gitnuro.theme.onBackgroundSecondary
import com.jetpackduba.gitnuro.ui.AppTab import com.jetpackduba.gitnuro.ui.AppTab
import com.jetpackduba.gitnuro.ui.TabsManager import com.jetpackduba.gitnuro.ui.TabsManager
@ -51,11 +35,7 @@ import com.jetpackduba.gitnuro.ui.components.RepositoriesTabPanel
import com.jetpackduba.gitnuro.ui.components.TabInformation import com.jetpackduba.gitnuro.ui.components.TabInformation
import com.jetpackduba.gitnuro.ui.components.emptyTabInformation import com.jetpackduba.gitnuro.ui.components.emptyTabInformation
import com.jetpackduba.gitnuro.ui.context_menu.AppPopupMenu import com.jetpackduba.gitnuro.ui.context_menu.AppPopupMenu
import com.jetpackduba.gitnuro.ui.context_menu.ContextMenuElement
import com.jetpackduba.gitnuro.ui.context_menu.Separator
import com.jetpackduba.gitnuro.ui.context_menu.TextEntry
import org.eclipse.jgit.lib.GpgSigner import org.eclipse.jgit.lib.GpgSigner
import java.awt.event.KeyEvent
import java.io.File import java.io.File
import java.nio.file.Paths import java.nio.file.Paths
import javax.inject.Inject import javax.inject.Inject
@ -183,7 +163,7 @@ class App {
tabsInformationList = tabs, tabsInformationList = tabs,
currentTab = currentTab, currentTab = currentTab,
onAddedTab = { onAddedTab = {
tabsManager.newTab() tabsManager.addNewEmptyTab()
}, },
onCloseTab = { tab -> onCloseTab = { tab ->
tabsManager.closeTab(tab) tabsManager.closeTab(tab)

View File

@ -29,19 +29,16 @@ class TabsManager @Inject constructor(
fun loadPersistedTabs() { fun loadPersistedTabs() {
val repositoriesSaved = appSettings.latestTabsOpened val repositoriesSaved = appSettings.latestTabsOpened
val tabs = if (repositoriesSaved.isNotEmpty()) { val repositoriesList = if (repositoriesSaved.isNotEmpty())
val repositoriesList = Json.decodeFromString<List<String>>(repositoriesSaved) Json.decodeFromString<List<String>>(repositoriesSaved).map { path ->
repositoriesList.map { path ->
newAppTab( newAppTab(
path = path, path = path,
) )
} }
} else { else
listOf(newAppTab()) listOf()
}
_tabsFlow.value = tabs _tabsFlow.value = repositoriesList.ifEmpty { listOf(newAppTab()) }
_currentTab.value = _tabsFlow.value.first() _currentTab.value = _tabsFlow.value.first()
} }
@ -106,7 +103,7 @@ class TabsManager @Inject constructor(
appSettings.latestTabsOpened = Json.encodeToString(tabsPaths) appSettings.latestTabsOpened = Json.encodeToString(tabsPaths)
} }
fun newTab() { fun addNewEmptyTab() {
val newTab = newAppTab() val newTab = newAppTab()
_tabsFlow.update { _tabsFlow.update {