Skip to content

Instantly share code, notes, and snippets.

View deepanshu42's full-sized avatar

Deepanshu deepanshu42

  • Gojek
  • India
View GitHub Profile
@deepanshu42
deepanshu42 / AndroidManifest.xml
Created September 2, 2018 20:37
Dynamic feature module : AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.test.dynamic"
split="dynamic-feature-test">
<dist:module
dist:onDemand="true"
dist:title="@string/title_test">
<dist:fusing include="true" />
@deepanshu42
deepanshu42 / AndroidManifest.xml
Created September 2, 2018 20:39
Dynamic feature module : AndroidManifest.xml
<application
android:hasCode="true"
tools:replace="android:hasCode">
...
</application>
@deepanshu42
deepanshu42 / RequestModule.java
Created September 2, 2018 20:41
Request an on demand module
SplitInstallManager splitInstallManager =
SplitInstallManagerFactory.create(context);
SplitInstallRequest request = SplitInstallRequest.newBuilder()
.addModule("dynamic-module-1")
.addModule("dynamic-module-2")
.build();
splitInstallManager.startInstall(request)
.addOnSuccessListener(sessionId -> { ... })
@deepanshu42
deepanshu42 / RequestModuleWithCallback.java
Created September 2, 2018 20:43
Request an on demand module with callbacks
int mySessionId = 0;
// Creates a listener for request status updates.
SplitInstallStateUpdatedListener listener = state -> {
if (state.status() == SplitInstallSessionStatus.FAILED
&& state.errorCode() == SplitInstallErrorCode.SERVICE_DIES) {
// Retry the request.
return;
}
if (state.sessionId() == mySessionId) {
switch (state.status()) {
@deepanshu42
deepanshu42 / UserDatabase.kt
Last active April 17, 2020 18:04
Room Database example
@Database(entities = arrayOf(User::class), version = 1)
abstract class UserDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
@deepanshu42
deepanshu42 / User.kt
Created April 17, 2020 18:08
User Entity Example
@Entity
data class User(
@PrimaryKey val uid: Int,
@ColumnInfo(name = "first_name") val firstName: String?,
@ColumnInfo(name = "last_name") val lastName: String?
)
@deepanshu42
deepanshu42 / UserDao.kt
Created April 17, 2020 18:09
UserDao Example
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Query("SELECT * FROM user WHERE uid IN (:userIds)")
fun loadAllByIds(userIds: IntArray): List<User>
@Insert
fun insertAll(vararg users: User)
val db = Room.databaseBuilder(
applicationContext,
UserDatabase::class.java, "users-db"
).build()
@deepanshu42
deepanshu42 / Converters.kt
Created April 18, 2020 10:41
TypeConverter example
class Converters {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
return value?.let { Date(it) }
}
@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
return date?.time?.toLong()
}
@deepanshu42
deepanshu42 / User.kt
Created April 19, 2020 13:11
Embedded Objects Example
data class Address(
val street: String?,
val state: String?,
val city: String?,
val postCode: Int
)
@Entity
data class User(
@PrimaryKey val id: Int,