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 e96cf97..34e4347 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 @@ -29,6 +29,7 @@ import com.example.tampopo_client.R; import com.example.tampopo_client.models.Activity; import com.example.tampopo_client.viewmodels.ActivityViewModel; +import com.example.tampopo_client.viewmodels.UserViewModel; import com.google.android.material.imageview.ShapeableImageView; import java.util.List; @@ -37,9 +38,9 @@ /** * TODO: document your custom view class. */ -public class FriendIconView extends FrameLayout implements Observer> { +public class FriendIconView extends FrameLayout { private String mExampleString; // TODO: use a default from R.string... -// private int mExampleColor = Color.RED; // TODO: use a default from R.color... + // private int mExampleColor = Color.RED; // TODO: use a default from R.color... private float mExampleDimension = 0; // TODO: use a default from R.dimen... private Drawable mExampleDrawable; @@ -53,8 +54,57 @@ private ImageView mFriendChatNotification; private boolean chatNotification = false; private Observer> activityObserver; - String friendActivity = "123"; + String friendActivity; private String userId; + + // TODO: CHANGE + //ActivityLiveData + private final Observer> activitiesObserver = new Observer>() { + @Override + public void onChanged(List activityList) { + if (activityList != null && !activityList.isEmpty()) { + Activity act = activityList.get(0); + friendActivity = act.getText(); + setComment(act.getUserId()); + } + } + }; + + //iconLiveData +// private final Observer iconObserver = new Observer() { +// @Override +// public void onChanged(String iconUrl) { +// setAccount(iconUrl.getUserId()); +// // TODO: Implement this method +// } +// }; + + //userLiveData + private final Observer userObserver = new Observer() { + @Override + public void onChanged(String user) { + } + }; + + //chatLiveData + private final Observer chatObserver = new Observer() { + @Override + public void onChanged(String chat) { + } + }; + + public Observer> getActivityObserver() { + return activityObserver; + } + +// public Observer getIconObserver() { +// return iconObserver; +// } + + public ObservergetChatObserver(){ + return chatObserver; + } + public FriendIconView(Context context) { super(context); init(null, 0); @@ -71,7 +121,7 @@ } private void init(AttributeSet attrs, int defStyle) { - LayoutInflater.from(getContext()).inflate(R.layout.sample_friend_icon_view,this,true); + LayoutInflater.from(getContext()).inflate(R.layout.sample_friend_icon_view, this, true); mFriendCommentImage = findViewById(R.id.friend_comment_image); mFriendComment = findViewById(R.id.friend_comment); mFriendNickname = findViewById(R.id.friend_nickname); @@ -79,24 +129,24 @@ mFriendChatNotification = findViewById(R.id.chat_notification); //true(チャット通知が来た時)なら表示 - if(chatNotification){ + if (chatNotification) { mFriendChatNotification.setVisibility(View.VISIBLE); } //false(チャット通知が来ていない)なら非表示 - else{ + else { mFriendChatNotification.setVisibility(View.GONE); } //iconを押したらチャットを始めることができる(チャットのダイアログができたらFriendActivityを変更) mFriendIcon.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { - if(chatNotification) { + if (chatNotification) { Context ctx = getContext(); Intent intent = new Intent(ctx, ChatActivity.class); ctx.startActivity(intent); mFriendChatNotification.setVisibility(View.GONE); - }else{ - showCallRequestDialog(getContext(),FriendIconView.this.userId); + } else { + showCallRequestDialog(getContext(), FriendIconView.this.userId); } } }); @@ -144,6 +194,7 @@ // invalidateTextPaintAndMeasurements(); // } + public void showCallRequestDialog(Context context, String fromUserName) { Dialog dialog = new Dialog(context); @@ -153,7 +204,7 @@ // メッセージテキスト TextView tvMessage = dialog.findViewById(R.id.tv_message); - tvMessage.setText(fromUserName + " さんから通話リクエストが届いています。\n通話を開始しますか?"); + tvMessage.setText(fromUserName + " さんと通話を開始しますか?"); // 開始ボタン Button btnStart = dialog.findViewById(R.id.btn_start); @@ -172,6 +223,7 @@ dialog.show(); } + public void setNickname(String nickname) { if (mFriendNickname != null) { mFriendNickname.setText(nickname); @@ -184,11 +236,12 @@ } } - public ImageView getImageView(){ + public ImageView getImageView() { return mFriendIcon; } - public void setComment(String comment){ - if(mFriendComment != null){ + + public void setComment(String comment) { + if (mFriendComment != null) { int comment_length = comment.length(); if (comment_length > 20) { mFriendComment.setTextSize(7); @@ -203,36 +256,38 @@ // public void setActivityLiveDataObserver(String uid, ActivityViewModel viewModel){ // activityObserver = new Observer>() { - @Override - public void onChanged(List activityList) { - if(activityList != null && !activityList.isEmpty()){ - Activity act = activityList.get(0); - friendActivity = act.getText(); - setAccount(act.getUserId()); - } - } + + // TODO: CHANGE +// @Override +// public void onChanged(List activityList) { +// if (activityList != null && !activityList.isEmpty()) { +// Activity act = activityList.get(0); +// friendActivity = act.getText(); +// setAccount(act.getUserId()); +// } +// } // }; // viewModel.getActivitiesLiveDataFromUserId(uid).observeForever(activityObserver); // } //uidを引数にカスタムビューにニックネーム,コメント,アイコンをセットする - public void setAccount(String uid){ + public void setAccount(String uid, String iconUrl) { this.userId = uid; - setNickname(userId); - setComment((friendActivity)); - String imageUrl = "http://nitta-lab-www.is.konan-u.ac.jp/tampopo-data/icon" + uid + ".jpg"; + setNickname("nitta"); + //String imageUrl = "http://nitta-lab-www.is.konan-u.ac.jp/tampopo-data/icon" + uid + ".jpg"; Glide.with(getContext()) - .load(imageUrl) + .load(iconUrl) .into(getImageView()); } - public void setChatNotification(boolean chat){ + + public void setChatNotification(boolean chat) { //チャットを終了するときのonclickで一緒にsetChatNotification(false)もする(アイコン周りの赤丸を消す) //true(チャット通知が来た時)なら表示 - if(chat){ + if (chat) { mFriendChatNotification.setVisibility(View.VISIBLE); } //false(チャット通知が来ていない)なら非表示 - else{ + else { mFriendChatNotification.setVisibility(View.GONE); } }