diff --git a/app/src/main/java/com/example/login_v3/data/api/api_class/DM_Basic.kt b/app/src/main/java/com/example/login_v3/data/api/api_class/DM_Basic.kt index 6d08cb1..5f061ec 100644 --- a/app/src/main/java/com/example/login_v3/data/api/api_class/DM_Basic.kt +++ b/app/src/main/java/com/example/login_v3/data/api/api_class/DM_Basic.kt @@ -13,7 +13,7 @@ data class RoomListResponse( @JsonClass(generateAdapter = true) data class ChatRoom( @Json(name = "room_id") val roomId: String, - @Json(name = "room_name") val roomName: String, + @Json(name = "room_name") val roomName: String?, @Json(name = "room_type") val roomType: String, @Json(name = "room_icon_url") val roomIconUrl: String?, @Json(name = "is_muted") val isMuted: Boolean, diff --git a/app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic.kt b/app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic_Repository.kt similarity index 91% rename from app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic.kt rename to app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic_Repository.kt index 487e352..446814a 100644 --- a/app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic.kt +++ b/app/src/main/java/com/example/login_v3/data/repository/dm/DM_Basic_Repository.kt @@ -5,7 +5,7 @@ import com.example.login_v3.data.api.api_class.RoomListResponse import javax.inject.Inject import javax.inject.Singleton -@Singleton // 如果你希望整個 App 週期內只存在一個實體 +@Singleton class ChatRoomsRepository @Inject constructor( private val api: TecnologiaApi ) { diff --git a/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt b/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt index ffc4320..fec805d 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/UI/Message.kt @@ -310,7 +310,10 @@ fun RoomItem( // 2. 中間內容:名稱與最後訊息 Column(modifier = Modifier.weight(1f)) { Text( - text = room.roomName.ifEmpty { room.partner?.displayName ?: "Unknown" }, + // 使用 orEmpty() 先把 String? 轉成 String + text = room.roomName.orEmpty().ifEmpty { + room.partner?.displayName ?: "Unknown" + }, style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold, maxLines = 1, diff --git a/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt b/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt index b6cb505..4caa370 100644 --- a/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt +++ b/app/src/main/java/com/example/login_v3/home/Message/ViewModel/Message_ViewModel.kt @@ -1,6 +1,7 @@ // Message_ViewModel.kt package com.example.login_v3.home.Message.ViewModel +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.example.login_v3.R @@ -26,8 +27,9 @@ class ChatRoomsViewModel @Inject constructor( val result = repository.fetchRooms() result.onSuccess { response -> _roomsState.value = response.rooms - }.onFailure { - // 處理錯誤,例如更新一個 error state + }.onFailure { error -> + // 這裡非常重要! + Log.e("Technologia", "讀取失敗!原因:${error.message}", error) } } }