diff --git a/app/src/main/java/com/sopetit/softie/data/repositoryImpl/AuthRepositoryImpl.kt b/app/src/main/java/com/sopetit/softie/data/repositoryImpl/AuthRepositoryImpl.kt index accb164a..f28b9399 100644 --- a/app/src/main/java/com/sopetit/softie/data/repositoryImpl/AuthRepositoryImpl.kt +++ b/app/src/main/java/com/sopetit/softie/data/repositoryImpl/AuthRepositoryImpl.kt @@ -38,6 +38,12 @@ class AuthRepositoryImpl @Inject constructor( localDataSource.bearType = bearType } + override fun getTutorial(): Boolean = localDataSource.isHomeTutorial + + override fun setTutorial(isTutorial: Boolean) { + localDataSource.isHomeTutorial = isTutorial + } + override fun getSignedUp(): Boolean = localDataSource.isUserSignUp override fun getMember(): Boolean = localDataSource.isMemberDollExist diff --git a/app/src/main/java/com/sopetit/softie/data/source/LocalDataSource.kt b/app/src/main/java/com/sopetit/softie/data/source/LocalDataSource.kt index ad5cf641..a6d3c216 100644 --- a/app/src/main/java/com/sopetit/softie/data/source/LocalDataSource.kt +++ b/app/src/main/java/com/sopetit/softie/data/source/LocalDataSource.kt @@ -27,11 +27,16 @@ class LocalDataSource @Inject constructor( set(value) = prefs.edit { putBoolean(IS_MEMBER, value) } get() = prefs.getBoolean(IS_MEMBER, false) + var isHomeTutorial: Boolean + set(value) = prefs.edit { putBoolean(IS_HOME_TUTORIAL, value) } + get() = prefs.getBoolean(IS_HOME_TUTORIAL, true) + companion object { private const val ACCESS_TOKEN = "access_token" private const val REFRESH_TOKEN = "refresh_token" private const val USER = "user" private const val BEAR_TYPE = "bear_type" private const val IS_MEMBER = "is_member" + private const val IS_HOME_TUTORIAL = "is_home_tutorial" } } diff --git a/app/src/main/java/com/sopetit/softie/domain/entity/Tutorial.kt b/app/src/main/java/com/sopetit/softie/domain/entity/Tutorial.kt new file mode 100644 index 00000000..e3a4c6f0 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/entity/Tutorial.kt @@ -0,0 +1,8 @@ +package com.sopetit.softie.domain.entity + +import androidx.annotation.DrawableRes + +data class Tutorial( + val tutorialId: Int, + @DrawableRes val content: Int +) diff --git a/app/src/main/java/com/sopetit/softie/domain/repository/AuthRepository.kt b/app/src/main/java/com/sopetit/softie/domain/repository/AuthRepository.kt index f033874f..7a085363 100644 --- a/app/src/main/java/com/sopetit/softie/domain/repository/AuthRepository.kt +++ b/app/src/main/java/com/sopetit/softie/domain/repository/AuthRepository.kt @@ -19,4 +19,6 @@ interface AuthRepository { suspend fun logOut(): Result fun getBearType(): String fun setBearType(bearType: String) + fun getTutorial(): Boolean + fun setTutorial(isTutorial: Boolean) } diff --git a/app/src/main/java/com/sopetit/softie/domain/usecase/local/GetIsTutorialUseCase.kt b/app/src/main/java/com/sopetit/softie/domain/usecase/local/GetIsTutorialUseCase.kt new file mode 100644 index 00000000..c1e3d930 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/usecase/local/GetIsTutorialUseCase.kt @@ -0,0 +1,11 @@ +package com.sopetit.softie.domain.usecase.local + +import com.sopetit.softie.domain.repository.AuthRepository +import javax.inject.Inject + +class GetIsTutorialUseCase @Inject constructor( + private val authRepository: AuthRepository +) { + operator fun invoke() = + authRepository.getTutorial() +} diff --git a/app/src/main/java/com/sopetit/softie/domain/usecase/local/InitSIgnUpStateUseCase.kt b/app/src/main/java/com/sopetit/softie/domain/usecase/local/InitIsSignUpStateUseCase.kt similarity index 84% rename from app/src/main/java/com/sopetit/softie/domain/usecase/local/InitSIgnUpStateUseCase.kt rename to app/src/main/java/com/sopetit/softie/domain/usecase/local/InitIsSignUpStateUseCase.kt index 92f9a204..e26cbfcc 100644 --- a/app/src/main/java/com/sopetit/softie/domain/usecase/local/InitSIgnUpStateUseCase.kt +++ b/app/src/main/java/com/sopetit/softie/domain/usecase/local/InitIsSignUpStateUseCase.kt @@ -3,7 +3,7 @@ package com.sopetit.softie.domain.usecase.local import com.sopetit.softie.domain.repository.AuthRepository import javax.inject.Inject -class InitSIgnUpStateUseCase @Inject constructor( +class InitIsSignUpStateUseCase @Inject constructor( private val authRepository: AuthRepository ) { operator fun invoke(isSignUpState: Boolean) = diff --git a/app/src/main/java/com/sopetit/softie/domain/usecase/local/SetIsTutorialUseCase.kt b/app/src/main/java/com/sopetit/softie/domain/usecase/local/SetIsTutorialUseCase.kt new file mode 100644 index 00000000..9a440dfc --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/domain/usecase/local/SetIsTutorialUseCase.kt @@ -0,0 +1,11 @@ +package com.sopetit.softie.domain.usecase.local + +import com.sopetit.softie.domain.repository.AuthRepository +import javax.inject.Inject + +class SetIsTutorialUseCase @Inject constructor( + private val authRepository: AuthRepository +) { + operator fun invoke(isTutorial: Boolean) = + authRepository.setTutorial(isTutorial) +} diff --git a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/DailyRoutineFragment.kt b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/DailyRoutineFragment.kt index 342f6171..05f93b9f 100644 --- a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/DailyRoutineFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/DailyRoutineFragment.kt @@ -135,10 +135,10 @@ class DailyRoutineFragment : title = getString(R.string.daily_routine_complete_question), content = getString(R.string.daily_routine_complete_notice), isContentVisible = true, - contentColor = R.color.gray400, + contentColor = R.color.gray500, backBtnContent = getString(R.string.daily_routine_complete_yet), doBtnContent = getString(R.string.daily_routine_complete_fix), - doBtnColor = R.drawable.shape_main1_fill_12_rect, + doBtnColor = R.drawable.shape_gray650_fill_12_rect, backBtnAction = {}, doBtnAction = { startDailyRoutineCompleteActivity() @@ -232,10 +232,10 @@ class DailyRoutineFragment : title = getString(R.string.daily_routine_edit_delete_question), content = getString(R.string.daily_routine_edit_delete_notice), isContentVisible = true, - contentColor = R.color.red, + contentColor = R.color.red200, backBtnContent = getString(R.string.daily_routine_edit_delete_cancel), doBtnContent = getString(R.string.daily_routine_edit_delete_fix), - doBtnColor = R.drawable.shape_red_fill_12_rect, + doBtnColor = R.drawable.shape_red200_fill_12_rect, backBtnAction = {}, doBtnAction = { val arraySize = viewModel.editRoutineIdArray.size diff --git a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/complete/DailyRoutineCompleteActivity.kt b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/complete/DailyRoutineCompleteActivity.kt index d7592759..1c8896bd 100644 --- a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/complete/DailyRoutineCompleteActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/complete/DailyRoutineCompleteActivity.kt @@ -17,7 +17,7 @@ class DailyRoutineCompleteActivity : RoutineCompleteActivity(Cotton.DAILY) { private val viewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setStatusBarColorFromResource(R.color.white) + setStatusBarColorFromResource(R.color.gray0) setDailyRoutineImage() } diff --git a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddActivity.kt b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddActivity.kt index 88092027..04f4dbb9 100644 --- a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddActivity.kt @@ -177,10 +177,10 @@ class DailyRoutineAddActivity : content = getCurrentSelectedRoutine()?.content ?: getString(R.string.daily_routine_basic_bottom_sheet_content), isContentVisible = true, - contentColor = R.color.gray400, + contentColor = R.color.gray500, backBtnContent = getString(R.string.daily_routine_add_no), doBtnContent = getString(R.string.daily_routine_add_yes), - doBtnColor = R.drawable.shape_main1_fill_12_rect, + doBtnColor = R.drawable.shape_gray650_fill_12_rect, backBtnAction = {}, doBtnAction = { tossMsg() diff --git a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddThemeAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddThemeAdapter.kt index a5b25ae9..15b00084 100644 --- a/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddThemeAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/dailyroutine/dailyroutineadd/DailyRoutineAddThemeAdapter.kt @@ -87,7 +87,7 @@ class DailyRoutineAddThemeAdapter : binding.tvDailyRoutineAddThemeName.setTextColor( ContextCompat.getColor( binding.root.context, - R.color.gray700 + R.color.gray800 ) ) } @@ -96,7 +96,7 @@ class DailyRoutineAddThemeAdapter : binding.tvDailyRoutineAddThemeName.setTextColor( ContextCompat.getColor( binding.root.context, - R.color.gray400 + R.color.gray500 ) ) } diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/HappyMyRoutineFragment.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/HappyMyRoutineFragment.kt index d8755304..2b7f7e64 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/HappyMyRoutineFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/HappyMyRoutineFragment.kt @@ -116,10 +116,10 @@ class HappyMyRoutineFragment : title = getString(R.string.happy_progress_bottom_sheet_title), content = getString(R.string.happy_progress_bottom_sheet_content), isContentVisible = true, - contentColor = R.color.gray400, + contentColor = R.color.gray500, backBtnContent = getString(R.string.happy_progress_sheet_back_btn), doBtnContent = getString(R.string.happy_progress_sheet_do_btn), - doBtnColor = R.drawable.shape_main1_fill_12_rect, + doBtnColor = R.drawable.shape_gray650_fill_12_rect, backBtnAction = {}, doBtnAction = { viewModel.happyProgressResponse.value?.let { viewModel.patchAchieveHappyRoutine(it.routineId) } diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/complete/HappyRoutineCompleteActivity.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/complete/HappyRoutineCompleteActivity.kt index 0ad8486c..b299fd02 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/complete/HappyRoutineCompleteActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/complete/HappyRoutineCompleteActivity.kt @@ -17,7 +17,7 @@ class HappyRoutineCompleteActivity : RoutineCompleteActivity(Cotton.HAPPINESS) { private val viewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setStatusBarColorFromResource(R.color.white) + setStatusBarColorFromResource(R.color.gray0) setHappyRoutineImage() } diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/delete/HappyDeleteFragment.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/delete/HappyDeleteFragment.kt index c781222b..cc59214f 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/delete/HappyDeleteFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/delete/HappyDeleteFragment.kt @@ -87,10 +87,10 @@ class HappyDeleteFragment : title = getString(R.string.happy_delete_bottom_sheet_title), content = "", isContentVisible = false, - contentColor = R.color.gray400, + contentColor = R.color.gray500, backBtnContent = getString(R.string.happy_delete_bottom_sheet_back_btn), doBtnContent = getString(R.string.happy_delete_bottom_sheet_do_btn), - doBtnColor = R.drawable.shape_red_fill_12_rect, + doBtnColor = R.drawable.shape_red200_fill_12_rect, backBtnAction = {}, doBtnAction = { viewModel.happyProgressResponse.observe(viewLifecycleOwner) { happyProgress -> diff --git a/app/src/main/java/com/sopetit/softie/ui/happyroutine/detail/HappyDetailActivity.kt b/app/src/main/java/com/sopetit/softie/ui/happyroutine/detail/HappyDetailActivity.kt index b486a945..2442bd29 100644 --- a/app/src/main/java/com/sopetit/softie/ui/happyroutine/detail/HappyDetailActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/happyroutine/detail/HappyDetailActivity.kt @@ -99,10 +99,10 @@ class HappyDetailActivity : title = getString(R.string.happy_add_bottom_sheet_title), content = "", isContentVisible = true, - contentColor = R.color.main1, + contentColor = R.color.gray650, backBtnContent = getString(R.string.happy_add_bottom_sheet_back_btn), doBtnContent = getString(R.string.happy_add_bottom_sheet_do_btn), - doBtnColor = R.drawable.shape_main1_fill_12_rect, + doBtnColor = R.drawable.shape_gray650_fill_12_rect, backBtnAction = {}, doBtnAction = { viewModel.postAddRoutine(subRoutineId) diff --git a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt index 33905e89..815e19a0 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/MainActivity.kt @@ -60,8 +60,8 @@ class MainActivity : BindingActivity(R.layout.activity_main private fun setBottomNavigationTint() { binding.bnvMain.itemIconTintList = null - val selectedTextColor = ContextCompat.getColor(this, R.color.main1) - val unselectedTextColor = ContextCompat.getColor(this, R.color.gray200) + val selectedTextColor = ContextCompat.getColor(this, R.color.gray650) + val unselectedTextColor = ContextCompat.getColor(this, R.color.gray300) binding.bnvMain.itemTextColor = ColorStateList( arrayOf( diff --git a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeFragment.kt b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeFragment.kt index 30032679..c8941890 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeFragment.kt @@ -5,6 +5,7 @@ import android.content.Intent import android.net.Uri import android.os.Bundle import android.view.View +import androidx.fragment.app.setFragmentResultListener import androidx.fragment.app.viewModels import com.airbnb.lottie.LottieAnimationView import com.sopetit.softie.R @@ -30,10 +31,19 @@ class HomeFragment : BindingFragment(R.layout.fragment_home companion object { const val RUN_OUT = 0 - val START = 0 - val HELLO = 0 - val DAILY = 1 - val HAPPINESS = 2 + const val REQUEST_KEY = "request_key" + const val RESULT_KEY = "result_key" + const val FINISH = "finish" + const val START = 0 + const val HELLO = 0 + const val DAILY = 1 + const val HAPPINESS = 2 + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setResultListener() } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -41,6 +51,7 @@ class HomeFragment : BindingFragment(R.layout.fragment_home binding.viewModel = viewModel setStatusBarColor(R.color.home_background) + checkHomeTutorial() setLottieVariable() viewModel.getHome() setUserLottieList() @@ -49,7 +60,25 @@ class HomeFragment : BindingFragment(R.layout.fragment_home moveToPaymentView() } - private fun setLottiesListener() { + private fun checkHomeTutorial() { + viewModel.isHomeTutorial.observe(viewLifecycleOwner) { isTutorial -> + if (isTutorial) { + val bottomSheet = HomeTutorialFragment() + bottomSheet.show(requireActivity().supportFragmentManager, this.tag) + } + } + } + + private fun setResultListener() { + setFragmentResultListener(REQUEST_KEY) { _, bundle -> + val result = bundle.getString(RESULT_KEY) + if (result == FINISH) { + viewModel.updateHomeTutorial() + } + } + } + + private fun setLottieListener() { setLottieListener(helloLottie) setLottieListener(dailyLottie) setLottieListener(happinessLottie) @@ -82,7 +111,7 @@ class HomeFragment : BindingFragment(R.layout.fragment_home } private fun setClickListener() { - setLottiesListener() + setLottieListener() setClickSetting() setClickBear() setClickDaily() diff --git a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialAdapter.kt new file mode 100644 index 00000000..a8d74b95 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialAdapter.kt @@ -0,0 +1,38 @@ +package com.sopetit.softie.ui.main.home + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import com.sopetit.softie.databinding.ItemHomeTutorialBinding +import com.sopetit.softie.domain.entity.Tutorial +import com.sopetit.softie.util.ItemDiffCallback + +class HomeTutorialAdapter : + ListAdapter( + ItemDiffCallback( + onItemsTheSame = { oldItem, newItem -> oldItem.tutorialId == newItem.tutorialId }, + onContentsTheSame = { oldItem, newItem -> oldItem == newItem } + ) + ) { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeTutorialViewHolder { + val binding = ItemHomeTutorialBinding.inflate( + LayoutInflater.from(parent.context), + parent, + false + ) + return HomeTutorialViewHolder(binding) + } + + override fun onBindViewHolder(holder: HomeTutorialViewHolder, position: Int) { + holder.onBind(getItem(position)) + } +} + +class HomeTutorialViewHolder( + private val binding: ItemHomeTutorialBinding +) : RecyclerView.ViewHolder(binding.root) { + fun onBind(data: Tutorial) { + binding.ivTutorialItem.setImageResource(data.content) + } +} diff --git a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialFragment.kt b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialFragment.kt new file mode 100644 index 00000000..e71b2f75 --- /dev/null +++ b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeTutorialFragment.kt @@ -0,0 +1,190 @@ +package com.sopetit.softie.ui.main.home + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import androidx.core.content.ContextCompat +import androidx.core.os.bundleOf +import androidx.fragment.app.setFragmentResult +import androidx.viewpager2.widget.ViewPager2 +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import com.sopetit.softie.R +import com.sopetit.softie.databinding.FragmentHomeTutorialBottomsheetBinding +import com.sopetit.softie.domain.entity.Tutorial +import com.sopetit.softie.ui.main.home.HomeFragment.Companion.FINISH +import com.sopetit.softie.ui.main.home.HomeFragment.Companion.REQUEST_KEY +import com.sopetit.softie.ui.main.home.HomeFragment.Companion.RESULT_KEY +import java.lang.reflect.Field + +class HomeTutorialFragment : BottomSheetDialogFragment() { + + private var _binding: FragmentHomeTutorialBottomsheetBinding? = null + private val binding get() = requireNotNull(_binding) + private lateinit var viewPager: ViewPager2 + private var currentIndex = 0 + private val pageCallback by lazy { + object : ViewPager2.OnPageChangeCallback() { + override fun onPageSelected(position: Int) { + super.onPageSelected(position) + currentIndex = position + updateTitle() + updateIndicators() + } + } + } + private lateinit var homeTutorialAdapter: HomeTutorialAdapter + + override fun onStart() { + super.onStart() + preventVerticalSliding() + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + _binding = FragmentHomeTutorialBottomsheetBinding.inflate(inflater, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + setBtnAction() + setupAdapter() + setupIndicators() + updateIndicators() + setBottomSheetCallback() + } + + private fun setBtnAction() { + binding.btnNext.setOnClickListener { + if (currentIndex == TUTORIAL_COTTON) { + setFragmentResult(REQUEST_KEY, bundleOf(RESULT_KEY to FINISH)) + dismiss() + } else { + viewPager.currentItem = currentIndex + 1 + } + } + } + + private fun preventVerticalSliding() { + if (dialog != null) { + val touchSideView = + dialog!!.window?.decorView?.findViewById(com.google.android.material.R.id.touch_outside) + touchSideView?.setOnClickListener { null } + } + } + + private fun setupAdapter() { + homeTutorialAdapter = HomeTutorialAdapter() + viewPager = binding.vpTutorial + with(binding.vpTutorial) { + adapter = homeTutorialAdapter + registerOnPageChangeCallback(pageCallback) + } + homeTutorialAdapter.submitList( + listOf( + Tutorial(TUTORIAL_DAILY, R.drawable.tutorial_daily), + Tutorial(TUTORIAL_CHALLENGE, R.drawable.tutorial_challenge), + Tutorial(TUTORIAL_COTTON, R.drawable.tutorial_cotton) + ) + ) + } + + private fun setupIndicators() { + val indicators = Array(homeTutorialAdapter.itemCount) { + ImageView(requireContext()).apply { + setImageDrawable( + ContextCompat.getDrawable( + requireContext(), + R.drawable.ic_indicator_seleted + ) + ) + layoutParams = ViewGroup.MarginLayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT + ).apply { + setMargins( + INDICATOR_HORIZONTAL_MARGIN, + INDICATOR_VERTICAL_MARGIN, + INDICATOR_HORIZONTAL_MARGIN, + INDICATOR_VERTICAL_MARGIN + ) + } + } + } + indicators.forEach { indicator -> + binding.llTutorialIndicator.addView(indicator) + } + } + + private fun updateTitle() { + binding.tvTutorialTitle.text = when (currentIndex) { + TUTORIAL_COTTON -> getString(R.string.home_tutorial_title_cotton) + else -> getString(R.string.home_tutorial_title_routine) + } + + binding.btnNext.text = when (currentIndex) { + TUTORIAL_COTTON -> getString(R.string.home_tutorial_btn_start) + else -> getString(R.string.home_tutorial_btn_next) + } + } + + private fun updateIndicators() { + for (i in 0 until binding.llTutorialIndicator.childCount) { + val imageView = binding.llTutorialIndicator.getChildAt(i) as ImageView + if (i == currentIndex) { + imageView.setImageDrawable( + ContextCompat.getDrawable(requireContext(), R.drawable.ic_indicator_seleted) + ) + } else { + imageView.setImageDrawable( + ContextCompat.getDrawable(requireContext(), R.drawable.ic_indicator_unselected) + ) + } + } + } + + private fun setBottomSheetCallback() { + dialog?.let { dialog -> + try { + val behaviorField: Field = dialog.javaClass.getDeclaredField("behavior") + behaviorField.isAccessible = true + val behavior = behaviorField.get(dialog) as BottomSheetBehavior<*> + behavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() { + + override fun onStateChanged(bottomSheet: View, newState: Int) { + if (newState == BottomSheetBehavior.STATE_DRAGGING) { + behavior.state = BottomSheetBehavior.STATE_EXPANDED + } + } + + override fun onSlide(bottomSheet: View, slideOffset: Float) { + // Do nothing + } + }) + } catch (e: Exception) { + e.printStackTrace() + } + } + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + viewPager.unregisterOnPageChangeCallback(pageCallback) + } + + companion object { + const val INDICATOR_VERTICAL_MARGIN = 0 + const val INDICATOR_HORIZONTAL_MARGIN = 8 + const val TUTORIAL_DAILY = 0 + const val TUTORIAL_CHALLENGE = 1 + const val TUTORIAL_COTTON = 2 + } +} diff --git a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeViewModel.kt index 4576de19..b0dcfde8 100644 --- a/app/src/main/java/com/sopetit/softie/ui/main/home/HomeViewModel.kt +++ b/app/src/main/java/com/sopetit/softie/ui/main/home/HomeViewModel.kt @@ -7,7 +7,9 @@ import androidx.lifecycle.viewModelScope import com.sopetit.softie.domain.entity.Cotton import com.sopetit.softie.domain.entity.Home import com.sopetit.softie.domain.usecase.local.GetBearTypeUseCase +import com.sopetit.softie.domain.usecase.local.GetIsTutorialUseCase import com.sopetit.softie.domain.usecase.local.SetBearTypeUseCase +import com.sopetit.softie.domain.usecase.local.SetIsTutorialUseCase import com.sopetit.softie.domain.usecase.member.GetHomeUseCase import com.sopetit.softie.domain.usecase.member.PatchCottonUseCase import com.sopetit.softie.ui.main.home.HomeFragment.Companion.RUN_OUT @@ -21,7 +23,9 @@ class HomeViewModel @Inject constructor( private val getBearTypeUseCase: GetBearTypeUseCase, private val getHomeUseCase: GetHomeUseCase, private val patchCottonUseCase: PatchCottonUseCase, - private val setBearTypeUseCase: SetBearTypeUseCase + private val setBearTypeUseCase: SetBearTypeUseCase, + private val getIsTutorialUseCase: GetIsTutorialUseCase, + private val setIsTutorialUseCase: SetIsTutorialUseCase ) : ViewModel() { private val _homeResponse = MutableLiveData() val homeResponse: LiveData get() = _homeResponse @@ -30,11 +34,17 @@ class HomeViewModel @Inject constructor( private val _helloLottieVisible: MutableLiveData = MutableLiveData(false) val helloLottieVisible: LiveData get() = _helloLottieVisible + private val _isHomeTutorial: MutableLiveData = MutableLiveData(false) + val isHomeTutorial: LiveData get() = _isHomeTutorial private val _dailyLottieVisible: MutableLiveData = MutableLiveData(true) val dailyLottieVisible: LiveData get() = _dailyLottieVisible private val _happinessLottieVisible: MutableLiveData = MutableLiveData(false) val happinessLottieVisible: LiveData get() = _happinessLottieVisible + init { + checkHomeTutorial() + } + fun getBearType(): String { return getBearTypeUseCase() } @@ -102,4 +112,13 @@ class HomeViewModel @Inject constructor( } _homeResponse.value = changeData ?: homeResponse.value } + + private fun checkHomeTutorial() { + _isHomeTutorial.value = getIsTutorialUseCase() + } + + fun updateHomeTutorial() { + _isHomeTutorial.value = false + setIsTutorialUseCase(isHomeTutorial.value ?: false) + } } diff --git a/app/src/main/java/com/sopetit/softie/ui/onboarding/routinechoice/RoutineChoiceViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/onboarding/routinechoice/RoutineChoiceViewModel.kt index 2e8ed18a..dda512df 100644 --- a/app/src/main/java/com/sopetit/softie/ui/onboarding/routinechoice/RoutineChoiceViewModel.kt +++ b/app/src/main/java/com/sopetit/softie/ui/onboarding/routinechoice/RoutineChoiceViewModel.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.viewModelScope import com.sopetit.softie.data.entity.request.PostMemberRequest import com.sopetit.softie.domain.entity.Routine import com.sopetit.softie.domain.usecase.dailyroutine.GetRoutineListUseCase -import com.sopetit.softie.domain.usecase.local.InitSIgnUpStateUseCase +import com.sopetit.softie.domain.usecase.local.InitIsSignUpStateUseCase import com.sopetit.softie.domain.usecase.member.PostMemberUseCase import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch @@ -18,7 +18,7 @@ import javax.inject.Inject class RoutineChoiceViewModel @Inject constructor( private val getRoutineListUseCase: GetRoutineListUseCase, private val postMemberUseCase: PostMemberUseCase, - private val initSIgnUpStateUseCase: InitSIgnUpStateUseCase + private val initIsSignUpStateUseCase: InitIsSignUpStateUseCase ) : ViewModel() { private val _routineList = MutableLiveData>() @@ -67,10 +67,10 @@ class RoutineChoiceViewModel @Inject constructor( ) ).onSuccess { _isPostNewMember.value = true - initSIgnUpStateUseCase(true) + initIsSignUpStateUseCase(true) }.onFailure { throwable -> _isPostNewMember.value = false - initSIgnUpStateUseCase(false) + initIsSignUpStateUseCase(false) Timber.e("서버 통신 실패 ${throwable.message}") } } diff --git a/app/src/main/java/com/sopetit/softie/ui/onboarding/splash/SplashActivity.kt b/app/src/main/java/com/sopetit/softie/ui/onboarding/splash/SplashActivity.kt index 604d7de9..d6d1a4cc 100644 --- a/app/src/main/java/com/sopetit/softie/ui/onboarding/splash/SplashActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/onboarding/splash/SplashActivity.kt @@ -35,8 +35,8 @@ class SplashActivity : when (Random.nextInt(1, 5)) { 1 -> initSplash(R.drawable.ic_splash1, R.color.main2, binding.ivSplash1Bear) 2 -> initSplash(R.drawable.ic_splash2, R.color.main2, binding.ivSplash23Bear) - 3 -> initSplash(R.drawable.ic_splash3, R.color.main1, binding.ivSplash23Bear) - 4 -> initSplash(R.drawable.ic_splash4, R.color.main1, binding.ivSplash4Bear) + 3 -> initSplash(R.drawable.ic_splash3, R.color.gray650, binding.ivSplash23Bear) + 4 -> initSplash(R.drawable.ic_splash4, R.color.gray650, binding.ivSplash4Bear) } } @@ -53,15 +53,15 @@ class SplashActivity : } private fun setLogoImg(color: Int) { - if (color == R.color.main1) binding.ivSplashLogo.setImageResource(R.drawable.ic_logo_main2) + if (color == R.color.gray650) binding.ivSplashLogo.setImageResource(R.drawable.ic_logo_main2) else binding.ivSplashLogo.setImageResource(R.drawable.ic_logo_main1) } private fun setServiceIntroduceImg(color: Int) { - if (color == R.color.main1) binding.tvSplashSubtitle.setTextColor( + if (color == R.color.gray650) binding.tvSplashSubtitle.setTextColor( ContextCompat.getColor(this, R.color.main2) ) - else binding.tvSplashSubtitle.setTextColor(ContextCompat.getColor(this, R.color.main1)) + else binding.tvSplashSubtitle.setTextColor(ContextCompat.getColor(this, R.color.gray650)) } private fun makeSplashImg(image: Int) { diff --git a/app/src/main/java/com/sopetit/softie/ui/onboarding/themechoice/ChoiceThemeAdapter.kt b/app/src/main/java/com/sopetit/softie/ui/onboarding/themechoice/ChoiceThemeAdapter.kt index 80a89995..6711e492 100644 --- a/app/src/main/java/com/sopetit/softie/ui/onboarding/themechoice/ChoiceThemeAdapter.kt +++ b/app/src/main/java/com/sopetit/softie/ui/onboarding/themechoice/ChoiceThemeAdapter.kt @@ -81,11 +81,11 @@ class ChoiceThemeAdapter : ) { when (selected) { true -> { - binding.ivThemeBackground.setBackgroundResource(R.drawable.shape_gray100_fill_gray400_stroke_100_circle) + binding.ivThemeBackground.setBackgroundResource(R.drawable.shape_gray200_fill_gray500_stroke_100_circle) } false -> { - binding.ivThemeBackground.setBackgroundResource(R.drawable.shape_white_fill_gray100_stroke_100_circle) + binding.ivThemeBackground.setBackgroundResource(R.drawable.shape_gray0_fill_gray200_stroke_100_circle) } } } diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt index 68a4b98d..b3fb473c 100644 --- a/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt +++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt @@ -18,7 +18,7 @@ class SettingActivity : BindingActivity(R.layout.activit override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding.viewModel = viewModel - setStatusBarColorFromResource(R.color.white) + setStatusBarColorFromResource(R.color.gray0) initMakeInitFragment() initChangeFragment() diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt index df1629c1..7c1d6914 100644 --- a/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt @@ -80,10 +80,10 @@ class SettingInitFragment : title = getString(R.string.user_logout_title), content = getString(R.string.user_logout_content), isContentVisible = true, - contentColor = R.color.gray300, + contentColor = R.color.gray400, backBtnContent = getString(R.string.user_logout_back), doBtnContent = getString(R.string.user_logout_exit), - doBtnColor = R.drawable.shape_red_fill_12_rect, + doBtnColor = R.drawable.shape_red200_fill_12_rect, backBtnAction = {}, doBtnAction = { viewModel.setLogOut() diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt index bf69b96c..bb5f9294 100644 --- a/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt +++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt @@ -45,7 +45,7 @@ class SettingUserExitFragment : ForegroundColorSpan( ContextCompat.getColor( requireActivity(), - R.color.red + R.color.red200 ) ), SETTING_SPAN_START, diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt index 20204a63..a34a601e 100644 --- a/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt +++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.viewModelScope import com.sopetit.softie.domain.usecase.auth.DeleteAuthUseCase import com.sopetit.softie.domain.usecase.auth.LogOutUseCase import com.sopetit.softie.domain.usecase.local.GetBearTypeUseCase -import com.sopetit.softie.domain.usecase.local.InitSIgnUpStateUseCase +import com.sopetit.softie.domain.usecase.local.InitIsSignUpStateUseCase import com.sopetit.softie.domain.usecase.local.InitTokenUseCase import com.sopetit.softie.ui.onboarding.OnboardingViewModel.Companion.BROWN import com.sopetit.softie.ui.onboarding.OnboardingViewModel.Companion.GRAY @@ -23,7 +23,7 @@ import javax.inject.Inject class SettingViewModel @Inject constructor( private val deleteAuthUseCase: DeleteAuthUseCase, private val logOutUseCase: LogOutUseCase, - private val initSIgnUpStateUseCase: InitSIgnUpStateUseCase, + private val initIsSignUpStateUseCase: InitIsSignUpStateUseCase, private val initTokenUseCase: InitTokenUseCase, private val getBearTypeUseCase: GetBearTypeUseCase ) : ViewModel() { @@ -63,7 +63,7 @@ class SettingViewModel @Inject constructor( deleteAuthUseCase() .onSuccess { _isDeleteAuthResponse.value = true - initSIgnUpStateUseCase(false) + initIsSignUpStateUseCase(false) initTokenUseCase("", "", isMemberDollExist = false, isSignedUp = false) Timber.d("회원 탈퇴 성공") }.onFailure { throwable -> @@ -78,7 +78,7 @@ class SettingViewModel @Inject constructor( logOutUseCase() .onSuccess { _isLogOutResponse.value = true - initSIgnUpStateUseCase(false) + initIsSignUpStateUseCase(false) initTokenUseCase("", "", isMemberDollExist = true, isSignedUp = false) Timber.d("로그 아웃 성공") }.onFailure { throwable -> diff --git a/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt b/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt index d8c2a048..9af7bcbc 100644 --- a/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt +++ b/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt @@ -50,7 +50,7 @@ class OriginalBottomSheet : BindingBottomSheet() { override fun setContentColor() { binding.tvBottomSheetContent.setTextColor( - ContextCompat.getColor(requireContext(), contentColor ?: R.color.gray400) + ContextCompat.getColor(requireContext(), contentColor ?: R.color.gray500) ) } diff --git a/app/src/main/res/color/selector_happy_type_filter_background.xml b/app/src/main/res/color/selector_happy_type_filter_background.xml index 1dcdc23c..61530a69 100644 --- a/app/src/main/res/color/selector_happy_type_filter_background.xml +++ b/app/src/main/res/color/selector_happy_type_filter_background.xml @@ -1,5 +1,5 @@ - - + + diff --git a/app/src/main/res/color/selector_happy_type_text_color.xml b/app/src/main/res/color/selector_happy_type_text_color.xml index 41e7d99b..b8a703b4 100644 --- a/app/src/main/res/color/selector_happy_type_text_color.xml +++ b/app/src/main/res/color/selector_happy_type_text_color.xml @@ -1,5 +1,5 @@ - - + + diff --git a/app/src/main/res/color/selector_onboarding_routine_text.xml b/app/src/main/res/color/selector_onboarding_routine_text.xml index 249991d7..2e29c050 100644 --- a/app/src/main/res/color/selector_onboarding_routine_text.xml +++ b/app/src/main/res/color/selector_onboarding_routine_text.xml @@ -1,6 +1,6 @@ - - + + diff --git a/app/src/main/res/drawable/ic_indicator_seleted.png b/app/src/main/res/drawable/ic_indicator_seleted.png new file mode 100644 index 00000000..ab8eb103 Binary files /dev/null and b/app/src/main/res/drawable/ic_indicator_seleted.png differ diff --git a/app/src/main/res/drawable/ic_indicator_unselected.png b/app/src/main/res/drawable/ic_indicator_unselected.png new file mode 100644 index 00000000..398845e9 Binary files /dev/null and b/app/src/main/res/drawable/ic_indicator_unselected.png differ diff --git a/app/src/main/res/drawable/selector_onboarding_routine_background.xml b/app/src/main/res/drawable/selector_onboarding_routine_background.xml index 014962fe..8804af1d 100644 --- a/app/src/main/res/drawable/selector_onboarding_routine_background.xml +++ b/app/src/main/res/drawable/selector_onboarding_routine_background.xml @@ -1,10 +1,10 @@ diff --git a/app/src/main/res/drawable/shape_black_fill_12_rect.xml b/app/src/main/res/drawable/shape_black_fill_12_rect.xml index 4ef3683d..9149d92b 100644 --- a/app/src/main/res/drawable/shape_black_fill_12_rect.xml +++ b/app/src/main/res/drawable/shape_black_fill_12_rect.xml @@ -5,6 +5,6 @@ - + diff --git a/app/src/main/res/drawable/shape_namefill_fill_namestroke_stroke_99_rect.xml b/app/src/main/res/drawable/shape_brown100_fill_brown200_stroke_99_rect.xml similarity index 70% rename from app/src/main/res/drawable/shape_namefill_fill_namestroke_stroke_99_rect.xml rename to app/src/main/res/drawable/shape_brown100_fill_brown200_stroke_99_rect.xml index 06ba3f70..cc84f14d 100644 --- a/app/src/main/res/drawable/shape_namefill_fill_namestroke_stroke_99_rect.xml +++ b/app/src/main/res/drawable/shape_brown100_fill_brown200_stroke_99_rect.xml @@ -1,10 +1,10 @@ - + + android:color="@color/brown200" /> diff --git a/app/src/main/res/drawable/shape_white_fill_12_rect.xml b/app/src/main/res/drawable/shape_gray0_fill_12_rect.xml similarity index 81% rename from app/src/main/res/drawable/shape_white_fill_12_rect.xml rename to app/src/main/res/drawable/shape_gray0_fill_12_rect.xml index 5fe253c4..df446a41 100644 --- a/app/src/main/res/drawable/shape_white_fill_12_rect.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_12_rect.xml @@ -2,6 +2,6 @@ - + diff --git a/app/src/main/res/drawable/shape_gray000_fill_16_rect.xml b/app/src/main/res/drawable/shape_gray0_fill_20_rect.xml similarity index 52% rename from app/src/main/res/drawable/shape_gray000_fill_16_rect.xml rename to app/src/main/res/drawable/shape_gray0_fill_20_rect.xml index 8bf9cc5e..7db1a6a0 100644 --- a/app/src/main/res/drawable/shape_gray000_fill_16_rect.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_20_rect.xml @@ -1,7 +1,9 @@ - - + + diff --git a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml b/app/src/main/res/drawable/shape_gray0_fill_gray100_stroke_radius_20.xml similarity index 85% rename from app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml rename to app/src/main/res/drawable/shape_gray0_fill_gray100_stroke_radius_20.xml index 16ff59e9..5fe4054a 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_20_rect.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_gray100_stroke_radius_20.xml @@ -1,11 +1,9 @@ - - - - + + diff --git a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_100_circle.xml b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_100_circle.xml similarity index 57% rename from app/src/main/res/drawable/shape_white_fill_gray100_stroke_100_circle.xml rename to app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_100_circle.xml index 47171392..42c8457c 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray100_stroke_100_circle.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_100_circle.xml @@ -1,7 +1,7 @@ - - + + diff --git a/app/src/main/res/drawable/shape_white_fill_gray200_stroke_radius_99_rect.xml b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_20_rect.xml similarity index 73% rename from app/src/main/res/drawable/shape_white_fill_gray200_stroke_radius_99_rect.xml rename to app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_20_rect.xml index 50899114..fd309d15 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray200_stroke_radius_99_rect.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_20_rect.xml @@ -1,10 +1,11 @@ + + + - - diff --git a/app/src/main/res/drawable/shape_white_fill_gray000_stroke_99_rect.xml b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_99_rect.xml similarity index 63% rename from app/src/main/res/drawable/shape_white_fill_gray000_stroke_99_rect.xml rename to app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_99_rect.xml index 52382d03..b95bb7b8 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray000_stroke_99_rect.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_gray200_stroke_99_rect.xml @@ -1,8 +1,8 @@ - - + + diff --git a/app/src/main/res/drawable/shape_white_fill_gray000_stroke_radius_20.xml b/app/src/main/res/drawable/shape_gray0_fill_gray300_stroke_radius_99_rect.xml similarity index 59% rename from app/src/main/res/drawable/shape_white_fill_gray000_stroke_radius_20.xml rename to app/src/main/res/drawable/shape_gray0_fill_gray300_stroke_radius_99_rect.xml index 7c7d5d97..632f0862 100644 --- a/app/src/main/res/drawable/shape_white_fill_gray000_stroke_radius_20.xml +++ b/app/src/main/res/drawable/shape_gray0_fill_gray300_stroke_radius_99_rect.xml @@ -3,7 +3,8 @@ android:shape="rectangle"> - - + android:color="@color/gray300" /> + + + diff --git a/app/src/main/res/drawable/shape_gray100_fill_8_rect.xml b/app/src/main/res/drawable/shape_gray100_fill_16_rect.xml similarity index 83% rename from app/src/main/res/drawable/shape_gray100_fill_8_rect.xml rename to app/src/main/res/drawable/shape_gray100_fill_16_rect.xml index 88e7cc94..db493007 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_8_rect.xml +++ b/app/src/main/res/drawable/shape_gray100_fill_16_rect.xml @@ -1,8 +1,7 @@ - - + diff --git a/app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml b/app/src/main/res/drawable/shape_gray100_fill_top20_rect.xml similarity index 83% rename from app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml rename to app/src/main/res/drawable/shape_gray100_fill_top20_rect.xml index 1ce37f2f..84dbf26a 100644 --- a/app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml +++ b/app/src/main/res/drawable/shape_gray100_fill_top20_rect.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/shape_main1_fill_10_rect.xml b/app/src/main/res/drawable/shape_gray200_fill_10_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_main1_fill_10_rect.xml rename to app/src/main/res/drawable/shape_gray200_fill_10_rect.xml index 89b48bd7..7051bff3 100644 --- a/app/src/main/res/drawable/shape_main1_fill_10_rect.xml +++ b/app/src/main/res/drawable/shape_gray200_fill_10_rect.xml @@ -3,6 +3,6 @@ android:shape="rectangle"> - + diff --git a/app/src/main/res/drawable/shape_gray200_fill_8_rect.xml b/app/src/main/res/drawable/shape_gray200_fill_8_rect.xml new file mode 100644 index 00000000..f4c9781d --- /dev/null +++ b/app/src/main/res/drawable/shape_gray200_fill_8_rect.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/app/src/main/res/drawable/shape_main1_fill_99_rect.xml b/app/src/main/res/drawable/shape_gray200_fill_99_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_main1_fill_99_rect.xml rename to app/src/main/res/drawable/shape_gray200_fill_99_rect.xml index 41935d53..6c7ccf91 100644 --- a/app/src/main/res/drawable/shape_main1_fill_99_rect.xml +++ b/app/src/main/res/drawable/shape_gray200_fill_99_rect.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_100_circle.xml b/app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_100_circle.xml similarity index 56% rename from app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_100_circle.xml rename to app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_100_circle.xml index f2fb1512..67e45545 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_100_circle.xml +++ b/app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_100_circle.xml @@ -1,7 +1,7 @@ - - + + diff --git a/app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_99_rect.xml b/app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_99_rect.xml similarity index 63% rename from app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_99_rect.xml rename to app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_99_rect.xml index e2eccde7..3c24d56f 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_gray400_stroke_99_rect.xml +++ b/app/src/main/res/drawable/shape_gray200_fill_gray500_stroke_99_rect.xml @@ -1,8 +1,8 @@ - - + + diff --git a/app/src/main/res/drawable/shape_gray100_fill_12_rect.xml b/app/src/main/res/drawable/shape_gray300_fill_12_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_gray100_fill_12_rect.xml rename to app/src/main/res/drawable/shape_gray300_fill_12_rect.xml index 141a8ee6..c62855cb 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_12_rect.xml +++ b/app/src/main/res/drawable/shape_gray300_fill_12_rect.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/shape_gray200_line_20_rect.xml b/app/src/main/res/drawable/shape_gray300_line_20_rect.xml similarity index 89% rename from app/src/main/res/drawable/shape_gray200_line_20_rect.xml rename to app/src/main/res/drawable/shape_gray300_line_20_rect.xml index ef57e5ff..6db00acf 100644 --- a/app/src/main/res/drawable/shape_gray200_line_20_rect.xml +++ b/app/src/main/res/drawable/shape_gray300_line_20_rect.xml @@ -5,7 +5,7 @@ diff --git a/app/src/main/res/drawable/shape_gray300_fill_8_rect.xml b/app/src/main/res/drawable/shape_gray400_fill_8_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_gray300_fill_8_rect.xml rename to app/src/main/res/drawable/shape_gray400_fill_8_rect.xml index da7d6c3e..b771e8f8 100644 --- a/app/src/main/res/drawable/shape_gray300_fill_8_rect.xml +++ b/app/src/main/res/drawable/shape_gray400_fill_8_rect.xml @@ -2,6 +2,6 @@ - + diff --git a/app/src/main/res/drawable/shape_gray100_fill_10_rect.xml b/app/src/main/res/drawable/shape_gray650_fill_10_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_gray100_fill_10_rect.xml rename to app/src/main/res/drawable/shape_gray650_fill_10_rect.xml index 5a20fa5d..69f5b063 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_10_rect.xml +++ b/app/src/main/res/drawable/shape_gray650_fill_10_rect.xml @@ -3,6 +3,6 @@ android:shape="rectangle"> - + diff --git a/app/src/main/res/drawable/shape_main1_fill_12_rect.xml b/app/src/main/res/drawable/shape_gray650_fill_12_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_main1_fill_12_rect.xml rename to app/src/main/res/drawable/shape_gray650_fill_12_rect.xml index 66add345..67bdcb77 100644 --- a/app/src/main/res/drawable/shape_main1_fill_12_rect.xml +++ b/app/src/main/res/drawable/shape_gray650_fill_12_rect.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/shape_gray100_fill_99_rect.xml b/app/src/main/res/drawable/shape_gray650_fill_99_rect.xml similarity index 80% rename from app/src/main/res/drawable/shape_gray100_fill_99_rect.xml rename to app/src/main/res/drawable/shape_gray650_fill_99_rect.xml index 2e30d288..509f8abc 100644 --- a/app/src/main/res/drawable/shape_gray100_fill_99_rect.xml +++ b/app/src/main/res/drawable/shape_gray650_fill_99_rect.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/drawable/shape_red_fill_12_rect.xml b/app/src/main/res/drawable/shape_red200_fill_12_rect.xml similarity index 84% rename from app/src/main/res/drawable/shape_red_fill_12_rect.xml rename to app/src/main/res/drawable/shape_red200_fill_12_rect.xml index 361e21e3..248ca9c2 100644 --- a/app/src/main/res/drawable/shape_red_fill_12_rect.xml +++ b/app/src/main/res/drawable/shape_red200_fill_12_rect.xml @@ -5,6 +5,6 @@ - + diff --git a/app/src/main/res/drawable/tutorial_challenge.png b/app/src/main/res/drawable/tutorial_challenge.png new file mode 100644 index 00000000..b0c8b3d8 Binary files /dev/null and b/app/src/main/res/drawable/tutorial_challenge.png differ diff --git a/app/src/main/res/drawable/tutorial_cotton.png b/app/src/main/res/drawable/tutorial_cotton.png new file mode 100644 index 00000000..6cf80418 Binary files /dev/null and b/app/src/main/res/drawable/tutorial_cotton.png differ diff --git a/app/src/main/res/drawable/tutorial_daily.png b/app/src/main/res/drawable/tutorial_daily.png new file mode 100644 index 00000000..c209a987 Binary files /dev/null and b/app/src/main/res/drawable/tutorial_daily.png differ diff --git a/app/src/main/res/layout/activity_daily_routine_add.xml b/app/src/main/res/layout/activity_daily_routine_add.xml index 1969874f..5db63d3a 100644 --- a/app/src/main/res/layout/activity_daily_routine_add.xml +++ b/app/src/main/res/layout/activity_daily_routine_add.xml @@ -58,7 +58,7 @@ android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="15dp" - android:background="@color/gray100" + android:background="@color/gray200" app:layout_constraintTop_toBottomOf="@id/rv_daily_routine_add_theme" /> + app:selectedDotColor="@color/gray650" /> diff --git a/app/src/main/res/layout/activity_happy_add_detail.xml b/app/src/main/res/layout/activity_happy_add_detail.xml index 21544950..74630d86 100644 --- a/app/src/main/res/layout/activity_happy_add_detail.xml +++ b/app/src/main/res/layout/activity_happy_add_detail.xml @@ -80,14 +80,14 @@ android:layout_marginTop="30dp" android:clickable="false" android:foregroundGravity="center" - app:dotsColor="@color/gray200" + app:dotsColor="@color/gray300" app:dotsSize="6dp" app:dotsSpacing="6dp" app:dotsWidthFactor="1" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/vp_happy_add_detail_card" - app:selectedDotColor="@color/main1" /> + app:selectedDotColor="@color/gray650" /> diff --git a/app/src/main/res/layout/activity_happy_add_list.xml b/app/src/main/res/layout/activity_happy_add_list.xml index a751f467..cd1195f7 100644 --- a/app/src/main/res/layout/activity_happy_add_list.xml +++ b/app/src/main/res/layout/activity_happy_add_list.xml @@ -53,7 +53,7 @@ android:layout_width="wrap_content" android:layout_height="1dp" android:layout_marginTop="12dp" - app:dividerColor="@color/gray100" + app:dividerColor="@color/gray200" app:layout_constraintBottom_toTopOf="@id/rv_happy_add_list" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 925c9c36..4fe43fb3 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -32,7 +32,7 @@ android:paddingBottom="19dp" android:text="@string/login_content" android:textAppearance="@style/caption1" - android:textColor="@color/gray100" + android:textColor="@color/gray200" app:layout_constraintBottom_toTopOf="@id/iv_login_bear" app:layout_constraintEnd_toEndOf="@id/iv_login_bear" app:layout_constraintStart_toStartOf="@id/iv_login_bear" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 061bf487..1edfd5ee 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -26,7 +26,7 @@ style="@style/BottomNavigationViewNoRipple" android:layout_width="match_parent" android:layout_height="wrap_content" - app:itemBackground="@color/white" + app:itemBackground="@color/gray0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/activity_onboarding.xml b/app/src/main/res/layout/activity_onboarding.xml index 7fc79888..4dc8d5a4 100644 --- a/app/src/main/res/layout/activity_onboarding.xml +++ b/app/src/main/res/layout/activity_onboarding.xml @@ -33,7 +33,7 @@ android:layout_height="6dp" android:layout_marginTop="28dp" android:layout_marginEnd="5dp" - android:src="@{viewModel.bearChoiceView ? @drawable/shape_main1_fill_99_rect : @drawable/shape_gray100_fill_99_rect}" + android:src="@{viewModel.bearChoiceView ? @drawable/shape_gray650_fill_99_rect : @drawable/shape_gray200_fill_99_rect}" app:layout_constraintEnd_toStartOf="@id/iv_onboarding_top_bar_second" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toStartOf="parent" @@ -44,7 +44,7 @@ android:layout_width="0dp" android:layout_height="6dp" android:layout_marginEnd="5dp" - android:src="@{viewModel.bearNameChoiceView ? @drawable/shape_main1_fill_99_rect : @drawable/shape_gray100_fill_99_rect}" + android:src="@{viewModel.bearNameChoiceView ? @drawable/shape_gray650_fill_99_rect : @drawable/shape_gray200_fill_99_rect}" app:layout_constraintEnd_toStartOf="@id/iv_onboarding_top_bar_third" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toEndOf="@id/iv_onboarding_top_bar_first" @@ -55,7 +55,7 @@ android:layout_width="0dp" android:layout_height="6dp" android:layout_marginEnd="5dp" - android:src="@{viewModel.themeChoiceView ? @drawable/shape_main1_fill_99_rect : @drawable/shape_gray100_fill_99_rect}" + android:src="@{viewModel.themeChoiceView ? @drawable/shape_gray650_fill_99_rect : @drawable/shape_gray200_fill_99_rect}" app:layout_constraintEnd_toStartOf="@id/iv_onboarding_top_bar_fourth" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toEndOf="@id/iv_onboarding_top_bar_second" @@ -65,7 +65,7 @@ android:id="@+id/iv_onboarding_top_bar_fourth" android:layout_width="0dp" android:layout_height="6dp" - android:src="@{viewModel.routineChoiceView ? @drawable/shape_main1_fill_99_rect : @drawable/shape_gray100_fill_99_rect}" + android:src="@{viewModel.routineChoiceView ? @drawable/shape_gray650_fill_99_rect : @drawable/shape_gray200_fill_99_rect}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintStart_toEndOf="@id/iv_onboarding_top_bar_third" @@ -124,7 +124,7 @@ android:layout_marginVertical="14dp" android:text="@{viewModel.layoutTranslucent ? @string/onboarding_choice_theme_speech(viewModel.bearNickname) : @string/onboarding_choice_theme_speech_after}" android:visibility="@{viewModel.layoutTranslucent ? View.VISIBLE : View.GONE}" - android:textColor="@color/gray700" + android:textColor="@color/gray800" android:textAppearance="@style/bubble16" android:bufferType="spannable" app:layout_constraintTop_toTopOf="@id/iv_onboarding_theme_speech_background" diff --git a/app/src/main/res/layout/activity_routine_complete.xml b/app/src/main/res/layout/activity_routine_complete.xml index 4df3a33e..762f1706 100644 --- a/app/src/main/res/layout/activity_routine_complete.xml +++ b/app/src/main/res/layout/activity_routine_complete.xml @@ -10,7 +10,7 @@ + android:background="@color/gray0"> diff --git a/app/src/main/res/layout/dialog_update_force.xml b/app/src/main/res/layout/dialog_update_force.xml index 8c1680e2..1a90f98c 100644 --- a/app/src/main/res/layout/dialog_update_force.xml +++ b/app/src/main/res/layout/dialog_update_force.xml @@ -10,7 +10,7 @@ + android:background="@drawable/shape_gray0_fill_12_rect"> + android:background="@drawable/shape_gray0_fill_12_rect"> @@ -57,7 +57,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginTop="10dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="@{viewModel.dailyRoutineListResponse.size() >= 1 ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -123,7 +123,7 @@ android:layout_marginBottom="21dp" android:text="@{@string/daily_routine_ing(viewModel.dailyRoutineListResponse[0].achieveCount)}" android:textAppearance="@style/caption1" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintStart_toEndOf="@id/iv_daily_routine_fin_first" app:layout_constraintTop_toBottomOf="@id/tv_daily_routine_add_name_first" /> @@ -134,7 +134,7 @@ android:layout_marginHorizontal="20dp" android:layout_marginTop="20dp" android:layout_marginBottom="16dp" - android:background="@{viewModel.isRoutineAchieveFirst ? @drawable/shape_gray100_fill_10_rect : @drawable/shape_main1_fill_10_rect}" + android:background="@{viewModel.isRoutineAchieveFirst ? @drawable/shape_gray200_fill_10_rect : @drawable/shape_gray650_fill_10_rect}" android:clickable="@{!(viewModel.isRoutineAchieveFirst || viewModel.isDeleteView)}" android:enabled="@{!(viewModel.isRoutineAchieveFirst || viewModel.isDeleteView)}" android:minHeight="0dp" @@ -143,7 +143,7 @@ android:paddingBottom="11dp" android:text="@{viewModel.isRoutineAchieveFirst ? @string/daily_routine_fin : @string/daily_routine_fin_btn}" android:textAppearance="@style/body4" - android:textColor="@color/white" + android:textColor="@color/gray0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -159,7 +159,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginTop="8dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="@{viewModel.dailyRoutineListResponse.size() >= 2 ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -225,7 +225,7 @@ android:layout_marginBottom="21dp" android:text="@{@string/daily_routine_ing(viewModel.dailyRoutineListResponse[1].achieveCount)}" android:textAppearance="@style/caption1" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintStart_toEndOf="@id/iv_daily_routine_fin_second" app:layout_constraintTop_toBottomOf="@id/tv_daily_routine_add_name_second" /> @@ -236,13 +236,13 @@ android:layout_marginHorizontal="20dp" android:layout_marginTop="20dp" android:layout_marginBottom="16dp" - android:background="@{viewModel.isRoutineAchieveSecond ? @drawable/shape_gray100_fill_10_rect : @drawable/shape_main1_fill_10_rect}" + android:background="@{viewModel.isRoutineAchieveSecond ? @drawable/shape_gray200_fill_10_rect : @drawable/shape_gray650_fill_10_rect}" android:clickable="@{!(viewModel.isRoutineAchieveSecond || viewModel.isDeleteView)}" android:enabled="@{!(viewModel.isRoutineAchieveSecond || viewModel.isDeleteView)}" android:outlineProvider="none" android:text="@{viewModel.isRoutineAchieveSecond ? @string/daily_routine_fin : @string/daily_routine_fin_btn}" android:textAppearance="@style/body4" - android:textColor="@color/white" + android:textColor="@color/gray0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -256,7 +256,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginTop="8dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="@{viewModel.dailyRoutineListResponse.size() == 3 ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -322,7 +322,7 @@ android:layout_marginBottom="21dp" android:text="@{@string/daily_routine_ing(viewModel.dailyRoutineListResponse[2].achieveCount)}" android:textAppearance="@style/caption1" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintStart_toEndOf="@id/iv_daily_routine_fin_third" app:layout_constraintTop_toBottomOf="@id/tv_daily_routine_add_name_third" /> @@ -333,7 +333,7 @@ android:layout_marginHorizontal="20dp" android:layout_marginTop="20dp" android:layout_marginBottom="16dp" - android:background="@{viewModel.isRoutineAchieveThird ? @drawable/shape_gray100_fill_10_rect : @drawable/shape_main1_fill_10_rect}" + android:background="@{viewModel.isRoutineAchieveThird ? @drawable/shape_gray200_fill_10_rect : @drawable/shape_gray650_fill_10_rect}" android:clickable="@{!(viewModel.isRoutineAchieveThird || viewModel.isDeleteView)}" android:enabled="@{!(viewModel.isRoutineAchieveThird || viewModel.isDeleteView)}" android:minHeight="0dp" @@ -342,7 +342,7 @@ android:paddingBottom="11dp" android:text="@{viewModel.isRoutineAchieveThird ? @string/daily_routine_fin : @string/daily_routine_fin_btn}" android:textAppearance="@style/body4" - android:textColor="@color/white" + android:textColor="@color/gray0" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -356,7 +356,7 @@ android:layout_height="136dp" android:layout_marginHorizontal="20dp" android:layout_marginTop="8dp" - android:background="@drawable/shape_gray200_line_20_rect" + android:background="@drawable/shape_gray300_line_20_rect" android:clickable="true" android:visibility="@{viewModel.dailyRoutineListResponse.size() == 3 || viewModel.isDeleteView() ? View.GONE : View.VISIBLE}" app:layout_constraintEnd_toEndOf="parent" @@ -380,7 +380,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginBottom="16dp" - android:background="@{viewModel.isEditBtnEnabled ? @drawable/shape_red_fill_12_rect : @drawable/shape_gray200_fill_12_rect}" + android:background="@{viewModel.isEditBtnEnabled ? @drawable/shape_red200_fill_12_rect : @drawable/shape_gray300_fill_12_rect}" android:clickable="@{viewModel.isEditBtnEnabled ? true : false}" android:enabled="@{viewModel.isEditBtnEnabled ? true : false}" android:outlineProvider="none" @@ -388,7 +388,7 @@ android:paddingBottom="18dp" android:text="@{@string/daily_routine_edit_delete(viewModel.editRoutineIdArray.size)}" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" android:visibility="@{viewModel.isDeleteView ? View.VISIBLE : View.INVISIBLE}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/fragment_happy_delete.xml b/app/src/main/res/layout/fragment_happy_delete.xml index 473a3bd4..32ac6946 100644 --- a/app/src/main/res/layout/fragment_happy_delete.xml +++ b/app/src/main/res/layout/fragment_happy_delete.xml @@ -21,7 +21,7 @@ android:layout_marginStart="20dp" android:layout_marginTop="16dp" android:text="@string/happy_progress_title" - android:textColor="@color/gray700" + android:textColor="@color/gray800" android:visibility="visible" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -33,7 +33,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="20dp" android:text="@string/happy_delete_destroy" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/tv_happy_delete_title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/tv_happy_delete_title" /> @@ -57,7 +57,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="4dp" android:text="@string/happy_progress_mention" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/iv_happy_delete_mention" app:layout_constraintEnd_toEndOf="@id/iv_happy_delete_mention" app:layout_constraintStart_toStartOf="@id/iv_happy_delete_mention" @@ -69,7 +69,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="19dp" - android:textColor="@color/gray500" + android:textColor="@color/gray600" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_happy_delete_mention" @@ -81,7 +81,7 @@ android:layout_height="0dp" android:layout_marginTop="24dp" android:layout_marginBottom="41dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="visible" app:layout_constraintBottom_toTopOf="@id/btn_happy_delete_clear" app:layout_constraintDimensionRatio="0.7" @@ -109,7 +109,7 @@ android:layout_marginTop="166dp" android:gravity="center" android:lineSpacingExtra="4dp" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toTopOf="@id/iv_happy_delete_card_front_magnify" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -132,7 +132,7 @@ android:id="@+id/cl_happy_delete_card_back" android:layout_width="0dp" android:layout_height="0dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="@id/cl_happy_delete_card_front" app:layout_constraintEnd_toEndOf="@id/cl_happy_delete_card_front" @@ -148,7 +148,7 @@ android:layout_marginHorizontal="20dp" android:gravity="center" android:lineSpacingExtra="4dp" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/md_happy_delete_card_back_divider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -162,7 +162,7 @@ android:layout_marginStart="18dp" android:layout_marginTop="145dp" android:layout_marginEnd="18dp" - app:dividerColor="@color/gray100" + app:dividerColor="@color/gray200" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -177,7 +177,7 @@ android:layout_marginEnd="20dp" android:breakStrategy="simple" android:lineSpacingMultiplier="1.3" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/md_happy_delete_card_back_divider" @@ -200,7 +200,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_delete_card_back_time" app:layout_constraintStart_toEndOf="@id/iv_happy_delete_card_back_time" app:layout_constraintTop_toTopOf="@id/iv_happy_delete_card_back_time" @@ -222,7 +222,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_delete_card_back_place" app:layout_constraintStart_toEndOf="@id/iv_happy_delete_card_back_place" app:layout_constraintTop_toTopOf="@id/iv_happy_delete_card_back_place" @@ -247,11 +247,11 @@ android:layout_marginTop="55dp" android:layout_marginEnd="20dp" android:layout_marginBottom="29dp" - android:background="@drawable/shape_red_fill_12_rect" + android:background="@drawable/shape_red200_fill_12_rect" android:outlineProvider="none" android:text="@string/happy_delete_button" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_happy_my_routine.xml b/app/src/main/res/layout/fragment_happy_my_routine.xml index c6ce858f..7676fa68 100644 --- a/app/src/main/res/layout/fragment_happy_my_routine.xml +++ b/app/src/main/res/layout/fragment_happy_my_routine.xml @@ -31,7 +31,7 @@ android:layout_marginStart="20dp" android:layout_marginTop="16dp" android:text="@string/happy_title" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -65,7 +65,7 @@ android:layout_marginEnd="25dp" android:gravity="center" android:text="@string/happy_default_mention" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_default_mention" app:layout_constraintEnd_toEndOf="@id/iv_happy_routine_default_mention" app:layout_constraintStart_toStartOf="@id/iv_happy_routine_default_mention" @@ -92,7 +92,7 @@ android:layout_height="match_parent" android:adjustViewBounds="true" android:scaleType="centerCrop" - android:src="@drawable/shape_white_fill_gray000_stroke_radius_20" + android:src="@drawable/shape_gray0_fill_gray100_stroke_radius_20" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -105,7 +105,7 @@ android:layout_marginTop="84dp" android:gravity="center" android:text="@string/happy_empty_card" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintBottom_toTopOf="@id/iv_happy_routine_empty_card_bear" app:layout_constraintEnd_toEndOf="@id/iv_happy_routine_empty_card" app:layout_constraintStart_toStartOf="@id/iv_happy_routine_empty_card" @@ -139,7 +139,7 @@ android:layout_marginStart="20dp" android:layout_marginTop="16dp" android:text="@string/happy_progress_title" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -150,7 +150,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="20dp" android:text="@string/happy_progress_edit" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/tv_happy_progress_title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/tv_happy_progress_title" /> @@ -174,7 +174,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="4dp" android:text="@string/happy_progress_mention" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/iv_happy_progress_mention" app:layout_constraintEnd_toEndOf="@id/iv_happy_progress_mention" app:layout_constraintStart_toStartOf="@id/iv_happy_progress_mention" @@ -187,7 +187,7 @@ android:layout_height="wrap_content" android:layout_marginTop="19dp" android:text="@{viewModel.happyProgressResponse.title}" - android:textColor="@color/gray500" + android:textColor="@color/gray600" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_happy_progress_mention" @@ -199,7 +199,7 @@ android:layout_height="0dp" android:layout_marginTop="24dp" android:layout_marginBottom="41dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="visible" app:layout_constraintBottom_toTopOf="@id/btn_happy_progress_clear" app:layout_constraintDimensionRatio="0.7" @@ -230,7 +230,7 @@ android:gravity="center" android:lineSpacingExtra="4dp" android:text="@{viewModel.happyProgressResponse.content}" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toTopOf="@id/iv_happy_progress_card_front_magnify" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -253,7 +253,7 @@ android:id="@+id/cl_happy_progress_card_back" android:layout_width="0dp" android:layout_height="0dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="@id/cl_happy_progress_card_front" app:layout_constraintDimensionRatio="0.7" @@ -271,7 +271,7 @@ android:gravity="center" android:lineSpacingExtra="4dp" android:text="@{viewModel.happyProgressResponse.content}" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/md_happy_progress_card_back_divider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -285,7 +285,7 @@ android:layout_marginStart="18dp" android:layout_marginTop="145dp" android:layout_marginEnd="18dp" - app:dividerColor="@color/gray100" + app:dividerColor="@color/gray200" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -301,7 +301,7 @@ android:breakStrategy="simple" android:lineSpacingMultiplier="1.3" android:text="@{viewModel.happyProgressResponse.detailContent}" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/md_happy_progress_card_back_divider" @@ -326,7 +326,7 @@ android:layout_marginStart="6dp" android:text="@{viewModel.happyProgressResponse.timeTaken}" android:textAppearance="@style/body2" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_progress_card_back_time" app:layout_constraintStart_toEndOf="@id/iv_happy_progress_card_back_time" app:layout_constraintTop_toTopOf="@id/iv_happy_progress_card_back_time" @@ -349,7 +349,7 @@ android:layout_height="wrap_content" android:layout_marginStart="6dp" android:text="@{viewModel.happyProgressResponse.place}" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_progress_card_back_place" app:layout_constraintStart_toEndOf="@id/iv_happy_progress_card_back_place" app:layout_constraintTop_toTopOf="@id/iv_happy_progress_card_back_place" @@ -377,7 +377,7 @@ android:outlineProvider="none" android:text="@string/happy_progress_button" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_happy_routine.xml b/app/src/main/res/layout/fragment_happy_routine.xml index d9c45c3d..b3698fc2 100644 --- a/app/src/main/res/layout/fragment_happy_routine.xml +++ b/app/src/main/res/layout/fragment_happy_routine.xml @@ -75,7 +75,7 @@ android:layout_height="match_parent" android:adjustViewBounds="true" android:scaleType="centerCrop" - android:src="@drawable/shape_white_fill_gray000_stroke_radius_20" + android:src="@drawable/shape_gray0_fill_gray100_stroke_radius_20" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -88,7 +88,7 @@ android:layout_marginTop="84dp" android:gravity="center" android:text="@string/happy_empty_card" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintBottom_toTopOf="@id/iv_happy_routine_empty_card_bear" app:layout_constraintEnd_toEndOf="@id/iv_happy_routine_empty_card" app:layout_constraintStart_toStartOf="@id/iv_happy_routine_empty_card" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 43b4c4db..1095a6bc 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -78,7 +78,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="6dp" android:gravity="center" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/iv_home_speech" app:layout_constraintEnd_toEndOf="@id/iv_home_speech" app:layout_constraintStart_toStartOf="@id/iv_home_speech" @@ -143,11 +143,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="12dp" - android:background="@drawable/shape_namefill_fill_namestroke_stroke_99_rect" + android:background="@drawable/shape_brown100_fill_brown200_stroke_99_rect" android:paddingHorizontal="13dp" android:paddingVertical="9dp" android:text="@{viewModel.homeResponse.name}" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_home_shadow" @@ -159,7 +159,7 @@ android:layout_height="wrap_content" android:layout_marginStart="20dp" android:layout_marginBottom="18dp" - android:background="@drawable/shape_gray000_fill_16_rect" + android:background="@drawable/shape_gray100_fill_16_rect" android:paddingVertical="13dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/cl_home_som_color" @@ -183,7 +183,7 @@ android:layout_height="wrap_content" android:layout_marginStart="7dp" android:text="@{@string/home_som_count(viewModel.homeResponse.dailyCottonCount)}" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintBottom_toBottomOf="@id/iv_home_som_white" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_chainStyle="packed" @@ -197,7 +197,7 @@ android:layout_height="wrap_content" android:layout_marginTop="7dp" android:text="@string/home_daily_cotton_btn" - android:textColor="@color/gray500" + android:textColor="@color/gray600" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_home_som_white" /> @@ -210,7 +210,7 @@ android:layout_marginStart="15dp" android:layout_marginEnd="20dp" android:layout_marginBottom="18dp" - android:background="@drawable/shape_gray000_fill_16_rect" + android:background="@drawable/shape_gray100_fill_16_rect" android:paddingVertical="13dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -234,7 +234,7 @@ android:layout_height="wrap_content" android:layout_marginStart="7dp" android:text="@{@string/home_som_count(viewModel.homeResponse.happinessCottonCount)}" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintBottom_toBottomOf="@id/iv_home_som_color" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_chainStyle="packed" @@ -248,7 +248,7 @@ android:layout_height="wrap_content" android:layout_marginTop="7dp" android:text="@string/home_happiness_cotton_btn" - android:textColor="@color/gray500" + android:textColor="@color/gray600" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_home_som_color" /> diff --git a/app/src/main/res/layout/fragment_home_tutorial_bottomsheet.xml b/app/src/main/res/layout/fragment_home_tutorial_bottomsheet.xml new file mode 100644 index 00000000..52332a15 --- /dev/null +++ b/app/src/main/res/layout/fragment_home_tutorial_bottomsheet.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_onboarding_bear_naming.xml b/app/src/main/res/layout/fragment_onboarding_bear_naming.xml index fc327785..77824c9a 100644 --- a/app/src/main/res/layout/fragment_onboarding_bear_naming.xml +++ b/app/src/main/res/layout/fragment_onboarding_bear_naming.xml @@ -26,7 +26,7 @@ android:gravity="center" android:lineSpacingExtra="4dp" android:text="@string/bear_naming_question" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -38,7 +38,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/bear_naming_subtitle" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_bear_naming_question" /> @@ -63,7 +63,7 @@ android:layout_width="158dp" android:layout_height="wrap_content" android:layout_marginTop="-70dp" - android:background="@drawable/shape_white_fill_gray200_stroke_radius_99_rect" + android:background="@drawable/shape_gray0_fill_gray300_stroke_radius_99_rect" android:gravity="center" android:hint="@string/bear_naming_hint" android:importantForAutofill="no" @@ -84,7 +84,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@{viewModel.isLengthExceed?@string/bear_naming_length_warning : @string/bear_naming_special_character_warning}" - android:textColor="@color/red" + android:textColor="@color/red200" android:visibility="@{viewModel.isWarning? View.VISIBLE: View.INVISIBLE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -97,12 +97,12 @@ android:layout_height="57dp" android:layout_marginHorizontal="20dp" android:layout_marginBottom="34dp" - android:background="@{viewModel.isNickNameValid ? @drawable/shape_main1_fill_12_rect : @drawable/shape_gray200_fill_12_rect}" + android:background="@{viewModel.isNickNameValid ? @drawable/shape_gray650_fill_12_rect : @drawable/shape_gray300_fill_12_rect}" android:clickable="@{viewModel.isNickNameValid ? true : false}" android:enabled="@{viewModel.isNickNameValid ? true : false}" android:text="@string/bear_naming_button" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_onboarding_bear_selection.xml b/app/src/main/res/layout/fragment_onboarding_bear_selection.xml index 998bea9a..83afd41e 100644 --- a/app/src/main/res/layout/fragment_onboarding_bear_selection.xml +++ b/app/src/main/res/layout/fragment_onboarding_bear_selection.xml @@ -22,7 +22,7 @@ android:layout_height="wrap_content" android:layout_marginTop="38dp" android:text="@string/bear_selection_question" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -34,7 +34,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="@string/bear_selection_subtitle" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_bear_selection_question" /> @@ -100,12 +100,12 @@ android:layout_marginHorizontal="20dp" android:layout_marginBottom="34dp" style="?android:attr/borderlessButtonStyle" - android:background="@{viewModel.selectedBearType.equals(@string/none) ? @drawable/shape_gray200_fill_12_rect:@drawable/shape_main1_fill_12_rect}" + android:background="@{viewModel.selectedBearType.equals(@string/none) ? @drawable/shape_gray300_fill_12_rect:@drawable/shape_gray650_fill_12_rect}" android:clickable="@{viewModel.selectedBearType.equals(@string/none) ? false: true}" android:enabled="@{viewModel.selectedBearType.equals(@string/none) ? false: true}" android:text="@string/bear_selection_button" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/app/src/main/res/layout/fragment_onboarding_choice_routine.xml b/app/src/main/res/layout/fragment_onboarding_choice_routine.xml index 4994e12f..bd541745 100644 --- a/app/src/main/res/layout/fragment_onboarding_choice_routine.xml +++ b/app/src/main/res/layout/fragment_onboarding_choice_routine.xml @@ -48,7 +48,7 @@ android:layout_height="wrap_content" android:layout_marginVertical="14dp" android:text="@string/onboarding_choice_routine_speech" - android:textColor="@color/gray700" + android:textColor="@color/gray800" android:textAppearance="@style/bubble16" app:layout_constraintTop_toTopOf="@id/iv_onboarding_choice_routine_speech_background" app:layout_constraintBottom_toBottomOf="@id/iv_onboarding_choice_routine_speech_background" @@ -95,7 +95,7 @@ android:layout_marginBottom="27dp" android:text="@string/onboarding_routine_notice" android:textAppearance="@style/body4" - android:textColor="@color/red" + android:textColor="@color/red200" android:visibility="@{routineViewModel.isNoticeVisible ? View.VISIBLE : View.INVISIBLE}" app:layout_constraintBottom_toTopOf="@id/btn_onboarding_routine_back_theme" app:layout_constraintStart_toStartOf="parent" @@ -107,9 +107,9 @@ android:layout_height="wrap_content" android:text="@string/onboarding_routine_back_btn" android:textAppearance="@style/body1" - android:textColor="@color/gray300" + android:textColor="@color/gray400" android:paddingVertical="20dp" - android:background="@drawable/shape_gray100_fill_12_rect" + android:background="@drawable/shape_gray200_fill_12_rect" android:layout_marginStart="20dp" android:layout_marginBottom="33dp" android:outlineProvider="none" @@ -123,10 +123,10 @@ android:layout_height="0dp" android:text="@string/onboarding_routine_select_btn" android:textAppearance="@style/body1" - android:textColor="@color/gray000" + android:textColor="@color/gray100" android:layout_marginStart="10dp" android:layout_marginEnd="20dp" - android:background="@{routineViewModel.isRoutineBtnEnabled ? @drawable/shape_main1_fill_12_rect : @drawable/shape_gray200_fill_12_rect}" + android:background="@{routineViewModel.isRoutineBtnEnabled ? @drawable/shape_gray650_fill_12_rect : @drawable/shape_gray300_fill_12_rect}" android:enabled="@{routineViewModel.isRoutineBtnEnabled ? true : false}" android:clickable="@{routineViewModel.isRoutineBtnEnabled ? true : false}" android:outlineProvider="none" diff --git a/app/src/main/res/layout/fragment_onboarding_choice_theme.xml b/app/src/main/res/layout/fragment_onboarding_choice_theme.xml index 2778b5ac..19febbb1 100644 --- a/app/src/main/res/layout/fragment_onboarding_choice_theme.xml +++ b/app/src/main/res/layout/fragment_onboarding_choice_theme.xml @@ -41,8 +41,8 @@ android:layout_height="57dp" android:text="@string/onboarding_choice_theme_btn" android:textAppearance="@style/body1" - android:textColor="@color/gray000" - android:background="@{themeViewModel.themeBtnEnabled ? @drawable/shape_main1_fill_12_rect : @drawable/shape_gray200_fill_12_rect}" + android:textColor="@color/gray100" + android:background="@{themeViewModel.themeBtnEnabled ? @drawable/shape_gray650_fill_12_rect : @drawable/shape_gray300_fill_12_rect}" android:enabled="@{themeViewModel.themeBtnEnabled ? true : false}" android:clickable="@{themeViewModel.themeBtnEnabled ? true : false}" android:outlineProvider="none" @@ -81,7 +81,7 @@ android:layout_height="wrap_content" android:layout_marginVertical="14dp" android:text="@string/onboarding_choice_theme_speech_after" - android:textColor="@color/gray700" + android:textColor="@color/gray800" android:textAppearance="@style/bubble16" android:bufferType="spannable" app:layout_constraintTop_toTopOf="@id/iv_onboarding_choice_theme_speech_background" diff --git a/app/src/main/res/layout/fragment_setting_init.xml b/app/src/main/res/layout/fragment_setting_init.xml index 0c610975..7369b324 100644 --- a/app/src/main/res/layout/fragment_setting_init.xml +++ b/app/src/main/res/layout/fragment_setting_init.xml @@ -12,7 +12,7 @@ @@ -98,7 +98,7 @@ android:layout_marginStart="8dp" android:text="@string/setting_document" android:textAppearance="@style/body2" - android:textColor="@color/gray600" + android:textColor="@color/gray700" app:layout_constraintBottom_toBottomOf="@id/iv_setting_init_document" app:layout_constraintStart_toEndOf="@id/iv_setting_init_document" app:layout_constraintTop_toTopOf="@id/iv_setting_init_document" /> @@ -152,7 +152,7 @@ android:layout_marginStart="8dp" android:text="@string/setting_feedback" android:textAppearance="@style/body2" - android:textColor="@color/gray600" + android:textColor="@color/gray700" app:layout_constraintBottom_toBottomOf="@id/iv_setting_init_feedback" app:layout_constraintStart_toEndOf="@id/iv_setting_init_feedback" app:layout_constraintTop_toTopOf="@id/iv_setting_init_feedback" /> @@ -196,7 +196,7 @@ android:layout_marginStart="20dp" android:text="@string/setting_version" android:textAppearance="@style/body2" - android:textColor="@color/gray600" + android:textColor="@color/gray700" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -221,7 +221,7 @@ android:paddingVertical="10dp" android:text="@string/setting_logout" android:textAppearance="@style/body4" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/divider_setting_init_version" /> @@ -232,7 +232,7 @@ android:paddingVertical="10dp" android:text="@string/setting_user_exit" android:textAppearance="@style/body4" - android:textColor="@color/gray300" + android:textColor="@color/gray400" app:layout_constraintStart_toStartOf="@id/btn_setting_init_logout" app:layout_constraintTop_toBottomOf="@id/btn_setting_init_logout" /> diff --git a/app/src/main/res/layout/fragment_setting_user_exit.xml b/app/src/main/res/layout/fragment_setting_user_exit.xml index ee489322..bb377a5a 100644 --- a/app/src/main/res/layout/fragment_setting_user_exit.xml +++ b/app/src/main/res/layout/fragment_setting_user_exit.xml @@ -13,7 +13,7 @@ + android:background="@color/gray0"> @@ -28,7 +28,7 @@ android:layout_height="wrap_content" android:text="@string/user_security_title" android:textAppearance="@style/head3" - android:textColor="@color/gray700" + android:textColor="@color/gray800" android:layout_marginTop="20dp" android:layout_marginStart="20dp" app:layout_constraintTop_toBottomOf="@id/divider_user_security" diff --git a/app/src/main/res/layout/fragment_story_telling_conclusion.xml b/app/src/main/res/layout/fragment_story_telling_conclusion.xml index cc0447bc..e30821ca 100644 --- a/app/src/main/res/layout/fragment_story_telling_conclusion.xml +++ b/app/src/main/res/layout/fragment_story_telling_conclusion.xml @@ -47,7 +47,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginBottom="74dp" - android:background="@drawable/shape_white_fill_12_rect" + android:background="@drawable/shape_gray0_fill_12_rect" android:gravity="center" android:paddingTop="23dp" android:paddingBottom="22dp" diff --git a/app/src/main/res/layout/fragment_story_telling_intro.xml b/app/src/main/res/layout/fragment_story_telling_intro.xml index 578c0554..ab71b32d 100644 --- a/app/src/main/res/layout/fragment_story_telling_intro.xml +++ b/app/src/main/res/layout/fragment_story_telling_intro.xml @@ -32,7 +32,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginBottom="74dp" - android:background="@drawable/shape_white_fill_12_rect" + android:background="@drawable/shape_gray0_fill_12_rect" android:gravity="center" android:paddingTop="23dp" android:paddingBottom="22dp" diff --git a/app/src/main/res/layout/fragment_story_telling_main.xml b/app/src/main/res/layout/fragment_story_telling_main.xml index 46f7ab25..e9809592 100644 --- a/app/src/main/res/layout/fragment_story_telling_main.xml +++ b/app/src/main/res/layout/fragment_story_telling_main.xml @@ -49,7 +49,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" android:layout_marginBottom="74dp" - android:background="@drawable/shape_white_fill_12_rect" + android:background="@drawable/shape_gray0_fill_12_rect" android:gravity="center" android:paddingTop="23dp" android:paddingBottom="22dp" diff --git a/app/src/main/res/layout/item_daily_routine_add_theme.xml b/app/src/main/res/layout/item_daily_routine_add_theme.xml index 161e4771..32184446 100644 --- a/app/src/main/res/layout/item_daily_routine_add_theme.xml +++ b/app/src/main/res/layout/item_daily_routine_add_theme.xml @@ -53,7 +53,7 @@ android:layout_height="wrap_content" android:layout_marginTop="6dp" android:textAppearance="@style/caption1" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="@id/fl_daily_routine_add_theme" app:layout_constraintStart_toStartOf="@id/fl_daily_routine_add_theme" app:layout_constraintTop_toBottomOf="@id/fl_daily_routine_add_theme" diff --git a/app/src/main/res/layout/item_happy_add_detail_card.xml b/app/src/main/res/layout/item_happy_add_detail_card.xml index 100458fa..23a88d59 100644 --- a/app/src/main/res/layout/item_happy_add_detail_card.xml +++ b/app/src/main/res/layout/item_happy_add_detail_card.xml @@ -16,7 +16,7 @@ android:id="@+id/cl_happy_routine_add_card" android:layout_width="0dp" android:layout_height="0dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:src="@color/background" android:visibility="visible" app:layout_constraintBottom_toBottomOf="parent" @@ -45,7 +45,7 @@ android:layout_marginTop="166dp" android:gravity="center" android:lineSpacingExtra="4dp" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toTopOf="@id/iv_happy_routine_add_card_detail_magnify" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -68,7 +68,7 @@ android:id="@+id/cl_happy_routine_add_card_back" android:layout_width="0dp" android:layout_height="0dp" - android:background="@drawable/shape_white_fill_gray100_stroke_20_rect" + android:background="@drawable/shape_gray0_fill_gray200_stroke_20_rect" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="@id/cl_happy_routine_add_card" app:layout_constraintEnd_toEndOf="@id/cl_happy_routine_add_card" @@ -84,7 +84,7 @@ android:layout_marginHorizontal="20dp" android:gravity="center" android:lineSpacingExtra="4dp" - android:textColor="@color/gray700" + android:textColor="@color/gray800" app:layout_constraintBottom_toBottomOf="@id/md_happy_routine_add_card_divider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -98,7 +98,7 @@ android:layout_marginStart="18dp" android:layout_marginTop="140dp" android:layout_marginEnd="18dp" - app:dividerColor="@color/gray100" + app:dividerColor="@color/gray200" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -114,7 +114,7 @@ android:breakStrategy="simple" android:includeFontPadding="false" android:lineSpacingMultiplier="1.3" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/md_happy_routine_add_card_divider" @@ -139,7 +139,7 @@ android:layout_height="wrap_content" android:layout_marginStart="6dp" android:textAppearance="@style/body2" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_add_card_detail_time_back" app:layout_constraintStart_toEndOf="@id/iv_happy_routine_add_card_detail_time_back" app:layout_constraintTop_toTopOf="@id/iv_happy_routine_add_card_detail_time_back" @@ -161,7 +161,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="6dp" - android:textColor="@color/gray400" + android:textColor="@color/gray500" app:layout_constraintBottom_toBottomOf="@id/iv_happy_routine_add_card_detail_place_back" app:layout_constraintStart_toEndOf="@id/iv_happy_routine_add_card_detail_place_back" app:layout_constraintTop_toTopOf="@id/iv_happy_routine_add_card_detail_place_back" diff --git a/app/src/main/res/layout/item_happy_add_list.xml b/app/src/main/res/layout/item_happy_add_list.xml index 8ee14655..e8d403bc 100644 --- a/app/src/main/res/layout/item_happy_add_list.xml +++ b/app/src/main/res/layout/item_happy_add_list.xml @@ -11,7 +11,7 @@ android:layout_width="match_parent" android:layout_height="101dp" android:layout_marginHorizontal="20dp" - android:background="@drawable/shape_white_fill_gray000_stroke_radius_20"> + android:background="@drawable/shape_gray0_fill_gray100_stroke_radius_20"> diff --git a/app/src/main/res/layout/item_home_tutorial.xml b/app/src/main/res/layout/item_home_tutorial.xml new file mode 100644 index 00000000..4ef8f8bf --- /dev/null +++ b/app/src/main/res/layout/item_home_tutorial.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_onboarding_choice_theme.xml b/app/src/main/res/layout/item_onboarding_choice_theme.xml index 75e1d154..21e929f2 100644 --- a/app/src/main/res/layout/item_onboarding_choice_theme.xml +++ b/app/src/main/res/layout/item_onboarding_choice_theme.xml @@ -9,7 +9,7 @@ android:id="@+id/iv_theme_background" android:layout_width="70dp" android:layout_height="70dp" - android:background="@drawable/shape_white_fill_gray100_stroke_100_circle" + android:background="@drawable/shape_gray0_fill_gray200_stroke_100_circle" android:layout_marginHorizontal="18dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -30,7 +30,7 @@ android:layout_height="wrap_content" android:text="@string/theme_text" android:textAppearance="@style/caption1" - android:textColor="@color/gray400" + android:textColor="@color/gray500" android:layout_marginTop="9dp" android:layout_marginBottom="30dp" app:layout_constraintTop_toBottomOf="@id/iv_theme_background" diff --git a/app/src/main/res/layout/snackbar_custom.xml b/app/src/main/res/layout/snackbar_custom.xml index 9f073338..c408a6c7 100644 --- a/app/src/main/res/layout/snackbar_custom.xml +++ b/app/src/main/res/layout/snackbar_custom.xml @@ -18,7 +18,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" - android:background="@drawable/shape_gray300_fill_8_rect"> + android:background="@drawable/shape_gray400_fill_8_rect"> - #FF4A4A4A #FFFFF7E6 - #FFFFFFFF - #FFF4F4F4 - #FFE9EBED - #FFCACDD2 - #FF9FA4A9 - #FF73787E - #FF464C52 - #FF26282B - #FF1B1D1F - - - #FFF76D6D + #FFFFFFFF + #FFF8F8F8 + #FFF4F4F4 + #FFE9EBED + #FFCACDD2 + #FF9FA4A9 + #FF73787E + #FF464C52 + #FF4A4A4A + #FF26282B + #FF1B1D1F + #80000000 + #E3000000 + + + #FFF76D6D + + + #FFD4BBA5 + #FFC4AC98 + + + #FF8E77F5 + #FFAE9CFF + #FFE09EFF #FFFBF9F1 @@ -30,8 +42,6 @@ #FFF27400 - #FFD4BBA5 - #FFC4AC98 #FFFBF9F1 #FFE0C8B3 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1f86b0e2..d1155462 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,4 +180,10 @@ Binding not initialized to reference the view. https://play.google.com/store/apps/details?id=com.sopetit.softie + + 소프티엔 총 2가지 루틴이 있어요! + 솜뭉치를 얻으면? + 다음 + 시작하기 + diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 44b64624..45dd3a3b 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -4,7 +4,10 @@ false true + true true + @style/SoftieBottomSheetTheme + true - - @@ -46,7 +48,7 @@ #00FFFFFF 10dp 1dp - @color/gray100 + @color/gray200 @color/selector_happy_type_text_color