diff --git a/CATALOG.md b/CATALOG.md index 632992e7..70f6cdc4 100644 --- a/CATALOG.md +++ b/CATALOG.md @@ -17,19 +17,26 @@ The minimal sample that includes all the required Backbase SDKs to get started t \ LTS 24.03 +## [sample/devs/extending-a-journey](https://github.com/Backbase/golden-sample-app-android/tree/sample/devs/extending-a-journey) +This example explains how to extend a journey. +\ +**Status**: Maintained +\ +LTS 24.09 + ## [sample/devs/O11Y](https://github.com/Backbase/golden-sample-app-android/tree/sample/devs/O11Y) An implementation of Backbase Observability that makes it easy to add 3rd party tracking libraries to your project. \ **Status**: Maintained \ -LTS 24.03 +LTS 24.09 ## [sample/devs/open-telemetry](https://github.com/Backbase/golden-sample-app-android/tree/sample/devs/open-telemetry) An implementation of Backbase OpenTelemetry Connector to track screen views and user actions. \ **Status**: Maintained \ -LTS 24.03 +LTS 24.09 ## [sample/devs/multi-theming](https://github.com/Backbase/golden-sample-app-android/tree/sample/devs/multi-theming) This example explains how to use multiple themes in an application. diff --git a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountdetail/ui/AccountDetailFragment.kt b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountdetail/ui/AccountDetailFragment.kt index f986024c..fab2e6c0 100644 --- a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountdetail/ui/AccountDetailFragment.kt +++ b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountdetail/ui/AccountDetailFragment.kt @@ -10,8 +10,8 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController -import com.backbase.accounts_journey.R import com.backbase.accounts_journey.databinding.FragmentAccountDetailBinding +import com.backbase.accounts_journey.presentation.utils.UiUtils import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import org.koin.android.ext.android.inject @@ -37,6 +37,8 @@ class AccountDetailFragment : Fragment() { savedInstanceState: Bundle? ): View { _binding = FragmentAccountDetailBinding.inflate(inflater, container, false) + UiUtils.applyWindowInsets(binding.contentMain) + UiUtils.applyWindowInsets(binding.toolbar) return binding.root } diff --git a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountlist/ui/AccountListFragment.kt b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountlist/ui/AccountListFragment.kt index 1b7c69e0..544905de 100644 --- a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountlist/ui/AccountListFragment.kt +++ b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/accountlist/ui/AccountListFragment.kt @@ -14,6 +14,7 @@ import com.backbase.accounts_journey.R import com.backbase.accounts_journey.configuration.AccountsJourneyConfiguration import com.backbase.accounts_journey.configuration.accountlist.AccountListScreenConfiguration import com.backbase.accounts_journey.databinding.FragmentAccountListBinding +import com.backbase.accounts_journey.router.AccountsRouter import com.backbase.accounts_journey.routing.AccountsRouting import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -40,6 +41,8 @@ class AccountListFragment : Fragment() { private val accountListAdapter: AccountListAdapter = AccountListAdapter( onClick = { itemClicked(it) } ) + private val cardNavigationAction: AccountsRouter by inject() + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -75,6 +78,11 @@ class AccountListFragment : Fragment() { .onEach { handleUiState(it) } .launchIn(lifecycleScope) viewModel.onEvent(AccountListEvent.OnGetAccounts) + + // Remove this button and its action later + binding.btnCards.setOnClickListener { + cardNavigationAction.exit(findNavController()) + } } private fun handleUiState(uiState: AccountListScreenState) { diff --git a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/utils/UiUtils.kt b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/utils/UiUtils.kt new file mode 100644 index 00000000..6c5ecfa1 --- /dev/null +++ b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/presentation/utils/UiUtils.kt @@ -0,0 +1,25 @@ +package com.backbase.accounts_journey.presentation.utils + +import android.view.View +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding + +object UiUtils { + + fun applyWindowInsets(view: View,) { + ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets -> + val bars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding( + left = bars.left, + top = bars.top, + right = bars.right, + bottom = bars.bottom, + ) + WindowInsetsCompat.CONSUMED + } + } +} diff --git a/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/router/AccountsRouter.kt b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/router/AccountsRouter.kt new file mode 100644 index 00000000..f0fccb63 --- /dev/null +++ b/accounts-journey/src/main/kotlin/com/backbase/accounts_journey/router/AccountsRouter.kt @@ -0,0 +1,8 @@ +package com.backbase.accounts_journey.router + +import androidx.navigation.NavController + +interface AccountsRouter { + + fun exit(navController: NavController) +} diff --git a/accounts-journey/src/main/res/layout/fragment_account_list.xml b/accounts-journey/src/main/res/layout/fragment_account_list.xml index bbad7a60..9fe79920 100644 --- a/accounts-journey/src/main/res/layout/fragment_account_list.xml +++ b/accounts-journey/src/main/res/layout/fragment_account_list.xml @@ -103,6 +103,14 @@ android:visibility="gone" app:constraint_referenced_ids="no_account_image,accounts_result_text" tools:visibility="gone" /> + +