diff --git a/app/build.gradle b/app/build.gradle index e4b0d364..3dc122a3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,7 @@ plugins { id 'org.ajoberstar.grgit' version '1.7.2' id 'com.google.protobuf' id 'kotlin-parcelize' + id 'kotlin-kapt' } ext { @@ -194,6 +195,12 @@ dependencies { implementation 'androidx.work:work-runtime-ktx:2.8.1' implementation 'androidx.concurrent:concurrent-futures-ktx:1.1.0' + //Database + implementation("androidx.room:room-runtime:2.6.0") + annotationProcessor("androidx.room:room-compiler:2.6.0") + kapt("androidx.room:room-compiler:2.6.0") + implementation("androidx.room:room-ktx:2.6.0") + //Payment implementation 'com.stripe:stripe-android:20.28.3' diff --git a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBIndex.kt b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBIndex.kt index d67bde96..6a06104c 100644 --- a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBIndex.kt +++ b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBIndex.kt @@ -1,5 +1,8 @@ package com.futo.platformplayer.stores.db -class ManagedDBIndex { +import androidx.room.PrimaryKey -} \ No newline at end of file +open class ManagedDBIndex( + @PrimaryKey(true) + val id: Int? = null +) \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBStore.kt b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBStore.kt index 9d24c04f..7fb8e56c 100644 --- a/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBStore.kt +++ b/app/src/main/java/com/futo/platformplayer/stores/db/ManagedDBStore.kt @@ -1,5 +1,41 @@ package com.futo.platformplayer.stores.db -class ManagedDBStore { +import com.futo.platformplayer.assume +import com.futo.platformplayer.stores.v2.ManagedStore +import com.futo.platformplayer.stores.v2.ReconstructStore +import com.futo.platformplayer.stores.v2.StoreSerializer +import java.io.File +import kotlin.reflect.KClass +import kotlin.reflect.KType + +class ManagedDBStore { + private val _class: KType; + private val _name: String; + private val _serializer: StoreSerializer; + + + private var _isLoaded = false; + + private var _withUnique: ((I) -> Any)? = null; + + val className: String? get() = _class.classifier?.assume>()?.simpleName; + + val name: String; + + constructor(name: String, clazz: KType, serializer: StoreSerializer, niceName: String? = null) { + _name = name; + this.name = niceName ?: name.let { + if(it.isNotEmpty()) + return@let it[0].uppercase() + it.substring(1); + return@let name; + }; + _serializer = serializer; + _class = clazz; + } + + fun load() { + throw NotImplementedError(); + _isLoaded = true; + } } \ No newline at end of file diff --git a/app/src/unstable/assets/sources/youtube b/app/src/unstable/assets/sources/youtube index 8f10daba..37fd342a 160000 --- a/app/src/unstable/assets/sources/youtube +++ b/app/src/unstable/assets/sources/youtube @@ -1 +1 @@ -Subproject commit 8f10daba1ef9cbcd99f3c640d86808f8c94aa84a +Subproject commit 37fd342a760be6351b042732a4052bd54d723eb0