Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import kotlinx.coroutines.delay
import org.wordpress.android.R
import org.wordpress.android.analytics.AnalyticsTracker.Stat
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.model.experiments.Variation.Treatment
import org.wordpress.android.fluxc.store.QuickStartStore.QuickStartTask
import org.wordpress.android.fluxc.store.QuickStartStore.QuickStartTask.FOLLOW_SITE
import org.wordpress.android.fluxc.store.QuickStartStore.QuickStartTask.PUBLISH_POST
Expand All @@ -29,7 +28,6 @@ import org.wordpress.android.util.SiteUtils
import org.wordpress.android.util.SiteUtils.hasFullAccessToContent
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
import org.wordpress.android.util.config.MySiteImprovementsFeatureConfig
import org.wordpress.android.util.experiments.CreateMenuStoryFirstABExperiment
import org.wordpress.android.util.map
import org.wordpress.android.util.mapNullable
import org.wordpress.android.util.merge
Expand All @@ -49,7 +47,6 @@ class WPMainActivityViewModel @Inject constructor(
private val analyticsTracker: AnalyticsTrackerWrapper,
private val mySiteImprovementsFeatureConfig: MySiteImprovementsFeatureConfig,
private val quickStartRepository: QuickStartRepository,
private val createMenuStoryFirstABExperiment: CreateMenuStoryFirstABExperiment,
@Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher
) : ScopedViewModel(mainDispatcher) {
private var isStarted = false
Expand Down Expand Up @@ -118,17 +115,9 @@ class WPMainActivityViewModel @Inject constructor(
updateFeatureAnnouncements()
}

private fun loadMainActions(site: SiteModel?, shouldShowStoriesFirst: Boolean = false) {
private fun loadMainActions(site: SiteModel?) {
val actionsList = ArrayList<MainActionListItem>()

val shouldShowStories = SiteUtils.supportsStoriesFeature(site)
val createNewStoryAction = CreateAction(
actionType = CREATE_NEW_STORY,
iconRes = R.drawable.ic_story_icon_24dp,
labelRes = R.string.my_site_bottom_sheet_add_story,
onClickAction = ::onCreateActionClicked
)

actionsList.add(
CreateAction(
actionType = NO_ACTION,
Expand All @@ -137,9 +126,6 @@ class WPMainActivityViewModel @Inject constructor(
onClickAction = null
)
)
if (shouldShowStories && shouldShowStoriesFirst) {
actionsList.add(createNewStoryAction)
}
actionsList.add(
CreateAction(
actionType = CREATE_NEW_POST,
Expand All @@ -158,8 +144,15 @@ class WPMainActivityViewModel @Inject constructor(
)
)
}
if (shouldShowStories && !shouldShowStoriesFirst) {
actionsList.add(createNewStoryAction)
if (SiteUtils.supportsStoriesFeature(site)) {
actionsList.add(
CreateAction(
actionType = CREATE_NEW_STORY,
iconRes = R.drawable.ic_story_icon_24dp,
labelRes = R.string.my_site_bottom_sheet_add_story,
onClickAction = ::onCreateActionClicked
)
)
}

_mainActions.postValue(actionsList)
Expand Down Expand Up @@ -206,24 +199,16 @@ class WPMainActivityViewModel @Inject constructor(
quickStartRepository.activeTask.value == PUBLISH_POST
_showQuickStarInBottomSheet.postValue(shouldShowQuickStartFocusPoint || quickStartFromImprovedMySiteFragment)

val shouldShowStories = SiteUtils.supportsStoriesFeature(site)
val shouldShowStoriesFirst = shouldShowStoriesFirst()

if (shouldShowStories || hasFullAccessToContent(site)) {
if (SiteUtils.supportsStoriesFeature(site) || hasFullAccessToContent(site)) {
// The user has at least two create options available for this site (pages and/or story posts),
// so we should show a bottom sheet.
// Creation options added in the future should also be weighed here.

// Reload main actions, since the first time this is initialized the SiteModel may not contain the
// latest info.
loadMainActions(site, shouldShowStoriesFirst)

val properties = mapOf(
"is_showing_stories" to shouldShowStories,
"is_showing_stories_first" to shouldShowStoriesFirst
)
loadMainActions(site)

analyticsTracker.track(Stat.MY_SITE_CREATE_SHEET_SHOWN, properties)
analyticsTracker.track(Stat.MY_SITE_CREATE_SHEET_SHOWN)
_isBottomSheetShowing.value = Event(true)
} else {
// User only has one option - creating a post. Skip the bottom sheet and go straight to that action.
Expand Down Expand Up @@ -318,10 +303,6 @@ class WPMainActivityViewModel @Inject constructor(
appPrefsWrapper.featureAnnouncementShownVersion < cachedAnnouncement.announcementVersion
}

private fun shouldShowStoriesFirst(): Boolean {
return createMenuStoryFirstABExperiment.getVariation() is Treatment
}

private fun getExternalFocusPointInfo(task: QuickStartTask?): List<FocusPointInfo> {
// For now, we only do this for the FOLLOW_SITE task.
val followSitesTaskFocusPointInfo = FocusPointInfo(FOLLOW_SITE, task == FOLLOW_SITE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ import org.wordpress.android.util.BuildConfigWrapper
import org.wordpress.android.util.NoDelayCoroutineDispatcher
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
import org.wordpress.android.util.config.MySiteImprovementsFeatureConfig
import org.wordpress.android.util.experiments.CreateMenuStoryFirstABExperiment
import org.wordpress.android.viewmodel.main.WPMainActivityViewModel.FocusPointInfo

@RunWith(MockitoJUnitRunner::class)
Expand All @@ -58,7 +57,6 @@ class WPMainActivityViewModelTest : BaseUnitTest() {
@Mock lateinit var analyticsTrackerWrapper: AnalyticsTrackerWrapper
@Mock lateinit var mySiteImprovementsFeatureConfig: MySiteImprovementsFeatureConfig
@Mock lateinit var quickStartRepository: QuickStartRepository
@Mock lateinit var createMenuStoryFirstABExperiment: CreateMenuStoryFirstABExperiment

private val featureAnnouncement = FeatureAnnouncement(
"14.7",
Expand Down Expand Up @@ -96,7 +94,6 @@ class WPMainActivityViewModelTest : BaseUnitTest() {
analyticsTrackerWrapper,
mySiteImprovementsFeatureConfig,
quickStartRepository,
createMenuStoryFirstABExperiment,
NoDelayCoroutineDispatcher()
)
viewModel.onFeatureAnnouncementRequested.observeForever(
Expand Down