peertube-live-streaming/app/src/main/java/fr/mobdev/peertubelive/manager/DatabaseHelper.kt

73 lines
3.6 KiB
Kotlin

package fr.mobdev.peertubelive.manager
import android.content.ContentValues
import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
class DatabaseHelper(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, 2) {
companion object {
const val DB_NAME: String = "peeriscope.db"
const val TABLE_CREDS: String = "Credentials"
const val CREDS_USERNAME: String = "Username"
const val CREDS_BASE_URL: String = "Instance"
const val CREDS_CLIENT_ID: String = "ClientID"
const val CREDS_CLIENT_SECRET: String = "ClientSecret"
const val CREDS_ACCESS_TOKEN: String = "AccessToken"
const val CREDS_TOKEN_TYPE: String = "TokenType"
const val CREDS_EXPIRES: String = "Expires"
const val CREDS_REFRESH_TOKEN: String = "RefreshToken"
const val CREDS_REFRESH_EXPIRES: String = "RefreshTokenExpires"
const val TABLE_STREAM_SETTINGS: String = "Settings"
const val SETS_TITLE: String = "Title"
const val SETS_CATEGORY: String = "Category"
const val SETS_PRIVACY : String = "Privacy"
const val SETS_LANGUAGE : String = "Language"
const val SETS_LICENCE : String = "Licence"
const val SETS_COMMENTS : String = "Comments"
const val SETS_DOWNLOAD : String = "Download"
const val SETS_REPLAY : String = "Replay"
const val SETS_NSFW : String = "Nsfw"
}
override fun onCreate(db: SQLiteDatabase?) {
db?.execSQL("CREATE TABLE IF NOT EXISTS $TABLE_CREDS (id INTEGER PRIMARY KEY, $CREDS_USERNAME TEXT, $CREDS_BASE_URL TEXT, " +
"$CREDS_CLIENT_ID TEXT, $CREDS_CLIENT_SECRET TEXT, $CREDS_ACCESS_TOKEN TEXT, " +
"$CREDS_TOKEN_TYPE TEXT, $CREDS_EXPIRES INTEGER, $CREDS_REFRESH_TOKEN TEXT, $CREDS_REFRESH_EXPIRES INTEGER);")
db?.execSQL("CREATE TABLE IF NOT EXISTS $TABLE_STREAM_SETTINGS (id INTEGER PRIMARY KEY, $SETS_TITLE TEXT, $SETS_CATEGORY INTEGER, $SETS_PRIVACY INTEGER, " +
"$SETS_LANGUAGE TEXT, $SETS_LICENCE INTEGER, $SETS_COMMENTS INTEGER, " +
"$SETS_DOWNLOAD INTEGER, $SETS_REPLAY INTEGER, $SETS_NSFW INTEGER);")
val values = ContentValues()
values.put("id",1)
values.put(SETS_TITLE,"Live")
values.put(SETS_COMMENTS,true)
values.put(SETS_DOWNLOAD,true)
values.put(SETS_NSFW,false)
values.put(SETS_REPLAY,false)
db?.insert(TABLE_STREAM_SETTINGS,null,values)
}
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
db?.execSQL("ALTER TABLE $TABLE_CREDS add column $CREDS_REFRESH_EXPIRES INTEGER;")
}
fun insert(table: String, values: ContentValues): Long {
return writableDatabase.insert(table,null,values)
}
fun update(table: String, values: ContentValues, whereClause: String?, whereArgs: Array<String?>): Int {
return writableDatabase.update(table,values,whereClause,whereArgs)
}
fun delete(table: String, whereClause: String?, whereArgs: Array<String?>?): Int {
return writableDatabase.delete(table,whereClause,whereArgs)
}
fun query(table: String, columns: Array<String>?, whereClause: String?, whereArgs: Array<String>?): Cursor {
return readableDatabase.query(table,columns,whereClause,whereArgs,null,null,null)
}
}