Skip to content

Commit 5384012

Browse files
Revert ProductDetailNavigation changes
This reverts commit: 73c7cea, and f4adca4, and 7ea36dd.
1 parent f940a63 commit 5384012

File tree

4 files changed

+39
-99
lines changed

4 files changed

+39
-99
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/stock/DashboardProductStockCard.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import androidx.compose.runtime.livedata.observeAsState
2121
import androidx.compose.ui.Alignment
2222
import androidx.compose.ui.Modifier
2323
import androidx.compose.ui.draw.clip
24-
import androidx.compose.ui.platform.LocalContext
2524
import androidx.compose.ui.res.colorResource
2625
import androidx.compose.ui.res.painterResource
2726
import androidx.compose.ui.res.stringResource
@@ -33,11 +32,13 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
3332
import androidx.lifecycle.LiveData
3433
import androidx.lifecycle.Observer
3534
import androidx.lifecycle.compose.LocalLifecycleOwner
35+
import com.woocommerce.android.NavGraphMainDirections
3636
import com.woocommerce.android.R
37-
import com.woocommerce.android.extensions.findActivity
37+
import com.woocommerce.android.extensions.navigateSafely
3838
import com.woocommerce.android.model.DashboardWidget
3939
import com.woocommerce.android.ui.compose.animations.SkeletonView
4040
import com.woocommerce.android.ui.compose.component.ProductThumbnail
41+
import com.woocommerce.android.ui.compose.rememberNavController
4142
import com.woocommerce.android.ui.dashboard.DashboardFilterableCardHeader
4243
import com.woocommerce.android.ui.dashboard.DashboardViewModel
4344
import com.woocommerce.android.ui.dashboard.DashboardViewModel.DashboardWidgetMenu
@@ -46,8 +47,8 @@ import com.woocommerce.android.ui.dashboard.WidgetCard
4647
import com.woocommerce.android.ui.dashboard.WidgetError
4748
import com.woocommerce.android.ui.dashboard.defaultHideMenuEntry
4849
import com.woocommerce.android.ui.dashboard.stock.DashboardProductStockViewModel.OpenProductDetail
49-
import com.woocommerce.android.ui.main.MainActivity
5050
import com.woocommerce.android.ui.products.ProductStockStatus
51+
import com.woocommerce.android.ui.products.details.ProductDetailFragment.Mode.ShowProduct
5152
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event
5253

