@@ -46,8 +46,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCa
46
46
import com.google.android.material.snackbar.Snackbar
47
47
import com.google.android.material.tabs.TabLayout
48
48
import com.google.android.material.tabs.TabLayout.Tab
49
- import com.itsaky.androidide.R.attr
50
- import com.itsaky.androidide.R.drawable
51
49
import com.itsaky.androidide.R.string
52
50
import com.itsaky.androidide.actions.ActionItem.Location.EDITOR_FILE_TABS
53
51
import com.itsaky.androidide.adapters.DiagnosticsAdapter
@@ -69,21 +67,15 @@ import com.itsaky.androidide.models.Range
69
67
import com.itsaky.androidide.models.SearchResult
70
68
import com.itsaky.androidide.projects.ProjectManager.getProjectDirPath
71
69
import com.itsaky.androidide.projects.ProjectManager.projectPath
72
- import com.itsaky.androidide.projects.builder.BuildService
73
70
import com.itsaky.androidide.ui.ContentTranslatingDrawerLayout
74
71
import com.itsaky.androidide.ui.editor.CodeEditorView
75
72
import com.itsaky.androidide.uidesigner.UIDesignerActivity
76
73
import com.itsaky.androidide.utils.ActionMenuUtils.createMenu
77
74
import com.itsaky.androidide.utils.ApkInstallationSessionCallback
78
- import com.itsaky.androidide.utils.DURATION_INDEFINITE
79
75
import com.itsaky.androidide.utils.DialogUtils.newMaterialDialogBuilder
80
76
import com.itsaky.androidide.utils.ILogger
81
77
import com.itsaky.androidide.utils.InstallationResultHandler.onResult
82
78
import com.itsaky.androidide.utils.flashError
83
- import com.itsaky.androidide.utils.flashbarBuilder
84
- import com.itsaky.androidide.utils.resolveAttr
85
- import com.itsaky.androidide.utils.showOnUiThread
86
- import com.itsaky.androidide.utils.withIcon
87
79
import com.itsaky.androidide.viewmodel.EditorViewModel
88
80
import com.itsaky.androidide.xml.resources.ResourceTableRegistry
89
81
import com.itsaky.androidide.xml.versions.ApiVersionsRegistry
@@ -114,7 +106,8 @@ abstract class BaseEditorActivity :
114
106
internal var installationCallback: ApkInstallationSessionCallback ? = null
115
107
116
108
var uiDesignerResultLauncher: ActivityResultLauncher <Intent >? = null
117
- val viewModel by viewModels<EditorViewModel >()
109
+ val editorViewModel by viewModels<EditorViewModel >()
110
+
118
111
lateinit var binding: ActivityEditorBinding
119
112
protected set
120
113
@@ -252,12 +245,12 @@ abstract class BaseEditorActivity :
252
245
253
246
override fun onTabSelected (tab : Tab ) {
254
247
val position = tab.position
255
- viewModel .displayedFileIndex = position
248
+ editorViewModel .displayedFileIndex = position
256
249
257
250
val editorView = provideEditorAt(position)!!
258
251
editorView.onEditorSelected()
259
252
260
- viewModel .setCurrentFile(position, editorView.file)
253
+ editorViewModel .setCurrentFile(position, editorView.file)
261
254
refreshSymbolInput(editorView)
262
255
invalidateOptionsMenu()
263
256
}
@@ -344,27 +337,6 @@ abstract class BaseEditorActivity :
344
337
.show()
345
338
}
346
339
347
- fun notifySyncNeeded (onConfirm : () -> Unit ) {
348
- val buildService = Lookup .getDefault().lookup(BuildService .KEY_BUILD_SERVICE )
349
- if (buildService == null || buildService.isBuildInProgress) return
350
-
351
- flashbarBuilder(
352
- duration = DURATION_INDEFINITE ,
353
- backgroundColor = resolveAttr(attr.colorSecondaryContainer),
354
- messageColor = resolveAttr(attr.colorOnSecondaryContainer)
355
- )
356
- .withIcon(drawable.ic_sync, colorFilter = resolveAttr(attr.colorOnSecondaryContainer))
357
- .message(string.msg_sync_needed)
358
- .positiveActionText(string.btn_sync)
359
- .positiveActionTapListener {
360
- onConfirm()
361
- it.dismiss()
362
- }
363
- .negativeActionText(string.btn_ignore_changes)
364
- .negativeActionTapListener { it.dismiss() }
365
- .showOnUiThread()
366
- }
367
-
368
340
open fun getFileTreeFragment (): FileTreeFragment ? {
369
341
if (filesTreeFragment == null ) {
370
342
filesTreeFragment =
@@ -374,8 +346,8 @@ abstract class BaseEditorActivity :
374
346
}
375
347
376
348
fun doSetStatus (text : CharSequence , @GravityInt gravity : Int ) {
377
- viewModel .statusText = text
378
- viewModel .statusGravity = gravity
349
+ editorViewModel .statusText = text
350
+ editorViewModel .statusGravity = gravity
379
351
}
380
352
381
353
private fun tryLaunchApp (packageName : String ) {
@@ -440,18 +412,18 @@ abstract class BaseEditorActivity :
440
412
441
413
private fun onBuildStatusChanged () {
442
414
log.debug(
443
- " onBuildStatusChanged: isInitializing: ${viewModel .isInitializing} , isBuildInProgress: ${viewModel .isBuildInProgress} " )
444
- val visible = viewModel .isBuildInProgress || viewModel .isInitializing
415
+ " onBuildStatusChanged: isInitializing: ${editorViewModel .isInitializing} , isBuildInProgress: ${editorViewModel .isBuildInProgress} " )
416
+ val visible = editorViewModel .isBuildInProgress || editorViewModel .isInitializing
445
417
binding.buildProgressIndicator.visibility = if (visible) View .VISIBLE else View .GONE
446
418
invalidateOptionsMenu()
447
419
}
448
420
449
421
private fun setupViews () {
450
- viewModel ._isBuildInProgress .observe(this ) { onBuildStatusChanged() }
451
- viewModel ._isInitializing .observe(this ) { onBuildStatusChanged() }
452
- viewModel ._statusText .observe(this ) { binding.bottomSheet.setStatus(it.first, it.second) }
422
+ editorViewModel ._isBuildInProgress .observe(this ) { onBuildStatusChanged() }
423
+ editorViewModel ._isInitializing .observe(this ) { onBuildStatusChanged() }
424
+ editorViewModel ._statusText .observe(this ) { binding.bottomSheet.setStatus(it.first, it.second) }
453
425
454
- viewModel .observeFiles(this ) { files ->
426
+ editorViewModel .observeFiles(this ) { files ->
455
427
binding.apply {
456
428
if (files.isNullOrEmpty()) {
457
429
tabs.visibility = View .GONE
0 commit comments