mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
fix: startParse() not called
This commit is contained in:
Binary file not shown.
+2
-1
@@ -27,6 +27,7 @@ import com.itsaky.androidide.fragments.BaseFragment
|
||||
import com.itsaky.androidide.inflater.IInflateEventsListener
|
||||
import com.itsaky.androidide.inflater.ILayoutInflater
|
||||
import com.itsaky.androidide.inflater.OnInflateViewEvent
|
||||
import com.itsaky.androidide.inflater.internal.utils.startParse
|
||||
import com.itsaky.androidide.uidesigner.UIDesignerActivity
|
||||
import com.itsaky.androidide.uidesigner.databinding.FragmentDesignerWorkspaceBinding
|
||||
import com.itsaky.androidide.uidesigner.databinding.LayoutDesignerErrorBinding
|
||||
@@ -85,7 +86,7 @@ class DesignerWorkspaceFragment : BaseFragment() {
|
||||
emptyList()
|
||||
}
|
||||
if (inflated.isEmpty()) {
|
||||
binding!!.workspace.addView(createErrorView("Failed to infflate view"))
|
||||
binding!!.workspace.addView(createErrorView("Failed to inflate view"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
android:background="@drawable/bg_designer_view"
|
||||
android:backgroundTint="@color/primaryLightColor"
|
||||
android:backgroundTintMode="src_atop"
|
||||
android:orientation="horizontal" />
|
||||
android:orientation="vertical" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
+7
@@ -45,7 +45,10 @@ import com.itsaky.androidide.inflater.InflationStartEvent
|
||||
import com.itsaky.androidide.inflater.OnApplyAttributeEvent
|
||||
import com.itsaky.androidide.inflater.OnInflateViewEvent
|
||||
import com.itsaky.androidide.inflater.internal.utils.IDTable
|
||||
import com.itsaky.androidide.inflater.internal.utils.endParse
|
||||
import com.itsaky.androidide.inflater.internal.utils.isParsing
|
||||
import com.itsaky.androidide.inflater.internal.utils.parseLayoutReference
|
||||
import com.itsaky.androidide.inflater.internal.utils.startParse
|
||||
import com.itsaky.androidide.projects.ProjectManager
|
||||
import com.itsaky.androidide.projects.api.AndroidModule
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
@@ -75,10 +78,14 @@ open class LayoutInflaterImpl : ILayoutInflater() {
|
||||
override fun inflate(file: File, parent: ViewGroup): List<IView> {
|
||||
this._primaryInflatingFile = file
|
||||
IDTable.newRound()
|
||||
if (!isParsing) {
|
||||
startParse(file)
|
||||
}
|
||||
inflationEventListener?.onEvent(InflationStartEvent())
|
||||
return doInflate(file, parent).apply {
|
||||
inflationEventListener?.onEvent(InflationFinishEvent(this))
|
||||
_primaryInflatingFile = null
|
||||
endParse()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,14 +22,28 @@ import com.itsaky.androidide.projects.api.AndroidModule
|
||||
import java.io.File
|
||||
|
||||
private var currentModule: AndroidModule? = null
|
||||
var isParsing: Boolean = false
|
||||
private set
|
||||
|
||||
val module: AndroidModule
|
||||
get() =
|
||||
currentModule ?: throw IllegalStateException("You must call startParse(AndroidModule) first")
|
||||
|
||||
fun startParse(file: File) {
|
||||
if (isParsing) {
|
||||
return
|
||||
}
|
||||
(ProjectManager.findModuleForFile(file) as? AndroidModule)?.let {
|
||||
startParse(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun startParse(m: AndroidModule) {
|
||||
currentModule = m
|
||||
isParsing = true
|
||||
}
|
||||
|
||||
fun endParse() {
|
||||
currentModule = null
|
||||
}
|
||||
isParsing = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user