Skip to content

Commit f940a63

Browse files
Handle displaying back navigation icon
1 parent 1e3ec03 commit f940a63

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/details/webview/ProductDetailWebViewFragment.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.woocommerce.android.ui.products.details.webview
22

3-
import android.annotation.SuppressLint
43
import android.os.Bundle
54
import android.view.LayoutInflater
65
import android.view.View
@@ -27,7 +26,10 @@ class ProductDetailWebViewFragment : BaseFragment() {
2726

2827
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
2928
return composeView {
30-
ProductDetailWebViewScreen(viewModel)
29+
ProductDetailWebViewScreen(
30+
viewModel = viewModel,
31+
showNavigationIcon = shouldShowNavigationIcon()
32+
)
3133
}
3234
}
3335

@@ -44,7 +46,6 @@ class ProductDetailWebViewFragment : BaseFragment() {
4446
}
4547
}
4648

47-
@SuppressLint("RestrictedApi")
4849
private fun navigateBack() {
4950
if (isInDetailPane) {
5051
// If we are in the detail pane of a two-pane layout, we need to handle the back navigation
@@ -54,4 +55,6 @@ class ProductDetailWebViewFragment : BaseFragment() {
5455
findNavController().popBackStack(R.id.productDetailFragment, true)
5556
}
5657
}
58+
59+
private fun shouldShowNavigationIcon(): Boolean = !isInDetailPane
5760
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/details/webview/ProductDetailWebViewScreen.kt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package com.woocommerce.android.ui.products.details.webview
33
import androidx.activity.compose.BackHandler
44
import androidx.compose.foundation.layout.fillMaxSize
55
import androidx.compose.foundation.layout.padding
6+
import androidx.compose.material.icons.Icons
7+
import androidx.compose.material.icons.automirrored.filled.ArrowBack
68
import androidx.compose.material3.Scaffold
79
import androidx.compose.runtime.Composable
810
import androidx.compose.runtime.livedata.observeAsState
@@ -13,19 +15,24 @@ import com.woocommerce.android.ui.compose.component.web.WCWebView
1315
import org.wordpress.android.fluxc.network.UserAgent
1416

1517
@Composable
16-
fun ProductDetailWebViewScreen(viewModel: ProductDetailWebViewViewModel) {
18+
fun ProductDetailWebViewScreen(
19+
viewModel: ProductDetailWebViewViewModel,
20+
showNavigationIcon: Boolean
21+
) {
1722
viewModel.viewState.observeAsState().value?.let {
1823
ProductDetailWebViewScreen(
1924
viewState = it,
25+
showNavigationIcon = showNavigationIcon,
2026
webViewAuthenticator = viewModel.webViewAuthenticator,
21-
userAgent = viewModel.userAgent
27+
userAgent = viewModel.userAgent,
2228
)
2329
}
2430
}
2531

2632
@Composable
2733
private fun ProductDetailWebViewScreen(
2834
viewState: ProductDetailWebViewViewModel.ViewState,
35+
showNavigationIcon: Boolean,
2936
webViewAuthenticator: WebViewAuthenticator,
3037
userAgent: UserAgent
3138
) {
@@ -35,7 +42,8 @@ private fun ProductDetailWebViewScreen(
3542
topBar = {
3643
Toolbar(
3744
title = viewState.title,
38-
navigationIcon = null
45+
navigationIcon = if (showNavigationIcon) Icons.AutoMirrored.Default.ArrowBack else null,
46+
onNavigationButtonClick = viewState.onBackClick
3947
)
4048
}
4149
) {

0 commit comments

Comments
 (0)