Skip to content

Instantly share code, notes, and snippets.

View igorescodro's full-sized avatar
♥️
Coding with love

Igor Escodro igorescodro

♥️
Coding with love
View GitHub Profile
@igorescodro
igorescodro / AndroidManifest.xml
Last active January 9, 2020 17:32
Developing your own Dynamic Feature
<dist:module
dist:instant="false"
dist:title="@string/title_ondemand">
<dist:delivery>
<dist:on-demand />
</dist:delivery>
<dist:fusing dist:include="true" />
</dist:module>
@igorescodro
igorescodro / build.gradle
Created January 9, 2020 17:47
Developing your own Dynamic Feature
android {
...
dynamicFeatures = [":ondemand"]
}
@igorescodro
igorescodro / DynamicApp.kt
Created January 9, 2020 18:41
Developing your own Dynamic Feature
class DynamicApp : Application() {
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)
SplitCompat.install(this)
}
}
@igorescodro
igorescodro / OnDemandActivity.kt
Created January 9, 2020 18:44
Developing your own Dynamic Feature
class OnDemandActivity : AppCompatActivity() {
// other lifecycle functions
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)
SplitCompat.install(this)
}
}
@igorescodro
igorescodro / MainActivity.kt
Last active January 13, 2020 12:43
Developing your own Dynamic Feature
val request = SplitInstallRequest.newBuilder()
.addModule("ondemand")
.build()
manager.startInstall(request)
@igorescodro
igorescodro / MainActivity.kt
Created January 13, 2020 12:45
Developing your own Dynamic Feature
manager.registerListener {
when (it.status()) {
SplitInstallSessionStatus.DOWNLOADING -> showToast("Downloading feature")
SplitInstallSessionStatus.INSTALLED -> {
showToast("Feature ready to be used")
updateDynamicFeatureButtonState()
}
else -> { /* Do nothing in this example */ }
}
}
@igorescodro
igorescodro / MainActivity.kt
Created January 13, 2020 13:00
Developing your own Dynamic Feature
val intent = Intent()
intent.setClassName(BuildConfig.APPLICATION_ID, "com.escodro.ondemand.OnDemandActivity")
startActivity(intent)
@igorescodro
igorescodro / MainActivity.kt
Created February 12, 2020 18:31
Developing your own Dynamic Feature
private val manager: SplitInstallManager by lazy {
SplitInstallManagerFactory.create(this)
}
@igorescodro
igorescodro / MainActivity.kt
Last active February 16, 2020 23:51
Developing your own Dynamic Feature
val isEnabled = manager.installedModules.contains("ondemand")
button_app_open.isEnabled = isEnabled
/**
* Public Composable to do not expose internal ViewModel to other modules.
*/
@Composable
fun TaskListSection(modifier: Modifier = Modifier) {
TaskListLoader(modifier = modifier)
}
/**
* Private Composable to connect the ViewModel and View.