Skip to content

Commit 40e5d3a

Browse files
committed
Merge branch 'trunk' into Stats-Revamp-v2-Remove-feature-config
2 parents 1278cb4 + 45c8665 commit 40e5d3a

24 files changed

Lines changed: 32 additions & 560 deletions

WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ public void goToBackup() {
175175
public StatsPage goToStats() {
176176
goToMenuTab();
177177
clickQuickActionOrSiteMenuItem(R.id.quick_action_stats_button, R.string.stats);
178+
idleFor(4000);
178179
dismissJetpackAdIfPresent();
179180
waitForElementToBeDisplayedWithoutFailure(R.id.tabLayout);
180181

WordPress/src/jetpack/res/values/strings.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,7 @@
2626

2727
<!-- About button in Me -->
2828
<string name="me_btn_about">About Jetpack</string>
29+
30+
<!-- My Site Initial Tab Default value -->
31+
<string name="initial_screen_entry_value_default_key" translatable="false">@string/initial_screen_entry_value_home</string>
2932
</resources>

WordPress/src/main/java/org/wordpress/android/AppInitializer.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ import org.wordpress.android.support.ZendeskHelper
8181
import org.wordpress.android.ui.ActivityId
8282
import org.wordpress.android.ui.debug.cookies.DebugCookieManager
8383
import org.wordpress.android.ui.mysite.SelectedSiteRepository
84-
import org.wordpress.android.ui.mysite.tabs.MySiteDefaultTabExperiment
8584
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
8685
import org.wordpress.android.ui.notifications.services.NotificationsUpdateServiceStarter
8786
import org.wordpress.android.ui.notifications.utils.NotificationsUtils
@@ -154,7 +153,6 @@ class AppInitializer @Inject constructor(
154153
@Inject lateinit var debugCookieManager: DebugCookieManager
155154
@Inject @Named(APPLICATION_SCOPE) lateinit var appScope: CoroutineScope
156155
@Inject lateinit var selectedSiteRepository: SelectedSiteRepository
157-
@Inject lateinit var mySiteDefaultTabExperiment: MySiteDefaultTabExperiment
158156

159157
// For development and production `AnalyticsTrackerNosara`, for testing a mocked `Tracker` will be injected.
160158
@Inject lateinit var tracker: Tracker
@@ -308,8 +306,6 @@ class AppInitializer @Inject constructor(
308306

309307
debugCookieManager.sync()
310308

311-
initAnalyticsExperimentPropertiesIfNeeded()
312-
313309
initialized = true
314310
}
315311

@@ -683,11 +679,6 @@ class AppInitializer @Inject constructor(
683679
EmojiCompat.init(config)
684680
}
685681

686-
/* If default tab experiment is running, pass along to tracker */
687-
private fun initAnalyticsExperimentPropertiesIfNeeded() {
688-
mySiteDefaultTabExperiment.checkAndSetTrackingPropertiesIfNeeded()
689-
}
690-
691682
@Suppress("unused")
692683
@OnLifecycleEvent(Lifecycle.Event.ON_START)
693684
fun onAppComesFromBackground() {

WordPress/src/main/java/org/wordpress/android/ui/accounts/LoginEpilogueViewModel.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MediatorLiveData
55
import androidx.lifecycle.ViewModel
66
import org.wordpress.android.fluxc.store.SiteStore
7-
import org.wordpress.android.ui.mysite.tabs.MySiteDefaultTabExperiment
87
import org.wordpress.android.ui.prefs.AppPrefsWrapper
98
import org.wordpress.android.util.BuildConfigWrapper
109
import org.wordpress.android.viewmodel.Event
@@ -14,8 +13,7 @@ import javax.inject.Inject
1413
class LoginEpilogueViewModel @Inject constructor(
1514
private val appPrefsWrapper: AppPrefsWrapper,
1615
private val buildConfigWrapper: BuildConfigWrapper,
17-
private val siteStore: SiteStore,
18-
private val mySiteDefaultTabExperiment: MySiteDefaultTabExperiment
16+
private val siteStore: SiteStore
1917
) : ViewModel() {
2018
private val _navigationEvents = MediatorLiveData<Event<LoginNavigationEvents>>()
2119
val navigationEvents: LiveData<Event<LoginNavigationEvents>> = _navigationEvents
@@ -32,10 +30,6 @@ class LoginEpilogueViewModel @Inject constructor(
3230
if (!siteStore.hasSite()) handleNoSitesFound() else handleSitesFound()
3331
}
3432

35-
fun checkAndSetVariantForMySiteDefaultTabExperiment() {
36-
mySiteDefaultTabExperiment.checkAndSetVariantIfNeeded()
37-
}
38-
3933
private fun handleNoSitesFound() {
4034
if (buildConfigWrapper.isJetpackApp && !buildConfigWrapper.isSiteCreationEnabled) {
4135
_navigationEvents.postValue(Event(LoginNavigationEvents.ShowNoJetpackSites))

WordPress/src/main/java/org/wordpress/android/ui/accounts/login/LoginEpilogueFragment.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
173173
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
174174
super.onActivityCreated(savedInstanceState);
175175
if (savedInstanceState == null) {
176-
mParentViewModel.checkAndSetVariantForMySiteDefaultTabExperiment();
177176
AnalyticsTracker.track(AnalyticsTracker.Stat.LOGIN_EPILOGUE_VIEWED);
178177
mUnifiedLoginTracker.track(Step.SUCCESS);
179178
}

WordPress/src/main/java/org/wordpress/android/ui/main/WPMainActivity.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1367,7 +1367,6 @@ public void onAuthenticationChanged(OnAuthenticationChanged event) {
13671367
// We'll handle it in onAccountChanged so we know we have
13681368
// updated account info.
13691369
AppPrefs.setShouldTrackMagicLinkSignup(true);
1370-
mViewModel.checkAndSetVariantForMySiteDefaultTabExperiment();
13711370
mDispatcher.dispatch(AccountActionBuilder.newFetchAccountAction());
13721371
if (mJetpackConnectSource != null) {
13731372
ActivityLauncher.continueJetpackConnect(this, mJetpackConnectSource, getSelectedSite());

WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteViewModel.kt

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class MySiteViewModel @Inject constructor(
164164
private val quickStartTracker: QuickStartTracker,
165165
private val dispatcher: Dispatcher
166166
) : ScopedViewModel(mainDispatcher) {
167-
private var isDefaultABExperimentTabSet: Boolean = false
167+
private var isDefaultTabSet: Boolean = false
168168
private val _onSnackbarMessage = MutableLiveData<Event<SnackbarMessageHolder>>()
169169
private val _onTechInputDialogShown = MutableLiveData<Event<TextInputDialogModel>>()
170170
private val _onBasicDialogShown = MutableLiveData<Event<SiteDialogModel>>()
@@ -209,9 +209,10 @@ class MySiteViewModel @Inject constructor(
209209
listOf(MySiteTabType.ALL)
210210
}
211211

212-
private val defaultABExperimentTab: MySiteTabType
212+
private val defaultTab: MySiteTabType
213213
get() = if (isMySiteTabsEnabled) {
214-
if (appPrefsWrapper.getMySiteInitialScreen() == MySiteTabType.SITE_MENU.label) {
214+
if (appPrefsWrapper.getMySiteInitialScreen(buildConfigWrapper.isJetpackApp) ==
215+
MySiteTabType.SITE_MENU.label) {
215216
MySiteTabType.SITE_MENU
216217
} else {
217218
MySiteTabType.DASHBOARD
@@ -530,20 +531,20 @@ class MySiteViewModel @Inject constructor(
530531
_onNavigation.value = Event(SiteNavigationAction.OpenJetpackPoweredBottomSheet)
531532
}
532533

533-
private fun shouldEnableQuickLinkRibbonFocusPoints() = defaultABExperimentTab == MySiteTabType.DASHBOARD
534+
private fun shouldEnableQuickLinkRibbonFocusPoints() = defaultTab == MySiteTabType.DASHBOARD
534535

535-
private fun shouldEnableSiteItemsFocusPoints() = defaultABExperimentTab != MySiteTabType.DASHBOARD
536+
private fun shouldEnableSiteItemsFocusPoints() = defaultTab != MySiteTabType.DASHBOARD
536537

537538
private fun getCardTypeExclusionFiltersForTab(tabType: MySiteTabType) = when (tabType) {
538539
MySiteTabType.SITE_MENU -> mutableListOf<Type>().apply {
539540
add(Type.DASHBOARD_CARDS)
540-
if (defaultABExperimentTab == MySiteTabType.DASHBOARD) {
541+
if (defaultTab == MySiteTabType.DASHBOARD) {
541542
add(Type.QUICK_START_CARD)
542543
}
543544
add(Type.QUICK_LINK_RIBBON)
544545
}
545546
MySiteTabType.DASHBOARD -> mutableListOf<Type>().apply {
546-
if (defaultABExperimentTab == MySiteTabType.SITE_MENU) {
547+
if (defaultTab == MySiteTabType.SITE_MENU) {
547548
add(Type.QUICK_START_CARD)
548549
}
549550
add(Type.DOMAIN_REGISTRATION_CARD)
@@ -553,8 +554,8 @@ class MySiteViewModel @Inject constructor(
553554
}
554555

555556
private fun shouldIncludeDynamicCards(tabType: MySiteTabType) = when (tabType) {
556-
MySiteTabType.SITE_MENU -> defaultABExperimentTab != MySiteTabType.DASHBOARD
557-
MySiteTabType.DASHBOARD -> defaultABExperimentTab != MySiteTabType.SITE_MENU
557+
MySiteTabType.SITE_MENU -> defaultTab != MySiteTabType.DASHBOARD
558+
MySiteTabType.DASHBOARD -> defaultTab != MySiteTabType.SITE_MENU
558559
MySiteTabType.ALL -> true
559560
}
560561

@@ -720,7 +721,7 @@ class MySiteViewModel @Inject constructor(
720721

721722
private fun onQuickStartTaskTypeItemClick(type: QuickStartTaskType) {
722723
clearActiveQuickStartTask()
723-
if (defaultABExperimentTab == MySiteTabType.DASHBOARD) {
724+
if (defaultTab == MySiteTabType.DASHBOARD) {
724725
cardsTracker.trackQuickStartCardItemClicked(type)
725726
} else {
726727
quickStartTracker.track(Stat.QUICK_START_TAPPED, mapOf(TYPE to type.toString()))
@@ -1074,7 +1075,7 @@ class MySiteViewModel @Inject constructor(
10741075
}
10751076

10761077
fun onCreateSiteResult() {
1077-
isDefaultABExperimentTabSet = false
1078+
isDefaultTabSet = false
10781079
selectDefaultTabIfNeeded()
10791080
}
10801081

@@ -1269,9 +1270,9 @@ class MySiteViewModel @Inject constructor(
12691270
@Suppress("NestedBlockDepth")
12701271
private fun selectDefaultTabIfNeeded() {
12711272
if (!isMySiteTabsEnabled) return
1272-
val index = orderedTabTypes.indexOf(defaultABExperimentTab)
1273+
val index = orderedTabTypes.indexOf(defaultTab)
12731274
if (index != -1) {
1274-
if (isDefaultABExperimentTabSet) {
1275+
if (isDefaultTabSet) {
12751276
// This logic checks if the current default tab is the same as the tab
12761277
// set as initial screen, if yes then return
12771278
_selectTab.value?.let { tab ->
@@ -1281,7 +1282,7 @@ class MySiteViewModel @Inject constructor(
12811282
}
12821283
quickStartRepository.quickStartTaskOriginTab = orderedTabTypes[index]
12831284
_selectTab.postValue(Event(TabNavigation(index, smoothAnimation = false)))
1284-
isDefaultABExperimentTabSet = true
1285+
isDefaultTabSet = true
12851286
}
12861287
}
12871288

@@ -1290,7 +1291,7 @@ class MySiteViewModel @Inject constructor(
12901291
.forEach { domainRegistrationCardShownTracker.trackShown(it.type) }
12911292
siteSelected.cardAndItems.filterIsInstance<DashboardCards>().forEach { cardsTracker.trackShown(it) }
12921293
siteSelected.cardAndItems.filterIsInstance<QuickStartCard>()
1293-
.firstOrNull()?.let { quickStartTracker.trackShown(it.type, defaultABExperimentTab) }
1294+
.firstOrNull()?.let { quickStartTracker.trackShown(it.type, defaultTab) }
12941295
siteSelected.dashboardCardsAndItems.filterIsInstance<QuickStartCard>()
12951296
.firstOrNull()?.let { cardsTracker.trackQuickStartCardShown(quickStartRepository.quickStartType) }
12961297
}

WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/CardsBuilder.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.CardsBuilder
1111
import org.wordpress.android.ui.mysite.cards.quickactions.QuickActionsCardBuilder
1212
import org.wordpress.android.ui.mysite.cards.quicklinksribbon.QuickLinkRibbonBuilder
1313
import org.wordpress.android.ui.mysite.cards.quickstart.QuickStartCardBuilder
14-
import org.wordpress.android.ui.mysite.tabs.MySiteDefaultTabExperiment
1514
import org.wordpress.android.ui.utils.ListItemInteraction
1615
import org.wordpress.android.util.BuildConfigWrapper
1716
import org.wordpress.android.util.config.QuickStartDynamicCardsFeatureConfig
@@ -24,8 +23,7 @@ class CardsBuilder @Inject constructor(
2423
private val quickActionsCardBuilder: QuickActionsCardBuilder,
2524
private val quickStartCardBuilder: QuickStartCardBuilder,
2625
private val quickLinkRibbonBuilder: QuickLinkRibbonBuilder,
27-
private val dashboardCardsBuilder: CardsBuilder,
28-
private val mySiteDefaultTabExperiment: MySiteDefaultTabExperiment
26+
private val dashboardCardsBuilder: CardsBuilder
2927
) {
3028
fun build(
3129
quickActionsCardBuilderParams: QuickActionsCardBuilderParams,
@@ -55,10 +53,7 @@ class CardsBuilder @Inject constructor(
5553
}
5654

5755
private fun shouldShowQuickActionsCard(isMySiteTabsEnabled: Boolean): Boolean {
58-
val isDefaultTabVariantAssignedInExperiment =
59-
mySiteDefaultTabExperiment.isExperimentRunning() && mySiteDefaultTabExperiment.isVariantAssigned()
60-
return buildConfigWrapper.isQuickActionEnabled &&
61-
(!isMySiteTabsEnabled || !isDefaultTabVariantAssignedInExperiment)
56+
return buildConfigWrapper.isQuickActionEnabled && !isMySiteTabsEnabled
6257
}
6358

6459
private fun trackAndBuildDomainRegistrationCard(

WordPress/src/main/java/org/wordpress/android/ui/mysite/tabs/MySiteDefaultTabExperiment.kt

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

WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,6 @@ public enum DeletablePrefKey implements PrefKey {
174174
SHOULD_SCHEDULE_CREATE_SITE_NOTIFICATION,
175175
SHOULD_SHOW_WEEKLY_ROUNDUP_NOTIFICATION,
176176

177-
// Used to indicate if the variant has been assigned for the My Site Tab experiment
178-
MY_SITE_DEFAULT_TAB_EXPERIMENT_VARIANT_ASSIGNED,
179-
180177
SKIPPED_BLOGGING_PROMPT_DAY,
181178
}
182179

@@ -1375,17 +1372,6 @@ public static List<JetpackCapability> getSiteJetpackCapabilities(long remoteSite
13751372
return capabilities;
13761373
}
13771374

1378-
public static boolean isMySiteDefaultTabExperimentVariantAssigned() {
1379-
return getBoolean(
1380-
DeletablePrefKey.MY_SITE_DEFAULT_TAB_EXPERIMENT_VARIANT_ASSIGNED,
1381-
false
1382-
);
1383-
}
1384-
1385-
public static void setMySiteDefaultTabExperimentVariantAssigned() {
1386-
setBoolean(DeletablePrefKey.MY_SITE_DEFAULT_TAB_EXPERIMENT_VARIANT_ASSIGNED, true);
1387-
}
1388-
13891375
public static Date getSkippedPromptDay(int siteId) {
13901376
long promptSkippedMillis = prefs().getLong(getSkippedBloggingPromptDayConfigKey(siteId), 0);
13911377
if (promptSkippedMillis == 0) {
@@ -1406,20 +1392,10 @@ public static void setSkippedPromptDay(@Nullable Date date, int siteId) {
14061392
return DeletablePrefKey.SKIPPED_BLOGGING_PROMPT_DAY.name() + siteId;
14071393
}
14081394

1409-
public static void setInitialScreenFromMySiteDefaultTabExperimentVariant(String variant) {
1410-
// This supports the MySiteDefaultTab AB Experiment.
1411-
// AppSettings are undeletable across logouts and keys are all lower case.
1412-
// This method will be removed when the experiment has completed and thus
1413-
// the settings will be maintained only from the AppSettings view{
1414-
String initialScreen = variant.equals(MySiteTabType.SITE_MENU.getTrackingLabel())
1415-
? MySiteTabType.SITE_MENU.getLabel() : MySiteTabType.DASHBOARD.getLabel();
1416-
setString(UndeletablePrefKey.wp_pref_initial_screen, initialScreen);
1417-
}
1418-
1419-
public static String getMySiteInitialScreen() {
1395+
public static String getMySiteInitialScreen(boolean isJetpackApp) {
14201396
return getString(
14211397
UndeletablePrefKey.wp_pref_initial_screen,
1422-
MySiteTabType.SITE_MENU.getLabel()
1398+
isJetpackApp ? MySiteTabType.DASHBOARD.getLabel() : MySiteTabType.SITE_MENU.getLabel()
14231399
);
14241400
}
14251401

0 commit comments

Comments
 (0)