Skip to content

Instantly share code, notes, and snippets.

View deepanshu42's full-sized avatar

Deepanshu deepanshu42

  • Gojek
  • India
View GitHub Profile
@Entity
data class User(
@PrimaryKey val userId: Long,
val name: String,
val age: Int
)
@Entity(foreignKeys = @ForeignKey(entity = User.class,
parentColumns = "userId",
childColumns = "userCreatorId",
@Transaction
@Query("SELECT * FROM User")
fun getUsersAndLibraries(): List<UserAndLibrary>
@deepanshu42
deepanshu42 / OneToOneRelationExample.kt
Last active April 23, 2020 17:25
One-To-One Relationship Example
@Entity
data class User(
@PrimaryKey val userId: Long,
val name: String,
val age: Int
)
@Entity(foreignKeys = @ForeignKey(entity = User.class,
parentColumns = "userId",
childColumns = "userOwnerId",
@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,
@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()
}
val db = Room.databaseBuilder(
applicationContext,
UserDatabase::class.java, "users-db"
).build()
@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)
@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 / 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 / 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()) {