From 8a63066bfa00d9a80f3c976b1a25bfc5e4d4b99c Mon Sep 17 00:00:00 2001 From: Nahyun Kim Date: Thu, 16 Jan 2025 20:12:15 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8Design:=20=EB=AA=A8=EC=9E=84=20?= =?UTF-8?q?=EC=B4=88=EB=8C=80=20=EC=95=8C=EB=A6=BC=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 커뮤니티 알림 화면 통합 - 기획 변경에 따른 모임 알림 화면 삭제 Related to: #347 --- app/src/main/AndroidManifest.xml | 2 +- .../ui/community/CommunityFragment.kt | 4 +- .../ui/community/alert/AlertViewModel.kt | 12 --- .../community/alert/CommunityAlertActivity.kt | 41 ---------- ...lertFragment.kt => FriendAlertActivity.kt} | 14 ++-- .../ui/community/alert/MoimAlertFragment.kt | 53 ------------- .../alert/adapter/CommunityAlertVPAdapter.kt | 18 ----- .../alert/adapter/MoimAlertRVAdapter.kt | 61 --------------- .../res/layout/activity_community_alert.xml | 76 ------------------- .../main/res/layout/fragment_friend_alert.xml | 40 ++++++++-- .../main/res/layout/fragment_moim_alert.xml | 59 -------------- app/src/main/res/values/strings.xml | 5 +- 12 files changed, 47 insertions(+), 338 deletions(-) delete mode 100644 app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/CommunityAlertActivity.kt rename app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/{FriendAlertFragment.kt => FriendAlertActivity.kt} (80%) delete mode 100644 app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/MoimAlertFragment.kt delete mode 100644 app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/CommunityAlertVPAdapter.kt delete mode 100644 app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/MoimAlertRVAdapter.kt delete mode 100644 app/src/main/res/layout/activity_community_alert.xml delete mode 100644 app/src/main/res/layout/fragment_moim_alert.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dfbf512e..2c479776 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -103,7 +103,7 @@ android:name=".presentation.ui.home.diary.PersonalDiaryDetailActivity" android:exported="false" android:windowSoftInputMode="adjustPan" /> - + (R.layout.fragme private fun initClickListeners() { binding.communityAlertIv.setOnClickListener { - startActivity(Intent(requireActivity(), CommunityAlertActivity::class.java)) + startActivity(Intent(requireActivity(), FriendAlertActivity::class.java)) } } diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/AlertViewModel.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/AlertViewModel.kt index 65542b3d..ba640440 100644 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/AlertViewModel.kt +++ b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/AlertViewModel.kt @@ -5,14 +5,11 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.mongmong.namo.domain.model.FriendRequest -import com.mongmong.namo.domain.model.Moim -import com.mongmong.namo.domain.model.Participant import com.mongmong.namo.domain.repositories.FriendRepository import com.mongmong.namo.domain.usecases.friend.AcceptFriendRequestUseCase import com.mongmong.namo.domain.usecases.friend.DenyFriendRequestUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch -import org.joda.time.LocalDateTime import javax.inject.Inject @HiltViewModel @@ -21,8 +18,6 @@ class AlertViewModel @Inject constructor( private val acceptFriendRequestUseCase: AcceptFriendRequestUseCase, private val denyFriendRequestUseCase: DenyFriendRequestUseCase ): ViewModel() { - private val _moimRequestList = MutableLiveData>(emptyList()) - val moimRequestList: LiveData> = _moimRequestList private val _friendRequestList = MutableLiveData>(emptyList()) val friendRequestList: LiveData> = _friendRequestList @@ -31,13 +26,6 @@ class AlertViewModel @Inject constructor( val isComplete: LiveData = _isComplete init { - _moimRequestList.value = listOf( - Moim( - 1, LocalDateTime.now(), "", "나모 모임 일정", "강남역", - listOf( - Participant(participantId = 3, nickname = "코코아", colorId = 4) - )) - ) getFriendRequests() } diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/CommunityAlertActivity.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/CommunityAlertActivity.kt deleted file mode 100644 index 54dfb9ff..00000000 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/CommunityAlertActivity.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.mongmong.namo.presentation.ui.community.alert - -import androidx.activity.viewModels -import com.google.android.material.tabs.TabLayoutMediator -import com.mongmong.namo.R -import com.mongmong.namo.databinding.ActivityCommunityAlertBinding -import com.mongmong.namo.presentation.config.BaseActivity -import com.mongmong.namo.presentation.ui.community.alert.adapter.CommunityAlertVPAdapter -import dagger.hilt.android.AndroidEntryPoint - -@AndroidEntryPoint -class CommunityAlertActivity : BaseActivity(R.layout.activity_community_alert) { - - private val information = arrayListOf("모임 요청", "친구 요청") - private val viewModel: AlertViewModel by viewModels() - - override fun setup() { - setVPAdapter() - - binding.viewModel = this@CommunityAlertActivity.viewModel - - initClickListeners() - } - - private fun initClickListeners() { - binding.communityAlertBackIv.setOnClickListener { - // 뒤로가기 - finish() - } - } - - private fun setVPAdapter() { - val alertAdapter = CommunityAlertVPAdapter(this) - binding.communityAlertVp.adapter = alertAdapter - - TabLayoutMediator(binding.communityAlertTb, binding.communityAlertVp){ - tab, position-> - tab.text= information[position] // 포지션에 따른 텍스트 매칭 - }.attach() // 탭레이아웃과 뷰페이저를 붙여주는 기능 - } -} \ No newline at end of file diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertFragment.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertActivity.kt similarity index 80% rename from app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertFragment.kt rename to app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertActivity.kt index b4368b34..bc820e64 100644 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertFragment.kt +++ b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/FriendAlertActivity.kt @@ -1,24 +1,24 @@ package com.mongmong.namo.presentation.ui.community.alert -import androidx.fragment.app.activityViewModels +import androidx.activity.viewModels import androidx.recyclerview.widget.LinearLayoutManager import com.mongmong.namo.R import com.mongmong.namo.databinding.FragmentFriendAlertBinding -import com.mongmong.namo.presentation.config.BaseFragment +import com.mongmong.namo.presentation.config.BaseActivity import com.mongmong.namo.presentation.ui.community.alert.adapter.FriendAlertRVAdapter import com.mongmong.namo.presentation.ui.community.friend.FriendInfoDialog import com.mongmong.namo.presentation.ui.community.friend.OnFriendInfoChangedListener import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint -class FriendAlertFragment : BaseFragment(R.layout.fragment_friend_alert), OnFriendInfoChangedListener { +class FriendAlertActivity : BaseActivity(R.layout.fragment_friend_alert), OnFriendInfoChangedListener { - private val viewModel: AlertViewModel by activityViewModels() + private val viewModel: AlertViewModel by viewModels() private lateinit var friendAdapter: FriendAlertRVAdapter override fun setup() { - binding.viewModel = this@FriendAlertFragment.viewModel + binding.viewModel = this@FriendAlertActivity.viewModel setAdapter() initObserve() @@ -33,7 +33,7 @@ class FriendAlertFragment : BaseFragment(R.layout.fr friendAdapter.setItemClickListener(object : FriendAlertRVAdapter.MyItemClickListener { override fun onFriendInfoClick(position: Int) { // 친구 정보 화면으로 이동 - FriendInfoDialog(null, viewModel.friendRequestList.value!![position], true, this@FriendAlertFragment).show(parentFragmentManager, "FriendInfoDialog") + FriendInfoDialog(null, viewModel.friendRequestList.value!![position], true, this@FriendAlertActivity).show(this@FriendAlertActivity.supportFragmentManager, "FiendDialog") } override fun onAcceptBtnClick(position: Int) { @@ -49,7 +49,7 @@ class FriendAlertFragment : BaseFragment(R.layout.fr } private fun initObserve() { - viewModel.friendRequestList.observe(viewLifecycleOwner) { friendRequestList -> + viewModel.friendRequestList.observe(this) { friendRequestList -> if (friendRequestList.isNotEmpty()) { friendAdapter.addRequest(friendRequestList) } diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/MoimAlertFragment.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/MoimAlertFragment.kt deleted file mode 100644 index cad426d4..00000000 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/MoimAlertFragment.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.mongmong.namo.presentation.ui.community.alert - -import androidx.fragment.app.activityViewModels -import androidx.recyclerview.widget.LinearLayoutManager -import com.mongmong.namo.R -import com.mongmong.namo.databinding.FragmentMoimAlertBinding -import com.mongmong.namo.presentation.config.BaseFragment -import com.mongmong.namo.presentation.ui.community.alert.adapter.MoimAlertRVAdapter -import dagger.hilt.android.AndroidEntryPoint - -@AndroidEntryPoint -class MoimAlertFragment : BaseFragment(R.layout.fragment_moim_alert) { - - private val viewModel: AlertViewModel by activityViewModels() - - private lateinit var moimAdapter: MoimAlertRVAdapter - - override fun setup() { - binding.viewModel = this@MoimAlertFragment.viewModel - - initObserve() - } - - private fun setAdapter() { - moimAdapter = MoimAlertRVAdapter() - binding.moimAlertListRv.apply { - adapter = moimAdapter - layoutManager = LinearLayoutManager(context) - } - moimAdapter.setItemClickListener(object : MoimAlertRVAdapter.MyItemClickListener { - override fun onMoimInfoClick(position: Int) { - // - } - - override fun onAcceptBtnClick(position: Int) { - //TODO: 요청 수락 진행 - } - - override fun onDenyBtnClick(position: Int) { - //TODO: 요청 거절 진행 - } - }) - } - - private fun initObserve() { - viewModel.moimRequestList.observe(viewLifecycleOwner) { - if (it.isNotEmpty()) { - setAdapter() - moimAdapter.addRequest(it) - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/CommunityAlertVPAdapter.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/CommunityAlertVPAdapter.kt deleted file mode 100644 index 68b21005..00000000 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/CommunityAlertVPAdapter.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mongmong.namo.presentation.ui.community.alert.adapter - -import androidx.appcompat.app.AppCompatActivity -import androidx.fragment.app.Fragment -import androidx.viewpager2.adapter.FragmentStateAdapter -import com.mongmong.namo.presentation.ui.community.alert.FriendAlertFragment -import com.mongmong.namo.presentation.ui.community.alert.MoimAlertFragment - -class CommunityAlertVPAdapter(activity: AppCompatActivity) : FragmentStateAdapter(activity) { - override fun getItemCount(): Int = 2 - - override fun createFragment(position: Int): Fragment { - return when(position) { - 0 -> MoimAlertFragment() - else -> FriendAlertFragment() - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/MoimAlertRVAdapter.kt b/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/MoimAlertRVAdapter.kt deleted file mode 100644 index 1911a0ac..00000000 --- a/app/src/main/java/com/mongmong/namo/presentation/ui/community/alert/adapter/MoimAlertRVAdapter.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.mongmong.namo.presentation.ui.community.alert.adapter - -import android.annotation.SuppressLint -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.mongmong.namo.databinding.ItemMoimAlertBinding -import com.mongmong.namo.domain.model.Moim - -class MoimAlertRVAdapter: RecyclerView.Adapter(){ - - private var moimRequestList = emptyList() - private lateinit var mItemClickListener: MyItemClickListener - - fun setItemClickListener(itemClickListener: MyItemClickListener) { - mItemClickListener = itemClickListener - } - - @SuppressLint("NotifyDataSetChanged") - fun addRequest(moimList: List) { - this.moimRequestList = moimList - notifyDataSetChanged() - } - - interface MyItemClickListener { - fun onMoimInfoClick(position: Int) - fun onAcceptBtnClick(position: Int) - fun onDenyBtnClick(position: Int) - } - - override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder { - val binding: ItemMoimAlertBinding = ItemMoimAlertBinding.inflate( - LayoutInflater.from(viewGroup.context), viewGroup, false - ) - - return ViewHolder(binding) - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.bind(moimRequestList[position]) - holder.apply { - // 수락 버튼 클릭 - binding.itemMoimAlertAcceptBtn.setOnClickListener { - mItemClickListener.onAcceptBtnClick(position) - } - // 거절 버튼 클릭 - binding.itemMoimAlertDenyBtn.setOnClickListener { - mItemClickListener.onDenyBtnClick(position) - } - } - } - - override fun getItemCount(): Int = moimRequestList.size - - inner class ViewHolder(val binding: ItemMoimAlertBinding) : RecyclerView.ViewHolder(binding.root) { - //TODO: 실제 친구 요청 데이터로 변경 - fun bind(moim: Moim) { - binding.moim = moim - } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_community_alert.xml b/app/src/main/res/layout/activity_community_alert.xml deleted file mode 100644 index fbba79f6..00000000 --- a/app/src/main/res/layout/activity_community_alert.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_friend_alert.xml b/app/src/main/res/layout/fragment_friend_alert.xml index 4aa929a8..772a1ae9 100644 --- a/app/src/main/res/layout/fragment_friend_alert.xml +++ b/app/src/main/res/layout/fragment_friend_alert.xml @@ -16,28 +16,58 @@ android:fitsSystemWindows="true" android:background="@color/white"> + + + + + + + + @@ -51,7 +81,7 @@ android:visibility="@{viewModel.friendRequestList.empty ? View.GONE : View.VISIBLE}" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" tools:listitem="@layout/item_friend_alert" - app:layout_constraintTop_toTopOf="parent" + app:layout_constraintTop_toBottomOf="@id/friend_alert_top_cl" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"/> diff --git a/app/src/main/res/layout/fragment_moim_alert.xml b/app/src/main/res/layout/fragment_moim_alert.xml deleted file mode 100644 index 0aca9e2f..00000000 --- a/app/src/main/res/layout/fragment_moim_alert.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 249e60a5..1336f7d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -236,10 +236,9 @@ %s\#%s 나모#0000 좋아하는 색깔 - - 새로운 요청이 없습니다. - 새로운 요청 + 새로운 친구 요청이 없습니다. + 새로운 친구 요청 수락 거절