Skip to content

Commit

Permalink
Merge pull request #286 from PermanentOrg/feature/VSP-1352
Browse files Browse the repository at this point in the history
Congratulations screen from Archive Onboarding for phone.
  • Loading branch information
flaviahandrea-vsp authored Jul 30, 2024
2 parents f3613fe + a39796c commit 06992ad
Show file tree
Hide file tree
Showing 12 changed files with 384 additions and 140 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package org.permanent.permanent.ui.archiveOnboarding

import android.content.Intent
import android.content.pm.ActivityInfo
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import org.permanent.permanent.R
import org.permanent.permanent.databinding.ActivityArchiveOnboardingBinding
import org.permanent.permanent.ui.PREFS_NAME
import org.permanent.permanent.ui.PreferencesHelper
import org.permanent.permanent.ui.activities.MainActivity
import org.permanent.permanent.ui.activities.PermanentBaseActivity
import org.permanent.permanent.ui.computeWindowSizeClasses
import org.permanent.permanent.viewmodels.ArchiveOnboardingViewModel

class ArchiveOnboardingActivity : PermanentBaseActivity() {

private lateinit var prefsHelper: PreferencesHelper
private lateinit var viewModel: ArchiveOnboardingViewModel
private lateinit var binding: ActivityArchiveOnboardingBinding

override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -29,53 +35,24 @@ class ArchiveOnboardingActivity : PermanentBaseActivity() {
val windowWidthSizeClass = computeWindowSizeClasses().windowWidthSizeClass
prefsHelper.saveWindowWidthSizeClass(windowWidthSizeClass)

viewModel = ViewModelProvider(this)[ArchiveOnboardingViewModel::class.java]

binding = DataBindingUtil.setContentView(this, R.layout.activity_archive_onboarding)
binding.executePendingBindings()
binding.lifecycleOwner = this
}

//
// private val onShowMessage = Observer<String> { message ->
// val snackBar = Snackbar.make(binding.root, message, Snackbar.LENGTH_LONG)
// val view: View = snackBar.view
// view.setBackgroundColor(ContextCompat.getColor(this, R.color.deepGreen))
// snackBar.setTextColor(ContextCompat.getColor(this, R.color.paleGreen))
// val snackbarTextTextView = view.findViewById(R.id.snackbar_text) as TextView
// snackbarTextTextView.setTypeface(snackbarTextTextView.typeface, Typeface.BOLD)
// snackBar.show()
// }
//
// private val onShowError = Observer<String> { message ->
// val snackBar = Snackbar.make(binding.root, message, Snackbar.LENGTH_LONG)
// val view: View = snackBar.view
// view.setBackgroundColor(ContextCompat.getColor(this, R.color.deepRed))
// snackBar.setTextColor(ContextCompat.getColor(this, R.color.white))
// snackBar.show()
// }
//
// private val onShowNextFragment = Observer<Fragment> {
// val transaction: FragmentTransaction = supportFragmentManager.beginTransaction()
// transaction.replace(R.id.frameLayoutContainer, it).commit()
// }
//
// private val onArchiveOnboardingDone = Observer<Void?> {
// startActivity(Intent(this@ArchiveOnboardingActivity, MainActivity::class.java))
// finish()
// }
//
private val onArchiveOnboardingDone = Observer<Void?> {
startActivity(Intent(this@ArchiveOnboardingActivity, MainActivity::class.java))
finish()
}

override fun connectViewModelEvents() {
// viewModel.getShowMessage().observe(this, onShowMessage)
// viewModel.getShowError().observe(this, onShowError)
// viewModel.getOnShowNextFragment().observe(this, onShowNextFragment)
// viewModel.getOnArchiveOnboardingDone().observe(this, onArchiveOnboardingDone)
viewModel.getOnArchiveOnboardingDone().observe(this, onArchiveOnboardingDone)
}

//
override fun disconnectViewModelEvents() {
// viewModel.getShowMessage().removeObserver(onShowMessage)
// viewModel.getShowError().removeObserver(onShowError)
// viewModel.getOnShowNextFragment().removeObserver(onShowNextFragment)
// viewModel.getOnArchiveOnboardingDone().removeObserver(onArchiveOnboardingDone)
viewModel.getOnArchiveOnboardingDone().removeObserver(onArchiveOnboardingDone)
}

override fun onResume() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ private fun TabletBody(
iconAlignment = ButtonIconAlignment.START
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_TYPE_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_TYPE.value)
}
}
}
Expand All @@ -221,7 +221,7 @@ private fun TabletBody(
) {
if (textFieldValueState.text.isNotEmpty()) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.GOALS_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.GOALS.value)
}
newArchive.name = textFieldValueState.text
}
Expand Down Expand Up @@ -358,7 +358,7 @@ private fun PhoneBody(
iconAlignment = ButtonIconAlignment.START
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_TYPE_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_TYPE.value)
}
}
}
Expand All @@ -375,7 +375,7 @@ private fun PhoneBody(
) {
if (textFieldValueState.text.isNotEmpty()) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.GOALS_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.GOALS.value)
}
newArchive.name = textFieldValueState.text
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ fun ArchiveOnboardingScreen(
) {
val context = LocalContext.current

val pagerState = rememberPagerState(initialPage = OnboardingPage.WELCOME_PAGE.value,
val pagerState = rememberPagerState(initialPage = OnboardingPage.WELCOME.value,
pageCount = { OnboardingPage.values().size })
val isTablet = viewModel.isTablet()

Expand Down Expand Up @@ -145,18 +145,18 @@ fun ArchiveOnboardingScreen(

LaunchedEffect(pagerState.currentPage) {
when (pagerState.currentPage) {
OnboardingPage.ARCHIVE_NAME_PAGE.value -> {
OnboardingPage.ARCHIVE_NAME.value -> {
viewModel.updateFirstProgressBarEmpty(false)
viewModel.updateSecondProgressBarEmpty(true)
}

OnboardingPage.GOALS_PAGE.value -> {
OnboardingPage.GOALS.value -> {
viewModel.updateFirstProgressBarEmpty(true)
viewModel.updateSecondProgressBarEmpty(false)
viewModel.updateThirdProgressBarEmpty(true)
}

OnboardingPage.PRIORITIES_PAGE.value -> {
OnboardingPage.PRIORITIES.value -> {
viewModel.updateSecondProgressBarEmpty(true)
viewModel.updateThirdProgressBarEmpty(false)
}
Expand Down Expand Up @@ -224,31 +224,31 @@ fun ArchiveOnboardingScreen(
state = pagerState, userScrollEnabled = false
) { page ->
when (page) {
OnboardingPage.WELCOME_PAGE.value -> {
OnboardingPage.WELCOME.value -> {
WelcomePage(
isTablet = isTablet,
pagerState = pagerState,
accountName = viewModel.getAccountName().value
)
}

OnboardingPage.ARCHIVE_TYPE_PAGE.value -> {
OnboardingPage.ARCHIVE_TYPE.value -> {
ArchiveTypePage(isTablet = isTablet,
pagerState = pagerState,
onArchiveTypeClick = { type: ArchiveType, typeName: String ->
newArchive = newArchive.copy(type = type, typeName = typeName)
})
}

OnboardingPage.ARCHIVE_NAME_PAGE.value -> {
OnboardingPage.ARCHIVE_NAME.value -> {
ArchiveNamePage(
isTablet = isTablet,
pagerState = pagerState,
newArchive = newArchive
)
}

OnboardingPage.GOALS_PAGE.value -> {
OnboardingPage.GOALS.value -> {
GoalsPage(
isTablet = isTablet,
horizontalPaddingDp = horizontalPaddingDp,
Expand All @@ -258,7 +258,7 @@ fun ArchiveOnboardingScreen(
)
}

OnboardingPage.PRIORITIES_PAGE.value -> {
OnboardingPage.PRIORITIES.value -> {
PrioritiesPage(
viewModel = viewModel,
isTablet = isTablet,
Expand All @@ -268,6 +268,13 @@ fun ArchiveOnboardingScreen(
priorities = priorities
)
}

OnboardingPage.CONGRATULATIONS.value -> {
CongratulationsPage(
viewModel = viewModel,
isTablet = isTablet
)
}
}
}
}
Expand Down Expand Up @@ -303,7 +310,8 @@ fun ArchiveOnboardingScreen(

LaunchedEffect(errorMessage) {
coroutineScope.launch {
snackbarHostState.showSnackbar(errorMessage)
if (errorMessage.isNotEmpty())
snackbarHostState.showSnackbar(errorMessage)
}
}

Expand Down Expand Up @@ -353,5 +361,5 @@ data class NewArchive(
)

enum class OnboardingPage(val value: Int) {
WELCOME_PAGE(0), ARCHIVE_TYPE_PAGE(1), ARCHIVE_NAME_PAGE(2), GOALS_PAGE(3), PRIORITIES_PAGE(4)
WELCOME(0), ARCHIVE_TYPE(1), ARCHIVE_NAME(2), GOALS(3), PRIORITIES(4), CONGRATULATIONS(5)
}
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ private fun TabletBody(
iconAlignment = ButtonIconAlignment.START
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.WELCOME_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.WELCOME.value)
}
}
}
Expand All @@ -157,7 +157,7 @@ private fun TabletBody(
style = ButtonColor.LIGHT, text = text
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_NAME_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_NAME.value)
}
}
}
Expand Down Expand Up @@ -230,7 +230,7 @@ private fun PhoneBody(
iconAlignment = ButtonIconAlignment.START
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.WELCOME_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.WELCOME.value)
}
}
}
Expand All @@ -244,7 +244,7 @@ private fun PhoneBody(
ButtonColor.LIGHT, text = stringResource(id = R.string.next)
) {
coroutineScope.launch {
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_NAME_PAGE.value)
pagerState.animateScrollToPage(OnboardingPage.ARCHIVE_NAME.value)
}
}
}
Expand Down
Loading

0 comments on commit 06992ad

Please sign in to comment.