diff --git a/app/src/main/java/com/medmapper/v33001/MainActivity.kt b/app/src/main/java/com/medmapper/v33001/MainActivity.kt index a5822eb..48e3a1b 100644 --- a/app/src/main/java/com/medmapper/v33001/MainActivity.kt +++ b/app/src/main/java/com/medmapper/v33001/MainActivity.kt @@ -29,8 +29,7 @@ class MainActivity : ComponentActivity() { } } -@Composable -fun Greeting(name: String) { +val Greeting: @Composable (String) -> Unit = { name -> Text(text = "Hello $name!") } diff --git a/app/src/main/java/com/medmapper/v33001/dao/MedicineDAO.kt b/app/src/main/java/com/medmapper/v33001/dao/MedicineDAO.kt index 271f155..bd2e00f 100644 --- a/app/src/main/java/com/medmapper/v33001/dao/MedicineDAO.kt +++ b/app/src/main/java/com/medmapper/v33001/dao/MedicineDAO.kt @@ -7,7 +7,7 @@ import kotlinx.coroutines.flow.Flow @Dao interface MedicineDAO { @Query("SELECT * FROM Medicine ORDER BY name ASC") - fun getAlphabetizedMedicine(): Flow> + fun getAlphabetizedMedicine() : Flow> @Insert(onConflict = OnConflictStrategy.IGNORE) suspend fun insert(medicine: Medicine) diff --git a/app/src/main/java/com/medmapper/v33001/dto/Medicine.kt b/app/src/main/java/com/medmapper/v33001/dto/Medicine.kt index 8094740..d4beec6 100644 --- a/app/src/main/java/com/medmapper/v33001/dto/Medicine.kt +++ b/app/src/main/java/com/medmapper/v33001/dto/Medicine.kt @@ -6,10 +6,12 @@ import androidx.room.PrimaryKey @Entity(tableName = "Medicine") data class Medicine( - @PrimaryKey(autoGenerate = true) val medID: Int, - @ColumnInfo(name = "name") val name: String?, + @PrimaryKey(autoGenerate = true) var medID: Int, + @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "strength") val strength: String?, @ColumnInfo(name = "start date") val startDate: String?, - @ColumnInfo(name = "prescription length") val lengthInDays: Int + @ColumnInfo(name = "prescription length") val lengthInDays: Int?, + @ColumnInfo(name = "frequency") val frequency: String?, + @ColumnInfo(name = "reason") val reason: String? //,@ColumnInfo() val endDate: Date = startDate ) \ No newline at end of file diff --git a/app/src/main/java/com/medmapper/v33001/repository/MedicineRepository.kt b/app/src/main/java/com/medmapper/v33001/repository/MedicineRepository.kt index c2f8470..02d4ab9 100644 --- a/app/src/main/java/com/medmapper/v33001/repository/MedicineRepository.kt +++ b/app/src/main/java/com/medmapper/v33001/repository/MedicineRepository.kt @@ -1,11 +1,12 @@ package com.medmapper.v33001.repository +import android.util.Log import androidx.annotation.WorkerThread import com.medmapper.v33001.dao.MedicineDAO import com.medmapper.v33001.dto.Medicine import kotlinx.coroutines.flow.Flow -// Declares teh DAO as private property in the constructor. Pass in the DAO +// Declares the DAO as private property in the constructor. Pass in the DAO // instead of the whole database, because you only need access to the DAO class MedicineRepository(private val medicineDAO: MedicineDAO) { @@ -18,7 +19,13 @@ class MedicineRepository(private val medicineDAO: MedicineDAO) { // long running database work off the main thread @Suppress("RedundantSuspendModifier") @WorkerThread - suspend fun insert(medicine: Medicine) { - medicineDAO.insert(medicine) + suspend fun insertMedicine(medicine: Medicine) { + try { + medicineDAO.insert(medicine) + } + catch (e: Exception){ + Log.e("MedicineRepository", "Error inserting medicine: ${e.message}") + throw Exception("Error inserting medicine",e) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/medmapper/v33001/room/MedicineRoomDatabase.kt b/app/src/main/java/com/medmapper/v33001/room/MedicineRoomDatabase.kt index a37fcf9..cedc07d 100644 --- a/app/src/main/java/com/medmapper/v33001/room/MedicineRoomDatabase.kt +++ b/app/src/main/java/com/medmapper/v33001/room/MedicineRoomDatabase.kt @@ -7,10 +7,10 @@ import androidx.room.RoomDatabase import com.medmapper.v33001.dao.MedicineDAO import com.medmapper.v33001.dto.Medicine -@Database(entities = arrayOf(Medicine::class), version = 1, exportSchema = false) +@Database(entities = [Medicine::class], version = 1, exportSchema = false) public abstract class MedicineRoomDatabase : RoomDatabase() { - abstract fun medicineDao(): MedicineDAO + abstract suspend fun medicineDao(): MedicineDAO companion object { // Singleton prevents multiple instances of database opening at the same time. diff --git a/app/src/main/java/com/medmapper/v33001/ui/theme/Type.kt b/app/src/main/java/com/medmapper/v33001/ui/theme/Type.kt index 7ed47d9..808e7ef 100644 --- a/app/src/main/java/com/medmapper/v33001/ui/theme/Type.kt +++ b/app/src/main/java/com/medmapper/v33001/ui/theme/Type.kt @@ -13,16 +13,4 @@ val Typography = Typography( fontWeight = FontWeight.Normal, fontSize = 16.sp ) - /* Other default text styles to override - button = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.W500, - fontSize = 14.sp - ), - caption = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 12.sp - ) - */ ) \ No newline at end of file diff --git a/app/src/main/res/layout/layout2.xml b/app/src/main/res/layout/layout2.xml index 5ffbb96..cd5c775 100644 --- a/app/src/main/res/layout/layout2.xml +++ b/app/src/main/res/layout/layout2.xml @@ -28,6 +28,7 @@