5354
@Composable
@@ -75,13 +76,17 @@ fun DashboardProductStockCard(
7576

7677
@Composable
7778
private fun HandleEvents(event: LiveData<Event>) {
79+
val navController = rememberNavController()
7880
val lifecycleOwner = LocalLifecycleOwner.current
79-
val context = LocalContext.current
8081

81-
DisposableEffect(event, context, lifecycleOwner) {
82+
DisposableEffect(event, navController, lifecycleOwner) {
8283
val observer = Observer { event: Event ->
8384
when (event) {
84-
is OpenProductDetail -> (context.findActivity() as? MainActivity)?.showProductDetail(event.productId)
85+
is OpenProductDetail -> navController.navigateSafely(
86+
NavGraphMainDirections.actionGlobalProductDetailFragment(
87+
mode = ShowProduct(event.productId),
88+
)
89+
)
8590
}
8691
}
8792
event.observe(lifecycleOwner, observer)

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/topperformers/DashboardTopPerformersWidgetCard.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import androidx.compose.runtime.livedata.observeAsState
2020
import androidx.compose.ui.Alignment
2121
import androidx.compose.ui.Modifier
2222
import androidx.compose.ui.draw.clip
23-
import androidx.compose.ui.platform.LocalContext
2423
import androidx.compose.ui.platform.testTag
2524
import androidx.compose.ui.res.colorResource
2625
import androidx.compose.ui.res.painterResource
@@ -33,8 +32,8 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
3332
import androidx.lifecycle.LiveData
3433
import androidx.lifecycle.Observer
3534
import androidx.lifecycle.compose.LocalLifecycleOwner
35+
import com.woocommerce.android.NavGraphMainDirections
3636
import com.woocommerce.android.R
37-
import com.woocommerce.android.extensions.findActivity
3837
import com.woocommerce.android.extensions.navigateSafely
3938
import com.woocommerce.android.model.DashboardWidget
4039
import com.woocommerce.android.ui.analytics.ranges.StatsTimeRangeSelection.SelectionType
@@ -58,7 +57,7 @@ import com.woocommerce.android.ui.dashboard.topperformers.DashboardTopPerformers
5857
import com.woocommerce.android.ui.dashboard.topperformers.DashboardTopPerformersViewModel.OpenTopPerformer
5958
import com.woocommerce.android.ui.dashboard.topperformers.DashboardTopPerformersViewModel.TopPerformersDateRange
6059
import com.woocommerce.android.ui.dashboard.topperformers.DashboardTopPerformersViewModel.TopPerformersState
61-
import com.woocommerce.android.ui.main.MainActivity
60+
import com.woocommerce.android.ui.products.details.ProductDetailFragment.Mode.ShowProduct
6261
import com.woocommerce.android.viewmodel.MultiLiveEvent.Event
6362
import com.woocommerce.commons.stats.StatsTimeRange
6463
import java.util.Calendar
@@ -159,12 +158,16 @@ private fun HandleEvents(
159158
) {
160159
val navController = rememberNavController()
161160
val lifecycleOwner = LocalLifecycleOwner.current
162-
val context = LocalContext.current
163161

164-
DisposableEffect(event, navController, lifecycleOwner, context) {
162+
DisposableEffect(event, navController, lifecycleOwner) {
165163
val observer = Observer { event: Event ->
166164
when (event) {
167-
is OpenTopPerformer -> (context.findActivity() as? MainActivity)?.showProductDetail(event.productId)
165+
is OpenTopPerformer -> navController.navigateSafely(
166+
NavGraphMainDirections.actionGlobalProductDetailFragment(
167+
mode = ShowProduct(event.productId),
168+
)
169+
)
170+
168171
is OpenDatePicker -> openDatePicker(event.fromDate.time, event.toDate.time)
169172
is OpenAnalytics -> {
170173
navController.navigateSafely(
@@ -367,7 +370,6 @@ private fun TopPerformersErrorView(
367370
onContactSupportClick = onContactSupportClicked
368371
)
369372
}
370-
371373
else -> {
372374
WidgetError(
373375
onContactSupportClicked = onContactSupportClicked,

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivity.kt

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import androidx.navigation.NavDestination
3737
import androidx.navigation.NavOptions
3838
import androidx.navigation.fragment.FragmentNavigatorExtras
3939
import androidx.navigation.fragment.NavHostFragment
40+
import androidx.navigation.navOptions
4041
import com.automattic.android.tracks.crashlogging.CrashLogging
4142
import com.google.android.material.appbar.AppBarLayout
4243
import com.woocommerce.android.AppPrefs
@@ -103,7 +104,6 @@ import com.woocommerce.android.ui.plans.di.TrialStatusBarFormatterFactory
103104
import com.woocommerce.android.ui.plans.trial.DetermineTrialStatusBarState.TrialStatusBarState
104105
import com.woocommerce.android.ui.prefs.AppSettingsActivity
105106
import com.woocommerce.android.ui.prefs.RequestedAnalyticsValue
106-
import com.woocommerce.android.ui.products.ProductDetailNavigator
107107
import com.woocommerce.android.ui.products.details.ProductDetailFragment
108108
import com.woocommerce.android.ui.products.list.ProductListFragmentDirections
109109
import com.woocommerce.android.ui.reviews.ReviewListFragmentDirections
@@ -196,9 +196,6 @@ class MainActivity :
196196
@Inject
197197
lateinit var bookingsTabController: BookingsTabController
198198

199-
@Inject
200-
lateinit var productDetailNavigator: ProductDetailNavigator
201-
202199
private val viewModel: MainActivityViewModel by viewModels()
203200

204201
private var unfilledOrderCount: Int = 0
@@ -1032,7 +1029,24 @@ class MainActivity :
10321029
}
10331030

10341031
override fun showProductDetail(remoteProductId: Long, popUpToProductList: Boolean, sharedView: View?) {
1035-
productDetailNavigator.showProductDetail(remoteProductId, popUpToProductList, sharedView)
1032+
val action = NavGraphMainDirections.actionGlobalProductDetailFragment(
1033+
mode = ProductDetailFragment.Mode.ShowProduct(remoteProductId),
1034+
)
1035+
val extras = if (sharedView != null) {
1036+
val productCardDetailTransitionName = getString(R.string.product_card_detail_transition_name)
1037+
FragmentNavigatorExtras(sharedView to productCardDetailTransitionName)
1038+
} else {
1039+
null
1040+
}
1041+
navController.navigateSafely(
1042+
directions = action,
1043+
extras = extras,
1044+
navOptions = navOptions {
1045+
if (popUpToProductList) {
1046+
popUpTo(R.id.products)
1047+
}
1048+
}
1049+
)
10361050
}
10371051

10381052
override fun showProductVariationDetail(remoteProductId: Long, remoteVariationId: Long) {

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailNavigator.kt

Lines changed: 0 additions & 81 deletions
This file was deleted.

0 commit comments

Comments
 (0)