Fixed crash when opening gitnuro without existing tabs
This commit is contained in:
parent
1c079b9b43
commit
6ae68957e3
@ -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)
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user