diff --git a/feature/home/src/main/java/com/teamwable/homedetail/HomeDetailFragment.kt b/feature/home/src/main/java/com/teamwable/homedetail/HomeDetailFragment.kt index ef9e34b7..060b1b59 100644 --- a/feature/home/src/main/java/com/teamwable/homedetail/HomeDetailFragment.kt +++ b/feature/home/src/main/java/com/teamwable/homedetail/HomeDetailFragment.kt @@ -2,6 +2,7 @@ package com.teamwable.homedetail import android.content.res.ColorStateList import android.os.Bundle +import android.view.MotionEvent import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.viewModels import androidx.lifecycle.flowWithLifecycle @@ -11,6 +12,7 @@ import androidx.navigation.fragment.navArgs import androidx.paging.LoadState import androidx.paging.map import androidx.recyclerview.widget.ConcatAdapter +import androidx.recyclerview.widget.RecyclerView import com.teamwable.common.util.AmplitudeHomeTag.CLICK_WRITE_COMMENT import com.teamwable.common.util.AmplitudeUtil.trackEvent import com.teamwable.home.R @@ -117,6 +119,7 @@ class HomeDetailFragment : BindingFragment(FragmentHo scrollToBottomOnCommentAdded() initEditTextHint(feed.postAuthorNickname) initEditTextBtn(feed.feedId, commentSnackbar) + initRvClickListenerToHideKeyboard() } private fun initEditTextHint(nickname: String) { @@ -177,7 +180,9 @@ class HomeDetailFragment : BindingFragment(FragmentHo } private fun onClickFeedItem() = object : FeedClickListener { - override fun onItemClick(feed: Feed) {} + override fun onItemClick(feed: Feed) { + requireActivity().hideKeyboard(binding.root) + } override fun onGhostBtnClick(postAuthorId: Long, feedId: Long) { feedActionHandler.onGhostBtnClick(DialogType.TRANSPARENCY) { @@ -243,7 +248,9 @@ class HomeDetailFragment : BindingFragment(FragmentHo ) } - override fun onItemClick(feedId: Long) {} + override fun onItemClick(feedId: Long) { + requireActivity().hideKeyboard(binding.root) + } } private fun handleProfileNavigation(id: Long) { @@ -274,7 +281,7 @@ class HomeDetailFragment : BindingFragment(FragmentHo val transformedPagingData = pagingData.map { val transformedFeed = FeedTransformer.handleCommentsData(it, binding.root.context) val isAuth = viewModel.fetchUserType(transformedFeed.postAuthorId) == ProfileUserType.AUTH - transformedFeed.copy(isAuth = isAuth) + transformedFeed.copy(isAuth = isAuth, feedId = feed.feedId) } commentAdapter.submitData(transformedPagingData) } @@ -332,6 +339,23 @@ class HomeDetailFragment : BindingFragment(FragmentHo ) } + private fun initRvClickListenerToHideKeyboard() { + binding.rvHomeDetail.addOnItemTouchListener(object : RecyclerView.OnItemTouchListener { + override fun onInterceptTouchEvent(rv: RecyclerView, e: MotionEvent): Boolean { + val child = rv.findChildViewUnder(e.x, e.y) + if (child == null) { + requireActivity().hideKeyboard(binding.root) + return true + } + return false + } + + override fun onTouchEvent(rv: RecyclerView, e: MotionEvent) {} + + override fun onRequestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {} + }) + } + companion object { const val POSTING_MAX = 499 } diff --git a/feature/main/src/main/java/com/teamwable/main/MainActivity.kt b/feature/main/src/main/java/com/teamwable/main/MainActivity.kt index 0293473b..e208b0d1 100644 --- a/feature/main/src/main/java/com/teamwable/main/MainActivity.kt +++ b/feature/main/src/main/java/com/teamwable/main/MainActivity.kt @@ -5,8 +5,6 @@ import android.content.Context import android.content.Intent import android.content.pm.ActivityInfo import android.os.Bundle -import android.view.MotionEvent -import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity @@ -26,7 +24,6 @@ import com.teamwable.common.util.AmplitudeUtil.trackEvent import com.teamwable.home.HomeFragment import com.teamwable.main.databinding.ActivityMainBinding import com.teamwable.ui.extensions.colorOf -import com.teamwable.ui.extensions.hideKeyboard import com.teamwable.ui.extensions.toast import com.teamwable.ui.extensions.visible import com.teamwable.ui.util.Navigation @@ -67,11 +64,6 @@ class MainActivity : AppCompatActivity(), Navigation { appUpdateHelper.resumeUpdateIfNeeded(activityResultLauncher) } - override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { - hideKeyboard(currentFocus ?: View(this)) - return super.dispatchTouchEvent(ev) - } - private fun setInAppUpdate() { appUpdateHelper = AppUpdateHandler(this) appUpdateHelper.checkForAppUpdate(activityResultLauncher)