Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.

fix info and setting fragment profile menu item click #359

Open
wants to merge 5 commits into
base: iosched_2020
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,19 @@ import com.google.android.material.tabs.TabLayoutMediator
import com.google.samples.apps.iosched.R
import com.google.samples.apps.iosched.databinding.FragmentInfoBinding
import com.google.samples.apps.iosched.shared.analytics.AnalyticsHelper
import com.google.samples.apps.iosched.shared.result.EventObserver
import com.google.samples.apps.iosched.ui.MainActivityViewModel
import com.google.samples.apps.iosched.ui.MainNavigationFragment
import com.google.samples.apps.iosched.ui.schedule.ScheduleFragment
import com.google.samples.apps.iosched.ui.signin.SignInDialogFragment
import com.google.samples.apps.iosched.ui.signin.SignOutDialogFragment
import com.google.samples.apps.iosched.ui.signin.setupProfileMenuItem
import com.google.samples.apps.iosched.util.doOnApplyWindowInsets
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject

@AndroidEntryPoint
class InfoFragment : MainNavigationFragment() {

@Inject lateinit var analyticsHelper: AnalyticsHelper

private lateinit var binding: FragmentInfoBinding
Expand All @@ -56,6 +59,14 @@ class InfoFragment : MainNavigationFragment() {
binding.viewpager.doOnApplyWindowInsets { v, insets, padding ->
v.updatePaddingRelative(bottom = padding.bottom + insets.systemWindowInsetBottom)
}

viewModel.navigateToSignInDialogAction.observe(viewLifecycleOwner, EventObserver {
openSignInDialog()
})

viewModel.navigateToSignOutDialogAction.observe(viewLifecycleOwner, EventObserver {
openSignOutDialog()
})
return binding.root
}

Expand All @@ -81,6 +92,16 @@ class InfoFragment : MainNavigationFragment() {
}
}

private fun openSignInDialog() {
val dialog = SignInDialogFragment()
dialog.show(requireActivity().supportFragmentManager, InfoFragment.DIALOG_NEED_TO_SIGN_IN)
}

private fun openSignOutDialog() {
val dialog = SignOutDialogFragment()
dialog.show(requireActivity().supportFragmentManager, InfoFragment.DIALOG_CONFIRM_SIGN_OUT)
}

private fun trackInfoScreenView(position: Int) {
val pageName = getString(INFO_TITLES[position])
analyticsHelper.sendScreenView("Info - $pageName", requireActivity())
Expand All @@ -97,6 +118,9 @@ class InfoFragment : MainNavigationFragment() {

companion object {

private const val DIALOG_NEED_TO_SIGN_IN = "dialog_need_to_sign_in"
private const val DIALOG_CONFIRM_SIGN_OUT = "dialog_confirm_sign_out"

private val INFO_TITLES = arrayOf(
R.string.event_title,
R.string.travel_title,
Expand All @@ -106,7 +130,7 @@ class InfoFragment : MainNavigationFragment() {
{ EventFragment() },
{ TravelFragment() },
{ FaqFragment() }
// TODO: Track the InfoPage performance b/130335745
// TODO: Track the InfoPage performance b/130335745
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,21 @@ import com.google.samples.apps.iosched.databinding.FragmentSettingsBinding
import com.google.samples.apps.iosched.shared.result.EventObserver
import com.google.samples.apps.iosched.ui.MainActivityViewModel
import com.google.samples.apps.iosched.ui.MainNavigationFragment
import com.google.samples.apps.iosched.ui.info.InfoFragment
import com.google.samples.apps.iosched.ui.signin.SignInDialogFragment
import com.google.samples.apps.iosched.ui.signin.SignOutDialogFragment
import com.google.samples.apps.iosched.ui.signin.setupProfileMenuItem
import com.google.samples.apps.iosched.util.doOnApplyWindowInsets
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class SettingsFragment : MainNavigationFragment() {

companion object {
private const val DIALOG_NEED_TO_SIGN_IN = "dialog_need_to_sign_in"
private const val DIALOG_CONFIRM_SIGN_OUT = "dialog_confirm_sign_out"
}

private val viewModel: SettingsViewModel by viewModels()
private val mainActivityViewModel: MainActivityViewModel by viewModels()

Expand All @@ -49,7 +57,7 @@ class SettingsFragment : MainNavigationFragment() {

viewModel.navigateToThemeSelector.observe(viewLifecycleOwner, EventObserver {
ThemeSettingDialogFragment.newInstance()
.show(requireFragmentManager(), null)
.show(requireFragmentManager(), null)
})

val binding = FragmentSettingsBinding.inflate(inflater, container, false)
Expand All @@ -61,9 +69,32 @@ class SettingsFragment : MainNavigationFragment() {
binding.settingsScroll.doOnApplyWindowInsets { v, insets, padding ->
v.updatePaddingRelative(bottom = padding.bottom + insets.systemWindowInsetBottom)
}
mainActivityViewModel.navigateToSignInDialogAction.observe(
viewLifecycleOwner, EventObserver {
openSignInDialog()
})

mainActivityViewModel.navigateToSignOutDialogAction.observe(
viewLifecycleOwner, EventObserver {
openSignOutDialog()
})

return binding.root
}

private fun openSignInDialog() {
val dialog = SignInDialogFragment()
dialog.show(
requireActivity().supportFragmentManager, SettingsFragment.DIALOG_NEED_TO_SIGN_IN
)
}

private fun openSignOutDialog() {
val dialog = SignOutDialogFragment()
dialog.show(
requireActivity().supportFragmentManager, SettingsFragment.DIALOG_CONFIRM_SIGN_OUT
)
}
}

@BindingAdapter(value = ["dialogTitle", "fileLink"], requireAll = true)
Expand Down
Loading