Support androidx packages
... in the IDE plugin and the Android extensions compiler. Change-Id: Iffd58351b0592e12ffc937c06d871d26958fe161
This commit is contained in:
committed by
Yan Zhulanow
parent
612baacc25
commit
89d61ee12d
+2
@@ -49,6 +49,8 @@ object AndroidConst {
|
||||
val SUPPORT_V4_PACKAGE = "android.support.v4"
|
||||
val SUPPORT_FRAGMENT_FQNAME = "$SUPPORT_V4_PACKAGE.app.Fragment"
|
||||
val SUPPORT_FRAGMENT_ACTIVITY_FQNAME = "$SUPPORT_V4_PACKAGE.app.FragmentActivity"
|
||||
val ANDROIDX_SUPPORT_FRAGMENT_FQNAME = "androidx.fragment.app.Fragment"
|
||||
val ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY_FQNAME = "androidx.fragment.app.FragmentActivity"
|
||||
|
||||
val IGNORED_XML_WIDGET_TYPES = setOf("requestFocus", "merge", "tag", "check", "blink")
|
||||
|
||||
|
||||
+2
-2
@@ -252,11 +252,11 @@ abstract class AbstractAndroidExtensionsExpressionCodegenExtension : ExpressionC
|
||||
|
||||
val containerType = containerOptions.containerType
|
||||
when (containerType) {
|
||||
AndroidContainerType.ACTIVITY, AndroidContainerType.SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.VIEW, AndroidContainerType.DIALOG -> {
|
||||
AndroidContainerType.ACTIVITY, AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.VIEW, AndroidContainerType.DIALOG -> {
|
||||
loadId()
|
||||
iv.invokevirtual(containerType.internalClassName, "findViewById", "(I)Landroid/view/View;", false)
|
||||
}
|
||||
AndroidContainerType.FRAGMENT, AndroidContainerType.SUPPORT_FRAGMENT, LAYOUT_CONTAINER -> {
|
||||
AndroidContainerType.FRAGMENT, AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT, AndroidContainerType.SUPPORT_FRAGMENT, LAYOUT_CONTAINER -> {
|
||||
if (containerType == LAYOUT_CONTAINER) {
|
||||
iv.invokeinterface(containerType.internalClassName, "getContainerView", "()Landroid/view/View;")
|
||||
} else {
|
||||
|
||||
+4
@@ -25,6 +25,8 @@ enum class AndroidContainerType(className: String, val doesSupportCache: Boolean
|
||||
ACTIVITY(AndroidConst.ACTIVITY_FQNAME, doesSupportCache = true),
|
||||
FRAGMENT(AndroidConst.FRAGMENT_FQNAME, doesSupportCache = true, isFragment = true),
|
||||
DIALOG(AndroidConst.DIALOG_FQNAME, doesSupportCache = false),
|
||||
ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY(AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY_FQNAME, doesSupportCache = true),
|
||||
ANDROIDX_SUPPORT_FRAGMENT(AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_FQNAME, doesSupportCache = true, isFragment = true),
|
||||
SUPPORT_FRAGMENT_ACTIVITY(AndroidConst.SUPPORT_FRAGMENT_ACTIVITY_FQNAME, doesSupportCache = true),
|
||||
SUPPORT_FRAGMENT(AndroidConst.SUPPORT_FRAGMENT_FQNAME, doesSupportCache = true, isFragment = true),
|
||||
VIEW(AndroidConst.VIEW_FQNAME, doesSupportCache = true),
|
||||
@@ -41,6 +43,8 @@ enum class AndroidContainerType(className: String, val doesSupportCache: Boolean
|
||||
AndroidConst.ACTIVITY_FQNAME -> AndroidContainerType.ACTIVITY
|
||||
AndroidConst.FRAGMENT_FQNAME -> AndroidContainerType.FRAGMENT
|
||||
AndroidConst.DIALOG_FQNAME -> AndroidContainerType.DIALOG
|
||||
AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY_FQNAME -> AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY
|
||||
AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_FQNAME -> AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT
|
||||
AndroidConst.SUPPORT_FRAGMENT_ACTIVITY_FQNAME -> AndroidContainerType.SUPPORT_FRAGMENT_ACTIVITY
|
||||
AndroidConst.SUPPORT_FRAGMENT_FQNAME -> AndroidContainerType.SUPPORT_FRAGMENT
|
||||
AndroidConst.VIEW_FQNAME -> AndroidContainerType.VIEW
|
||||
|
||||
+13
-3
@@ -38,7 +38,7 @@ class ResourcePropertyStackValue(
|
||||
|
||||
override fun putSelector(type: Type, kotlinType: KotlinType?, v: InstructionAdapter) {
|
||||
val returnTypeString = typeMapper.mapType(resource.type.lowerIfFlexible()).className
|
||||
if (AndroidConst.FRAGMENT_FQNAME == returnTypeString || AndroidConst.SUPPORT_FRAGMENT_FQNAME == returnTypeString) {
|
||||
if (AndroidConst.FRAGMENT_FQNAME == returnTypeString || AndroidConst.SUPPORT_FRAGMENT_FQNAME == returnTypeString || AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_FQNAME == returnTypeString) {
|
||||
return putSelectorForFragment(v)
|
||||
}
|
||||
|
||||
@@ -56,12 +56,12 @@ class ResourcePropertyStackValue(
|
||||
}
|
||||
else {
|
||||
when (containerType) {
|
||||
AndroidContainerType.ACTIVITY, AndroidContainerType.SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.VIEW, AndroidContainerType.DIALOG -> {
|
||||
AndroidContainerType.ACTIVITY, AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.SUPPORT_FRAGMENT_ACTIVITY, AndroidContainerType.VIEW, AndroidContainerType.DIALOG -> {
|
||||
receiver.put(Type.getType("L${containerType.internalClassName};"), v)
|
||||
getResourceId(v)
|
||||
v.invokevirtual(containerType.internalClassName, "findViewById", "(I)Landroid/view/View;", false)
|
||||
}
|
||||
AndroidContainerType.FRAGMENT, AndroidContainerType.SUPPORT_FRAGMENT -> {
|
||||
AndroidContainerType.FRAGMENT, AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT, AndroidContainerType.SUPPORT_FRAGMENT -> {
|
||||
receiver.put(Type.getType("L${containerType.internalClassName};"), v)
|
||||
v.invokevirtual(containerType.internalClassName, "getView", "()Landroid/view/View;", false)
|
||||
getResourceId(v)
|
||||
@@ -99,6 +99,16 @@ class ResourcePropertyStackValue(
|
||||
getResourceId(v)
|
||||
v.invokevirtual("android/support/v4/app/FragmentManager", "findFragmentById", "(I)Landroid/support/v4/app/Fragment;", false)
|
||||
}
|
||||
AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT -> {
|
||||
v.invokevirtual(containerType.internalClassName, "getFragmentManager", "()Landroidx/fragment/app/FragmentManager;", false)
|
||||
getResourceId(v)
|
||||
v.invokevirtual("androidx/fragment/app/FragmentManager", "findFragmentById", "(I)Landroidx/fragment/app/Fragment;", false)
|
||||
}
|
||||
AndroidContainerType.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY -> {
|
||||
v.invokevirtual(containerType.internalClassName, "getSupportFragmentManager", "()Landroidx/fragment/app/FragmentManager;", false)
|
||||
getResourceId(v)
|
||||
v.invokevirtual("androidx/fragment/app/FragmentManager", "findFragmentById", "(I)Landroidx/fragment/app/Fragment;", false)
|
||||
}
|
||||
else -> throw IllegalStateException("Invalid Android class type: $containerType") // Should never occur
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ class LazySyntheticElementResolveContext(private val module: ModuleDescriptor, s
|
||||
val activityDescriptor = find(AndroidConst.ACTIVITY_FQNAME) ?: return SyntheticElementResolveContext.ERROR_CONTEXT
|
||||
val fragmentDescriptor = find(AndroidConst.FRAGMENT_FQNAME)
|
||||
val dialogDescriptor = find(AndroidConst.DIALOG_FQNAME) ?: return SyntheticElementResolveContext.ERROR_CONTEXT
|
||||
val supportActivityDescriptor = find(AndroidConst.SUPPORT_FRAGMENT_ACTIVITY_FQNAME)
|
||||
val supportFragmentDescriptor = find(AndroidConst.SUPPORT_FRAGMENT_FQNAME)
|
||||
val supportActivityDescriptor = find(AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_ACTIVITY_FQNAME) ?: find(AndroidConst.SUPPORT_FRAGMENT_ACTIVITY_FQNAME)
|
||||
val supportFragmentDescriptor = find(AndroidConst.ANDROIDX_SUPPORT_FRAGMENT_FQNAME) ?: find(AndroidConst.SUPPORT_FRAGMENT_FQNAME)
|
||||
val layoutContainerDescriptor = find(LayoutContainer::class.java.canonicalName)
|
||||
|
||||
return SyntheticElementResolveContext(
|
||||
|
||||
Reference in New Issue
Block a user