From 4caa8fe886ae44ea241d294685e3dc3ae5791fcf Mon Sep 17 00:00:00 2001 From: Nahyun Kim Date: Wed, 8 Jan 2025 17:08:12 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Design:=20=EC=B9=9C=EA=B5=AC=20?= =?UTF-8?q?=EC=B4=88=EB=8C=80=20=ED=99=94=EB=A9=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 초대할 친구 아이템 UI 구현 - 전체 선택 취소, 초대 현황 표시, 초대하기 버튼 Related to: #347 --- .../moim/schedule/FriendInviteActivity.kt | 9 ++ .../moim/schedule/FriendInviteViewModel.kt | 5 + .../res/layout/activity_friend_invite.xml | 112 ++++++++++++++++-- .../main/res/layout/item_friend_invite.xml | 20 ++-- .../main/res/layout/item_friend_to_invite.xml | 64 ++++++++++ app/src/main/res/values/strings.xml | 15 ++- 6 files changed, 204 insertions(+), 21 deletions(-) create mode 100644 app/src/main/res/layout/item_friend_to_invite.xml diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteActivity.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteActivity.kt index 2a883549..55605092 100644 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteActivity.kt +++ b/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteActivity.kt @@ -1,5 +1,6 @@ package com.mongmong.namo.presentation.ui.community.moim.schedule +import android.text.Html import androidx.activity.viewModels import androidx.recyclerview.widget.LinearLayoutManager import com.mongmong.namo.R @@ -29,12 +30,19 @@ class FriendInviteActivity : BaseActivity(R.layout. } } + // 초대한 친구 현황 표시용 + private fun setFriendSelectedNum() { + // {초대할 친구 수} / {전체 친구 수} + binding.friendInviteSelectedNumTv.text = Html.fromHtml(String.format(resources.getString(R.string.moim_schedule_friend_invite_selected_num), viewModel.friendToInviteList.value?.size, viewModel.friendList.value?.size)) + } + private fun setAdapter() { friendAdapter = FriendInviteRVAdapter() binding.friendInviteListRv.apply { adapter = friendAdapter layoutManager = LinearLayoutManager(context) } + friendAdapter.setItemClickListener(object : FriendInviteRVAdapter.MyItemClickListener { override fun onInviteButtonClick(position: Int) { //TODO: 친구 초대 진행 @@ -51,6 +59,7 @@ class FriendInviteActivity : BaseActivity(R.layout. if (it.isNotEmpty()) { setAdapter() friendAdapter.addFriend(it) + setFriendSelectedNum() } } } diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteViewModel.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteViewModel.kt index 0fc9574a..00507150 100644 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteViewModel.kt +++ b/app/src/main/java/com/mongmong/namo/presentation/ui/community/moim/schedule/FriendInviteViewModel.kt @@ -14,9 +14,14 @@ import javax.inject.Inject class FriendInviteViewModel @Inject constructor( private val getFriendsUseCase: GetFriendsUseCase, ): ViewModel() { + // 모든 친구 목록 private val _friendList = MutableLiveData>() val friendList: LiveData> = _friendList + // 초대할 친구 목록 + private val _friendToInviteList = MutableLiveData>(emptyList()) + val friendToInviteList: LiveData> = _friendToInviteList + init { getFriends() } diff --git a/app/src/main/res/layout/activity_friend_invite.xml b/app/src/main/res/layout/activity_friend_invite.xml index d036debe..74494c88 100644 --- a/app/src/main/res/layout/activity_friend_invite.xml +++ b/app/src/main/res/layout/activity_friend_invite.xml @@ -69,36 +69,130 @@ app:layout_constraintTop_toTopOf="@id/friend_invite_search_et" style="@style/search_btn"/> + + + + + + + + + + + + + + + + + + android:padding="3dp" + android:text="@string/moim_schedule_invite_friend_reset" + android:textColor="@color/main_text" + style="@style/subtext_14"/> + + + + + + + + + + + + + @@ -67,14 +67,14 @@ - + + + + + + + + @@ -82,7 +82,7 @@ android:id="@+id/item_friend_invite_btn" android:layout_width="28dp" android:layout_height="28dp" - android:checked="true" + android:checked="false" android:button="@null" android:background="@drawable/selector_invite"/> diff --git a/app/src/main/res/layout/item_friend_to_invite.xml b/app/src/main/res/layout/item_friend_to_invite.xml new file mode 100644 index 00000000..af3bda2a --- /dev/null +++ b/app/src/main/res/layout/item_friend_to_invite.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9526bd9f..a7adfc5f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,6 +14,7 @@ 생일 닉네임 입력 + 계속 서비스 이용을 위한 @@ -208,8 +209,12 @@ 새 모임 시작하기 초대한 친구 일정 보기 친구 초대하기 - 초대한 친구 - 아직 초대한 친구가 없습니다. + 초대할 친구 + 전체 선택 취소 + %d / %d]]> + 초대하기 + 모든 친구 + 아직 추가된 친구가 없어요.\n친구를 추가한 후 모임을 만들어보세요! 게스트 초대하기 활동 기록하기 참석자 정보 @@ -236,4 +241,10 @@ 수락 거절 + + \‘%s\' 모임 일정에\n친구를 초대하시겠습니까? + 지금 취소하셔도 추후 일정 편집에서\n친구를 추가하실 수 있습니다. + 모임 일정을 정말 삭제하시겠어요? + 삭제한 모임 일정은\n모든 참여자의 일정에서 삭제됩니다. + \ No newline at end of file