From b04739859f557b6ba018c985252f94f4a10cbfd8 Mon Sep 17 00:00:00 2001 From: Lucas Delanier Date: Wed, 29 Mar 2023 21:16:22 +0200 Subject: [PATCH] merge api :sparkles: --- ShakeAndCraft/app/build.gradle | 17 +++++++++++++++-- .../com/example/shakecraft/data/dao/ItemDao.kt | 15 +++++++++++++++ .../example/shakecraft/data/dao/PlayerDao.kt | 16 ++++++++++++++++ .../java/com/example/shakecraft/model/Item.kt | 6 +++++- 4 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/ItemDao.kt create mode 100644 ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/PlayerDao.kt diff --git a/ShakeAndCraft/app/build.gradle b/ShakeAndCraft/app/build.gradle index 34ade2c..f67c62b 100644 --- a/ShakeAndCraft/app/build.gradle +++ b/ShakeAndCraft/app/build.gradle @@ -33,6 +33,11 @@ android { kotlinOptions { jvmTarget = '1.8' } + + packagingOptions { + exclude 'META-INF/atomicfu.kotlin_module' + } + } apply plugin: 'kotlin-kapt' dependencies { @@ -48,8 +53,16 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation 'androidx.vectordrawable:vectordrawable:1.1.0' - implementation "androidx.room:room-runtime:2.5.1" - kapt "androidx.room:room-compiler:2.5.1" + implementation "androidx.room:room-ktx:2.5.1" + kapt "androidx.room:room-compiler:2.5.1" + androidTestImplementation "androidx.room:room-testing:2.5.1" + + //Retrofit + implementation "com.squareup.retrofit2:retrofit:2.9.0" + implementation "com.squareup.retrofit2:converter-gson:2.9.0" +//Coroutine + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4" } \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/ItemDao.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/ItemDao.kt new file mode 100644 index 0000000..65cf9bc --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/ItemDao.kt @@ -0,0 +1,15 @@ +package com.example.shakecraft.data.dao +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.example.shakecraft.model.Item + +@Dao +interface ItemDao { + @Query("SELECT * FROM item") + suspend fun getAllItems(): List + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertItem(item: Item) +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/PlayerDao.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/PlayerDao.kt new file mode 100644 index 0000000..9cab617 --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/dao/PlayerDao.kt @@ -0,0 +1,16 @@ +package com.example.shakecraft.data.dao + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.example.shakecraft.model.Player + +@Dao +interface PlayerDao { + @Query("SELECT * FROM player") + suspend fun getAllPlayers(): List + + @Insert(onConflict = OnConflictStrategy.REPLACE) + suspend fun insertPlayer(player: Player) +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt index 24b7494..2c51a0c 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Item.kt @@ -2,11 +2,15 @@ package com.example.shakecraft.model import android.os.Parcel import android.os.Parcelable - +import androidx.room.Entity +import androidx.room.PrimaryKey +@Entity(tableName = "items") open class Item( val type: ItemType, + var stack: Int = 1, ) : Parcelable { + @PrimaryKey(autoGenerate = true) val id: String = type.name override fun describeContents(): Int {