diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/ChatViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/ChatViewModel.java index 1b360d7..d286253 100644 --- a/app/src/main/java/com/example/tampopo_client/viewmodels/ChatViewModel.java +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/ChatViewModel.java @@ -8,6 +8,8 @@ import com.example.tampopo_client.models.ChatMessage; import com.example.tampopo_client.models.Chatroom; import com.example.tampopo_client.resources.ChatroomResource; + +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,11 +29,10 @@ private final MutableLiveData> chatMessages = new MutableLiveData<>(new ArrayList<>()); private final MutableLiveData latestMessage = new MutableLiveData<>(); private final MutableLiveData chatroomClosed = new MutableLiveData<>(); - private final HashMap> chatFriendToFriendLiveData = new HashMap<>(); // 通話中(リアルタイム監視用) private final MutableLiveData chatFriendToMeLiveData = new MutableLiveData<>(); - private final MutableLiveData chatToFriendLiveData = new MutableLiveData<>(); + // ===== 以下は追加部分(Handlerループ) ===== private final Handler handler = new Handler(Looper.getMainLooper()); @@ -108,29 +109,37 @@ return chatFriendToMeLiveData; } - public MutableLiveData getChatToFriendLiveData() { - return chatToFriendLiveData; - } + // =============================== // 1. チャットルームに入る(かける側) // =============================== - public void enterChatroom(String myId, String partnerId, String token) { + public String enterChatroom(String myId, String partnerId, String token) { Call call = chatroomResource.enterChatroom(myId, partnerId, token); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful() && response.body() != null) { - chatroomIdLiveData.setValue(response.body().getChatroomId()); - Log.d("ChatVM", "enterChatroom success → chatroomId: " + response.body().getChatroomId()); - } + try { + Response response = call.execute(); + if (response.isSuccessful() && response.body() != null) { + return response.body().getChatroomId(); + } else { + return null; } - - @Override - public void onFailure(Call call, Throwable t) { - Log.e("ChatVM", "enterChatroom error: " + t.getMessage()); - } - }); + } catch (IOException e) { + throw new RuntimeException(e); + } +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful() && response.body() != null) { +// chatroomIdLiveData.setValue(response.body().getChatroomId()); +// Log.d("ChatVM", "enterChatroom success → chatroomId: " + response.body().getChatroomId()); +// } +// } +// +// @Override +// public void onFailure(Call call, Throwable t) { +// Log.e("ChatVM", "enterChatroom error: " + t.getMessage()); +// } +// }); } // 1.5 自分がchatroomに入っているのか確認する @@ -157,46 +166,7 @@ }); } - // =============================== - // 1.55 現在通話中のペアを確認 - // =============================== - public void fetchActiveChatPair(String userId, String token) { - Call call = chatroomResource.getMyChatroom(userId, token); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful() && response.body() != null) { - Chatroom activeRoom = response.body(); - chatroomIdLiveData.setValue(activeRoom.getChatroomId()); - String user1 = activeRoom.getUser1Id(); - String user2 = activeRoom.getUser2Id(); - - // ログインユーザーが user1 の場合 - if (userId.equals(user1)) { - chatFriendToMeLiveData.setValue(user2); // もう一方のユーザーを LiveData にセット - // HashMap にもセット - chatFriendToFriendLiveData.put(userId, new MutableLiveData<>(user2)); - } - // ログインユーザーが user2 の場合 - else if (userId.equals(user2)) { - chatToFriendLiveData.setValue(user1); // もう一方のユーザーを LiveData にセット - chatFriendToFriendLiveData.put(userId, new MutableLiveData<>(user1)); - } - - Log.d("ChatVM", "Active pair found: " + user1 + " ↔ " + user2); - } else { - chatroomIdLiveData.setValue(null); - chatroomClosed.setValue(true); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - Log.e("ChatVM", "fetchActiveChatPair error: " + t.getMessage()); - } - }); - } // ===============================