From c178cc5dc500b016fbb77a6c393ae8584c1caa33 Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Sat, 15 Feb 2025 22:17:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zywl/test1229/database/AppDatabase.kt | 18 ------------------ .../java/com/zywl/test1229/database/DataDao.kt | 16 +++++++++------- .../com/zywl/test1229/ui/home/HomeViewModel.kt | 13 +++++-------- 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/zywl/test1229/database/AppDatabase.kt b/app/src/main/java/com/zywl/test1229/database/AppDatabase.kt index 4788c4b..a540336 100644 --- a/app/src/main/java/com/zywl/test1229/database/AppDatabase.kt +++ b/app/src/main/java/com/zywl/test1229/database/AppDatabase.kt @@ -1,28 +1,10 @@ package com.zywl.test1229.database -import android.content.Context -import androidx.room.Dao import androidx.room.Database -import androidx.room.Room import androidx.room.RoomDatabase import com.zywl.test1229.bean.StakeInfo @Database(entities = [StakeInfo::class], version = 1, exportSchema = false) abstract class AppDatabase : RoomDatabase() { abstract fun dataDao():DataDao - companion object{ - @Volatile - private var INSTANCE: AppDatabase? = null - fun getDatabase(context: Context): AppDatabase { - return INSTANCE ?: synchronized(this) { - val instance = Room.databaseBuilder( - context.applicationContext, - AppDatabase::class.java, - "app_database.db" - ).build() - INSTANCE = instance - instance - } - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/zywl/test1229/database/DataDao.kt b/app/src/main/java/com/zywl/test1229/database/DataDao.kt index 986ca8c..eef89e3 100644 --- a/app/src/main/java/com/zywl/test1229/database/DataDao.kt +++ b/app/src/main/java/com/zywl/test1229/database/DataDao.kt @@ -1,19 +1,21 @@ package com.zywl.test1229.database -import androidx.lifecycle.LiveData import androidx.room.Dao -import androidx.room.Insert import androidx.room.Query +import androidx.room.Upsert import com.zywl.test1229.bean.StakeInfo @Dao interface DataDao { - @Insert - suspend fun insert(data:StakeInfo) - @Insert - suspend fun insertAll(data:List) + @Upsert + suspend fun insert(data: StakeInfo) + + @Upsert + suspend fun insertAll(data: List) + @Query("SELECT * FROM info_table") - fun getAllStakeInfo(): LiveData> + suspend fun getAllStakeInfo(): List + @Query("DELETE FROM info_table") suspend fun deleteAll() } \ No newline at end of file diff --git a/app/src/main/java/com/zywl/test1229/ui/home/HomeViewModel.kt b/app/src/main/java/com/zywl/test1229/ui/home/HomeViewModel.kt index 80c4e39..74c9582 100644 --- a/app/src/main/java/com/zywl/test1229/ui/home/HomeViewModel.kt +++ b/app/src/main/java/com/zywl/test1229/ui/home/HomeViewModel.kt @@ -4,7 +4,6 @@ import android.content.Context import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.zywl.test1229.bean.Constant import com.zywl.test1229.bean.StakeInfo import com.zywl.test1229.data.PermissionState import com.zywl.test1229.database.DataDao @@ -24,7 +23,6 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import java.io.File import javax.inject.Inject @HiltViewModel @@ -72,13 +70,12 @@ class HomeViewModel @Inject constructor( _state.update { it.copy(items = it.items + stakeInfoList) } } } - private fun onUpdateItems(dataDao: DataDao){ + + private fun onUpdateItems(dataDao: DataDao) { viewModelScope.launch(Dispatchers.IO) { - val stakeInfoList = dataDao.getAllStakeInfo().value - stakeInfoList?.let { - Log.d(TAG, "onFileSelected: $stakeInfoList") - _state.update { it.copy(items = stakeInfoList) } - } + val stakeInfoList = dataDao.getAllStakeInfo() + Log.d(TAG, "onFileSelected: $stakeInfoList") + _state.update { it.copy(items = stakeInfoList) } } }