Skip to content

Commit

Permalink
Merge pull request #193 from Hous-Release/feature/#192-fix-datepicker
Browse files Browse the repository at this point in the history
#192 [fix] 개강 전 수정사항 반영 (데이트피커)
  • Loading branch information
2zerozu authored Feb 21, 2023
2 parents 4781c32 + 2ae762c commit e484780
Show file tree
Hide file tree
Showing 13 changed files with 54 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -66,7 +67,7 @@ class HousFragment : BindingFragment<FragmentHousBinding>(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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -18,7 +19,7 @@ class HomiesAdapter(
fun bind(homy: Homy) {
binding.homy = homy
binding.executePendingBindings()
binding.clHousProfile.setOnClickListener {
binding.clHousProfile.setOnSingleClickListener {
onClickHomie(homy, absoluteAdapterPosition)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -76,7 +77,7 @@ class UserInputActivity : BindingActivity<ActivityUserInputBinding>(R.layout.act
}

private fun initBirthdayOnClickListener() {
binding.etUserInputBirthday.setOnClickListener {
binding.etUserInputBirthday.setOnSingleClickListener {
DatePickerDialog().apply {
arguments = Bundle().apply {
putParcelable(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -73,13 +74,13 @@ class ProfileFragment : BindingFragment<FragmentProfileBinding>(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 {
Expand All @@ -94,7 +95,7 @@ class ProfileFragment : BindingFragment<FragmentProfileBinding>(R.layout.fragmen
}

private fun initSettingOnClickListener() {
binding.btnProfileSetting.setOnClickListener {
binding.btnProfileSetting.setOnSingleClickListener {
startActivity(
Intent(requireContext(), SettingsActivity::class.java).apply {
putExtra(SettingsActivity.HAS_ROOM, true)
Expand All @@ -104,17 +105,17 @@ class ProfileFragment : BindingFragment<FragmentProfileBinding>(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) {
Expand All @@ -141,7 +142,7 @@ class ProfileFragment : BindingFragment<FragmentProfileBinding>(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))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -98,7 +99,7 @@ class ProfileEditActivity :
}

private fun initBirthdayOnClickListener() {
binding.etProfileEditBirthday.setOnClickListener {
binding.etProfileEditBirthday.setOnSingleClickListener {
DatePickerDialog().apply {
arguments = Bundle().apply {
putParcelable(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
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
val binding get() = _binding ?: error(getString(R.string.binding_error))

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()
Expand All @@ -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()
Expand All @@ -55,6 +57,7 @@ class DatePickerDialog : DialogFragment() {
arguments?.getParcelable<DatePickerClickListener>(CONFIRM_ACTION)
?.onConfirmClick(date)
?: Timber.e(getString(R.string.null_point_exception_warning_dialog_argument))
updateDate(year, month, dayOfMonth)
}
dismiss()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ inline fun <reified T : Activity> 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) })
}
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/ic_back_g6.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#969696"
android:pathData="M7.579,12L14,5.579L15.421,7L9,13.421L7.579,12ZM14,18.421L7.579,12L9,10.579L15.421,17L14,18.421Z" />
</vector>
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_homie_profile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />

Expand Down
5 changes: 3 additions & 2 deletions app/src/main/res/layout/dialog_date_picker.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@drawable/shape_white_fill_8_rect">
android:background="@drawable/shape_white_fill_8_rect">

<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_date_picker_horizental"
Expand All @@ -27,6 +26,7 @@
android:layout_marginStart="24dp"
android:layout_marginTop="24dp"
android:text="@string/user_input_birthday"
android:textColor="@color/hous_black"
android:theme="@style/H4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Expand All @@ -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"
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/layout/fragment_profile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
10 changes: 10 additions & 0 deletions app/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,18 @@
<item name="android:textColor">@color/hous_black</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">20dp</item>
<item name="android:windowIsFloating">false</item>
<item name="android:letterSpacing">-0.02</item>
<item name="android:lineSpacingExtra">10dp</item>
<item name="android:colorControlNormal">@android:color/transparent</item>
</style>

<style name="MaterialAlertDialog_rounded" parent="@style/ThemeOverlay.MaterialComponents.Dialog.Alert">
<item name="shapeAppearanceOverlay">@style/DialogCorners</item>
</style>

<style name="DialogCorners">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">8dp</item>
</style>
</resources>

0 comments on commit e484780

Please sign in to comment.