-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[UI/#12] onboarding #13
Merged
Merged
Changes from all commits
Commits
Show all changes
12 commits
Select commit
Hold shift + click to select a range
74276d0
[FEAT/#12] init OnboardingActivity
chattymin e358899
[FEAT/#12] init OnboardingStartFragment
chattymin 898c567
[FEAT/#12] init OnboardingMeasureFragment
chattymin 2e6aaed
[FEAT/#12] init OnboardingEndFragment
chattymin 8dc9282
[FEAT/#12] feat OnboardingStartFragment
chattymin 53a5f16
[FEAT/#12] add ic_logo_full_name
chattymin 1e6f961
[FEAT/#12] set OnboardingEndFragment
chattymin 1e19eea
[FEAT/#12] set OnboardingMeasureFragment
chattymin d407baa
[FEAT/#12] connect Onboarding with Main
chattymin 4d55156
[FEAT/#12] Optimize navigateTo extension function
chattymin a0fe5e4
[FEAT/#12] extract strings
chattymin 3ec33bf
[CHORE/#14] repackaging OnboardingState
chattymin File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
69 changes: 69 additions & 0 deletions
69
...ation/src/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
import android.os.Bundle | ||
import android.os.CountDownTimer | ||
import androidx.activity.viewModels | ||
import androidx.fragment.app.Fragment | ||
import androidx.fragment.app.commit | ||
import androidx.fragment.app.replace | ||
import androidx.lifecycle.flowWithLifecycle | ||
import androidx.lifecycle.lifecycleScope | ||
import com.kkkk.core.base.BaseActivity | ||
import com.kkkk.core.extension.navigateToScreenClear | ||
import com.kkkk.presentation.main.MainActivity | ||
import kotlinx.coroutines.flow.launchIn | ||
import kotlinx.coroutines.flow.onEach | ||
import kr.genti.presentation.R | ||
import kr.genti.presentation.databinding.ActivityOnboardingBinding | ||
|
||
class OnboardingActivity : BaseActivity<ActivityOnboardingBinding>(R.layout.activity_onboarding) { | ||
private lateinit var timer: CountDownTimer | ||
private val viewModel by viewModels<OnboardingViewModel>() | ||
|
||
override fun onCreate(savedInstanceState: Bundle?) { | ||
super.onCreate(savedInstanceState) | ||
|
||
initFragmentManager() | ||
observeOnboardingState() | ||
} | ||
|
||
private fun initFragmentManager() { | ||
supportFragmentManager.findFragmentById(R.id.fcv_onboarding) | ||
} | ||
|
||
private fun observeOnboardingState() { | ||
viewModel.state | ||
.flowWithLifecycle(lifecycle) | ||
.onEach { state -> | ||
when (state) { | ||
OnboardingState.START -> navigateTo<OnboardingStartFragment>() | ||
OnboardingState.MEASURE -> navigateTo<OnboardingMeasureFragment>() | ||
OnboardingState.END -> navigateTo<OnboardingEndFragment>() | ||
OnboardingState.DONE -> navigateToScreenClear<MainActivity>() | ||
} | ||
}.launchIn(lifecycleScope) | ||
} | ||
|
||
private fun startTimer() { | ||
timer = object : CountDownTimer(60000, 1000) { | ||
override fun onTick(millisUntilFinished: Long) {} | ||
|
||
override fun onFinish() { | ||
viewModel.setState(OnboardingState.END) | ||
} | ||
}.start() | ||
} | ||
|
||
override fun onDestroy() { | ||
super.onDestroy() | ||
if (::timer.isInitialized) { | ||
timer.cancel() | ||
} | ||
} | ||
|
||
private inline fun <reified T : Fragment> navigateTo() { | ||
supportFragmentManager.commit { | ||
replace<T>(R.id.fcv_onboarding, T::class.java.canonicalName) | ||
} | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
...on/src/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingEndFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
import android.os.Bundle | ||
import android.view.LayoutInflater | ||
import android.view.View | ||
import android.view.ViewGroup | ||
import androidx.fragment.app.activityViewModels | ||
import com.kkkk.core.base.BaseFragment | ||
import kr.genti.presentation.R | ||
import kr.genti.presentation.databinding.FragmentOnboardingEndBinding | ||
import kr.genti.presentation.databinding.FragmentOnboardingStartBinding | ||
|
||
class OnboardingEndFragment : | ||
BaseFragment<FragmentOnboardingEndBinding>(R.layout.fragment_onboarding_end) { | ||
private val viewModel by activityViewModels<OnboardingViewModel>() | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
|
||
initButtonListener() | ||
} | ||
|
||
private fun initButtonListener() { | ||
with(binding) { | ||
btnOnboardingEndStart.setOnClickListener { | ||
viewModel.setState(OnboardingState.DONE) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. state 관리하는거 개마싯네 진짜 |
||
} | ||
} | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...rc/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingMeasureFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
import android.os.Bundle | ||
import android.view.View | ||
import androidx.fragment.app.activityViewModels | ||
import com.kkkk.core.base.BaseFragment | ||
import kr.genti.presentation.R | ||
import kr.genti.presentation.databinding.FragmentOnboardingMeasureBinding | ||
|
||
class OnboardingMeasureFragment : | ||
BaseFragment<FragmentOnboardingMeasureBinding>(R.layout.fragment_onboarding_measure) { | ||
private val viewModel by activityViewModels<OnboardingViewModel>() | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
|
||
initButtonListener() | ||
} | ||
|
||
private fun initButtonListener() { | ||
with(binding) { | ||
btnOnboardingMeasureLater.setOnClickListener { | ||
viewModel.setState(OnboardingState.DONE) | ||
} | ||
} | ||
} | ||
} |
30 changes: 30 additions & 0 deletions
30
.../src/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingStartFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
import android.os.Bundle | ||
import android.view.View | ||
import androidx.fragment.app.activityViewModels | ||
import com.kkkk.core.base.BaseFragment | ||
import kr.genti.presentation.R | ||
import kr.genti.presentation.databinding.FragmentOnboardingStartBinding | ||
|
||
class OnboardingStartFragment : | ||
BaseFragment<FragmentOnboardingStartBinding>(R.layout.fragment_onboarding_start) { | ||
private val viewModel by activityViewModels<OnboardingViewModel>() | ||
|
||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||
super.onViewCreated(view, savedInstanceState) | ||
|
||
initButtonListener() | ||
} | ||
|
||
private fun initButtonListener() { | ||
with(binding) { | ||
btnOnboardingStartLater.setOnClickListener { | ||
viewModel.setState(OnboardingState.DONE) | ||
} | ||
btnOnboardingStartMeasure.setOnClickListener { | ||
viewModel.setState(OnboardingState.MEASURE) | ||
} | ||
} | ||
} | ||
} |
8 changes: 8 additions & 0 deletions
8
...entation/src/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingState.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
enum class OnboardingState { | ||
START, | ||
MEASURE, | ||
END, | ||
DONE | ||
} |
18 changes: 18 additions & 0 deletions
18
...tion/src/main/java/com/kkkk/presentation/main/onboarding/onbarding/OnboardingViewModel.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.kkkk.presentation.main.onboarding.onbarding | ||
|
||
import androidx.lifecycle.ViewModel | ||
import dagger.hilt.android.lifecycle.HiltViewModel | ||
import kotlinx.coroutines.flow.MutableStateFlow | ||
import kotlinx.coroutines.flow.StateFlow | ||
import javax.inject.Inject | ||
|
||
@HiltViewModel | ||
class OnboardingViewModel @Inject constructor( | ||
) : ViewModel() { | ||
private val _state = MutableStateFlow(OnboardingState.START) | ||
val state: StateFlow<OnboardingState> = _state | ||
|
||
fun setState(newState: OnboardingState) { | ||
_state.value = newState | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<vector xmlns:android="http://schemas.android.com/apk/res/android" | ||
android:width="98dp" | ||
android:height="16dp" | ||
android:viewportWidth="98" | ||
android:viewportHeight="16"> | ||
<group> | ||
<clip-path | ||
android:pathData="M0,0h98v16h-98z"/> | ||
<path | ||
android:pathData="M82.834,0.01L68.799,0.002C68.66,0.002 68.546,0.112 68.546,0.247V15.756C68.546,15.89 68.66,16 68.799,16H72.2C72.34,16 72.453,15.89 72.453,15.756V10.702C72.453,10.568 72.567,10.458 72.706,10.458H82.834C82.974,10.458 83.088,10.348 83.088,10.214V0.254C83.088,0.12 82.975,0.01 82.834,0.01ZM79.27,6.92H72.58C72.51,6.92 72.453,6.865 72.453,6.798V3.662C72.453,3.595 72.51,3.54 72.58,3.54H79.27C79.34,3.54 79.396,3.595 79.396,3.662V6.798C79.396,6.865 79.34,6.92 79.27,6.92Z" | ||
android:fillColor="#1E2027"/> | ||
<path | ||
android:pathData="M85.506,0.247V15.756C85.506,15.89 85.62,16 85.759,16H97.62C97.76,16 97.873,15.89 97.873,15.756V0.247C97.873,0.112 97.76,0.002 97.62,0.002H85.759C85.62,0.002 85.506,0.112 85.506,0.247ZM93.876,12.707H89.502C89.432,12.707 89.375,12.652 89.375,12.584V3.418C89.375,3.351 89.432,3.296 89.502,3.296H93.876C93.946,3.296 94.003,3.351 94.003,3.418V12.584C94.003,12.652 93.946,12.707 93.876,12.707Z" | ||
android:fillColor="#1E2027"/> | ||
<path | ||
android:pathData="M30.145,0.001H16.923C16.784,0.001 16.67,0.111 16.67,0.246V3.295C16.67,3.429 16.784,3.539 16.923,3.539H21.358C21.428,3.539 21.485,3.594 21.485,3.661V15.755C21.485,15.889 21.598,15.999 21.738,15.999H25.354C25.493,15.999 25.607,15.889 25.607,15.755V3.661C25.607,3.594 25.664,3.539 25.734,3.539H30.145C30.284,3.539 30.398,3.429 30.398,3.295V0.246C30.398,0.111 30.284,0.001 30.145,0.001Z" | ||
android:fillColor="#1E2027"/> | ||
<path | ||
android:pathData="M46.065,3.294V0.245C46.065,0.111 45.952,0.001 45.813,0.001H32.378C32.239,0.001 32.125,0.111 32.125,0.245V15.754C32.125,15.889 32.239,15.998 32.378,15.998H45.813C45.952,15.998 46.065,15.889 46.065,15.754V12.705C46.065,12.571 45.952,12.461 45.813,12.461H36.374C36.305,12.461 36.248,12.406 36.248,12.339V9.532C36.248,9.465 36.305,9.41 36.374,9.41H45.513C45.652,9.41 45.766,9.3 45.766,9.166V6.521C45.766,6.387 45.652,6.277 45.513,6.277H36.374C36.305,6.277 36.248,6.222 36.248,6.155V3.661C36.248,3.594 36.305,3.539 36.374,3.539H45.813C45.952,3.539 46.065,3.429 46.065,3.294Z" | ||
android:fillColor="#1E2027"/> | ||
<path | ||
android:pathData="M3.869,6.124V3.416C3.869,3.348 3.926,3.294 3.996,3.294H14.23C14.37,3.294 14.483,3.184 14.483,3.049V0.244C14.483,0.11 14.37,0 14.23,0H0.253C0.114,0 0,0.11 0,0.244V9.296C0,9.43 0.114,9.54 0.253,9.54H10.678C10.748,9.54 10.805,9.595 10.805,9.662V12.584C10.805,12.652 10.748,12.707 10.678,12.707H0.253C0.114,12.707 0,12.816 0,12.951V15.756C0,15.89 0.114,16 0.253,16H14.421C14.561,16 14.674,15.89 14.674,15.756V6.491C14.674,6.356 14.561,6.246 14.421,6.246H3.996C3.926,6.246 3.869,6.192 3.869,6.124Z" | ||
android:fillColor="#1E2027"/> | ||
<path | ||
android:pathData="M65.489,0.001H59.247C59.187,0.001 59.135,0.043 59.123,0.099L57.417,8.348C57.389,8.477 57.197,8.477 57.169,8.348L55.462,0.099C55.449,0.043 55.397,0.001 55.338,0.001H49.099C48.959,0.001 48.846,0.11 48.846,0.246V13.438C49.194,13.287 49.578,13.201 49.984,13.201C50.164,13.201 50.344,13.218 50.518,13.251C50.621,13.271 50.688,13.433 50.668,13.532C50.647,13.631 50.549,13.752 50.445,13.732C50.294,13.704 50.139,13.689 49.983,13.689C48.758,13.689 47.746,14.583 47.608,15.731C47.591,15.873 47.712,15.995 47.86,15.995H52.497C52.567,15.995 52.624,15.94 52.624,15.873V3.871C52.624,3.725 52.843,3.703 52.874,3.847L55.399,15.903C55.411,15.959 55.463,16 55.523,16H59.057C59.117,16 59.168,15.96 59.181,15.903L61.709,3.83C61.74,3.686 61.96,3.708 61.96,3.854V13.403C62.284,13.274 62.638,13.202 63.01,13.202C63.19,13.202 63.369,13.219 63.544,13.252C63.646,13.272 63.714,13.49 63.693,13.589C63.673,13.688 63.573,13.753 63.471,13.733C63.32,13.705 63.164,13.691 63.009,13.691C61.784,13.691 60.771,14.584 60.634,15.732C60.617,15.873 60.737,15.997 60.885,15.997L65.612,16C65.618,16 65.624,15.998 65.631,15.997H65.649V15.993C65.7,15.977 65.737,15.933 65.737,15.878V0.246C65.737,0.111 65.623,0.001 65.484,0.001H65.489Z" | ||
android:fillColor="#784DF0"/> | ||
</group> | ||
</vector> |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
오호 신기하다