diff --git a/app/src/main/java/hous/release/android/presentation/hous/HousFragment.kt b/app/src/main/java/hous/release/android/presentation/hous/HousFragment.kt index 3923fca31..10f987799 100644 --- a/app/src/main/java/hous/release/android/presentation/hous/HousFragment.kt +++ b/app/src/main/java/hous/release/android/presentation/hous/HousFragment.kt @@ -21,6 +21,7 @@ import hous.release.android.util.HousLogEvent.clickLogEvent import hous.release.android.util.ToastMessageUtil import hous.release.android.util.binding.BindingFragment import hous.release.android.util.extension.repeatOnStarted +import hous.release.android.util.extension.setOnSingleClickListener import hous.release.domain.entity.HomyType import hous.release.domain.entity.response.Homy @@ -66,7 +67,7 @@ class HousFragment : BindingFragment(R.layout.fragment_hous } private fun initClickListener() { - binding.btnHousEdit.setOnClickListener { + binding.btnHousEdit.setOnSingleClickListener { startActivity( Intent(requireContext(), EditHousNameActivity::class.java).apply { putExtra(ROOM_NAME, viewModel.hous.value.roomName) diff --git a/app/src/main/java/hous/release/android/presentation/hous/adapter/HomiesAdapter.kt b/app/src/main/java/hous/release/android/presentation/hous/adapter/HomiesAdapter.kt index 7d399c2da..9c8ed144f 100644 --- a/app/src/main/java/hous/release/android/presentation/hous/adapter/HomiesAdapter.kt +++ b/app/src/main/java/hous/release/android/presentation/hous/adapter/HomiesAdapter.kt @@ -6,6 +6,7 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import hous.release.android.databinding.ItemHousHomiesBinding import hous.release.android.util.ItemDiffCallback +import hous.release.android.util.extension.setOnSingleClickListener import hous.release.domain.entity.response.Homy class HomiesAdapter( @@ -18,7 +19,7 @@ class HomiesAdapter( fun bind(homy: Homy) { binding.homy = homy binding.executePendingBindings() - binding.clHousProfile.setOnClickListener { + binding.clHousProfile.setOnSingleClickListener { onClickHomie(homy, absoluteAdapterPosition) } } diff --git a/app/src/main/java/hous/release/android/presentation/login/UserInputActivity.kt b/app/src/main/java/hous/release/android/presentation/login/UserInputActivity.kt index c394be27b..ea28527e6 100644 --- a/app/src/main/java/hous/release/android/presentation/login/UserInputActivity.kt +++ b/app/src/main/java/hous/release/android/presentation/login/UserInputActivity.kt @@ -17,6 +17,7 @@ import hous.release.android.util.dialog.DatePickerClickListener import hous.release.android.util.dialog.DatePickerDialog import hous.release.android.util.dialog.WarningDialogFragment.Companion.CONFIRM_ACTION import hous.release.android.util.extension.repeatOnStarted +import hous.release.android.util.extension.setOnSingleClickListener import kotlin.system.exitProcess @AndroidEntryPoint @@ -76,7 +77,7 @@ class UserInputActivity : BindingActivity(R.layout.act } private fun initBirthdayOnClickListener() { - binding.etUserInputBirthday.setOnClickListener { + binding.etUserInputBirthday.setOnSingleClickListener { DatePickerDialog().apply { arguments = Bundle().apply { putParcelable( diff --git a/app/src/main/java/hous/release/android/presentation/profile/ProfileFragment.kt b/app/src/main/java/hous/release/android/presentation/profile/ProfileFragment.kt index 0cb34449f..18216775a 100644 --- a/app/src/main/java/hous/release/android/presentation/profile/ProfileFragment.kt +++ b/app/src/main/java/hous/release/android/presentation/profile/ProfileFragment.kt @@ -24,6 +24,7 @@ import hous.release.android.util.HousLogEvent.clickDateLogEvent import hous.release.android.util.HousLogEvent.clickLogEvent import hous.release.android.util.binding.BindingFragment import hous.release.android.util.extension.repeatOnStarted +import hous.release.android.util.extension.setOnSingleClickListener import hous.release.domain.entity.PersonalityInfo @AndroidEntryPoint @@ -73,13 +74,13 @@ class ProfileFragment : BindingFragment(R.layout.fragmen } private fun initNotificationOnClickListener() { - binding.btnProfileNotification.setOnClickListener { + binding.btnProfileNotification.setOnSingleClickListener { startActivity(Intent(requireContext(), NotificationActivity::class.java)) } } private fun initPersonalityOnClickListener() { - binding.llProfilePersonalityDetail.setOnClickListener { + binding.llProfilePersonalityDetail.setOnSingleClickListener { clickDateLogEvent(CLICK_MY_PERSONALITY) startActivity( Intent(requireActivity(), PersonalityResultActivity::class.java).apply { @@ -94,7 +95,7 @@ class ProfileFragment : BindingFragment(R.layout.fragmen } private fun initSettingOnClickListener() { - binding.btnProfileSetting.setOnClickListener { + binding.btnProfileSetting.setOnSingleClickListener { startActivity( Intent(requireContext(), SettingsActivity::class.java).apply { putExtra(SettingsActivity.HAS_ROOM, true) @@ -104,17 +105,17 @@ class ProfileFragment : BindingFragment(R.layout.fragmen } private fun initBadgeOnClickListener() { - binding.ivProfileBadge.setOnClickListener { + binding.ivProfileBadge.setOnSingleClickListener { startActivity(Intent(requireContext(), BadgeActivity::class.java)) } - binding.tvProfileBadgeEmpty.setOnClickListener { + binding.tvProfileBadgeEmpty.setOnSingleClickListener { startActivity(Intent(requireContext(), BadgeActivity::class.java)) } } private fun initEditOnClickListener() { - binding.btnProfileEdit.setOnClickListener { + binding.btnProfileEdit.setOnSingleClickListener { startActivity( Intent(requireContext(), ProfileEditActivity::class.java).apply { with(profileViewModel.uiState.value.profile) { @@ -141,7 +142,7 @@ class ProfileFragment : BindingFragment(R.layout.fragmen } private fun initTestBtnOnClickListener() { - binding.btnProfileTestAgain.setOnClickListener { + binding.btnProfileTestAgain.setOnSingleClickListener { if (profileViewModel.uiState.value.isTest) clickLogEvent(CLICK_RE_TEST) startActivity(Intent(requireContext(), PersonalityActivity::class.java)) } diff --git a/app/src/main/java/hous/release/android/presentation/profile/edit/ProfileEditActivity.kt b/app/src/main/java/hous/release/android/presentation/profile/edit/ProfileEditActivity.kt index bb880a461..d7825da74 100644 --- a/app/src/main/java/hous/release/android/presentation/profile/edit/ProfileEditActivity.kt +++ b/app/src/main/java/hous/release/android/presentation/profile/edit/ProfileEditActivity.kt @@ -13,6 +13,7 @@ import hous.release.android.util.dialog.DatePickerClickListener import hous.release.android.util.dialog.DatePickerDialog import hous.release.android.util.dialog.WarningDialogFragment import hous.release.android.util.dialog.WarningType +import hous.release.android.util.extension.setOnSingleClickListener import hous.release.android.util.extension.withArgs @AndroidEntryPoint @@ -98,7 +99,7 @@ class ProfileEditActivity : } private fun initBirthdayOnClickListener() { - binding.etProfileEditBirthday.setOnClickListener { + binding.etProfileEditBirthday.setOnSingleClickListener { DatePickerDialog().apply { arguments = Bundle().apply { putParcelable( diff --git a/app/src/main/java/hous/release/android/presentation/profile/homie/HomieProfileActivity.kt b/app/src/main/java/hous/release/android/presentation/profile/homie/HomieProfileActivity.kt index c6651915d..2be27f836 100644 --- a/app/src/main/java/hous/release/android/presentation/profile/homie/HomieProfileActivity.kt +++ b/app/src/main/java/hous/release/android/presentation/profile/homie/HomieProfileActivity.kt @@ -18,6 +18,7 @@ import hous.release.android.util.HousLogEvent.clickDateLogEvent import hous.release.android.util.binding.BindingActivity import hous.release.android.util.component.HousPersonalityPentagon import hous.release.android.util.extension.repeatOnStarted +import hous.release.android.util.extension.setOnSingleClickListener import hous.release.android.util.style.HousTheme @AndroidEntryPoint @@ -47,7 +48,7 @@ class HomieProfileActivity : } private fun initHomiePersonalityOnClickListener() { - binding.llHomieProfilePersonalityDetail.setOnClickListener { + binding.llHomieProfilePersonalityDetail.setOnSingleClickListener { if (intent.getIntExtra(HOMIE_POSITION, DEFAULT) == MY) { clickDateLogEvent(CLICK_MY_PERSONALITY) } diff --git a/app/src/main/java/hous/release/android/util/dialog/DatePickerDialog.kt b/app/src/main/java/hous/release/android/util/dialog/DatePickerDialog.kt index d05d3994b..c770c68fa 100644 --- a/app/src/main/java/hous/release/android/util/dialog/DatePickerDialog.kt +++ b/app/src/main/java/hous/release/android/util/dialog/DatePickerDialog.kt @@ -1,16 +1,16 @@ package hous.release.android.util.dialog -import android.app.AlertDialog import android.app.Dialog import android.os.Bundle import android.view.View import androidx.fragment.app.DialogFragment +import com.google.android.material.dialog.MaterialAlertDialogBuilder import hous.release.android.R import hous.release.android.databinding.DialogDatePickerBinding import hous.release.android.util.dialog.WarningDialogFragment.Companion.CONFIRM_ACTION import hous.release.android.util.extension.initLayout import timber.log.Timber -import java.util.* +import java.util.Calendar class DatePickerDialog : DialogFragment() { private var _binding: DialogDatePickerBinding? = null @@ -18,11 +18,15 @@ class DatePickerDialog : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { _binding = DialogDatePickerBinding.inflate(requireActivity().layoutInflater) - initDatePicker() initConfirmTextClickListener() initCancelTextClickListener() + initMaxDate() + isCancelable = false return activity?.let { - val dialog = AlertDialog.Builder(it).create() + val dialog = MaterialAlertDialogBuilder( + requireActivity(), + R.style.MaterialAlertDialog_rounded + ).create() dialog.setView(binding.root) dialog } ?: throw IllegalStateException() @@ -33,10 +37,8 @@ class DatePickerDialog : DialogFragment() { initLayout() } - private fun initDatePicker() { - with(binding.datePickerDialogDatePicker) { - maxDate = Calendar.getInstance().timeInMillis - } + private fun initMaxDate() { + binding.datePickerDialogDatePicker.maxDate = Calendar.getInstance().timeInMillis } private fun getYearFormat(year: Int): String = year.toString() @@ -55,6 +57,7 @@ class DatePickerDialog : DialogFragment() { arguments?.getParcelable(CONFIRM_ACTION) ?.onConfirmClick(date) ?: Timber.e(getString(R.string.null_point_exception_warning_dialog_argument)) + updateDate(year, month, dayOfMonth) } dismiss() } diff --git a/app/src/main/java/hous/release/android/util/extension/ContextExtension.kt b/app/src/main/java/hous/release/android/util/extension/ContextExtension.kt index bc6c37ea5..65dc3d277 100644 --- a/app/src/main/java/hous/release/android/util/extension/ContextExtension.kt +++ b/app/src/main/java/hous/release/android/util/extension/ContextExtension.kt @@ -25,6 +25,6 @@ inline fun Context.startActivity(block: Intent.() -> Unit startActivity(Intent(this, T::class.java).apply(block)) } -fun View.setSingleOnClickListener(onSingleClick: (View) -> Unit) { +fun View.setOnSingleClickListener(onSingleClick: (View) -> Unit) { setOnClickListener(OnSingleClickListener { onSingleClick(it) }) } diff --git a/app/src/main/res/drawable/ic_back_g6.xml b/app/src/main/res/drawable/ic_back_g6.xml new file mode 100644 index 000000000..1ff7f1faf --- /dev/null +++ b/app/src/main/res/drawable/ic_back_g6.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_homie_profile.xml b/app/src/main/res/layout/activity_homie_profile.xml index dc4812955..842ab134b 100644 --- a/app/src/main/res/layout/activity_homie_profile.xml +++ b/app/src/main/res/layout/activity_homie_profile.xml @@ -38,7 +38,7 @@ android:layout_marginTop="10dp" android:background="@null" android:padding="14dp" - android:src="@drawable/ic_back_g5" + android:src="@drawable/ic_back_g6" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/dialog_date_picker.xml b/app/src/main/res/layout/dialog_date_picker.xml index 28b26d3b5..14ec5a879 100644 --- a/app/src/main/res/layout/dialog_date_picker.xml +++ b/app/src/main/res/layout/dialog_date_picker.xml @@ -1,10 +1,9 @@ + android:background="@drawable/shape_white_fill_8_rect"> @@ -37,6 +37,7 @@ android:layout_height="0dp" android:calendarViewShown="false" android:datePickerMode="spinner" + android:descendantFocusability="blocksDescendants" android:endYear="2099" android:startYear="1900" android:theme="@style/PickerTheme" diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index 27d0aebeb..951a4757e 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -82,6 +82,7 @@ android:layout_height="100dp" android:layout_marginTop="12dp" android:layout_marginEnd="43dp" + android:background="@drawable/shape_white_fill_100_circle" android:elevation="10dp" android:visibility="@{vm.uiState.profile.representBadgeImage==null ? View.INVISIBLE : View.VISIBLE}" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 167a581bd..a9bc21e50 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -29,8 +29,18 @@ @color/hous_black normal 20dp + false -0.02 10dp @android:color/transparent + + + +