diff --git a/templates-api/src/main/java/com/itsaky/androidide/templates/base/AndroidModuleTemplateBuilder.kt b/templates-api/src/main/java/com/itsaky/androidide/templates/base/AndroidModuleTemplateBuilder.kt index ec27a2fa2..5a213bb17 100644 --- a/templates-api/src/main/java/com/itsaky/androidide/templates/base/AndroidModuleTemplateBuilder.kt +++ b/templates-api/src/main/java/com/itsaky/androidide/templates/base/AndroidModuleTemplateBuilder.kt @@ -79,10 +79,7 @@ class AndroidModuleTemplateBuilder : ModuleTemplateBuilder() { configure: TypeSpec.Builder.() -> Unit ) { sources { - createClass(data.packageName, name) { - - configure() - } + createClass(data.packageName, name, configure) } } diff --git a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/emptyActivity/emptyActivityTemplate.kt b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/emptyActivity/emptyActivityTemplate.kt index b5e0b769c..49f45ea02 100644 --- a/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/emptyActivity/emptyActivityTemplate.kt +++ b/templates-impl/src/main/java/com/itsaky/androidide/templates/impl/emptyActivity/emptyActivityTemplate.kt @@ -53,17 +53,25 @@ import ${data.packageName}.databinding.ActivityMainBinding public class MainActivity : AppCompatActivity() { - private lateinit var binding: ActivityMainBinding + private var _binding: ActivityMainBinding? = null + + private val binding: ActivityMainBinding + get() = checkNotNull(_binding) { "Activity has been destroyed" } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Inflate and get instance of binding - binding = ActivityMainBinding.inflate(layoutInflater) + _binding = ActivityMainBinding.inflate(layoutInflater) // set content view to binding's root setContentView(binding.root) } + + override fun onDestroy() { + super.onDestroy() + _binding = null + } } """ } @@ -89,6 +97,12 @@ public class MainActivity extends AppCompatActivity { // set content view to binding's root setContentView(binding.getRoot()); } + + @Override + protected void onDestroy() { + super.onDestroy(); + this.binding = null; + } } """ } diff --git a/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt b/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt index 08c1a3ca5..5dac73d15 100644 --- a/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt +++ b/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt @@ -138,11 +138,11 @@ class TemplateBuilderTest { } // Write the Java version of the project - template.setupRootProjectParams("EmptyActivityProjectJava", language = Language.Java) + template.setupRootProjectParams(name = "EmptyActivityProjectJava", language = Language.Java) template.executeRecipe() // Write the Kotlin version of the project - template.setupRootProjectParams("EmptyActivityProjectKt", language = Language.Kotlin) + template.setupRootProjectParams(name = "EmptyActivityProjectKt", language = Language.Kotlin) template.executeRecipe() } } \ No newline at end of file