diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/data/repository/ModelRepository.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/data/repository/ModelRepository.kt index cf372f9d70..051bf77a73 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/data/repository/ModelRepository.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/data/repository/ModelRepository.kt @@ -7,12 +7,17 @@ import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import javax.inject.Singleton +/** + * Repository for managing available models. + */ interface ModelRepository { + // TODO-han.yin: change to Flow for getters + suspend fun getStorageMetrics(): StorageMetrics suspend fun getModels(): List + + suspend fun importModel(uri: Uri): ModelInfo suspend fun deleteModel(modelId: String) suspend fun deleteModels(modelIds: Collection) - suspend fun importModel(uri: Uri): ModelInfo - suspend fun getStorageMetrics(): StorageMetrics } @Singleton @@ -21,11 +26,21 @@ class ModelRepositoryImpl @Inject constructor( // TODO-han.yin: Add model DAO ) : ModelRepository { + override suspend fun getStorageMetrics(): StorageMetrics { + // Stub - would calculate from actual storage + return StorageMetrics(14.6f, 32.0f) + } + override suspend fun getModels(): List { // In a real implementation, this would load from database return ModelInfo.getSampleModels() } + override suspend fun importModel(uri: Uri): ModelInfo { + // Stub - would copy file and extract metadata + return ModelInfo.getSampleModels().first() + } + override suspend fun deleteModel(modelId: String) { // Stub - would delete from filesystem and database } @@ -33,19 +48,15 @@ class ModelRepositoryImpl @Inject constructor( override suspend fun deleteModels(modelIds: Collection) { // Stub - would delete from filesystem and database } - - override suspend fun importModel(uri: Uri): ModelInfo { - // Stub - would copy file and extract metadata - return ModelInfo.getSampleModels().first() - } - - override suspend fun getStorageMetrics(): StorageMetrics { - // Stub - would calculate from actual storage - return StorageMetrics(14.6f, 32.0f) - } } data class StorageMetrics( val usedGB: Float, val totalGB: Float -) +) { + val percentUsed: Float + get() = if (totalGB > 0) usedGB / totalGB else 0f + + val freeGB: Float + get() = totalGB - usedGB +}