Repositories.kt (999B) - raw


      1 package me.rhunk.snapenhance.storage
      2 
      3 import android.content.ContentValues
      4 import kotlinx.coroutines.asCoroutineDispatcher
      5 import kotlinx.coroutines.runBlocking
      6 import me.rhunk.snapenhance.common.util.ktx.getStringOrNull
      7 
      8 
      9 fun AppDatabase.getRepositories(): List<String> {
     10     return runBlocking(executor.asCoroutineDispatcher()) {
     11         database.rawQuery("SELECT url FROM repositories", null).use { cursor ->
     12             val repos = mutableListOf<String>()
     13             while (cursor.moveToNext()) {
     14                 repos.add(cursor.getStringOrNull("url") ?: continue)
     15             }
     16             repos
     17         }
     18     }
     19 }
     20 
     21 fun AppDatabase.removeRepo(url: String) {
     22     runBlocking(executor.asCoroutineDispatcher()) {
     23         database.delete("repositories", "url = ?", arrayOf(url))
     24     }
     25 }
     26 
     27 fun AppDatabase.addRepo(url: String) {
     28     runBlocking(executor.asCoroutineDispatcher()) {
     29         database.insert("repositories", null, ContentValues().apply {
     30             put("url", url)
     31         })
     32     }
     33 }
     34