diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index d1b013add..026741050 100755
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -94,7 +94,6 @@
-
\ No newline at end of file
diff --git a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterIndexGenerator.kt b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterIndexGenerator.kt
index 0aef09d54..22c962bde 100644
--- a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterIndexGenerator.kt
+++ b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/ViewAdapterIndexGenerator.kt
@@ -49,7 +49,7 @@ import javax.tools.Diagnostic.Kind.ERROR
class ViewAdapterIndexGenerator {
private val indexClassBuilder =
- TypeSpec.classBuilder(INDEX_CLASS_NAME).addModifiers(PUBLIC, FINAL)
+ TypeSpec.classBuilder(INDEX_CLASS_NAME).addModifiers(PUBLIC, FINAL).addSuperinterface(viewAdapterInterface)
private val indexAddStatements = CodeBlock.builder()
fun init(env: ProcessingEnvironment) {
@@ -77,12 +77,20 @@ class ViewAdapterIndexGenerator {
)
)
- addUninstantiableConstructor(indexClassBuilder)
+ addPrivateConstructor(indexClassBuilder)
+
+ val indexImpl = ClassName.get(INDEX_PACKAGE_NAME, INDEX_CLASS_NAME)
+ indexClassBuilder.addField(
+ FieldSpec.builder(indexImpl, "INSTANCE", PUBLIC, STATIC, FINAL)
+ .initializer("new \$T()", indexImpl)
+ .build()
+ )
indexClassBuilder.addMethod(
MethodSpec.methodBuilder("getAdapter")
+ .addAnnotation(Override::class.java)
.addAnnotation(ClassName.get("androidx.annotation", "Nullable"))
- .addModifiers(PUBLIC, STATIC)
+ .addModifiers(PUBLIC)
.addParameter(String::class.java, "view", FINAL)
.returns(adapterType)
.addStatement("var adapter = \$L.get(\$L)", INDEX_MAP_FIELD, "view")
@@ -92,11 +100,12 @@ class ViewAdapterIndexGenerator {
.addStatement("return adapter")
.build()
)
-
+
indexClassBuilder.addMethod(
MethodSpec.methodBuilder("getViewAdapter")
+ .addAnnotation(Override::class.java)
.addAnnotation(ClassName.get("androidx.annotation", "Nullable"))
- .addModifiers(PUBLIC, STATIC)
+ .addModifiers(PUBLIC)
.addParameter(String::class.java, "view", FINAL)
.returns(adapterType)
.addStatement("return \$L.get(\$L)", INDEX_MAP_FIELD, "view")
@@ -138,8 +147,9 @@ class ViewAdapterIndexGenerator {
indexClassBuilder.addMethod(
MethodSpec.methodBuilder("getWidgetProviders")
+ .addAnnotation(Override::class.java)
.addAnnotation(nonNull)
- .addModifiers(PUBLIC, STATIC)
+ .addModifiers(PUBLIC)
.returns(listOfViewAdapters)
.addParameter(groupParam)
.addStatement("return \$L.get(group)", INDEX_PROVIDER_MAP_FIELD)
@@ -224,17 +234,8 @@ class ViewAdapterIndexGenerator {
file.build().writeTo(generatedDir)
}
- private fun addUninstantiableConstructor(builder: TypeSpec.Builder) {
- builder.addMethod(
- MethodSpec.constructorBuilder()
- .addModifiers(PRIVATE)
- .addStatement(
- "throw new \$T(\$S)",
- UnsupportedOperationException::class.java,
- "This class cannot be instantiated."
- )
- .build()
- )
+ private fun addPrivateConstructor(builder: TypeSpec.Builder) {
+ builder.addMethod(MethodSpec.constructorBuilder().addModifiers(PRIVATE).build())
}
private fun getViewTypeName(
diff --git a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/utils.kt b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/utils.kt
index b373d9ddf..d840cb86c 100644
--- a/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/utils.kt
+++ b/annotation-processors/src/main/java/com/itsaky/androidide/annotations/processor/utils.kt
@@ -17,6 +17,7 @@
package com.itsaky.androidide.annotations.processor
+import com.squareup.javapoet.ClassName
import javax.annotation.processing.ProcessingEnvironment
import javax.lang.model.element.TypeElement
import javax.lang.model.type.TypeMirror
@@ -31,13 +32,16 @@ const val ADAPTER_BASE_CLASS = "$ADAPTER_BASE_CLASS_PCK.$ADAPTER_BASE_CLASS_NAME
const val ADAPTER_FUNC_CREATE_WIDGET = "createUiWidgets"
const val INDEX_PACKAGE_NAME = "com.itsaky.androidide.inflater.internal"
-const val INDEX_CLASS_NAME = "ViewAdapterIndex"
+const val INDEX_CLASS_NAME = "ViewAdapterIndexImpl"
const val INDEX_MAP_FIELD = "adapterMap"
const val INDEX_PROVIDER_MAP_FIELD = "widgetProviders"
const val METHOD_SET_SUPERCLASS_HIERARCHY = "setSuperclassHierarchy"
const val METHOD_SET_MODULE = "setModuleNamespace"
+val viewAdapterInterface: ClassName =
+ ClassName.get("com.itsaky.androidide.inflater", "IViewAdapterIndex")
+
private var adapterElement: TypeElement? = null
private var viewElement: TypeElement? = null
diff --git a/app/src/main/assets/data/common/tooling-api-all.jar b/app/src/main/assets/data/common/tooling-api-all.jar
index 7e03dd914..a9167232f 100644
Binary files a/app/src/main/assets/data/common/tooling-api-all.jar and b/app/src/main/assets/data/common/tooling-api-all.jar differ
diff --git a/build.gradle.kts b/build.gradle.kts
index a4ac64300..6e606d6cb 100755
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -27,7 +27,9 @@ plugins {
alias(libs.plugins.kotlin) apply false
}
-buildscript { dependencies { classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
+buildscript { dependencies { classpath("com.google.android.gms:oss-licenses-plugin:0.10.6")
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21")
+} }
fun Project.configureBaseExtension() {
extensions.findByType(BaseExtension::class)?.run {
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 4dc85849a..1b1fe1b8e 100755
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -56,6 +56,7 @@ include(
":shared",
":treeview",
":uidesigner",
+ ":xml-inflater",
":gradle-plugin",
diff --git a/uidesigner/build.gradle.kts b/uidesigner/build.gradle.kts
index eba6683a0..f77d8ddb7 100644
--- a/uidesigner/build.gradle.kts
+++ b/uidesigner/build.gradle.kts
@@ -10,8 +10,6 @@ android {
dependencies {
- kapt(projects.annotationProcessors)
-
implementation(libs.androidx.appcompat)
implementation(libs.androidx.ktx)
implementation(libs.androidx.fragment.ktx)
@@ -32,14 +30,8 @@ dependencies {
implementation(projects.lsp.api)
implementation(projects.lsp.xml)
implementation(projects.resources)
+ implementation(projects.xmlInflater)
- implementation(projects.subprojects.aaptcompiler)
- implementation(projects.subprojects.projects)
- implementation(projects.subprojects.xmlUtils)
-
-
- testImplementation(projects.subprojects.projects)
- testImplementation(projects.subprojects.toolingApiTesting)
testImplementation(libs.tests.junit)
testImplementation(libs.tests.google.truth)
testImplementation(libs.tests.robolectric)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/UIDesignerActivity.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/UIDesignerActivity.kt
index 3c5b2a54b..61750ea2f 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/UIDesignerActivity.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/UIDesignerActivity.kt
@@ -29,7 +29,6 @@ import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.view.menu.MenuBuilder
import androidx.core.view.GravityCompat
import androidx.fragment.app.Fragment
-import androidx.navigation.fragment.NavHostFragment
import com.itsaky.androidide.actions.ActionData
import com.itsaky.androidide.actions.ActionItem.Location.UI_DESIGNER_TOOLBAR
import com.itsaky.androidide.actions.ActionsRegistry
@@ -183,7 +182,7 @@ class UIDesignerActivity : BaseIDEActivity() {
return workspace
}
- fun setupHierarchy(view: IView) {
+ fun setupHierarchy(view: com.itsaky.androidide.inflater.IView) {
binding?.hierarchy?.setupWithView(view) {
workspace()?.showViewInfo(it)
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/AddAttrListAdapter.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/AddAttrListAdapter.kt
index 17b5bfe03..432735198 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/AddAttrListAdapter.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/AddAttrListAdapter.kt
@@ -31,8 +31,8 @@ import com.itsaky.androidide.uidesigner.databinding.LayoutAddAttrItemBinding
* @author Akash Yadav
*/
class AddAttrListAdapter(
- private val attributes: List,
- private val onClick: (IAttribute) -> Unit = {}
+ private val attributes: List,
+ private val onClick: (com.itsaky.androidide.inflater.IAttribute) -> Unit = {}
) : RecyclerView.Adapter() {
class VH(val binding: LayoutAddAttrItemBinding) : RecyclerView.ViewHolder(binding.root)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/ViewAttrListAdapter.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/ViewAttrListAdapter.kt
index 0766accfe..275e2070a 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/ViewAttrListAdapter.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/adapters/ViewAttrListAdapter.kt
@@ -40,10 +40,10 @@ import com.itsaky.androidide.utils.DialogUtils
* @author Akash Yadav
*/
internal class ViewAttrListAdapter(
- attributes: List,
+ attributes: List,
private val viewModel: WorkspaceViewModel?,
- private val onDeleteAttr: (IAttribute) -> Boolean,
- private val onClick: (IAttribute) -> Unit
+ private val onDeleteAttr: (com.itsaky.androidide.inflater.IAttribute) -> Boolean,
+ private val onClick: (com.itsaky.androidide.inflater.IAttribute) -> Unit
) : RecyclerView.Adapter() {
private val attributes = attributes.sortedBy { it.name }.toMutableList()
@@ -78,7 +78,7 @@ internal class ViewAttrListAdapter(
val viewModel = this.viewModel ?: return@setOnClickListener
val attrUpdateListener =
object : SingleAttributeChangeListener() {
- override fun onAttributeUpdated(view: IView, attribute: IAttribute, oldValue: String) {
+ override fun onAttributeUpdated(view: com.itsaky.androidide.inflater.IView, attribute: com.itsaky.androidide.inflater.IAttribute, oldValue: String) {
binding.attrValue.text = attribute.value
}
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetDragListener.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetDragListener.kt
index 9583979f6..246fbd9a2 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetDragListener.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetDragListener.kt
@@ -36,7 +36,7 @@ import kotlin.math.min
*/
internal class WidgetDragListener(
val view: UiViewGroup,
- private val placeholder: IView,
+ private val placeholder: com.itsaky.androidide.inflater.IView,
private val touchSlop: Int
) : View.OnDragListener {
@@ -49,7 +49,7 @@ internal class WidgetDragListener(
val name =
when (val data = event.localState) {
- is IView -> data.name
+ is com.itsaky.androidide.inflater.IView -> data.name
is UiWidget -> data.name
else -> throw IllegalArgumentException("A local state of UiWidget or IView is expected")
}
@@ -92,7 +92,7 @@ internal class WidgetDragListener(
DragEvent.ACTION_DROP -> {
val child =
when (val data = event.localState) {
- is IView -> {
+ is com.itsaky.androidide.inflater.IView -> {
data.removeFromParent()
data
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetTouchListener.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetTouchListener.kt
index c5f1af98d..6833ba611 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetTouchListener.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/drag/WidgetTouchListener.kt
@@ -34,9 +34,9 @@ import com.itsaky.androidide.uidesigner.fragments.DesignerWorkspaceFragment
* @author Akash Yadav
*/
internal class WidgetTouchListener(
- private val view: IView,
+ private val view: com.itsaky.androidide.inflater.IView,
context: Context,
- private val onClick: (IView) -> Boolean = { false }
+ private val onClick: (com.itsaky.androidide.inflater.IView) -> Boolean = { false }
) : OnTouchListener {
private var touchedView: View? = null
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AddAttrFragment.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AddAttrFragment.kt
index f99c5a26b..39e6d83f7 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AddAttrFragment.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AddAttrFragment.kt
@@ -24,8 +24,8 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
import com.itsaky.androidide.inflater.utils.newAttribute
+import com.itsaky.androidide.inflater.viewAdapter
import com.itsaky.androidide.uidesigner.R
import com.itsaky.androidide.uidesigner.R.string
import com.itsaky.androidide.uidesigner.adapters.AddAttrListAdapter
@@ -83,7 +83,7 @@ class AddAttrFragment : Fragment() {
private fun showAttrs() {
val binding = this.binding ?: return
val view = viewModel.view ?: return
- val adapter = ViewAdapterIndex.getAdapter(view.name) ?: return
+ val adapter = view.viewAdapter ?: return
val attributes =
adapter.supportedAttributes.filterNot { view.hasAttribute(it.namespace.uri, it.name) }
binding.attrList.adapter =
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AttrValueEditorFragment.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AttrValueEditorFragment.kt
index 1331cf355..759da9186 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AttrValueEditorFragment.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/AttrValueEditorFragment.kt
@@ -27,10 +27,8 @@ import android.widget.ArrayAdapter
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import com.itsaky.androidide.inflater.internal.ViewImpl
-import com.itsaky.androidide.inflater.utils.newAttribute
import com.itsaky.androidide.uidesigner.databinding.LayoutAttrValueEditorBinding
import com.itsaky.androidide.uidesigner.databinding.LayoutViewInfoHeaderBinding
-import com.itsaky.androidide.uidesigner.models.UiAttribute
import com.itsaky.androidide.uidesigner.utils.ValueCompletionProvider
import com.itsaky.androidide.uidesigner.viewmodel.WorkspaceViewModel
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/DesignerWorkspaceFragment.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/DesignerWorkspaceFragment.kt
index 77aab7574..2be73ad7e 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/DesignerWorkspaceFragment.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/DesignerWorkspaceFragment.kt
@@ -142,7 +142,7 @@ class DesignerWorkspaceFragment : BaseFragment() {
this.inflater.close()
}
- internal fun setupView(view: IView) {
+ internal fun setupView(view: com.itsaky.androidide.inflater.IView) {
if (view is CommonUiView && !view.needSetup) {
return
}
@@ -171,7 +171,7 @@ class DesignerWorkspaceFragment : BaseFragment() {
}
}
- internal fun showViewInfo(view: IView) {
+ internal fun showViewInfo(view: com.itsaky.androidide.inflater.IView) {
viewModel.view = view
viewInfo.show(childFragmentManager, ViewInfoSheet.TAG)
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceLayoutInflationHandler.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceLayoutInflationHandler.kt
index 0800db31e..3494e2248 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceLayoutInflationHandler.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceLayoutInflationHandler.kt
@@ -23,7 +23,6 @@ import com.itsaky.androidide.inflater.events.InflationFinishEvent
import com.itsaky.androidide.inflater.events.InflationStartEvent
import com.itsaky.androidide.inflater.events.OnInflateViewEvent
import com.itsaky.androidide.inflater.internal.ViewImpl
-import com.itsaky.androidide.uidesigner.UIDesignerActivity
/**
* Handles layout inflation events in [DesignerWorkspaceFragment].
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewAttrHandler.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewAttrHandler.kt
index 77a98ba08..6537e4395 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewAttrHandler.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewAttrHandler.kt
@@ -29,7 +29,7 @@ import com.itsaky.androidide.uidesigner.undo.AttrUpdatedAction
*
* @author Akash Yadav
*/
-internal class WorkspaceViewAttrHandler : IView.AttributeChangeListener {
+internal class WorkspaceViewAttrHandler : com.itsaky.androidide.inflater.IView.AttributeChangeListener {
private var fragment: DesignerWorkspaceFragment? = null
@@ -41,17 +41,17 @@ internal class WorkspaceViewAttrHandler : IView.AttributeChangeListener {
this.fragment = null
}
- override fun onAttributeAdded(view: IView, attribute: IAttribute) {
+ override fun onAttributeAdded(view: com.itsaky.androidide.inflater.IView, attribute: com.itsaky.androidide.inflater.IAttribute) {
val frag = this.fragment ?: return
frag.undoManager.push(AttrAddedAction(view = view, attr = attribute as UiAttribute))
}
- override fun onAttributeRemoved(view: IView, attribute: IAttribute) {
+ override fun onAttributeRemoved(view: com.itsaky.androidide.inflater.IView, attribute: com.itsaky.androidide.inflater.IAttribute) {
val frag = this.fragment ?: return
frag.undoManager.push(AttrRemovedAction(view = view, attr = attribute as UiAttribute))
}
- override fun onAttributeUpdated(view: IView, attribute: IAttribute, oldValue: String) {
+ override fun onAttributeUpdated(view: com.itsaky.androidide.inflater.IView, attribute: com.itsaky.androidide.inflater.IAttribute, oldValue: String) {
val frag = this.fragment ?: return
frag.undoManager.push(
AttrUpdatedAction(
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewHierarchyHandler.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewHierarchyHandler.kt
index 5a5ca6c1e..546d6d7d1 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewHierarchyHandler.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/fragments/WorkspaceViewHierarchyHandler.kt
@@ -34,7 +34,7 @@ import com.itsaky.androidide.uidesigner.viewmodel.WorkspaceViewModel
*
* @author Akash Yadav
*/
-internal class WorkspaceViewHierarchyHandler : IViewGroup.SingleOnHierarchyChangeListener() {
+internal class WorkspaceViewHierarchyHandler : com.itsaky.androidide.inflater.IViewGroup.SingleOnHierarchyChangeListener() {
private var fragment: DesignerWorkspaceFragment? = null
@@ -54,7 +54,7 @@ internal class WorkspaceViewHierarchyHandler : IViewGroup.SingleOnHierarchyChang
)
}
- private fun pushAction(view: IView, parent: IViewGroup, index: Int, added: Boolean) {
+ private fun pushAction(view: com.itsaky.androidide.inflater.IView, parent: com.itsaky.androidide.inflater.IViewGroup, index: Int, added: Boolean) {
val frag = this.fragment ?: return
if (view is PlaceholderView) {
return
@@ -77,15 +77,15 @@ internal class WorkspaceViewHierarchyHandler : IViewGroup.SingleOnHierarchyChang
frag.requireActivity().invalidateOptionsMenu()
}
- override fun beforeViewAdded(group: IViewGroup, view: IView, index: Int) {
+ override fun beforeViewAdded(group: com.itsaky.androidide.inflater.IViewGroup, view: com.itsaky.androidide.inflater.IView, index: Int) {
animateLayoutChange()
}
- override fun beforeViewRemoved(group: IViewGroup, view: IView, index: Int) {
+ override fun beforeViewRemoved(group: com.itsaky.androidide.inflater.IViewGroup, view: com.itsaky.androidide.inflater.IView, index: Int) {
animateLayoutChange()
}
- override fun onViewAdded(group: IViewGroup, view: IView, index: Int) {
+ override fun onViewAdded(group: com.itsaky.androidide.inflater.IViewGroup, view: com.itsaky.androidide.inflater.IView, index: Int) {
val frag = this.fragment ?: return
if (!frag.isInflating && view !is PlaceholderView) {
// when the inflation process is in progress, setupView method will be called
@@ -103,7 +103,7 @@ internal class WorkspaceViewHierarchyHandler : IViewGroup.SingleOnHierarchyChang
pushAction(view, group, index, true)
}
- override fun onViewRemoved(group: IViewGroup, view: IView, index: Int) {
+ override fun onViewRemoved(group: com.itsaky.androidide.inflater.IViewGroup, view: com.itsaky.androidide.inflater.IView, index: Int) {
val frag = this.fragment ?: return
if (frag.workspaceView.viewGroup.childCount == 0) {
frag.viewModel.errText = frag.getString(R.string.msg_empty_ui_layout)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiAttribute.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiAttribute.kt
index 397d24192..9a34f830c 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiAttribute.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiAttribute.kt
@@ -19,11 +19,10 @@ package com.itsaky.androidide.uidesigner.models
import android.os.Parcelable
import com.itsaky.androidide.inflater.IAttribute
-import com.itsaky.androidide.inflater.INamespace
import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.inflater.internal.AttributeImpl
import com.itsaky.androidide.inflater.internal.NamespaceImpl
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
+import com.itsaky.androidide.inflater.viewAdapter
import kotlinx.parcelize.Parcelize
/**
@@ -35,7 +34,8 @@ import kotlinx.parcelize.Parcelize
open class UiAttribute
@JvmOverloads
constructor(
- override val namespace: NamespaceImpl = INamespace.ANDROID as NamespaceImpl,
+ override val namespace: NamespaceImpl =
+ com.itsaky.androidide.inflater.INamespace.ANDROID as NamespaceImpl,
override val name: String,
override var value: String,
internal var isRequired: Boolean = false
@@ -48,7 +48,7 @@ constructor(
companion object {
@JvmStatic
fun isRequired(view: IView, attribute: IAttribute): Boolean {
- val adapter = ViewAdapterIndex.getAdapter(view.name) ?: return false
+ val adapter = view.viewAdapter ?: return false
return adapter.isRequiredAttribute(attribute)
}
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiViewGroup.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiViewGroup.kt
index 9c18fac3b..31788ab69 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiViewGroup.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/models/UiViewGroup.kt
@@ -25,8 +25,8 @@ import com.itsaky.androidide.inflater.LayoutBehavior.HORIZONTAL
import com.itsaky.androidide.inflater.LayoutBehavior.TOP_LEFT
import com.itsaky.androidide.inflater.LayoutBehavior.VERTICAL
import com.itsaky.androidide.inflater.internal.LayoutFile
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
import com.itsaky.androidide.inflater.internal.ViewGroupImpl
+import com.itsaky.androidide.inflater.viewAdapter
/**
* Extension of [IView] for the UI Designer.
@@ -47,13 +47,12 @@ internal class UiViewGroup(file: LayoutFile, name: String, view: ViewGroup) :
if (childCount == 0) {
return 0
}
- val adapter =
- ViewAdapterIndex.getAdapter(name)
-
+ val adapter = viewAdapter
+
if (adapter !is IViewGroupAdapter) {
return childCount
}
-
+
return when (adapter.getLayoutBehavior(this)) {
TOP_LEFT -> childCount
VERTICAL -> computeViewIndexVertically(x, y)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAction.kt
index d9fa4fea5..440797168 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAction.kt
@@ -19,14 +19,13 @@ package com.itsaky.androidide.uidesigner.undo
import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.uidesigner.models.UiAttribute
-import com.itsaky.androidide.utils.ILogger
/**
* [UndoManager] action related to view attributes.
*
* @author Akash Yadav
*/
-internal abstract class AttrAction(protected val view: IView, protected val attr: UiAttribute) :
+internal abstract class AttrAction(protected val view: com.itsaky.androidide.inflater.IView, protected val attr: UiAttribute) :
IUiAction {
override fun toString(): String {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAddedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAddedAction.kt
index a8a0630c0..4f1d32175 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAddedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrAddedAction.kt
@@ -25,7 +25,7 @@ import com.itsaky.androidide.uidesigner.models.UiAttribute
*
* @author Akash Yadav
*/
-internal class AttrAddedAction(view: IView, attr: UiAttribute) :
+internal class AttrAddedAction(view: com.itsaky.androidide.inflater.IView, attr: UiAttribute) :
AttrAction(view, attr.copyAttr(view = view) as UiAttribute) {
override fun undo() {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrRemovedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrRemovedAction.kt
index cac0e0464..083b8c96e 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrRemovedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrRemovedAction.kt
@@ -25,7 +25,7 @@ import com.itsaky.androidide.uidesigner.models.UiAttribute
*
* @author Akash Yadav
*/
-internal class AttrRemovedAction(view: IView, attr: UiAttribute) :
+internal class AttrRemovedAction(view: com.itsaky.androidide.inflater.IView, attr: UiAttribute) :
AttrAction(view, attr.copyAttr(view = view) as UiAttribute) {
override fun undo() {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrUpdatedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrUpdatedAction.kt
index b8a141019..954e5f213 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrUpdatedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/AttrUpdatedAction.kt
@@ -25,7 +25,7 @@ import com.itsaky.androidide.uidesigner.models.UiAttribute
*
* @author Akash Yadav
*/
-internal class AttrUpdatedAction(view: IView, attr: UiAttribute, private val oldValue: String) :
+internal class AttrUpdatedAction(view: com.itsaky.androidide.inflater.IView, attr: UiAttribute, private val oldValue: String) :
AttrAction(view, attr) {
override fun undo() {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAction.kt
index 37e9b6b26..d083ac9f7 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAction.kt
@@ -31,7 +31,7 @@ import com.itsaky.androidide.inflater.IViewGroup
abstract class ViewAction
@JvmOverloads
constructor(
- val child: IView,
- val parent: IViewGroup,
+ val child: com.itsaky.androidide.inflater.IView,
+ val parent: com.itsaky.androidide.inflater.IViewGroup,
var index: Int = parent.indexOfChild(child)
) : IUiAction
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAddedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAddedAction.kt
index 14500a0c9..972e92c53 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAddedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewAddedAction.kt
@@ -27,7 +27,7 @@ import com.itsaky.androidide.inflater.IViewGroup
*/
class ViewAddedAction
@JvmOverloads
-constructor(view: IView, parent: IViewGroup, index: Int = parent.indexOfChild(view)) :
+constructor(view: com.itsaky.androidide.inflater.IView, parent: com.itsaky.androidide.inflater.IViewGroup, index: Int = parent.indexOfChild(view)) :
ViewAction(view, parent, index) {
override fun undo() {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewMovedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewMovedAction.kt
index a4a47060a..36da04ca6 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewMovedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewMovedAction.kt
@@ -26,9 +26,9 @@ import com.itsaky.androidide.inflater.IViewGroup
* @author Akash Yadav
*/
class ViewMovedAction(
- private val child: IView,
- private val fromParent: IViewGroup,
- private val toParent: IViewGroup,
+ private val child: com.itsaky.androidide.inflater.IView,
+ private val fromParent: com.itsaky.androidide.inflater.IViewGroup,
+ private val toParent: com.itsaky.androidide.inflater.IViewGroup,
private val fromIndex: Int,
private val toIndex: Int
) : IUiAction {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewRemovedAction.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewRemovedAction.kt
index f1d626e30..608294eec 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewRemovedAction.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/ViewRemovedAction.kt
@@ -19,15 +19,13 @@ package com.itsaky.androidide.uidesigner.undo
import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.inflater.IViewGroup
-import kotlin.math.max
-import kotlin.math.min
/**
* Represents the action when the user removes a view from a view group.
*
* @author Akash Yadav
*/
-class ViewRemovedAction(child: IView, parent: IViewGroup, index: Int) :
+class ViewRemovedAction(child: com.itsaky.androidide.inflater.IView, parent: com.itsaky.androidide.inflater.IViewGroup, index: Int) :
ViewAction(child, parent, index) {
override fun undo() {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/undoUtils.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/undoUtils.kt
index 3a52c2312..6b4ad8ebc 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/undoUtils.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/undo/undoUtils.kt
@@ -21,6 +21,6 @@ import com.itsaky.androidide.inflater.IViewGroup
import kotlin.math.max
import kotlin.math.min
-internal fun IViewGroup.validateIndex(index: Int) : Int {
+internal fun com.itsaky.androidide.inflater.IViewGroup.validateIndex(index: Int) : Int {
return min(max(0, index), childCount)
}
\ No newline at end of file
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiInflaterComponentFactory.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiInflaterComponentFactory.kt
index 8ce3e4021..e4af4ac2d 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiInflaterComponentFactory.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiInflaterComponentFactory.kt
@@ -34,9 +34,9 @@ import com.itsaky.androidide.uidesigner.models.UiViewGroup
*
* @author Akash Yadav
*/
-open class UiInflaterComponentFactory : IComponentFactory {
+open class UiInflaterComponentFactory : com.itsaky.androidide.inflater.IComponentFactory {
- override fun createView(file: LayoutFile, name: String, view: View): IView {
+ override fun createView(file: LayoutFile, name: String, view: View): com.itsaky.androidide.inflater.IView {
if (view is ViewGroup) {
return UiViewGroup(file, name, view)
}
@@ -44,11 +44,11 @@ open class UiInflaterComponentFactory : IComponentFactory {
}
override fun createAttr(
- view: IView,
- namespace: INamespace,
+ view: com.itsaky.androidide.inflater.IView,
+ namespace: com.itsaky.androidide.inflater.INamespace,
name: String,
value: String
- ): IAttribute {
+ ): com.itsaky.androidide.inflater.IAttribute {
return UiAttribute(namespace = namespace as NamespaceImpl, name = name, value = value).apply {
isRequired = UiAttribute.isRequired(view, this)
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiLayoutInflater.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiLayoutInflater.kt
index 9577a24cc..588119dba 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiLayoutInflater.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/UiLayoutInflater.kt
@@ -30,6 +30,6 @@ class UiLayoutInflater : LayoutInflaterImpl() {
init {
this.componentFactory = UiInflaterComponentFactory()
- Lookup.DEFAULT.update(ILayoutInflater.LOOKUP_KEY, this)
+ Lookup.DEFAULT.update(com.itsaky.androidide.inflater.ILayoutInflater.LOOKUP_KEY, this)
}
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ValueCompletionProvider.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ValueCompletionProvider.kt
index 1151a28dd..8b9eb7c9f 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ValueCompletionProvider.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ValueCompletionProvider.kt
@@ -37,7 +37,7 @@ import java.io.File
internal class ValueCompletionProvider(
private val file: File,
private val view: ViewImpl,
- private val attribute: IAttribute,
+ private val attribute: com.itsaky.androidide.inflater.IAttribute,
private val onComplete: (List) -> Unit
) : SingleTextWatcher() {
@@ -72,7 +72,7 @@ internal class ValueCompletionProvider(
private val log = ILogger.newInstance("CompletionThread")
var prefix: String = ""
- var attribute: IAttribute? = null
+ var attribute: com.itsaky.androidide.inflater.IAttribute? = null
fun cancel() {
interrupt()
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ViewToXml.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ViewToXml.kt
index 2737482c0..87826d6e9 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ViewToXml.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/ViewToXml.kt
@@ -114,7 +114,7 @@ object ViewToXml {
addSingleAttribute("${attr.namespace.prefix}:${attr.name}", attr.value, true)
}
- if (view is IViewGroup) {
+ if (view is com.itsaky.androidide.inflater.IViewGroup) {
closeStartElement()
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/Widgets.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/Widgets.kt
index 9a4f8de49..97e4f8413 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/Widgets.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/Widgets.kt
@@ -19,7 +19,7 @@ package com.itsaky.androidide.uidesigner.utils
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner.Group.LAYOUTS
import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner.Group.WIDGETS
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
+import com.itsaky.androidide.inflater.IViewAdapterIndex
import com.itsaky.androidide.inflater.internal.utils.simpleName
import com.itsaky.androidide.uidesigner.R.string
import com.itsaky.androidide.uidesigner.models.UiWidgetCategory
@@ -45,7 +45,7 @@ internal object Widgets {
return@apply
}
this.widgets =
- ViewAdapterIndex.getWidgetProviders(WIDGETS)
+ IViewAdapterIndex.instance.getWidgetProviders(WIDGETS)
.flatMap { it.getUiWidgets() }
.sortedBy { it.name.simpleName() }
}
@@ -58,7 +58,7 @@ internal object Widgets {
}
this.widgets =
- ViewAdapterIndex.getWidgetProviders(LAYOUTS)
+ IViewAdapterIndex.instance.getWidgetProviders(LAYOUTS)
.flatMap { it.getUiWidgets() }
.sortedBy { it.name.simpleName() }
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/WorkspaceHierarchyChangeListener.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/WorkspaceHierarchyChangeListener.kt
index 8c5f1c380..6321c652b 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/WorkspaceHierarchyChangeListener.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/utils/WorkspaceHierarchyChangeListener.kt
@@ -17,16 +17,8 @@
package com.itsaky.androidide.uidesigner.utils
-import androidx.transition.ChangeBounds
-import androidx.transition.TransitionManager
-import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.inflater.IViewGroup
-import com.itsaky.androidide.inflater.viewGroup
-import com.itsaky.androidide.uidesigner.R
-import com.itsaky.androidide.uidesigner.fragments.DesignerWorkspaceFragment
-import com.itsaky.androidide.uidesigner.models.PlaceholderView
import com.itsaky.androidide.uidesigner.models.UiViewGroup
-import com.itsaky.androidide.uidesigner.undo.ViewMovedAction
import com.itsaky.androidide.uidesigner.viewmodel.WorkspaceViewModel
/**
@@ -37,7 +29,7 @@ import com.itsaky.androidide.uidesigner.viewmodel.WorkspaceViewModel
internal class WorkspaceHierarchyChangeListener(
private val viewModel: WorkspaceViewModel,
private val workspaceView: UiViewGroup
-) : IViewGroup.SingleOnHierarchyChangeListener() {
+) : com.itsaky.androidide.inflater.IViewGroup.SingleOnHierarchyChangeListener() {
}
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/viewmodel/WorkspaceViewModel.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/viewmodel/WorkspaceViewModel.kt
index 51071370f..a42c87e3d 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/viewmodel/WorkspaceViewModel.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/viewmodel/WorkspaceViewModel.kt
@@ -28,7 +28,7 @@ internal class WorkspaceViewModel : ViewModel() {
internal val _drawerOpened = MutableLiveData(false)
internal val _errText = MutableLiveData("")
internal val _workspaceScreen = MutableLiveData(SCREEN_WORKSPACE)
- internal val _view = MutableLiveData(null)
+ internal val _view = MutableLiveData(null)
internal val _selectedAttr = MutableLiveData(null)
internal val _addAttrMode = MutableLiveData(false)
internal val _undoManager = MutableLiveData(UndoManager())
@@ -68,7 +68,7 @@ internal class WorkspaceViewModel : ViewModel() {
_workspaceScreen.value = value
}
- var view: IView?
+ var view: com.itsaky.androidide.inflater.IView?
get() = this._view.value
set(value) {
this._view.value = value
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/views/LayoutHierarchyView.kt b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/views/LayoutHierarchyView.kt
index 4d26bef58..6ee1c51a9 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/views/LayoutHierarchyView.kt
+++ b/uidesigner/src/main/java/com/itsaky/androidide/uidesigner/views/LayoutHierarchyView.kt
@@ -50,8 +50,8 @@ constructor(
defStyleRes: Int = 0
) : LinearLayout(context, attrs, defStyleAttr, defStyleRes) {
- private val textToIView = mutableMapOf()
- private var onClick: ((IView) -> Unit)? = null
+ private val textToIView = mutableMapOf()
+ private var onClick: ((com.itsaky.androidide.inflater.IView) -> Unit)? = null
private val clickListener = OnClickListener { view ->
onClick?.let { click -> textToIView[view]?.let(click) }
@@ -70,7 +70,7 @@ constructor(
paint.isAntiAlias = true
}
- fun setupWithView(view: IView, onClick: ((IView) -> Unit)? = null) {
+ fun setupWithView(view: com.itsaky.androidide.inflater.IView, onClick: ((com.itsaky.androidide.inflater.IView) -> Unit)? = null) {
removeAllViews()
textToIView.clear()
@@ -78,7 +78,7 @@ constructor(
addViews(view, 1)
}
- private fun addViews(view: IView, depth: Int) {
+ private fun addViews(view: com.itsaky.androidide.inflater.IView, depth: Int) {
val text =
HierarchyText(context, depth, dp16).apply {
this.text = view.tag
@@ -86,7 +86,7 @@ constructor(
}
addView(text)
- if (view is IViewGroup) {
+ if (view is com.itsaky.androidide.inflater.IViewGroup) {
text.childCount = computeChildCount(view)
view.forEach { addViews(it, depth + 1) }
}
@@ -94,10 +94,10 @@ constructor(
textToIView[text] = view
}
- private fun computeChildCount(view: IViewGroup): Int {
+ private fun computeChildCount(view: com.itsaky.androidide.inflater.IViewGroup): Int {
var count = view.childCount
view.forEachIndexed { index, child ->
- if (index != view.childCount - 1 && child is IViewGroup) {
+ if (index != view.childCount - 1 && child is com.itsaky.androidide.inflater.IViewGroup) {
count += computeChildCount(child)
}
}
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/enums/TintMode.java b/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/enums/TintMode.java
deleted file mode 100644
index 4742c74ca..000000000
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/enums/TintMode.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.sdsmdg.harjot.vectormaster.enums;
-
-/** Created by Harjot on 20-Jun-17. */
-public enum TintMode {
- ADD,
- MULTIPLY,
- SCREEN,
- SRC_ATOP,
- SCR_IN,
- SRC_OVER
-}
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/uidesigner/UiDesignerTest.kt b/uidesigner/src/test/java/com/itsaky/androidide/uidesigner/UiDesignerTest.kt
index ae7bdc10c..23d071ec6 100644
--- a/uidesigner/src/test/java/com/itsaky/androidide/uidesigner/UiDesignerTest.kt
+++ b/uidesigner/src/test/java/com/itsaky/androidide/uidesigner/UiDesignerTest.kt
@@ -45,7 +45,7 @@ fun requiresActivity(initComponentFactory: Boolean = true, block: AppCompatActiv
activity.block()
}
-fun Context.createLayout(parent: IViewGroup? = null): ViewGroupImpl {
+fun Context.createLayout(parent: com.itsaky.androidide.inflater.IViewGroup? = null): ViewGroupImpl {
return ViewGroupImpl(
LayoutFile(File(""), ""),
LinearLayout::class.qualifiedName!!,
@@ -54,12 +54,12 @@ fun Context.createLayout(parent: IViewGroup? = null): ViewGroupImpl {
.apply { parent?.let { applyLayoutParams(it) } }
}
-fun Context.createView(parent: IViewGroup? = null): ViewImpl {
+fun Context.createView(parent: com.itsaky.androidide.inflater.IViewGroup? = null): ViewImpl {
return ViewImpl(LayoutFile(File(""), ""), View::class.qualifiedName!!, View(this)).apply {
parent?.let { applyLayoutParams(it) }
}
}
-fun ViewImpl.applyLayoutParams(parent: IViewGroup) {
+fun ViewImpl.applyLayoutParams(parent: com.itsaky.androidide.inflater.IViewGroup) {
view.layoutParams = ViewFactory.generateLayoutParams(parent.viewGroup)
}
diff --git a/xml-inflater/.gitignore b/xml-inflater/.gitignore
new file mode 100644
index 000000000..42afabfd2
--- /dev/null
+++ b/xml-inflater/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/xml-inflater/build.gradle.kts b/xml-inflater/build.gradle.kts
new file mode 100644
index 000000000..fd14ca0f2
--- /dev/null
+++ b/xml-inflater/build.gradle.kts
@@ -0,0 +1,47 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+plugins {
+ id("com.android.library")
+ id("kotlin-android")
+ id("kotlin-kapt")
+ id("kotlin-parcelize")
+}
+
+android { namespace = "com.itsaky.androidide.inflater" }
+
+dependencies {
+
+ kapt(projects.annotationProcessors)
+
+ implementation(libs.androidx.appcompat)
+ implementation(libs.common.kotlin)
+ implementation(libs.common.utilcode)
+
+ implementation(projects.annotations)
+ implementation(projects.common)
+ implementation(projects.subprojects.aaptcompiler)
+ implementation(projects.subprojects.projects)
+ implementation(projects.subprojects.xmlUtils)
+ implementation(projects.resources)
+
+ testImplementation(projects.subprojects.projects)
+ testImplementation(projects.subprojects.toolingApiTesting)
+ testImplementation(libs.tests.junit)
+ testImplementation(libs.tests.google.truth)
+ testImplementation(libs.tests.robolectric)
+}
diff --git a/xml-inflater/consumer-rules.pro b/xml-inflater/consumer-rules.pro
new file mode 100644
index 000000000..e69de29bb
diff --git a/xml-inflater/proguard-rules.pro b/xml-inflater/proguard-rules.pro
new file mode 100644
index 000000000..481bb4348
--- /dev/null
+++ b/xml-inflater/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/xml-inflater/src/main/AndroidManifest.xml b/xml-inflater/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..e62e7b210
--- /dev/null
+++ b/xml-inflater/src/main/AndroidManifest.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/AbstractParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/AbstractParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/AbstractParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/AbstractParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/AttributeHandlerScope.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/AttributeHandlerScope.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/AttributeHandlerScope.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/AttributeHandlerScope.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/DefaultComponentFactory.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/DefaultComponentFactory.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/DefaultComponentFactory.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/DefaultComponentFactory.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/ForwardingViewGroup.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ForwardingViewGroup.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/ForwardingViewGroup.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/ForwardingViewGroup.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IAttribute.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IAttribute.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IAttribute.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IAttribute.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IComponentFactory.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IComponentFactory.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IComponentFactory.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IComponentFactory.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/ILayoutInflater.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/INamespace.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/INamespace.kt
similarity index 97%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/INamespace.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/INamespace.kt
index 191544d2f..b955f3240 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/INamespace.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/INamespace.kt
@@ -20,7 +20,6 @@ package com.itsaky.androidide.inflater
import com.android.SdkConstants.ANDROID_NS_NAME
import com.android.SdkConstants.ANDROID_URI
import com.itsaky.androidide.inflater.internal.NamespaceImpl
-import kotlinx.parcelize.RawValue
/**
* An XML namespace declaration.
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IView.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IView.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IView.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IView.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewAdapter.kt
diff --git a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewAdapterIndex.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewAdapterIndex.kt
new file mode 100644
index 000000000..df7d891f8
--- /dev/null
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewAdapterIndex.kt
@@ -0,0 +1,84 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater
+
+import android.view.View
+import com.itsaky.androidide.annotations.uidesigner.IncludeInDesigner
+import com.itsaky.androidide.inflater.internal.ViewAdapterIndexImpl
+
+/**
+ * Provides access to all view adapters.
+ *
+ * @author Akash Yadav
+ */
+interface IViewAdapterIndex {
+
+ companion object {
+ @JvmField val instance: IViewAdapterIndex = ViewAdapterIndexImpl.INSTANCE
+ }
+
+ /**
+ * Get the adapter for the given fully qualified view name.
+ *
+ * @param view The fully qualified name of the view class.
+ * @return The [IViewAdapter] for the given view name. If no adapter is found for the given view
+ * name, returns adapter for `android.view.View` if available or `null`.
+ */
+ fun getAdapter(view: String): IViewAdapter<*>?
+
+ /**
+ * Get the adapter for the given view.
+ *
+ * @param view The fully qualified name of the view.
+ * @return The view adapter instance or `null` if not found.
+ */
+ fun getViewAdapter(view: String): IViewAdapter<*>
+
+ /**
+ * Get the view adapters which provide widgets to the UI designer.
+ *
+ * @param group The group to get widget providers for.
+ * @return The widget providers for the [group].
+ */
+ fun getWidgetProviders(group: IncludeInDesigner.Group) : List>
+}
+
+/**
+ * Get the adapter for the given fully qualified view name.
+ *
+ * @param view The fully qualified name of the view class.
+ * @return The [IViewAdapter] for the given view name. If no adapter is found for the given view
+ * name, returns adapter for `android.view.View` if available or `null`.
+ */
+fun getAdapter(view: String): IViewAdapter<*>? {
+ return IViewAdapterIndex.instance.getAdapter(view)
+}
+
+/**
+ * Get the adapter for the given view.
+ *
+ * @param view The fully qualified name of the view.
+ * @return The view adapter instance or `null` if not found.
+ */
+fun getViewAdapter(view: String): IViewAdapter<*> {
+ return IViewAdapterIndex.instance.getViewAdapter(view)
+}
+
+/** The view adapter for this view. */
+val IView.viewAdapter: IViewAdapter?
+ get() = IViewAdapterIndex.instance.getAdapter(this.name)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt
similarity index 96%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt
index cabc33275..14654592f 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewGroup.kt
@@ -17,8 +17,6 @@
package com.itsaky.androidide.inflater
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
-
/**
* Inflated model for a [ViewGroup][android.view.ViewGroup].
*
@@ -54,7 +52,7 @@ interface IViewGroup : IView, Iterable {
*/
fun canAcceptChild(name: String): Boolean {
return canModifyChildViews() &&
- (ViewAdapterIndex.getAdapter(this.name) as? IViewGroupAdapter)?.canAcceptChild(this, name) == true
+ (this.viewAdapter as? IViewGroupAdapter)?.canAcceptChild(this, name) == true
}
/**
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewGroupAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewGroupAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/IViewGroupAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/IViewGroupAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/InflateException.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/InflateException.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/InflateException.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/InflateException.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/LayoutBehavior.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/LayoutBehavior.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/LayoutBehavior.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/LayoutBehavior.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt
similarity index 98%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt
index 66bcfee12..a7c958ddb 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/BitmapDrawableParser.kt
@@ -26,7 +26,6 @@ import android.graphics.Shader.TileMode.MIRROR
import android.graphics.Shader.TileMode.REPEAT
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
-import com.itsaky.androidide.app.BaseApplication
import com.itsaky.androidide.inflater.InflateException
import org.jetbrains.annotations.Contract
import org.xmlpull.v1.XmlPullParser
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ClipDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ClipDrawableParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ClipDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ClipDrawableParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java
similarity index 96%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java
index fbe117001..e78dc6e6c 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/DrawableParserFactory.java
@@ -29,7 +29,7 @@ import androidx.annotation.Nullable;
import com.blankj.utilcode.util.FileIOUtils;
import com.blankj.utilcode.util.ImageUtils;
import com.itsaky.androidide.utils.ILogger;
-import com.sdsmdg.harjot.vectormaster.VectorMasterDrawable;
+import com.itsaky.androidide.inflater.vectormaster.VectorMasterDrawable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/IDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/IDrawableParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/IDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/IDrawableParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/InsetDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/InsetDrawableParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/InsetDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/InsetDrawableParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/LayerListParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/LayerListParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/LayerListParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/LayerListParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ScaleDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ScaleDrawableParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ScaleDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ScaleDrawableParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ShapeDrawableParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ShapeDrawableParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/ShapeDrawableParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/ShapeDrawableParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/StateListParser.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/StateListParser.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/drawable/StateListParser.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/drawable/StateListParser.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/events/IInflateEventsListener.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/IInflateEventsListener.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/events/IInflateEventsListener.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/IInflateEventsListener.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/events/IInflationEvent.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/IInflationEvent.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/events/IInflationEvent.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/IInflationEvent.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/events/inflationEvents.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/inflationEvents.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/events/inflationEvents.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/events/inflationEvents.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/AttributeImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/AttributeImpl.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/AttributeImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/AttributeImpl.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ErrorView.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ErrorView.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ErrorView.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ErrorView.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ForwardingView.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ForwardingView.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ForwardingView.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ForwardingView.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableAttributeImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableAttributeImpl.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableAttributeImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableAttributeImpl.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewGroupImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewGroupImpl.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewGroupImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewGroupImpl.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt
similarity index 96%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt
index e4999ef9d..3feb1b43c 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ImmutableViewImpl.kt
@@ -17,11 +17,9 @@
package com.itsaky.androidide.inflater.internal
-import android.view.View
import com.itsaky.androidide.inflater.IAttribute
import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.inflater.IView.AttributeChangeListener
-import com.itsaky.androidide.inflater.IViewGroup
/**
* An immutable implementation of [IView].
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/LayoutFile.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutFile.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/LayoutFile.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutFile.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
similarity index 99%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
index ceda79c1c..98434231a 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/LayoutInflaterImpl.kt
@@ -54,6 +54,7 @@ import com.itsaky.androidide.inflater.internal.utils.parseLayoutReference
import com.itsaky.androidide.inflater.utils.endParse
import com.itsaky.androidide.inflater.utils.isParsing
import com.itsaky.androidide.inflater.utils.startParse
+import com.itsaky.androidide.inflater.viewAdapter
import com.itsaky.androidide.lookup.Lookup
import com.itsaky.androidide.projects.ProjectManager
import com.itsaky.androidide.projects.api.AndroidModule
@@ -225,7 +226,7 @@ open class LayoutInflaterImpl : ILayoutInflater {
) {
val parentView = parent.view as ViewGroup
val adapter =
- ViewAdapterIndex.getAdapter(view.name)
+ view.viewAdapter
?: throw InflateException("No attribute adapter found for view ${view.name}")
view.view.layoutParams = generateLayoutParams(parentView)
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/NamespaceImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/NamespaceImpl.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/NamespaceImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/NamespaceImpl.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/SingleChildViewGroup.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/SingleChildViewGroup.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/SingleChildViewGroup.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/SingleChildViewGroup.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ViewGroupImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ViewGroupImpl.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ViewGroupImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ViewGroupImpl.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt
similarity index 98%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt
index bb9a02008..9ac4441bb 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/ViewImpl.kt
@@ -28,6 +28,7 @@ import com.itsaky.androidide.inflater.IViewGroup
import com.itsaky.androidide.inflater.internal.utils.simpleName
import com.itsaky.androidide.inflater.internal.utils.tagName
import com.itsaky.androidide.inflater.utils.newAttribute
+import com.itsaky.androidide.inflater.viewAdapter
import com.itsaky.androidide.resources.R.drawable
import com.itsaky.androidide.utils.ILogger
@@ -112,7 +113,7 @@ constructor(
}
override fun applyAttribute(attribute: IAttribute) {
- val adapter = ViewAdapterIndex.getAdapter(name)
+ val adapter = viewAdapter
if (adapter == null) {
log.warn("No attribute adapter found for view $name")
return
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsListViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsListViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsListViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsListViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSeekBarAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSeekBarAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSeekBarAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSeekBarAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSpinnerAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSpinnerAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSpinnerAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsSpinnerAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsoluteLayoutAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsoluteLayoutAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsoluteLayoutAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AbsoluteLayoutAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AdapterViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AdapterViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AdapterViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AdapterViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AnalogClockAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AnalogClockAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AnalogClockAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AnalogClockAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AutoCompleteTextViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AutoCompleteTextViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AutoCompleteTextViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/AutoCompleteTextViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ButtonAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ButtonAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ButtonAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ButtonAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CalendarViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CalendarViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CalendarViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CalendarViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckBoxAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckBoxAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckBoxAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckBoxAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckedTextViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckedTextViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckedTextViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CheckedTextViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ChronometerAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ChronometerAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ChronometerAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ChronometerAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CompoundButtonAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CompoundButtonAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CompoundButtonAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/CompoundButtonAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/DigitalClockAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/DigitalClockAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/DigitalClockAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/DigitalClockAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/EditTextAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/EditTextAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/EditTextAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/EditTextAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/FrameLayoutAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/FrameLayoutAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/FrameLayoutAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/FrameLayoutAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GestureOverlayViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GestureOverlayViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GestureOverlayViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GestureOverlayViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GridLayoutAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GridLayoutAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GridLayoutAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/GridLayoutAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/HorizontalScrollViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageButtonAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageButtonAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageButtonAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageButtonAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ImageViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/LinearLayoutAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/LinearLayoutAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/LinearLayoutAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/LinearLayoutAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ListViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ListViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ListViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ListViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/MultiAutoCompleteTextViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/MultiAutoCompleteTextViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/MultiAutoCompleteTextViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/MultiAutoCompleteTextViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/NumberPickerAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/NumberPickerAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/NumberPickerAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/NumberPickerAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ProgressBarAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ProgressBarAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ProgressBarAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ProgressBarAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/QuickContactBadgeAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/QuickContactBadgeAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/QuickContactBadgeAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/QuickContactBadgeAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioButtonAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioButtonAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioButtonAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioButtonAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioGroupAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioGroupAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioGroupAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RadioGroupAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RatingBarAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RatingBarAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RatingBarAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RatingBarAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RelativeLayoutAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RelativeLayoutAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RelativeLayoutAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/RelativeLayoutAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ScrollViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SeekBarAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SeekBarAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SeekBarAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SeekBarAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpaceAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpaceAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpaceAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpaceAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpinnerAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpinnerAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpinnerAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SpinnerAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SurfaceViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SurfaceViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SurfaceViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SurfaceViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SwitchAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SwitchAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SwitchAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/SwitchAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextClockAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextClockAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextClockAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextClockAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextureViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextureViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextureViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/TextureViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ToggleButtonAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ToggleButtonAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ToggleButtonAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ToggleButtonAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/VideoViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/VideoViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/VideoViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/VideoViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewGroupAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewGroupAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewGroupAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/ViewGroupAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/WebViewAdapter.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/WebViewAdapter.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/WebViewAdapter.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/WebViewAdapter.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/appcompat/AppCompatTextView.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/appcompat/AppCompatTextView.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/adapters/appcompat/AppCompatTextView.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/adapters/appcompat/AppCompatTextView.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/IDTable.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/IDTable.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/IDTable.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/IDTable.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/TextDrawable.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/TextDrawable.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/TextDrawable.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/TextDrawable.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewFactory.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewFactory.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewFactory.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewFactory.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewUtils.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewUtils.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewUtils.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/ViewUtils.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/basicParseUtils.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/basicParseUtils.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/basicParseUtils.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/basicParseUtils.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/lookup.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/lookup.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/lookup.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/lookup.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt
similarity index 96%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt
index 8fb287b1b..5a463d028 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/internal/utils/viewParseUtils.kt
@@ -19,8 +19,6 @@ package com.itsaky.androidide.inflater.internal.utils
import android.graphics.PorterDuff
import android.view.View
-import com.android.aaptcompiler.AaptResourceType.ID
-import com.itsaky.androidide.inflater.internal.ViewImpl
@JvmOverloads
fun parseId(resName: String, value: String, def: Int = 0): Int {
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt
similarity index 96%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt
index 21b1bce18..d6fd6d126 100644
--- a/uidesigner/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/models/UiWidget.kt
@@ -27,12 +27,12 @@ import com.blankj.utilcode.util.SizeUtils
import com.itsaky.androidide.inflater.IView
import com.itsaky.androidide.inflater.IViewGroup
import com.itsaky.androidide.inflater.internal.LayoutFile
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex.getAdapter
import com.itsaky.androidide.inflater.internal.ViewGroupImpl
import com.itsaky.androidide.inflater.internal.ViewImpl
import com.itsaky.androidide.inflater.internal.utils.ViewFactory
import com.itsaky.androidide.inflater.internal.utils.ViewFactory.generateLayoutParams
import com.itsaky.androidide.inflater.utils.lookupComponentFactory
+import com.itsaky.androidide.inflater.viewAdapter
open class UiWidget(val name: String, @StringRes val label: Int, @DrawableRes val icon: Int) {
@@ -60,7 +60,7 @@ open class UiWidget(val name: String, @StringRes val label: Int, @DrawableRes va
view.view.layoutParams = generateLayoutParams(parent)
val adapter =
- getAdapter(view.name)
+ view.viewAdapter
?: throw IllegalStateException("No attribute adapter found for '${view.name}'")
adapter.applyBasic(view)
return view
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/inflaterUtils.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/module.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/module.kt
diff --git a/uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/viewUtils.kt b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/viewUtils.kt
similarity index 100%
rename from uidesigner/src/main/java/com/itsaky/androidide/inflater/utils/viewUtils.kt
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/utils/viewUtils.kt
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/DefaultValues.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/DefaultValues.java
similarity index 71%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/DefaultValues.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/DefaultValues.java
index 9e051f6e5..d9a00151d 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/DefaultValues.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/DefaultValues.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster;
import android.graphics.Color;
import android.graphics.Paint;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterDrawable.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterDrawable.java
similarity index 94%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterDrawable.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterDrawable.java
index 91aa56bbe..7a8785dce 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterDrawable.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterDrawable.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster;
import android.content.Context;
import android.graphics.Canvas;
@@ -12,11 +29,11 @@ import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
import com.blankj.utilcode.util.FileIOUtils;
-import com.sdsmdg.harjot.vectormaster.models.ClipPathModel;
-import com.sdsmdg.harjot.vectormaster.models.GroupModel;
-import com.sdsmdg.harjot.vectormaster.models.PathModel;
-import com.sdsmdg.harjot.vectormaster.models.VectorModel;
-import com.sdsmdg.harjot.vectormaster.utilities.Utils;
+import com.itsaky.androidide.inflater.vectormaster.models.GroupModel;
+import com.itsaky.androidide.inflater.vectormaster.models.ClipPathModel;
+import com.itsaky.androidide.inflater.vectormaster.models.PathModel;
+import com.itsaky.androidide.inflater.vectormaster.models.VectorModel;
+import com.itsaky.androidide.inflater.vectormaster.utilities.Utils;
import org.jetbrains.annotations.Contract;
import org.xmlpull.v1.XmlPullParser;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterView.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterView.java
similarity index 93%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterView.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterView.java
index 1d8e42daf..d345c65bd 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/VectorMasterView.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/VectorMasterView.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -10,12 +27,12 @@ import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;
+import com.itsaky.androidide.inflater.vectormaster.models.GroupModel;
import com.itsaky.androidide.resources.R;
-import com.sdsmdg.harjot.vectormaster.models.ClipPathModel;
-import com.sdsmdg.harjot.vectormaster.models.GroupModel;
-import com.sdsmdg.harjot.vectormaster.models.PathModel;
-import com.sdsmdg.harjot.vectormaster.models.VectorModel;
-import com.sdsmdg.harjot.vectormaster.utilities.Utils;
+import com.itsaky.androidide.inflater.vectormaster.models.ClipPathModel;
+import com.itsaky.androidide.inflater.vectormaster.models.PathModel;
+import com.itsaky.androidide.inflater.vectormaster.models.VectorModel;
+import com.itsaky.androidide.inflater.vectormaster.utilities.Utils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/enums/TintMode.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/enums/TintMode.java
new file mode 100644
index 000000000..b32f4b135
--- /dev/null
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/enums/TintMode.java
@@ -0,0 +1,28 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.enums;
+
+/** Created by Harjot on 20-Jun-17. */
+public enum TintMode {
+ ADD,
+ MULTIPLY,
+ SCREEN,
+ SRC_ATOP,
+ SCR_IN,
+ SRC_OVER
+}
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/ClipPathModel.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/ClipPathModel.java
similarity index 67%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/ClipPathModel.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/ClipPathModel.java
index c2eedb868..100c9c45d 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/ClipPathModel.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/ClipPathModel.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster.models;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.models;
import android.graphics.Matrix;
import android.graphics.Paint;
@@ -7,7 +24,7 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
-import com.sdsmdg.harjot.vectormaster.utilities.parser.PathParser;
+import com.itsaky.androidide.inflater.vectormaster.utilities.parser.PathParser;
public class ClipPathModel {
private String name;
@@ -29,7 +46,7 @@ public class ClipPathModel {
public void buildPath(boolean useLegacyParser) {
if (useLegacyParser) {
originalPath =
- com.sdsmdg.harjot.vectormaster.utilities.legacyparser.PathParser.createPathFromPathData(
+ com.itsaky.androidide.inflater.vectormaster.utilities.legacyparser.PathParser.createPathFromPathData(
pathData);
} else {
originalPath = PathParser.doPath(pathData);
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/GroupModel.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/GroupModel.java
similarity index 89%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/GroupModel.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/GroupModel.java
index 1441491fc..546102873 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/GroupModel.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/GroupModel.java
@@ -1,10 +1,27 @@
-package com.sdsmdg.harjot.vectormaster.models;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.models;
import android.graphics.Canvas;
import android.graphics.Matrix;
-import com.sdsmdg.harjot.vectormaster.DefaultValues;
-import com.sdsmdg.harjot.vectormaster.utilities.Utils;
+import com.itsaky.androidide.inflater.vectormaster.DefaultValues;
+import com.itsaky.androidide.inflater.vectormaster.utilities.Utils;
import java.util.ArrayList;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/PathModel.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/PathModel.java
similarity index 87%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/PathModel.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/PathModel.java
index d4ac4f252..b25d8927a 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/PathModel.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/PathModel.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster.models;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.models;
import android.graphics.Color;
import android.graphics.Matrix;
@@ -7,9 +24,9 @@ import android.graphics.Path;
import android.graphics.PathMeasure;
import android.graphics.RectF;
-import com.sdsmdg.harjot.vectormaster.DefaultValues;
-import com.sdsmdg.harjot.vectormaster.utilities.Utils;
-import com.sdsmdg.harjot.vectormaster.utilities.parser.PathParser;
+import com.itsaky.androidide.inflater.vectormaster.DefaultValues;
+import com.itsaky.androidide.inflater.vectormaster.utilities.Utils;
+import com.itsaky.androidide.inflater.vectormaster.utilities.parser.PathParser;
public class PathModel {
@@ -91,7 +108,7 @@ public class PathModel {
public void buildPath(boolean useLegacyParser) {
if (useLegacyParser) {
originalPath =
- com.sdsmdg.harjot.vectormaster.utilities.legacyparser.PathParser.createPathFromPathData(
+ com.itsaky.androidide.inflater.vectormaster.utilities.legacyparser.PathParser.createPathFromPathData(
pathData);
} else {
originalPath = PathParser.doPath(pathData);
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/VectorModel.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/VectorModel.java
similarity index 86%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/VectorModel.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/VectorModel.java
index d7055403d..61d5e629a 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/models/VectorModel.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/models/VectorModel.java
@@ -1,11 +1,28 @@
-package com.sdsmdg.harjot.vectormaster.models;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.models;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Path;
-import com.sdsmdg.harjot.vectormaster.enums.TintMode;
+import com.itsaky.androidide.inflater.vectormaster.enums.TintMode;
import java.util.ArrayList;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/Utils.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/Utils.java
similarity index 78%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/Utils.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/Utils.java
index d8db0a418..b37e23f62 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/Utils.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/Utils.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster.utilities;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.utilities;
import android.content.res.Resources;
import android.graphics.Color;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/legacyparser/PathParser.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/legacyparser/PathParser.java
similarity index 99%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/legacyparser/PathParser.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/legacyparser/PathParser.java
index 0b66972d4..bcb7a86b6 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/legacyparser/PathParser.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/legacyparser/PathParser.java
@@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see .
*/
-package com.sdsmdg.harjot.vectormaster.utilities.legacyparser;
+package com.itsaky.androidide.inflater.vectormaster.utilities.legacyparser;
import android.graphics.Path;
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/ParserHelper.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/ParserHelper.java
similarity index 91%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/ParserHelper.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/ParserHelper.java
index 46c791d58..811a4b278 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/ParserHelper.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/ParserHelper.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster.utilities.parser;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.utilities.parser;
/*
diff --git a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/PathParser.java b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/PathParser.java
similarity index 92%
rename from uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/PathParser.java
rename to xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/PathParser.java
index 7ba0d147e..7a03f649d 100644
--- a/uidesigner/src/main/java/com/sdsmdg/harjot/vectormaster/utilities/parser/PathParser.java
+++ b/xml-inflater/src/main/java/com/itsaky/androidide/inflater/vectormaster/utilities/parser/PathParser.java
@@ -1,4 +1,21 @@
-package com.sdsmdg.harjot.vectormaster.utilities.parser;
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater.vectormaster.utilities.parser;
import android.graphics.Path;
import android.graphics.RectF;
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt
similarity index 83%
rename from uidesigner/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt
rename to xml-inflater/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt
index 5bc70e15a..0cd82d43b 100644
--- a/uidesigner/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt
+++ b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/AdapterIndexTest.kt
@@ -20,7 +20,6 @@ package com.itsaky.androidide.inflater
import android.view.*
import android.widget.*
import com.google.common.truth.Truth.assertThat
-import com.itsaky.androidide.inflater.internal.ViewAdapterIndex
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
@@ -32,12 +31,12 @@ class AdapterIndexTest {
@Test
fun `verify instances of adapters`() {
viewToAdapter.forEach {
- ViewAdapterIndex.getViewAdapter(it.key.qualifiedName).apply {
+ getViewAdapter(it.key.qualifiedName!!).apply {
assertThat(this).isNotNull()
assertThat(this).isInstanceOf(it.value.java)
}
}
- abstractViews.forEach { assertThat(ViewAdapterIndex.getViewAdapter(it.qualifiedName)).isNull() }
+ abstractViews.forEach { assertThat(getViewAdapter(it.qualifiedName!!)).isNull() }
}
}
diff --git a/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ExampleUnitTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ExampleUnitTest.kt
new file mode 100644
index 000000000..bcb187e38
--- /dev/null
+++ b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ExampleUnitTest.kt
@@ -0,0 +1,34 @@
+/*
+ * This file is part of AndroidIDE.
+ *
+ * AndroidIDE is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AndroidIDE is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AndroidIDE. If not, see .
+ */
+
+package com.itsaky.androidide.inflater
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+ @Test
+ fun addition_isCorrect() {
+ assertEquals(4, 2 + 2)
+ }
+}
\ No newline at end of file
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
similarity index 100%
rename from uidesigner/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
rename to xml-inflater/src/test/java/com/itsaky/androidide/inflater/LayoutInflaterTest.kt
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
similarity index 100%
rename from uidesigner/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
rename to xml-inflater/src/test/java/com/itsaky/androidide/inflater/ValueParsersTest.kt
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
similarity index 100%
rename from uidesigner/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
rename to xml-inflater/src/test/java/com/itsaky/androidide/inflater/XmlInflaterTest.kt
diff --git a/uidesigner/src/test/java/com/itsaky/androidide/inflater/adapterUtils.kt b/xml-inflater/src/test/java/com/itsaky/androidide/inflater/adapterUtils.kt
similarity index 100%
rename from uidesigner/src/test/java/com/itsaky/androidide/inflater/adapterUtils.kt
rename to xml-inflater/src/test/java/com/itsaky/androidide/inflater/adapterUtils.kt