diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java b/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java index fc16d0d..d289bae 100644 --- a/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java +++ b/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java @@ -3,6 +3,8 @@ import android.app.Dialog; import android.content.Context; import android.content.Intent; +import android.os.Handler; +import android.os.Looper; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; @@ -34,6 +36,7 @@ private String friendUserNickname; private ChatViewModel chatViewModel; + private String friendUserIconUrl; //ActivityLiveData private final Observer> activitiesObserver = new Observer>() { @Override @@ -64,11 +67,12 @@ return chatObserver; } - public FriendIconView(Context context, String friendUserId, String friendUserNickname, ChatViewModel chatViewModel) { + public FriendIconView(Context context, String friendUserId, String friendUserNickname, ChatViewModel chatViewModel, String friendUserIconUrl) { super(context); this.friendUserId = friendUserId; this.friendUserNickname = friendUserNickname; this.chatViewModel = chatViewModel; + this.friendUserIconUrl = friendUserIconUrl; init(null, 0); } @@ -99,6 +103,16 @@ mFriendChatNotification = findViewById(R.id.chat_notification); mFriendChatNotification.setVisibility(View.GONE); + //mainから渡されたfriendUserNicknameがnull出なければセットする + if(friendUserNickname != null){ + setNickname(friendUserNickname); + } + + //mainから渡されたfriendUserIconUrlがnull出なければセットする + if(friendUserIconUrl != null){ + setIconUrl(friendUserIconUrl); + } + //iconを押したらチャットを始めることができる(チャットのダイアログができたらFriendActivityを変更) mFriendIcon.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { @@ -231,7 +245,13 @@ * @param iconUrl アイコン画像のURL */ public void setIconUrl(String iconUrl) { - Glide.with(getContext()).load(iconUrl).into(getImageView()); + Handler handler = new Handler(Looper.getMainLooper()); + handler.post(new Runnable() { + @Override + public void run() { + Glide.with(getContext()).load(iconUrl).into(getImageView()); + } + }); } diff --git a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java index 9911876..a95bfba 100644 --- a/app/src/main/java/com/example/tampopo_client/views/MainActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/MainActivity.java @@ -119,6 +119,12 @@ // ChatViewModelを初期化する ChatViewModelFactory factory1 = new ChatViewModelFactory(tampopo.getUserId(), tampopo.getToken(), tampopo.getChatroomId()); chatViewModel = new ViewModelProvider(this, factory1).get(ChatViewModel.class); + chatViewModel.getChatroomIdLiveData().observe(this, new Observer() { + @Override + public void onChanged(String chatRoomId) { + tampopo.setChatroomId(chatRoomId); + } + }); MutableLiveData> friendsLiveData = activityViewModel.getFriendUserIdsLiveData(); @@ -412,7 +418,7 @@ new Thread(new Runnable() { @Override public void run() { - FriendIconView container = new FriendIconView(MainActivity.this, friendId, userViewModel.getNickname(friendId), chatViewModel); + FriendIconView container = new FriendIconView(MainActivity.this, friendId, userViewModel.getNickname(friendId), chatViewModel,userViewModel.getIcon(friendId)); Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { diff --git a/app/src/main/res/layout/sample_friend_icon_view.xml b/app/src/main/res/layout/sample_friend_icon_view.xml index 4e9482c..0a063e9 100644 --- a/app/src/main/res/layout/sample_friend_icon_view.xml +++ b/app/src/main/res/layout/sample_friend_icon_view.xml @@ -94,6 +94,6 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="-15dp" android:gravity="center" - android:text="nitta" + android:text="" android:textColor="@color/black" /> \ No newline at end of file