2020-05-14 20:14:41 +02:00
|
|
|
package com.h.pixeldroid.utils
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
import androidx.room.Room
|
|
|
|
import com.h.pixeldroid.db.AppDatabase
|
2020-05-19 09:49:34 +02:00
|
|
|
import com.h.pixeldroid.db.InstanceDatabaseEntity
|
2020-05-14 20:14:41 +02:00
|
|
|
import com.h.pixeldroid.db.UserDatabaseEntity
|
|
|
|
import com.h.pixeldroid.objects.Account
|
2020-05-19 09:49:34 +02:00
|
|
|
import com.h.pixeldroid.objects.Instance
|
|
|
|
import com.h.pixeldroid.utils.Utils.Companion.normalizeDomain
|
2020-05-14 20:14:41 +02:00
|
|
|
|
|
|
|
class DBUtils {
|
|
|
|
companion object {
|
|
|
|
fun initDB(context: Context): AppDatabase {
|
|
|
|
return Room.databaseBuilder(
|
|
|
|
context,
|
|
|
|
AppDatabase::class.java, "pixeldroid"
|
|
|
|
).allowMainThreadQueries().build()
|
|
|
|
}
|
2020-05-19 09:49:34 +02:00
|
|
|
private fun normalizeOrNot(uri: String): String{
|
|
|
|
return if(uri.startsWith("http://localhost")){
|
|
|
|
uri
|
2020-05-14 20:14:41 +02:00
|
|
|
} else {
|
2020-05-19 09:49:34 +02:00
|
|
|
normalizeDomain(uri)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fun addUser(db: AppDatabase, account: Account, instance_uri: String, activeUser: Boolean = true, accessToken: String) {
|
|
|
|
db.userDao().insertUser(
|
2020-05-14 20:14:41 +02:00
|
|
|
UserDatabaseEntity(
|
|
|
|
user_id = account.id,
|
2020-05-19 09:49:34 +02:00
|
|
|
//make sure not to normalize to https when localhost, to allow testing
|
|
|
|
instance_uri = normalizeOrNot(instance_uri),
|
2020-05-14 20:14:41 +02:00
|
|
|
username = account.username,
|
|
|
|
display_name = account.display_name,
|
2020-05-19 09:49:34 +02:00
|
|
|
avatar_static = account.avatar_static,
|
|
|
|
isActive = activeUser,
|
|
|
|
accessToken = accessToken
|
2020-05-14 20:14:41 +02:00
|
|
|
)
|
|
|
|
)
|
2020-05-19 09:49:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
fun storeInstance(db: AppDatabase, instance: Instance) {
|
|
|
|
val maxTootChars = instance.max_toot_chars.toInt()
|
|
|
|
val dbInstance = InstanceDatabaseEntity(
|
|
|
|
//make sure not to normalize to https when localhost, to allow testing
|
|
|
|
uri = normalizeOrNot(instance.uri),
|
|
|
|
title = instance.title,
|
|
|
|
max_toot_chars = maxTootChars,
|
|
|
|
thumbnail = instance.thumbnail
|
|
|
|
)
|
|
|
|
db.instanceDao().insertInstance(dbInstance)
|
2020-05-14 20:14:41 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|