Skip to content

Commit f55f032

Browse files
author
ADFA
committed
Daily merge from stage to main
2 parents cdc84c6 + 34f24db commit f55f032

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

app/src/main/java/com/itsaky/androidide/activities/editor/EditorHandlerActivity.kt

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,13 @@ open class EditorHandlerActivity :
106106
private val tabIndexToPluginId = mutableMapOf<Int, String>()
107107

108108
private fun getTabPositionForFileIndex(fileIndex: Int): Int {
109+
val safeContent = contentOrNull ?: return -1
110+
val totalTabs = safeContent.tabs.tabCount
111+
109112
if (fileIndex < 0) return -1
110113
var tabPos = 0
111114
var fileCount = 0
112-
while (tabPos < content.tabs.tabCount) {
115+
while (tabPos < totalTabs) {
113116
if (!isPluginTab(tabPos)) {
114117
if (fileCount == fileIndex) return tabPos
115118
fileCount++
@@ -513,6 +516,8 @@ open class EditorHandlerActivity :
513516
file: File,
514517
selection: Range?,
515518
): Int {
519+
val safeContent = contentOrNull ?: return -1
520+
val totalTabs = safeContent.tabs.tabCount
516521
val openedFileIndex = findIndexOfEditorByFile(file)
517522
if (openedFileIndex != -1) {
518523
return openedFileIndex
@@ -524,18 +529,19 @@ open class EditorHandlerActivity :
524529

525530
val fileIndex = editorViewModel.getOpenedFileCount()
526531
val tabPosition = getNextFileTabPosition()
532+
if (tabPosition < 0) return -1
527533

528534
log.info("Opening file at file index {} tab position {} file:{}", fileIndex, tabPosition, file)
529535

530536
val editor = CodeEditorView(this, file, selection!!)
531537
editor.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
532538

533-
if (tabPosition >= content.tabs.tabCount) {
534-
content.tabs.addTab(content.tabs.newTab())
535-
content.editorContainer.addView(editor)
539+
if (tabPosition >= totalTabs) {
540+
safeContent.tabs.addTab(safeContent.tabs.newTab())
541+
safeContent.editorContainer.addView(editor)
536542
} else {
537-
content.tabs.addTab(content.tabs.newTab(), tabPosition)
538-
content.editorContainer.addView(editor, tabPosition)
543+
safeContent.tabs.addTab(safeContent.tabs.newTab(), tabPosition)
544+
safeContent.editorContainer.addView(editor, tabPosition)
539545
shiftPluginIndices(tabPosition, 1)
540546
}
541547

@@ -548,8 +554,11 @@ open class EditorHandlerActivity :
548554
}
549555

550556
private fun getNextFileTabPosition(): Int {
557+
val safeContent = contentOrNull ?: return -1
558+
val totalTabs = safeContent.tabs.tabCount
559+
551560
var lastFileTabPos = -1
552-
for (i in 0 until content.tabs.tabCount) {
561+
for (i in 0 until totalTabs) {
553562
if (!isPluginTab(i)) {
554563
lastFileTabPos = i
555564
}
@@ -1163,11 +1172,13 @@ open class EditorHandlerActivity :
11631172
}
11641173

11651174
fun isPluginTab(position: Int): Boolean {
1166-
if (position < 0 || position >= content.tabs.tabCount) {
1175+
val safeContent = contentOrNull ?: return false
1176+
val totalTabs = safeContent.tabs.tabCount
1177+
1178+
if (position !in 0..<totalTabs) {
11671179
return false
11681180
}
1169-
val result = tabIndexToPluginId.containsKey(position)
1170-
return result
1181+
return tabIndexToPluginId.containsKey(position)
11711182
}
11721183

11731184
fun getPluginTabId(position: Int): String? = tabIndexToPluginId[position]
@@ -1179,10 +1190,11 @@ open class EditorHandlerActivity :
11791190
}
11801191

11811192
fun updateTabVisibility() {
1193+
val safeContent = contentOrNull ?: return
11821194
val hasFiles = editorViewModel.getOpenedFileCount() > 0
11831195
val hasPluginTabs = pluginTabIndices.isNotEmpty()
11841196

1185-
content.apply {
1197+
safeContent.apply {
11861198
if (!hasFiles && !hasPluginTabs) {
11871199
tabs.visibility = View.GONE
11881200
viewContainer.displayedChild = 1

0 commit comments

Comments
 (0)