diff --git a/WordPress/build.gradle b/WordPress/build.gradle
index 8c285b9157e4..417b05ec667f 100644
--- a/WordPress/build.gradle
+++ b/WordPress/build.gradle
@@ -151,7 +151,6 @@ android {
buildConfigField "boolean", "LAND_ON_THE_EDITOR", "false"
buildConfigField "boolean", "QRCODE_AUTH_FLOW", "false"
buildConfigField "boolean", "BETA_SITE_DESIGNS", "false"
- buildConfigField "boolean", "JETPACK_POWERED", "true"
buildConfigField "boolean", "JETPACK_POWERED_BOTTOM_SHEET", "true"
buildConfigField "boolean", "JETPACK_SHARED_LOGIN", "true"
buildConfigField "boolean", "JETPACK_LOCAL_USER_FLAGS", "true"
@@ -159,13 +158,6 @@ android {
buildConfigField "boolean", "JETPACK_READER_SAVED_POSTS", "true"
buildConfigField "boolean", "JETPACK_PROVIDER_SYNC", "true"
buildConfigField "boolean", "JETPACK_MIGRATION_FLOW", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_PHASE_ONE", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_PHASE_TWO", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_PHASE_THREE", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_PHASE_FOUR", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_NEW_USERS", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_STATIC_POSTERS", "false"
- buildConfigField "boolean", "JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS", "false"
buildConfigField "boolean", "PREVENT_DUPLICATE_NOTIFS_REMOTE_FIELD", "false"
buildConfigField "boolean", "OPEN_WEB_LINKS_WITH_JETPACK_FLOW", "false"
buildConfigField "boolean", "ENABLE_BLAZE_FEATURE", "false"
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt b/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
index 86ee49bdf1f0..6b4e28fab941 100644
--- a/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
+++ b/WordPress/src/androidTest/java/org/wordpress/android/e2e/pages/MySitesPage.kt
@@ -148,7 +148,6 @@ class MySitesPage {
)
WPSupportUtils.clickOn(statsButton)
WPSupportUtils.idleFor(4000)
- WPSupportUtils.dismissJetpackAdIfPresent()
WPSupportUtils.waitForElementToBeDisplayedWithoutFailure(R.id.tabLayout)
// Wait for the stats to load
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/support/WPSupportUtils.java b/WordPress/src/androidTest/java/org/wordpress/android/support/WPSupportUtils.java
index 67f88ef2c4ea..90614653904e 100644
--- a/WordPress/src/androidTest/java/org/wordpress/android/support/WPSupportUtils.java
+++ b/WordPress/src/androidTest/java/org/wordpress/android/support/WPSupportUtils.java
@@ -37,7 +37,6 @@
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import org.hamcrest.TypeSafeMatcher;
-import org.wordpress.android.BuildConfig;
import org.wordpress.android.R;
import org.wordpress.android.util.image.ImageType;
@@ -817,23 +816,4 @@ public static void scrollIntoView(Integer scrollableContainerID, ViewInteraction
swipeCount += 1;
}
}
-
- public static void dismissJetpackAdIfPresent() {
- if (BuildConfig.IS_JETPACK_APP) {
- return;
- }
-
- String jetpackAdText = "Stats, Reader, Notifications, and other features are powered by Jetpack.";
- ViewInteraction jetpackBanner = onView(withText(jetpackAdText));
-
- // Dismiss Jetpack ad that might be shown after Sign-Up or after opening Stats
- if (isElementDisplayed(jetpackBanner)) {
- clickOn(onView(withId(R.id.secondary_button)));
- waitForElementToNotBeDisplayed(jetpackBanner);
-
- // Account for potential Emulator slowness on CI: the case of banner text
- // being already hidden, but top part of banner still sliding away
- idleFor(1000);
- }
- }
}
diff --git a/WordPress/src/debug/AndroidManifest.xml b/WordPress/src/debug/AndroidManifest.xml
index e036ed252073..9bab00a1244e 100644
--- a/WordPress/src/debug/AndroidManifest.xml
+++ b/WordPress/src/debug/AndroidManifest.xml
@@ -34,9 +34,6 @@
android:supportsRtl="true"
tools:replace="android:name,android:supportsRtl"
tools:ignore="MissingApplicationIcon">
-
-
-
JetpackPoweredScreen.WithDynamicText.BACKUP
- else -> JetpackPoweredScreen.WithDynamicText.ACTIVITY_LOG
- }
-
- binding?.root?.post {
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = binding?.root?.findViewById(scrollableContainerId) as? RecyclerView
- ?: return@post
-
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- this,
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding?.jetpackBanner?.root?.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(supportFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
- }
-
/**
* It was decided to reuse the 'Activity Log' screen instead of creating a new 'Backup' screen. This was due to the
* fact that there will be lots of code that would need to be duplicated for the new 'Backup' screen. On the other
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsActivity.kt
index c38643b91b40..ad3d56ea40ed 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsActivity.kt
@@ -9,7 +9,6 @@ import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.databinding.DebugSettingsActivityBinding
import org.wordpress.android.ui.ActivityLauncher
-import org.wordpress.android.ui.debug.previews.PreviewFragmentActivity.Companion.previewFragmentInActivity
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.viewmodel.observeEvent
import javax.inject.Inject
@@ -42,9 +41,6 @@ class DebugSettingsActivity : BaseAppCompatActivity() {
when (it) {
is DebugSettingsViewModel.NavigationAction.DebugCookies ->
ActivityLauncher.viewDebugCookies(this@DebugSettingsActivity)
- is DebugSettingsViewModel.NavigationAction.PreviewFragment -> {
- previewFragmentInActivity(it.name)
- }
is DebugSettingsViewModel.NavigationAction.DebugFlags ->
ActivityLauncher.viewDebugSharedPreferenceFlags(this@DebugSettingsActivity)
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsItemViewHolder.kt b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsItemViewHolder.kt
index c2cc646a2c16..c6eb8c9c7b4f 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsItemViewHolder.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsItemViewHolder.kt
@@ -4,7 +4,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.LayoutRes
-import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import org.wordpress.android.R
import org.wordpress.android.databinding.DebugSettingsFeatureBinding
@@ -57,8 +56,6 @@ sealed class DebugSettingsItemViewHolder(
}
featureEnabled.setOnCheckedChangeListener { _, _ -> item.toggleAction.toggle() }
itemView.setOnClickListener { item.toggleAction.toggle() }
- previewIcon.isVisible = item.preview != null
- previewIcon.setOnClickListener { item.preview?.invoke() }
}
class RemoteFieldConfigViewHolder(parent: ViewGroup) : DebugSettingsItemViewHolder(
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsViewModel.kt
index 75d12e5fa208..cc6f398eb7f4 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/debug/DebugSettingsViewModel.kt
@@ -7,8 +7,7 @@ import org.wordpress.android.fluxc.persistence.FeatureFlagConfigDao
import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.modules.UI_THREAD
import org.wordpress.android.ui.debug.DebugSettingsViewModel.NavigationAction.DebugCookies
-import org.wordpress.android.ui.debug.previews.PREVIEWS
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.NotificationManagerWrapper
import org.wordpress.android.util.DebugUtils
import org.wordpress.android.ui.debug.UiItem.FeatureFlag.RemoteFeatureFlag
@@ -38,7 +37,7 @@ class DebugSettingsViewModel
private val weeklyRoundupNotifier: WeeklyRoundupNotifier,
private val notificationManager: NotificationManagerWrapper,
private val contextProvider: ContextProvider,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
) : ScopedViewModel(mainDispatcher) {
private val _uiState = MutableLiveData()
val uiState: LiveData = _uiState
@@ -57,13 +56,7 @@ class DebugSettingsViewModel
private fun refresh(debugSettingsType: DebugSettingsType) {
val uiItems: MutableList = when (debugSettingsType) {
- DebugSettingsType.REMOTE_FEATURES -> buildRemoteFeatures().map {
- it.apply {
- preview = { onFeaturePreviewClick(this.remoteKey) }.takeIf {
- state == UiItem.FeatureFlag.State.ENABLED && PREVIEWS.contains(remoteKey)
- }
- }
- }.toMutableList()
+ DebugSettingsType.REMOTE_FEATURES -> buildRemoteFeatures().toMutableList()
DebugSettingsType.REMOTE_FIELD_CONFIGS -> buildRemoteFieldConfigs().toMutableList()
DebugSettingsType.FEATURES_IN_DEVELOPMENT -> buildDevelopedFeatures().toMutableList()
@@ -75,12 +68,8 @@ class DebugSettingsViewModel
_onNavigation.value = Event(DebugCookies)
}
- private fun onFeaturePreviewClick(key: String) {
- _onNavigation.value = Event(NavigationAction.PreviewFragment(key))
- }
-
fun onForceShowWeeklyRoundupClick() = launch(bgDispatcher) {
- if (!jetpackFeatureRemovalPhaseHelper.shouldShowNotifications())
+ if (!jetpackFeatureRemovalHelper.shouldShowNotifications())
return@launch
weeklyRoundupNotifier.buildNotifications().forEach {
notificationManager.notify(it.id, it.asNotificationCompatBuilder(contextProvider.getContext()).build())
@@ -160,6 +149,5 @@ class DebugSettingsViewModel
sealed class NavigationAction {
object DebugCookies : NavigationAction()
object DebugFlags : NavigationAction()
- data class PreviewFragment(val name: String) : NavigationAction()
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/debug/UIState.kt b/WordPress/src/main/java/org/wordpress/android/ui/debug/UIState.kt
index e63af1a8235b..8d464e0e36ef 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/debug/UIState.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/debug/UIState.kt
@@ -38,9 +38,6 @@ sealed class UiItem(open val type: DebugSettingsType) {
)
enum class State { ENABLED, DISABLED, UNKNOWN }
-
- @Suppress("DataClassShouldBeImmutable") // We're not in prod code or diffing here, the rule is moot
- var preview: (() -> Unit)? = null
}
data class Field(val remoteFieldKey: String, val remoteFieldValue: String, val remoteFieldSource: String) :
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/debug/previews/PreviewFragmentActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/debug/previews/PreviewFragmentActivity.kt
deleted file mode 100644
index 747691fab2a7..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/debug/previews/PreviewFragmentActivity.kt
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.wordpress.android.ui.debug.previews
-
-import android.app.Activity
-import android.content.Intent
-import android.os.Bundle
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.fragment.app.commit
-import dagger.hilt.android.AndroidEntryPoint
-import org.wordpress.android.ui.main.jetpack.staticposter.JetpackStaticPosterFragment
-import org.wordpress.android.ui.main.jetpack.staticposter.UiData
-import org.wordpress.android.util.config.JetpackFeatureRemovalStaticPostersConfig.Companion.JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD
-import android.R as AndroidR
-
-@AndroidEntryPoint
-class PreviewFragmentActivity : FragmentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- supportFragmentManager.commit {
- val key = requireNotNull(intent.getStringExtra(KEY))
- val factory = requireNotNull(PREVIEWS[key])
- add(AndroidR.id.content, factory.invoke())
- }
- }
-
- companion object {
- const val KEY = "KEY"
-
- fun Fragment.previewFragmentInActivity(key: String) {
- startActivity(
- Intent(requireContext(), this@Companion::class.java.enclosingClass).apply {
- putExtra(KEY, key)
- }
- )
- }
-
- fun Activity.previewFragmentInActivity(key: String) {
- startActivity(
- Intent(this, this@Companion::class.java.enclosingClass).apply {
- putExtra(KEY, key)
- }
- )
- }
- }
-}
-
-val PREVIEWS = mapOf(
- JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD to { JetpackStaticPosterFragment.newInstance(UiData.STATS) },
-)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt
index 0ff32ecea192..ddc63f3eb96e 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkNavigator.kt
@@ -96,8 +96,6 @@ class DeepLinkNavigator
OpenLoginPrologue -> ActivityLauncher.showLoginPrologue(activity)
is OpenJetpackForDeepLink ->
ActivityLauncher.openJetpackForDeeplink(activity, navigateAction.action, navigateAction.uri)
- is NavigateAction.OpenJetpackStaticPosterView ->
- ActivityLauncher.showJetpackStaticPoster(activity)
is NavigateAction.OpenMediaForSite -> activityNavigator.openMediaInNewStack(activity, navigateAction.site)
NavigateAction.OpenMedia -> activityNavigator.openMediaInNewStack(activity)
is NavigateAction.OpenMediaPickerForSite -> activityNavigator.openMediaPickerInNewStack(
@@ -168,7 +166,6 @@ class DeepLinkNavigator
object OpenMySite : NavigateAction()
object OpenLoginPrologue : NavigateAction()
data class OpenJetpackForDeepLink(val action: String?, val uri: UriWrapper) : NavigateAction()
- object OpenJetpackStaticPosterView : NavigateAction()
data class OpenMediaForSite(val site: SiteModel) : NavigateAction()
object OpenMedia : NavigateAction()
data class OpenMediaPickerForSite(val site: SiteModel) : NavigateAction()
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverActivity.java
index 66939626a198..dfca830e2863 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverActivity.java
@@ -128,9 +128,7 @@ private void observeOverlayEvents() {
private void showOverlay() {
JetpackFeatureFullScreenOverlayFragment
.newInstance(
- null,
true,
- false,
JetpackFeatureCollectionOverlaySource.UNSPECIFIED)
.show(getSupportFragmentManager(), JetpackFeatureFullScreenOverlayFragment.TAG);
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandler.kt b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandler.kt
index c083f900c464..f271c7a7b1bd 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandler.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandler.kt
@@ -2,7 +2,6 @@ package org.wordpress.android.ui.deeplinks.handlers
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction
-import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenJetpackStaticPosterView
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStats
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStatsForSite
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenStatsForSiteAndTimeframe
@@ -11,15 +10,13 @@ import org.wordpress.android.ui.deeplinks.DeepLinkUriUtils
import org.wordpress.android.ui.deeplinks.DeepLinkingIntentReceiverViewModel.Companion.APPLINK_SCHEME
import org.wordpress.android.ui.deeplinks.DeepLinkingIntentReceiverViewModel.Companion.HOST_WORDPRESS_COM
import org.wordpress.android.ui.deeplinks.DeepLinkingIntentReceiverViewModel.Companion.SITE_DOMAIN
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.stats.StatsTimeframe
import org.wordpress.android.util.UriWrapper
import javax.inject.Inject
class StatsLinkHandler
@Inject constructor(
- private val deepLinkUriUtils: DeepLinkUriUtils,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val deepLinkUriUtils: DeepLinkUriUtils
) : DeepLinkHandler {
/**
* Builds navigate action from URL like:
@@ -35,7 +32,6 @@ class StatsLinkHandler
val timeframeIndex = if (site == null) (length - 1) else (length - 2)
val statsTimeframe = pathSegments.getOrNull(timeframeIndex)?.toStatsTimeframe()
return when {
- jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage() -> OpenJetpackStaticPosterView
site != null && statsTimeframe != null -> {
OpenStatsForSiteAndTimeframe(site, statsTimeframe)
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/ScanActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/ScanActivity.kt
index f508a91da225..6eb83c2cf1a9 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/ScanActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/ScanActivity.kt
@@ -4,31 +4,17 @@ import android.content.Intent
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
-import android.view.View
-import androidx.recyclerview.widget.RecyclerView
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.databinding.ScanActivityBinding
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.ui.ActivityLauncher
-import org.wordpress.android.ui.ScrollableViewInitializedListener
import org.wordpress.android.ui.main.BaseAppCompatActivity
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
-import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.extensions.getSerializableExtraCompat
-import javax.inject.Inject
import android.R as AndroidR
@AndroidEntryPoint
-class ScanActivity : BaseAppCompatActivity(), ScrollableViewInitializedListener {
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
- @Inject
- lateinit var uiHelpers: UiHelpers
-
+class ScanActivity : BaseAppCompatActivity() {
private var binding: ScanActivityBinding? = null
override fun onNewIntent(intent: Intent) {
@@ -49,37 +35,6 @@ class ScanActivity : BaseAppCompatActivity(), ScrollableViewInitializedListener
}
}
- override fun onScrollableViewInitialized(containerId: Int) {
- initJetpackBanner(containerId)
- }
-
- private fun initJetpackBanner(scrollableContainerId: Int) {
- if (jetpackBrandingUtils.shouldShowJetpackBrandingForPhaseOne()) {
- val screen = JetpackPoweredScreen.WithDynamicText.SCAN
- binding?.root?.post {
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = binding?.root?.findViewById(scrollableContainerId) as? RecyclerView
- ?: return@post
-
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- this,
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding?.jetpackBanner?.root?.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(supportFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
- }
-
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == AndroidR.id.home) {
onBackPressedDispatcher.onBackPressed()
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/history/ScanHistoryFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/history/ScanHistoryFragment.kt
index ce3239a0f662..49a56a0fe923 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/history/ScanHistoryFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpack/scan/history/ScanHistoryFragment.kt
@@ -9,7 +9,6 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.MenuProvider
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
-import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
import com.google.android.material.tabs.TabLayout.Tab
@@ -20,14 +19,11 @@ import org.wordpress.android.WordPress
import org.wordpress.android.databinding.FullscreenErrorWithRetryBinding
import org.wordpress.android.databinding.ScanHistoryFragmentBinding
import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.ui.ScrollableViewInitializedListener
import org.wordpress.android.ui.jetpack.scan.history.ScanHistoryViewModel.TabUiState
import org.wordpress.android.ui.jetpack.scan.history.ScanHistoryViewModel.UiState.ContentUiState
import org.wordpress.android.ui.jetpack.scan.history.ScanHistoryViewModel.UiState.ErrorUiState
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.extensions.getSerializableCompat
import org.wordpress.android.util.extensions.getSerializableExtraCompat
import javax.inject.Inject
@@ -38,8 +34,6 @@ class ScanHistoryFragment : Fragment(R.layout.scan_history_fragment), MenuProvid
@Inject
lateinit var uiHelpers: UiHelpers
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
private val viewModel: ScanHistoryViewModel by activityViewModels()
private var binding: ScanHistoryFragmentBinding? = null
@@ -154,33 +148,5 @@ class ScanHistoryFragment : Fragment(R.layout.scan_history_fragment), MenuProvid
override fun onScrollableViewInitialized(containerId: Int) {
binding?.appbarMain?.liftOnScrollTargetViewId = containerId
- initJetpackBanner(containerId)
- }
-
- private fun initJetpackBanner(scrollableContainerId: Int) {
- if (jetpackBrandingUtils.shouldShowJetpackBrandingForPhaseOne()) {
- val screen = JetpackPoweredScreen.WithDynamicText.SCAN
- binding?.root?.post {
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = binding?.root?.findViewById(scrollableContainerId) as? RecyclerView
- ?: return@post
-
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding?.jetpackBanner?.root?.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackBrandingUiState.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackBrandingUiState.kt
deleted file mode 100644
index 0ea23d466929..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackBrandingUiState.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import org.wordpress.android.R
-import java.time.LocalDate
-import java.time.temporal.ChronoUnit
-
-sealed class JetpackBrandingUiState {
- sealed interface Indeterminate
- sealed interface Pluralisable {
- val number: Long
- val oneRes: Int
- val otherRes: Int
-
- companion object {
- val RES_ARE_MOVING_IN = R.string.wp_jetpack_powered_phase_3_feature_are_moving_in
- val RES_IS_MOVING_IN = R.string.wp_jetpack_powered_phase_3_feature_is_moving_in
- }
- }
-
- object Soon : JetpackBrandingUiState(), Indeterminate {
- val RES_ARE_MOVING_SOON = R.string.wp_jetpack_powered_phase_3_feature_are_moving_soon
- val RES_IS_MOVING_SOON = R.string.wp_jetpack_powered_phase_3_feature_is_moving_soon
- }
-
- data class Weeks(override val number: Long) : JetpackBrandingUiState(), Pluralisable {
- override val oneRes = R.string.weeks_quantity_one
- override val otherRes = R.string.weeks_quantity_other
- }
-
- data class Days(override val number: Long) : JetpackBrandingUiState(), Pluralisable {
- override val oneRes = R.string.days_quantity_one
- override val otherRes = R.string.days_quantity_other
- }
-
- object Unknown : JetpackBrandingUiState(), Indeterminate
- object Passed : JetpackBrandingUiState()
-
- companion object {
- val RES_JP_POWERED = R.string.wp_jetpack_powered
-
- fun between(startDate: LocalDate, endDate: LocalDate): JetpackBrandingUiState {
- val days = ChronoUnit.DAYS.between(startDate, endDate)
- return when {
- days > ChronoUnit.MONTHS.duration.toDays() -> Soon
- days >= ChronoUnit.WEEKS.duration.toDays() -> Weeks(ChronoUnit.WEEKS.between(startDate, endDate))
- days >= 1 || startDate == endDate -> Days(days.coerceAtLeast(1))
- days < 0 -> Passed
- else -> Unknown
- }
- }
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayFragment.kt
index df93b4ade2f3..ce19049634de 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayFragment.kt
@@ -12,16 +12,12 @@ import org.wordpress.android.databinding.JetpackFeatureRemovalOverlayBinding
import org.wordpress.android.ui.ActivityLauncherWrapper
import org.wordpress.android.ui.ActivityLauncherWrapper.Companion.CAMPAIGN_JETPACK_OVERLAY
import org.wordpress.android.ui.ActivityLauncherWrapper.Companion.JETPACK_PACKAGE_NAME
-import org.wordpress.android.ui.WPWebViewActivity
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.DismissDialog
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.ForwardToJetpack
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.OpenMigrationInfoLink
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.OpenPlayStore
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.util.RtlUtils
-import org.wordpress.android.util.UrlUtils
import org.wordpress.android.util.extensions.exhaustive
import org.wordpress.android.util.extensions.fillScreen
import org.wordpress.android.util.extensions.getSerializableCompat
@@ -54,9 +50,7 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.init(
- getSiteScreen(),
getIfDeepLinkOverlay(),
- getIfFeatureCollectionOverlay(),
getFeatureCollectionOverlaysSource(),
RtlUtils.isRtl(view.context)
)
@@ -64,12 +58,8 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
(dialog as? BottomSheetDialog)?.fillScreen()
}
- private fun getSiteScreen() = arguments?.getSerializableCompat(OVERLAY_SCREEN_TYPE)
-
private fun getIfDeepLinkOverlay() = arguments?.getBoolean(IS_DEEP_LINK_OVERLAY) ?: false
- private fun getIfFeatureCollectionOverlay() = arguments?.getBoolean(IS_FEATURE_COLLECTION_OVERLAY) ?: false
-
private fun getFeatureCollectionOverlaysSource() = requireNotNull(
arguments?.getSerializableCompat(FEATURE_COLLECTION_OVERLAY_SOURCE)
)
@@ -93,14 +83,6 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
is ForwardToJetpack -> {
dismiss()
}
- is OpenMigrationInfoLink -> {
- activity?.let {
- WPWebViewActivity.openURL(
- requireContext(),
- UrlUtils.addUrlSchemeIfNeeded(action.url, true)
- )
- }
- }
}.exhaustive
}
}
@@ -110,26 +92,17 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
) {
updateVisibility(jetpackPoweredOverlayUIState.componentVisibility)
updateContent(jetpackPoweredOverlayUIState.overlayContent)
- setClickListener(
- jetpackPoweredOverlayUIState.componentVisibility,
- jetpackPoweredOverlayUIState.overlayContent.migrationInfoUrl
- )
+ setClickListener(jetpackPoweredOverlayUIState.componentVisibility)
}
private fun JetpackFeatureRemovalOverlayBinding.setClickListener(
- componentVisibility: JetpackFeatureOverlayComponentVisibility,
- migrationInfoRedirectUrl: String? = null
+ componentVisibility: JetpackFeatureOverlayComponentVisibility
) {
primaryButton.setOnClickListener {
viewModel.openJetpackAppDownloadLink()
}
if (componentVisibility.closeButton) closeButton.setOnClickListener { viewModel.closeBottomSheet() }
if (componentVisibility.secondaryButton) secondaryButton.setOnClickListener { viewModel.continueToFeature() }
- if (componentVisibility.migrationInfoText && !migrationInfoRedirectUrl.isNullOrEmpty()) {
- migrationInfoText.setOnClickListener {
- viewModel.openJetpackMigrationInfoLink(migrationInfoRedirectUrl)
- }
- }
}
private fun JetpackFeatureRemovalOverlayBinding.updateVisibility(
@@ -143,8 +116,6 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
secondaryButton.setVisible(it.secondaryButton)
migrationHelperText.setVisible(it.migrationText)
closeButton.setVisible(it.closeButton)
- migrationInfoText.setVisible(it.migrationInfoText)
- newUsersContentViewParent.newUsersContentView.setVisible(it.newUsersContent)
}
}
@@ -156,7 +127,6 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
uiHelpers.setTextOrHide(caption, it.caption)
primaryButton.text = getString(it.primaryButtonText)
uiHelpers.setTextOrHide(migrationHelperText, it.migrationText)
- uiHelpers.setTextOrHide(migrationInfoText, it.migrationInfoText)
uiHelpers.setTextOrHide(secondaryButton, it.secondaryButtonText)
}
}
@@ -168,23 +138,17 @@ class JetpackFeatureFullScreenOverlayFragment : BottomSheetDialogFragment() {
companion object {
const val TAG = "JETPACK_POWERED_OVERLAY_FULL_SCREEN_FRAGMENT"
- private const val OVERLAY_SCREEN_TYPE = "KEY_JETPACK_OVERLAY_SCREEN"
private const val IS_DEEP_LINK_OVERLAY = "KEY_IS_DEEP_LINK_OVERLAY"
- private const val IS_FEATURE_COLLECTION_OVERLAY = "KEY_IS_FEATURE_COLLECTION_OVERLAY"
private const val FEATURE_COLLECTION_OVERLAY_SOURCE = "KEY_FEATURE_COLLECTION_OVERLAY_SOURCE"
@JvmStatic
fun newInstance(
- jetpackFeatureOverlayScreenType: JetpackFeatureOverlayScreenType? = null,
isDeepLinkOverlay: Boolean = false,
- isFeatureCollectionOverlay: Boolean = false,
featureCollectionOverlaySource: JetpackFeatureCollectionOverlaySource? =
JetpackFeatureCollectionOverlaySource.UNSPECIFIED
) = JetpackFeatureFullScreenOverlayFragment().apply {
arguments = Bundle().apply {
- putSerializable(OVERLAY_SCREEN_TYPE, jetpackFeatureOverlayScreenType)
putBoolean(IS_DEEP_LINK_OVERLAY, isDeepLinkOverlay)
- putBoolean(IS_FEATURE_COLLECTION_OVERLAY, isFeatureCollectionOverlay)
putSerializable(FEATURE_COLLECTION_OVERLAY_SOURCE, featureCollectionOverlaySource)
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayViewModel.kt
index 03268132545a..0d7d44fd1d9d 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureFullScreenOverlayViewModel.kt
@@ -4,31 +4,20 @@ import androidx.lifecycle.LiveData
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import org.wordpress.android.modules.UI_THREAD
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.OpenMigrationInfoLink
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackOverlayDismissalType.CLOSE_BUTTON
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackOverlayDismissalType.CONTINUE_BUTTON
-import org.wordpress.android.util.config.JPDeadlineConfig
-import org.wordpress.android.util.config.PhaseFourBlogPostLinkConfig
-import org.wordpress.android.util.config.PhaseThreeBlogPostLinkConfig
-import org.wordpress.android.util.config.PhaseTwoBlogPostLinkConfig
import org.wordpress.android.viewmodel.ScopedViewModel
import org.wordpress.android.viewmodel.SingleLiveEvent
import javax.inject.Inject
import javax.inject.Named
@HiltViewModel
-@Suppress("LongParameterList")
class JetpackFeatureFullScreenOverlayViewModel @Inject constructor(
@Named(UI_THREAD) mainDispatcher: CoroutineDispatcher,
private val jetpackFeatureOverlayContentBuilder: JetpackFeatureOverlayContentBuilder,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
- private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil,
- private val jpDeadlineConfig: JPDeadlineConfig,
- private val phaseTwoBlogPostLinkConfig: PhaseTwoBlogPostLinkConfig,
- private val phaseThreeBlogPostLinkConfig: PhaseThreeBlogPostLinkConfig,
- private val phaseFourBlogPostLinkConfig: PhaseFourBlogPostLinkConfig
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
+ private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
) : ScopedViewModel(mainDispatcher) {
private val _uiState = SingleLiveEvent()
val uiState: LiveData = _uiState
@@ -36,9 +25,7 @@ class JetpackFeatureFullScreenOverlayViewModel @Inject constructor(
private val _action = SingleLiveEvent()
val action: LiveData = _action
- private lateinit var screenType: JetpackFeatureOverlayScreenType
private var isDeepLinkOverlayScreen: Boolean = false
- private var isFeatureCollectionOverlayScreen: Boolean = false
private var featureCollectionOverlayOrigin: JetpackFeatureCollectionOverlaySource =
JetpackFeatureCollectionOverlaySource.UNSPECIFIED
@@ -46,46 +33,32 @@ class JetpackFeatureFullScreenOverlayViewModel @Inject constructor(
if (isDeepLinkOverlayScreen) {
_action.value = JetpackFeatureOverlayActions.ForwardToJetpack
jetpackFeatureRemovalOverlayUtil.trackInstallJetpackTappedInDeepLinkOverlay()
- } else if (isFeatureCollectionOverlayScreen) {
+ } else {
_action.value = JetpackFeatureOverlayActions.OpenPlayStore
jetpackFeatureRemovalOverlayUtil.trackInstallJetpackTappedInFeatureCollectionOverlay(
featureCollectionOverlayOrigin
)
- } else {
- _action.value = JetpackFeatureOverlayActions.OpenPlayStore
- jetpackFeatureRemovalOverlayUtil.trackInstallJetpackTapped(screenType)
}
}
- fun continueToFeature() {
- _action.value = JetpackFeatureOverlayActions.DismissDialog
- if (isDeepLinkOverlayScreen)
- jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissedInDeepLinkOverlay(CONTINUE_BUTTON)
- else if (isFeatureCollectionOverlayScreen)
- jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissedInFeatureCollectionOverlay(
- featureCollectionOverlayOrigin,
- CONTINUE_BUTTON
- )
- else jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissed(screenType, CONTINUE_BUTTON)
- }
+ fun continueToFeature() = dismiss(CONTINUE_BUTTON)
+
+ fun closeBottomSheet() = dismiss(CLOSE_BUTTON)
- fun closeBottomSheet() {
+ private fun dismiss(dismissalType: JetpackFeatureRemovalOverlayUtil.JetpackOverlayDismissalType) {
_action.value = JetpackFeatureOverlayActions.DismissDialog
- if (isDeepLinkOverlayScreen)
- jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissedInDeepLinkOverlay(CLOSE_BUTTON)
- else if (isFeatureCollectionOverlayScreen)
+ if (isDeepLinkOverlayScreen) {
+ jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissedInDeepLinkOverlay(dismissalType)
+ } else {
jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissedInFeatureCollectionOverlay(
featureCollectionOverlayOrigin,
- CLOSE_BUTTON
+ dismissalType
)
- else jetpackFeatureRemovalOverlayUtil.trackBottomSheetDismissed(screenType, CLOSE_BUTTON)
+ }
}
- @Suppress("ReturnCount", "LongParameterList")
fun init(
- overlayScreenType: JetpackFeatureOverlayScreenType?,
isDeepLinkOverlay: Boolean,
- isFeatureCollectionOverlay: Boolean,
featureCollectionOverlaySource: JetpackFeatureCollectionOverlaySource,
rtlLayout: Boolean
) {
@@ -96,57 +69,12 @@ class JetpackFeatureFullScreenOverlayViewModel @Inject constructor(
return
}
- if (isFeatureCollectionOverlay) {
- val currentPhase = getCurrentPhase()
- ?: return _action.postValue(JetpackFeatureOverlayActions.DismissDialog)
- isFeatureCollectionOverlayScreen = true
- featureCollectionOverlayOrigin = featureCollectionOverlaySource
- _uiState.postValue(
- jetpackFeatureOverlayContentBuilder.buildFeatureCollectionOverlayState(
- rtlLayout,
- currentPhase,
- getBlogPostLinkForTheCurrentPhase()
- )
- )
- jetpackFeatureRemovalOverlayUtil.onFeatureCollectionOverlayShown(featureCollectionOverlaySource)
- return
- }
-
- val currentPhase = getCurrentPhase()
- ?: return _action.postValue(JetpackFeatureOverlayActions.DismissDialog)
- screenType = overlayScreenType ?: return
- val params = JetpackFeatureOverlayContentBuilderParams(
- currentPhase = currentPhase,
- isRtl = rtlLayout,
- feature = overlayScreenType,
- jpDeadlineDate = jpDeadlineConfig.getValue(),
- phaseTwoBlogPostLink = phaseTwoBlogPostLinkConfig.getValue(),
- phaseThreeBlogPostLink = phaseThreeBlogPostLinkConfig.getValue()
- )
- _uiState.postValue(jetpackFeatureOverlayContentBuilder.build(params = params))
- jetpackFeatureRemovalOverlayUtil.onOverlayShown(overlayScreenType)
- }
-
- private fun getCurrentPhase() = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- fun openJetpackMigrationInfoLink(migrationInfoRedirectUrl: String) {
- if (isFeatureCollectionOverlayScreen) {
- jetpackFeatureRemovalOverlayUtil.trackLearnMoreAboutMigrationClickedInFeatureCollectionOverlay(
- featureCollectionOverlayOrigin
- )
- } else {
- jetpackFeatureRemovalOverlayUtil.trackLearnMoreAboutMigrationClicked(screenType)
- }
- _action.value = OpenMigrationInfoLink(migrationInfoRedirectUrl)
- }
-
- private fun getBlogPostLinkForTheCurrentPhase(): String? {
- return when (getCurrentPhase()) {
- JetpackFeatureRemovalPhase.PhaseTwo -> phaseTwoBlogPostLinkConfig.getValue()
- JetpackFeatureRemovalPhase.PhaseThree -> phaseThreeBlogPostLinkConfig.getValue()
- JetpackFeatureRemovalPhase.PhaseFour -> phaseFourBlogPostLinkConfig.getValue()
- else -> null
+ if (!jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
+ return _action.postValue(JetpackFeatureOverlayActions.DismissDialog)
}
+ featureCollectionOverlayOrigin = featureCollectionOverlaySource
+ _uiState.postValue(jetpackFeatureOverlayContentBuilder.buildFeatureCollectionOverlayState(rtlLayout))
+ jetpackFeatureRemovalOverlayUtil.onFeatureCollectionOverlayShown(featureCollectionOverlaySource)
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilder.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilder.kt
index a0c3290e5ddc..13c659a2f01a 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilder.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilder.kt
@@ -1,331 +1,32 @@
package org.wordpress.android.ui.jetpackoverlay
import org.wordpress.android.R
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseNewUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseSelfHostedUsers
-import org.wordpress.android.ui.utils.HtmlMessageUtils
-import org.wordpress.android.ui.utils.UiString
import org.wordpress.android.ui.utils.UiString.UiStringRes
-import org.wordpress.android.ui.utils.UiString.UiStringText
-import org.wordpress.android.util.DateTimeUtilsWrapper
import javax.inject.Inject
import javax.inject.Singleton
-// Format 2020-12-22
-const val JETPACK_OVERLAY_ORIGINAL_DATE_FORMAT = "yyyy-MM-dd"
-
-// Format Decemeber 22, 2020
-const val JETPACK_OVERLAY_TARGET_DATE_FORMAT = "MMMM dd, yyyy"
-
@Singleton
-class JetpackFeatureOverlayContentBuilder @Inject constructor(
- private val htmlMessageUtils: HtmlMessageUtils,
- private val dateTimeUtilsWrapper: DateTimeUtilsWrapper
-) {
- fun build(params: JetpackFeatureOverlayContentBuilderParams): JetpackFeatureOverlayUIState {
- return when (params.currentPhase) {
- is PhaseOne -> getStateForPhaseOne(params, params.feature!!)
- is PhaseTwo -> getStateForPhaseTwo(params)
- is PhaseThree -> getStateForPhaseThree(params)
- else -> TODO()
- }
- }
-
- private fun getStateForPhaseThree(
- params: JetpackFeatureOverlayContentBuilderParams
- ): JetpackFeatureOverlayUIState {
- val componentVisibility = JetpackFeatureOverlayComponentVisibility.PhaseThree()
- val content = when (params.feature!!) {
- JetpackFeatureOverlayScreenType.STATS -> getStateForPhaseTwoStats(
- params,
- params.jpDeadlineDate,
- params.phaseThreeBlogPostLink
- )
- JetpackFeatureOverlayScreenType.NOTIFICATIONS -> getStateForPhaseTwoNotifications(
- params,
- params.jpDeadlineDate,
- params.phaseThreeBlogPostLink
- )
- JetpackFeatureOverlayScreenType.READER -> getStateForPhaseTwoReader(
- params,
- params.jpDeadlineDate,
- params.phaseThreeBlogPostLink
- )
- }.copy(
- migrationText = R.string.wp_jetpack_feature_removal_overlay_migration_helper_text
- )
- return JetpackFeatureOverlayUIState(componentVisibility, content)
- }
-
- private fun getStateForPhaseTwo(
- params: JetpackFeatureOverlayContentBuilderParams
- ): JetpackFeatureOverlayUIState {
- val componentVisibility = JetpackFeatureOverlayComponentVisibility.PhaseTwo()
- val content = when (params.feature!!) {
- JetpackFeatureOverlayScreenType.STATS -> getStateForPhaseTwoStats(
- params,
- params.jpDeadlineDate,
- params.phaseTwoBlogPostLink
- )
- JetpackFeatureOverlayScreenType.NOTIFICATIONS -> getStateForPhaseTwoNotifications(
- params,
- params.jpDeadlineDate,
- params.phaseTwoBlogPostLink
- )
- JetpackFeatureOverlayScreenType.READER -> getStateForPhaseTwoReader(
- params,
- params.jpDeadlineDate,
- params.phaseTwoBlogPostLink
- )
- }
- return JetpackFeatureOverlayUIState(componentVisibility, content)
- }
-
- private fun getStateForPhaseTwoStats(
- params: JetpackFeatureOverlayContentBuilderParams,
- jpDeadlineDate: String?,
- blogPostLink: String?
- ): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (params.isRtl) R.raw.jp_stats_rtl else R.raw.jp_stats_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_title_stats,
- caption = getCaptionForPhaseTwoAndThree(jpDeadlineDate),
- migrationInfoText = if (!blogPostLink.isNullOrEmpty())
- R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text else null,
- migrationInfoUrl = blogPostLink,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_stats
- )
- }
-
- private fun getStateForPhaseTwoReader(
- params: JetpackFeatureOverlayContentBuilderParams,
- jpDeadlineDate: String?,
- blogPostLink: String?
- ): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (params.isRtl) R.raw.jp_reader_rtl else R.raw.jp_reader_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_title_reader,
- caption = getCaptionForPhaseTwoAndThree(jpDeadlineDate),
- migrationInfoText = if (!blogPostLink.isNullOrEmpty())
- R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text else null,
- migrationInfoUrl = blogPostLink,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_reader
- )
- }
-
- private fun getStateForPhaseTwoNotifications(
- params: JetpackFeatureOverlayContentBuilderParams,
- jpDeadlineDate: String?,
- blogPostLink: String?
- ): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (params.isRtl) R.raw.jp_notifications_rtl else R.raw.jp_notifications_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_title_notifications,
- caption = getCaptionForPhaseTwoAndThree(jpDeadlineDate),
- migrationInfoText = if (!blogPostLink.isNullOrEmpty())
- R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text else null,
- migrationInfoUrl = blogPostLink,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_notifications
- )
- }
-
- private fun getCaptionForPhaseTwoAndThree(jpDeadlineDate: String?): UiString {
- return if (jpDeadlineDate.isNullOrEmpty()) getPhaseTwoAndThreeCaptionWithoutDeadline()
- else {
- val deadlineDate = dateTimeUtilsWrapper.convertDateFormat(
- jpDeadlineDate,
- JETPACK_OVERLAY_ORIGINAL_DATE_FORMAT,
- JETPACK_OVERLAY_TARGET_DATE_FORMAT
- )
- if (deadlineDate.isNullOrEmpty())
- return getPhaseTwoAndThreeCaptionWithoutDeadline()
- getPhaseTwoAndThreeCaptionWithDeadline(deadlineDate)
- }
- }
-
- private fun getPhaseTwoAndThreeCaptionWithDeadline(jpDeadlineDate: String): UiString {
- return UiStringText(
- htmlMessageUtils.getHtmlMessageFromStringFormatResId(
- R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_description_with_deadline,
- "$jpDeadlineDate"
- )
- )
- }
-
- private fun getPhaseTwoAndThreeCaptionWithoutDeadline() = UiStringRes(
- R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_description_without_deadline
- )
-
- private fun getStateForPhaseOne(
- params: JetpackFeatureOverlayContentBuilderParams,
- feature: JetpackFeatureOverlayScreenType
- ): JetpackFeatureOverlayUIState {
- val componentVisibility = JetpackFeatureOverlayComponentVisibility.PhaseOne()
- val content = when (feature) {
- JetpackFeatureOverlayScreenType.STATS -> getStateForPhaseOneStats(params.isRtl)
- JetpackFeatureOverlayScreenType.NOTIFICATIONS -> getStateForPhaseOneNotifications(params.isRtl)
- JetpackFeatureOverlayScreenType.READER -> getStateForPhaseOneReader(params.isRtl)
- }
- return JetpackFeatureOverlayUIState(componentVisibility, content)
- }
-
- private fun getStateForPhaseOneStats(rtl: Boolean): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (rtl) R.raw.jp_stats_rtl else R.raw.jp_stats_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_one_title_stats,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_one_description_stats),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_stats
- )
- }
-
- private fun getStateForPhaseOneReader(rtl: Boolean): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (rtl) R.raw.jp_reader_rtl else R.raw.jp_reader_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_one_title_reader,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_one_description_reader),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_reader
- )
- }
-
- private fun getStateForPhaseOneNotifications(rtl: Boolean): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (rtl) R.raw.jp_notifications_rtl else R.raw.jp_notifications_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_one_title_notifications,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_one_description_notifications),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_notifications
- )
- }
-
- fun buildDeepLinkOverlayState(isRtl: Boolean): JetpackFeatureOverlayUIState {
- return getStateForDeepLink(isRtl)
- }
-
- private fun getStateForDeepLink(isRtl: Boolean): JetpackFeatureOverlayUIState {
- val componentVisibility = JetpackFeatureOverlayComponentVisibility
- .DeepLinkPhase.All()
- val content = getContentForDeepLink(isRtl)
- return JetpackFeatureOverlayUIState(componentVisibility, content)
- }
-
- private fun getContentForDeepLink(rtl: Boolean): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = if (rtl) R.raw.wp2jp_rtl else R.raw.wp2jp_left,
+class JetpackFeatureOverlayContentBuilder @Inject constructor() {
+ fun buildDeepLinkOverlayState(isRtl: Boolean) = JetpackFeatureOverlayUIState(
+ JetpackFeatureOverlayComponentVisibility.DeepLinkPhase(),
+ JetpackFeatureOverlayContent(
+ illustration = if (isRtl) R.raw.wp2jp_rtl else R.raw.wp2jp_left,
title = R.string.wp_jetpack_deep_link_overlay_title,
caption = UiStringRes(R.string.wp_jetpack_deep_link_overlay_description),
primaryButtonText = R.string.wp_jetpack_deep_link_open_in_jetpack,
secondaryButtonText = R.string.wp_jetpack_deep_link_open_in_wordpress
)
- }
-
- // All Feature Overlay
- fun buildFeatureCollectionOverlayState(
- isRtl: Boolean, currentPhase: JetpackFeatureRemovalPhase, blogPostLink: String?
- ): JetpackFeatureOverlayUIState {
- return getStateForFeatureCollection(isRtl, currentPhase, blogPostLink)
- }
-
- private fun getStateForFeatureCollection(
- isRtl: Boolean,
- currentPhase: JetpackFeatureRemovalPhase,
- blogPostLink: String?
- ): JetpackFeatureOverlayUIState {
- val componentVisibility = when (currentPhase) {
- PhaseThree -> JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase.PhaseThree()
- PhaseFour -> JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase.PhaseFour()
- PhaseNewUsers -> JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase.PhaseNewUsers()
- PhaseSelfHostedUsers ->
- JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase.PhaseSelfHostedUsers()
- else -> JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase.Final()
- }
- val content = getContentForFeatureCollection(isRtl, blogPostLink, currentPhase)
- return JetpackFeatureOverlayUIState(componentVisibility, content)
- }
-
- @Suppress("UseCheckOrError")
- private fun getContentForFeatureCollection(
- isRtl: Boolean,
- blogPostLink: String?,
- currentPhase: JetpackFeatureRemovalPhase
- ): JetpackFeatureOverlayContent {
- return when (currentPhase) {
- is PhaseThree -> getJetpackFeatureOverlayContentForPhaseThree(isRtl, blogPostLink)
- is PhaseFour -> getJetpackFeatureOverlayContentForPhaseFour(isRtl, blogPostLink)
- is PhaseNewUsers -> getJetpackFeatureOverlayContentForNewUsers(isRtl)
- is PhaseSelfHostedUsers -> getJetpackFeatureOverlayContentForSelfHostedUsers(isRtl)
- else -> {
- throw IllegalStateException("Invalid phase for feature collection overlay")
- }
- }
- }
-
- private fun getJetpackFeatureOverlayContentForPhaseFour(
- isRtl: Boolean,
- blogPostLink: String?
- ) = JetpackFeatureOverlayContent(
- illustration = if (isRtl) R.raw.jp_all_features_rtl else R.raw.jp_all_features_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_four_title_all_features,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_four_all_features_description),
- migrationText = R.string.wp_jetpack_feature_removal_overlay_migration_helper_text,
- migrationInfoText = if (!blogPostLink.isNullOrEmpty())
- R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text else null,
- migrationInfoUrl = blogPostLink,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_the_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_feature_removal_phase_four_secondary_text
- )
-
- private fun getJetpackFeatureOverlayContentForNewUsers(
- isRtl: Boolean,
- ) = JetpackFeatureOverlayContent(
- illustration = if (isRtl) R.raw.wp2jp_rtl else R.raw.wp2jp_left,
- title = R.string.wp_jetpack_feature_removal_phase_new_users_title,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_phase_new_users_description),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_the_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_feature_removal_overlay_continue_without_jetpack
)
- private fun getJetpackFeatureOverlayContentForSelfHostedUsers(
- isRtl: Boolean,
- ) = JetpackFeatureOverlayContent(
- illustration = if (isRtl) R.raw.wp2jp_rtl else R.raw.wp2jp_left,
- title = R.string.wp_jetpack_feature_removal_phase_self_hosted_users_title,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_phase_self_hosted_users_description),
- migrationText = R.string.wp_jetpack_feature_removal_overlay_migration_helper_text,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_the_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_feature_removal_overlay_continue_without_jetpack
- )
-
- private fun getJetpackFeatureOverlayContentForPhaseThree(
- isRtl: Boolean,
- blogPostLink: String?
- ) = JetpackFeatureOverlayContent(
- illustration = if (isRtl) R.raw.jp_all_features_rtl else R.raw.jp_all_features_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_title_all_features,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_three_all_features_description),
- migrationText = R.string.wp_jetpack_feature_removal_overlay_migration_helper_text,
- migrationInfoText = if (!blogPostLink.isNullOrEmpty())
- R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text else null,
- migrationInfoUrl = blogPostLink,
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_the_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_feature_removal_overlay_continue_without_jetpack
+ fun buildFeatureCollectionOverlayState(isRtl: Boolean) = JetpackFeatureOverlayUIState(
+ JetpackFeatureOverlayComponentVisibility.FeatureCollectionPhase(),
+ JetpackFeatureOverlayContent(
+ illustration = if (isRtl) R.raw.wp2jp_rtl else R.raw.wp2jp_left,
+ title = R.string.wp_jetpack_feature_removal_phase_self_hosted_users_title,
+ caption = UiStringRes(R.string.wp_jetpack_feature_removal_phase_self_hosted_users_description),
+ migrationText = R.string.wp_jetpack_feature_removal_overlay_migration_helper_text,
+ primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_the_jetpack_app,
+ secondaryButtonText = R.string.wp_jetpack_feature_removal_overlay_continue_without_jetpack
+ )
)
}
-
-data class JetpackFeatureOverlayContentBuilderParams(
- val currentPhase: JetpackFeatureRemovalPhase,
- val isRtl: Boolean = true,
- val feature: JetpackFeatureOverlayScreenType?,
- val jpDeadlineDate: String? = null,
- val phaseTwoBlogPostLink: String? = null,
- val phaseThreeBlogPostLink: String? = null
-)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTracker.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTracker.kt
index e30127d0b4c5..10eaedff4be5 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTracker.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTracker.kt
@@ -2,83 +2,21 @@ package org.wordpress.android.ui.jetpackoverlay
import android.content.SharedPreferences
import androidx.core.content.edit
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.NOTIFICATIONS
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.READER
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.STATS
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class JetpackFeatureOverlayShownTracker @Inject constructor(private val sharedPrefs: SharedPreferences) {
- fun getTheLastShownOverlayTimeStamp(phase: JetpackFeatureRemovalOverlayPhase): Long? {
- val overlayShownTimeStampList: ArrayList = arrayListOf()
- getFeatureOverlayShownTimeStamp(STATS, phase)?.let { overlayShownTimeStampList.add(it) }
- getFeatureOverlayShownTimeStamp(NOTIFICATIONS, phase)?.let { overlayShownTimeStampList.add(it) }
- getFeatureOverlayShownTimeStamp(READER, phase)?.let { overlayShownTimeStampList.add(it) }
- // No jetpack connected feature is accessed yet
- if (overlayShownTimeStampList.isEmpty()) return null
- return overlayShownTimeStampList.maxOf { it }
+ fun setFeatureCollectionOverlayShown() {
+ sharedPrefs.edit { putBoolean(KEY_FEATURE_COLLECTION_OVERLAY_SHOWN_KEY, true) }
}
- fun getFeatureOverlayShownTimeStamp(
- jetpackOverlayConnectedFeature: JetpackOverlayConnectedFeature,
- phase: JetpackFeatureRemovalOverlayPhase
- ): Long? {
- val overlayShownTime = sharedPrefs.getLong(jetpackOverlayConnectedFeature.getPreferenceKey(phase), 0L)
- // jetpack connected feature is not accessed yet
- if (overlayShownTime == 0L) return null
- return overlayShownTime
- }
-
- fun setFeatureOverlayShownTimeStamp(
- jetpackOverlayConnectedFeature: JetpackOverlayConnectedFeature,
- phase: JetpackFeatureRemovalOverlayPhase,
- timeStamp: Long
- ) {
- sharedPrefs.edit { putLong(jetpackOverlayConnectedFeature.getPreferenceKey(phase), timeStamp) }
- }
-
- fun setFeatureCollectionOverlayShown(phase: JetpackFeatureRemovalPhase) {
- sharedPrefs.edit { putBoolean(buildFeatureCollectionOverlayShownKey(phase), true) }
- if(phase == JetpackFeatureRemovalPhase.PhaseFour) {
- setPhaseFourOverlayShownTimeStamp(System.currentTimeMillis())
- }
- }
-
- fun getFeatureCollectionOverlayShown(phase: JetpackFeatureRemovalPhase) =
- sharedPrefs.getBoolean(buildFeatureCollectionOverlayShownKey(phase), false)
-
- private fun buildFeatureCollectionOverlayShownKey(phase: JetpackFeatureRemovalPhase) =
- KEY_FEATURE_COLLECTION_OVERLAY_SHOWN.plus(phase.trackingName)
-
- fun getPhaseFourOverlayShownTimeStamp(): Long? {
- val overlayShownTime = sharedPrefs.getLong(KEY_PHASE_FOUR_OVERLAY_SHOWN_TIME_STAMP, 0L)
- if (overlayShownTime == 0L) return null
- return overlayShownTime
- }
-
- private fun setPhaseFourOverlayShownTimeStamp(timeStamp: Long) {
- sharedPrefs.edit { putLong(KEY_PHASE_FOUR_OVERLAY_SHOWN_TIME_STAMP, timeStamp) }
- }
+ fun getFeatureCollectionOverlayShown() =
+ sharedPrefs.getBoolean(KEY_FEATURE_COLLECTION_OVERLAY_SHOWN_KEY, false)
companion object {
- const val KEY_FEATURE_COLLECTION_OVERLAY_SHOWN = "KEY_FEATURE_COLLECTION_OVERLAY_SHOWN"
- const val KEY_PHASE_FOUR_OVERLAY_SHOWN_TIME_STAMP = "KEY_PHASE_FOUR_OVERLAY_SHOWN_TIME_STAMP"
- }
-}
-
-enum class JetpackOverlayConnectedFeature(private val featureSpecificPreferenceKey: String) {
- STATS("STATS_OVERLAY_SHOWN_TIME_STAMP_KEY"),
- NOTIFICATIONS("READER_OVERLAY_SHOWN_TIME_STAMP_KEY"),
- READER("NOTIFICATIONS_OVERLAY_SHOWN_TIME_STAMP_KEY");
-
- fun getPreferenceKey(phase: JetpackFeatureRemovalOverlayPhase): String {
- return featureSpecificPreferenceKey.plus(phase.preferenceKey)
+ // The phase name is part of the stored key; see JETPACK_REMOVAL_TRACKING_NAME.
+ private const val KEY_FEATURE_COLLECTION_OVERLAY_SHOWN_KEY =
+ "KEY_FEATURE_COLLECTION_OVERLAY_SHOWN" + JETPACK_REMOVAL_TRACKING_NAME
}
}
-
-enum class JetpackFeatureRemovalOverlayPhase(val preferenceKey: String) {
- PHASE_ONE("JETPACK_FEATURE_PHASE_ONE"),
- PHASE_TWO("JETPACK_FEATURE_PHASE_TWO"),
- PHASE_THREE("JETPACK_FEATURE_PHASE_THREE")
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtil.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtil.kt
deleted file mode 100644
index 57690049e111..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtil.kt
+++ /dev/null
@@ -1,136 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import org.wordpress.android.R
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Days
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Indeterminate
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Passed
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Pluralisable
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Soon
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Weeks
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseStaticPosters
-import org.wordpress.android.ui.utils.UiString
-import org.wordpress.android.ui.utils.UiString.UiStringPluralRes
-import org.wordpress.android.ui.utils.UiString.UiStringRes
-import org.wordpress.android.ui.utils.UiString.UiStringResWithParams
-import org.wordpress.android.util.DateTimeUtilsWrapper
-import org.wordpress.android.util.config.JPDeadlineConfig
-import java.time.LocalDate
-import java.time.ZoneId
-import java.util.Date
-import javax.inject.Inject
-
-class JetpackFeatureRemovalBrandingUtil @Inject constructor(
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
- private val jpDeadlineConfig: JPDeadlineConfig,
- private val dateTimeUtilsWrapper: DateTimeUtilsWrapper
-) {
- private val jpDeadlineDate: String by lazy {
- jpDeadlineConfig.getValue()
- }
-
- fun isInRemovalPhase() = jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()
-
- fun shouldShowBrandingInDashboard() = jetpackFeatureRemovalPhaseHelper.shouldShowJetpackBrandingInDashboard()
-
- fun shouldShowPhaseOneBranding(): Boolean {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- PhaseOne,
- PhaseTwo,
- PhaseThree,
- PhaseStaticPosters,
- PhaseFour -> true
- else -> false
- }
- }
-
- fun shouldShowPhaseTwoBranding(): Boolean {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- PhaseTwo,
- PhaseThree,
- PhaseStaticPosters,
- PhaseFour -> true
- else -> false
- }
- }
-
- fun getBrandingTextByPhase(screen: JetpackPoweredScreen): UiString {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- PhaseStaticPosters -> UiStringRes(R.string.wp_jetpack_powered)
- PhaseThree -> (screen as? JetpackPoweredScreen.WithDynamicText)?.let { screenWithDynamicText ->
- getDynamicBrandingForScreen(screenWithDynamicText)
- } ?: UiStringRes(JetpackBrandingUiState.RES_JP_POWERED)
- PhaseTwo -> UiStringRes(R.string.wp_jetpack_powered_phase_2)
- else -> UiStringRes(JetpackBrandingUiState.RES_JP_POWERED)
- }
- }
-
- private fun getDynamicBrandingForScreen(screen: JetpackPoweredScreen.WithDynamicText): UiString {
- val deadline = retrieveDeadline()
-
- return when (deadline == null) {
- true -> getPhaseThreeMovingSoonBranding(screen)
- false -> getPhaseThreeMovingInBranding(screen, deadline)
- }
- }
-
- private fun getPhaseThreeMovingInBranding(
- screen: JetpackPoweredScreen.WithDynamicText,
- deadline: LocalDate,
- ): UiString {
- val today = dateTimeUtilsWrapper.getTodaysDate().toLocalDate()
- return when (val interval = JetpackBrandingUiState.between(today, deadline)) {
- is Indeterminate -> getPhaseThreeMovingSoonBranding(screen)
- is Weeks -> getMovingInUiString(screen, getQuantityUiString(interval))
- is Days -> getMovingInUiString(screen, getQuantityUiString(interval))
- is Passed -> UiStringRes(JetpackBrandingUiState.RES_JP_POWERED)
- }
- }
-
- private fun retrieveDeadline(): LocalDate? = jpDeadlineDate.takeIf { it.isNotBlank() }?.let {
- dateTimeUtilsWrapper.parseDateString(it, JETPACK_OVERLAY_ORIGINAL_DATE_FORMAT)?.toLocalDate()
- }
-
- private fun Date.toLocalDate() = toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
-
- private fun getPhaseThreeMovingSoonBranding(screen: JetpackPoweredScreen.WithDynamicText) = UiStringResWithParams(
- stringRes = when (screen.isPlural) {
- true -> Soon.RES_ARE_MOVING_SOON
- false -> Soon.RES_IS_MOVING_SOON
- },
- screen.featureName
- )
-
- private fun getMovingInUiString(
- screen: JetpackPoweredScreen.WithDynamicText,
- quantityUiString: UiStringPluralRes
- ) = UiStringResWithParams(
- stringRes = when (screen.isPlural) {
- true -> Pluralisable.RES_ARE_MOVING_IN
- false -> Pluralisable.RES_IS_MOVING_IN
- },
- screen.featureName,
- quantityUiString
- )
-
- private fun getQuantityUiString(interval: Pluralisable): UiStringPluralRes {
- return when (interval) {
- is Weeks -> UiStringPluralRes(
- zeroRes = interval.otherRes,
- oneRes = interval.oneRes,
- otherRes = interval.otherRes,
- count = interval.number.toInt(),
- )
- is Days -> UiStringPluralRes(
- zeroRes = interval.otherRes,
- oneRes = interval.oneRes,
- otherRes = interval.otherRes,
- count = interval.number.toInt(),
- )
- }
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelper.kt
new file mode 100644
index 000000000000..1c2fd38676ea
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelper.kt
@@ -0,0 +1,66 @@
+package org.wordpress.android.ui.jetpackoverlay
+
+import org.wordpress.android.analytics.AnalyticsTracker
+import org.wordpress.android.fluxc.model.SiteModel
+import org.wordpress.android.ui.main.WPMainNavigationView.PageType
+import org.wordpress.android.util.BuildConfigWrapper
+import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
+import javax.inject.Inject
+
+/**
+ * Identifies the final Jetpack feature-removal phase in analytics and in stored preference keys.
+ *
+ * The removal used to be a staged rollout driven by `jp_removal_*` remote flags, and both the Tracks
+ * `phase` property and several SharedPrefs keys embed the phase name. The rollout finished, so the
+ * flags are gone, but the literal is kept so events stay comparable and so users who dismissed a
+ * card do not see it reappear.
+ */
+const val JETPACK_REMOVAL_TRACKING_NAME = "self_hosted"
+
+/**
+ * The value deep-link overlay events report for the Tracks `phase` property. These events used a
+ * coarser two-bucket view of the same rollout than [JETPACK_REMOVAL_TRACKING_NAME] does: "one"
+ * while the Jetpack-powered features were still present, "two" once they were removed. Kept
+ * verbatim so historic events stay comparable.
+ */
+const val JETPACK_DEEPLINK_TRACKING_NAME = "two"
+
+/**
+ * The WordPress app does not ship the Jetpack-powered features (Reader, Stats, Notifications); the
+ * Jetpack app does. That is now purely a build-flavor difference.
+ *
+ * This used to be decided at runtime from the `jp_removal_*` remote flags. Those flags were a
+ * server-side constant, and because the in-app default was "not removed", anything that emptied the
+ * flag store — signing out, a fresh install, clearing app data — un-removed the features in the
+ * WordPress app until the next successful fetch. Deciding it from the build flavor removes that
+ * whole class of bug.
+ */
+class JetpackFeatureRemovalHelper @Inject constructor(
+ private val buildConfigWrapper: BuildConfigWrapper,
+ private val analyticsTrackerWrapper: AnalyticsTrackerWrapper
+) {
+ fun shouldRemoveJetpackFeatures(): Boolean = !buildConfigWrapper.isJetpackApp
+
+ fun shouldShowJetpackPoweredEditorFeatures(): Boolean = buildConfigWrapper.isJetpackApp
+
+ fun shouldShowTemplateSelectionInPages(): Boolean = buildConfigWrapper.isJetpackApp
+
+ fun shouldShowPublishedPostStatsButton(): Boolean = buildConfigWrapper.isJetpackApp
+
+ fun shouldShowNotifications(): Boolean = buildConfigWrapper.isJetpackApp
+
+ fun shouldShowHelpAndSupportOnEditor(): Boolean = buildConfigWrapper.isJetpackApp
+
+ fun getDeepLinkTrackingName(): String? =
+ if (buildConfigWrapper.isJetpackApp) null else JETPACK_DEEPLINK_TRACKING_NAME
+
+ @JvmOverloads
+ fun trackPageAccessedEventIfNeeded(pageType: PageType, site: SiteModel? = null) {
+ when (pageType) {
+ PageType.MY_SITE -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.MY_SITE_ACCESSED, site)
+ PageType.READER -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.READER_ACCESSED)
+ PageType.NOTIFS -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.NOTIFICATIONS_ACCESSED)
+ PageType.ME -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.ME_ACCESSED)
+ }
+ }
+}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtil.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtil.kt
index 5cacd95e10bd..093980ecf672 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtil.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtil.kt
@@ -1,212 +1,33 @@
package org.wordpress.android.ui.jetpackoverlay
import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayPhase.PHASE_ONE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayPhase.PHASE_THREE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayPhase.PHASE_TWO
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource.APP_OPEN
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType.NOTIFICATIONS
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType.READER
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType.STATS
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseNewUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseSelfHostedUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseStaticPosters
-import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import org.wordpress.android.util.BuildConfigWrapper
-import org.wordpress.android.util.DateTimeUtilsWrapper
-import org.wordpress.android.util.SiteUtilsWrapper
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import java.util.Date
import javax.inject.Inject
private const val CURRENT_PHASE_KEY = "phase"
private const val SCREEN_TYPE_KEY = "source"
private const val DISMISSAL_TYPE_KEY = "dismissal_type"
-@Suppress("LongParameterList", "TooManyFunctions")
class JetpackFeatureRemovalOverlayUtil @Inject constructor(
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
private val jetpackFeatureOverlayShownTracker: JetpackFeatureOverlayShownTracker,
- private val selectedSiteRepository: SelectedSiteRepository,
- private val siteUtilsWrapper: SiteUtilsWrapper,
- private val buildConfigWrapper: BuildConfigWrapper,
- private val dateTimeUtilsWrapper: DateTimeUtilsWrapper,
private val analyticsTrackerWrapper: AnalyticsTrackerWrapper
) {
- fun shouldShowFeatureSpecificJetpackOverlay(feature: JetpackOverlayConnectedFeature): Boolean {
- return !buildConfigWrapper.isJetpackApp && isWpComSite() &&
- isInFeatureSpecificRemovalPhase() && hasExceededOverlayFrequency(
- feature,
- getCurrentPhasePreference()!!
- )
- }
-
fun shouldHideJetpackFeatures(): Boolean {
- return jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()
+ return jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()
}
fun shouldShowFeatureCollectionJetpackOverlayForFirstTime(): Boolean {
- val phase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase() ?: return false
- return shouldShowFeatureCollectionOverlayInCurrentPhase(phase)
- }
-
- private fun shouldShowFeatureCollectionOverlayInCurrentPhase(phase: JetpackFeatureRemovalPhase): Boolean {
- return when (phase) {
- PhaseThree, PhaseNewUsers, PhaseSelfHostedUsers ->
- !jetpackFeatureOverlayShownTracker.getFeatureCollectionOverlayShown(phase)
- PhaseFour -> shouldShowPhaseFourFeatureCollectionOverlay()
- else -> false
- }
- }
-
- // if the overlay is not shown, then show it
- // if the overlay is shown and the remote config value is 0, then don't show
- // if the overlay is shown and the remote config value is not 0, then check the frequency
- @Suppress("ReturnCount")
- private fun shouldShowPhaseFourFeatureCollectionOverlay(): Boolean {
- val isOverlayShown = jetpackFeatureOverlayShownTracker.getFeatureCollectionOverlayShown(PhaseFour)
- if (!isOverlayShown) return true
- val phaseFourOverlayFrequency = jetpackFeatureRemovalPhaseHelper.getPhaseFourOverlayFrequency()
- if (phaseFourOverlayFrequency == -1) return false
- val overlayShownDate = jetpackFeatureOverlayShownTracker.getPhaseFourOverlayShownTimeStamp()
- if (overlayShownDate != null) {
- val daysPastOverlayShown = dateTimeUtilsWrapper.daysBetween(
- Date(overlayShownDate),
- dateTimeUtilsWrapper.getTodaysDate()
- )
- return daysPastOverlayShown >= phaseFourOverlayFrequency
- }
- return false
- }
-
- private fun isInFeatureSpecificRemovalPhase(): Boolean {
- return jetpackFeatureRemovalPhaseHelper.getCurrentPhase() != null &&
- when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- null -> false
- PhaseOne, PhaseTwo, PhaseThree -> true
- PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- }
- }
-
- private fun hasExceededOverlayFrequency(
- feature: JetpackOverlayConnectedFeature,
- currentPhasePreference: JetpackFeatureRemovalOverlayPhase
- ): Boolean {
- return (hasExceededFeatureSpecificOverlayFrequency(feature, currentPhasePreference) &&
- hasExceededGlobalOverlayFrequency(currentPhasePreference))
- }
-
- private fun hasExceededFeatureSpecificOverlayFrequency(
- feature: JetpackOverlayConnectedFeature,
- phase: JetpackFeatureRemovalOverlayPhase
- ): Boolean {
- // Feature Overlay is never shown
- val overlayShownDate = jetpackFeatureOverlayShownTracker.getFeatureOverlayShownTimeStamp(
- feature,
- phase
- )?.let { Date(it) } ?: return true
- val daysPastOverlayShown = dateTimeUtilsWrapper.daysBetween(
- overlayShownDate,
- dateTimeUtilsWrapper.getTodaysDate()
- )
- return daysPastOverlayShown >= PhaseOne.featureSpecificOverlayFrequency
- }
-
- private fun hasExceededGlobalOverlayFrequency(phase: JetpackFeatureRemovalOverlayPhase): Boolean {
- // Overlay is never shown
- val lastOverlayShownDate =
- jetpackFeatureOverlayShownTracker.getTheLastShownOverlayTimeStamp(phase)
- ?.let { Date(it) } ?: return true
- val daysPastOverlayShown = dateTimeUtilsWrapper.daysBetween(
- lastOverlayShownDate,
- dateTimeUtilsWrapper.getTodaysDate()
- )
- return daysPastOverlayShown >= PhaseOne.globalOverlayFrequency
- }
-
- private fun isWpComSite(): Boolean {
- val selectedSite = selectedSiteRepository.getSelectedSite()
- return selectedSite != null && siteUtilsWrapper.isAccessedViaWPComRest(selectedSite)
- }
-
- private fun getCurrentPhasePreference(): JetpackFeatureRemovalOverlayPhase? {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- PhaseOne -> PHASE_ONE
- PhaseTwo -> PHASE_TWO
- PhaseThree -> PHASE_THREE
- else -> null
- }
- }
-
- private fun onFeatureSpecificOverlayShown(feature: JetpackOverlayConnectedFeature) {
- if (isInFeatureSpecificRemovalPhase())
- jetpackFeatureOverlayShownTracker.setFeatureOverlayShownTimeStamp(
- feature,
- getCurrentPhasePreference()!!,
- System.currentTimeMillis()
- )
- }
-
- fun onOverlayShown(overlayScreenType: JetpackFeatureOverlayScreenType?) {
- overlayScreenType?.let {
- when (it) {
- STATS -> onFeatureSpecificOverlayShown(JetpackOverlayConnectedFeature.STATS)
- NOTIFICATIONS -> onFeatureSpecificOverlayShown(JetpackOverlayConnectedFeature.NOTIFICATIONS)
- READER -> onFeatureSpecificOverlayShown(JetpackOverlayConnectedFeature.READER)
- }
- trackOverlayShown(overlayScreenType)
- }
- }
-
- enum class JetpackFeatureOverlayScreenType(val trackingName: String) {
- STATS("stats"),
- NOTIFICATIONS("notifications"),
- READER("reader")
- }
-
- private fun trackOverlayShown(jetpackFeatureOverlayScreenType: JetpackFeatureOverlayScreenType) {
- analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISPLAYED,
- mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
- SCREEN_TYPE_KEY to jetpackFeatureOverlayScreenType.trackingName
- )
- )
- }
-
- fun trackBottomSheetDismissed(
- jetpackFeatureOverlayScreenType: JetpackFeatureOverlayScreenType,
- dismissalType: JetpackOverlayDismissalType
- ) {
- analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISMISSED,
- mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
- SCREEN_TYPE_KEY to jetpackFeatureOverlayScreenType.trackingName,
- DISMISSAL_TYPE_KEY to dismissalType.trackingName
- )
- )
- }
-
- fun trackInstallJetpackTapped(screenType: JetpackFeatureOverlayScreenType) {
- analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_BUTTON_GET_JETPACK_APP_TAPPED,
- mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
- SCREEN_TYPE_KEY to screenType.trackingName
- )
- )
+ return jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures() &&
+ !jetpackFeatureOverlayShownTracker.getFeatureCollectionOverlayShown()
}
fun trackDeepLinkOverlayShown() {
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_DEEP_LINK_OVERLAY_DISPLAYED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getDeepLinkPhase()?.trackingName
+ CURRENT_PHASE_KEY to jetpackFeatureRemovalHelper.getDeepLinkTrackingName()
)
)
}
@@ -215,7 +36,7 @@ class JetpackFeatureRemovalOverlayUtil @Inject constructor(
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_DEEP_LINK_OVERLAY_BUTTON_OPEN_IN_JETPACK_APP_TAPPED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getDeepLinkPhase()?.trackingName
+ CURRENT_PHASE_KEY to jetpackFeatureRemovalHelper.getDeepLinkTrackingName()
)
)
}
@@ -226,27 +47,15 @@ class JetpackFeatureRemovalOverlayUtil @Inject constructor(
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_DEEP_LINK_OVERLAY_DISMISSED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getDeepLinkPhase()?.trackingName,
+ CURRENT_PHASE_KEY to jetpackFeatureRemovalHelper.getDeepLinkTrackingName(),
DISMISSAL_TYPE_KEY to dismissalType.trackingName
)
)
}
- fun trackLearnMoreAboutMigrationClicked(screenType: JetpackFeatureOverlayScreenType) {
- analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_LEARN_MORE_TAPPED,
- mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
- SCREEN_TYPE_KEY to screenType.trackingName
- )
- )
- }
-
fun onFeatureCollectionOverlayShown(source: JetpackFeatureCollectionOverlaySource) {
if (source == APP_OPEN) {
- jetpackFeatureOverlayShownTracker.setFeatureCollectionOverlayShown(
- jetpackFeatureRemovalPhaseHelper.getCurrentPhase()!!
- )
+ jetpackFeatureOverlayShownTracker.setFeatureCollectionOverlayShown()
}
trackFeatureCollectionOverlayShown(source)
}
@@ -255,7 +64,7 @@ class JetpackFeatureRemovalOverlayUtil @Inject constructor(
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISPLAYED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
+ CURRENT_PHASE_KEY to JETPACK_REMOVAL_TRACKING_NAME,
SCREEN_TYPE_KEY to source.label
)
)
@@ -268,7 +77,7 @@ class JetpackFeatureRemovalOverlayUtil @Inject constructor(
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISMISSED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
+ CURRENT_PHASE_KEY to JETPACK_REMOVAL_TRACKING_NAME,
SCREEN_TYPE_KEY to source.label,
DISMISSAL_TYPE_KEY to dismissalType.trackingName
)
@@ -279,17 +88,7 @@ class JetpackFeatureRemovalOverlayUtil @Inject constructor(
analyticsTrackerWrapper.track(
AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_BUTTON_GET_JETPACK_APP_TAPPED,
mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
- SCREEN_TYPE_KEY to source.label
- )
- )
- }
-
- fun trackLearnMoreAboutMigrationClickedInFeatureCollectionOverlay(source: JetpackFeatureCollectionOverlaySource) {
- analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.JETPACK_REMOVE_FEATURE_OVERLAY_LEARN_MORE_TAPPED,
- mapOf(
- CURRENT_PHASE_KEY to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName,
+ CURRENT_PHASE_KEY to JETPACK_REMOVAL_TRACKING_NAME,
SCREEN_TYPE_KEY to source.label
)
)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelper.kt
deleted file mode 100644
index a6c1a45c8d2c..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelper.kt
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseNewUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseSelfHostedUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseStaticPosters
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalSiteCreationPhase.PHASE_ONE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalSiteCreationPhase.PHASE_TWO
-import org.wordpress.android.ui.main.WPMainNavigationView.PageType
-import org.wordpress.android.util.BuildConfigWrapper
-import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import org.wordpress.android.util.config.JetpackFeatureRemovalNewUsersConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseFourConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseOneConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseThreeConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseTwoConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalSelfHostedUsersConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalStaticPostersConfig
-import org.wordpress.android.util.config.PhaseFourOverlayFrequencyConfig
-import javax.inject.Inject
-
-private const val PHASE_ONE_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS = 2
-private const val PHASE_ONE_FEATURE_OVERLAY_FREQUENCY_IN_DAYS = 7
-
-private const val PHASE_TWO_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS = 2
-private const val PHASE_TWO_FEATURE_OVERLAY_FREQUENCY_IN_DAYS = 7
-
-private const val PHASE_THREE_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS = 1
-private const val PHASE_THREE_FEATURE_OVERLAY_FREQUENCY_IN_DAYS = 4
-
-// Class used to find the current phase
-// of the Jetpack powered migration
-class JetpackFeatureRemovalPhaseHelper @Inject constructor(
- private val buildConfigWrapper: BuildConfigWrapper,
- private val jetpackFeatureRemovalPhaseOneConfig: JetpackFeatureRemovalPhaseOneConfig,
- private val jetpackFeatureRemovalPhaseTwoConfig: JetpackFeatureRemovalPhaseTwoConfig,
- private val jetpackFeatureRemovalPhaseThreeConfig: JetpackFeatureRemovalPhaseThreeConfig,
- private val jetpackFeatureRemovalPhaseFourConfig: JetpackFeatureRemovalPhaseFourConfig,
- private val jetpackFeatureRemovalNewUsersConfig: JetpackFeatureRemovalNewUsersConfig,
- private val jetpackFeatureRemovalSelfHostedUsersConfig: JetpackFeatureRemovalSelfHostedUsersConfig,
- private val jetpackFeatureRemovalStaticPostersConfig: JetpackFeatureRemovalStaticPostersConfig,
- private val jetpackPhaseFourOverlayFrequencyConfig: PhaseFourOverlayFrequencyConfig,
- private val analyticsTrackerWrapper: AnalyticsTrackerWrapper
-) {
- fun getCurrentPhase(): JetpackFeatureRemovalPhase? {
- return if (buildConfigWrapper.isJetpackApp) null
- else if (jetpackFeatureRemovalSelfHostedUsersConfig.isEnabled()) PhaseSelfHostedUsers
- else if (jetpackFeatureRemovalNewUsersConfig.isEnabled()) PhaseNewUsers
- else if (jetpackFeatureRemovalPhaseFourConfig.isEnabled()) PhaseFour
- else if (jetpackFeatureRemovalStaticPostersConfig.isEnabled()) PhaseStaticPosters
- else if (jetpackFeatureRemovalPhaseThreeConfig.isEnabled()) PhaseThree
- else if (jetpackFeatureRemovalPhaseTwoConfig.isEnabled()) PhaseTwo
- else if (jetpackFeatureRemovalPhaseOneConfig.isEnabled()) PhaseOne
- else null
- }
-
- fun getDeepLinkPhase(): JetpackFeatureRemovalSiteCreationPhase? {
- val currentPhase = getCurrentPhase() ?: return null
- return when (currentPhase) {
- is PhaseOne, PhaseTwo, PhaseThree, PhaseStaticPosters -> PHASE_ONE
- is PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> PHASE_TWO
- }
- }
-
- fun shouldRemoveJetpackFeatures(): Boolean {
- val currentPhase = getCurrentPhase() ?: return false
- return when (currentPhase) {
- is PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> true
- is PhaseOne, PhaseTwo, PhaseThree, PhaseStaticPosters -> false
- }
- }
-
- fun shouldShowDashboard(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowJetpackPoweredEditorFeatures(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowTemplateSelectionInPages(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowPublishedPostStatsButton(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowJetpackBrandingInDashboard(): Boolean {
- val currentPhase = getCurrentPhase() ?: return false
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowStaticPage(): Boolean {
- val currentPhase = getCurrentPhase() ?: return false
- return when (currentPhase) {
- is PhaseStaticPosters -> true
- is PhaseOne, PhaseTwo, PhaseThree, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- }
- }
-
- @JvmOverloads
- fun trackPageAccessedEventIfNeeded(pageType: PageType, site: SiteModel? = null) {
- when (pageType) {
- PageType.MY_SITE -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.MY_SITE_ACCESSED, site)
- PageType.READER -> {
- if (arePosterizedPagesVisible()) {
- analyticsTrackerWrapper.track(AnalyticsTracker.Stat.READER_ACCESSED)
- }
- }
-
- PageType.NOTIFS -> {
- if (arePosterizedPagesVisible()) {
- analyticsTrackerWrapper.track(AnalyticsTracker.Stat.NOTIFICATIONS_ACCESSED)
- }
- }
-
- PageType.ME -> analyticsTrackerWrapper.track(AnalyticsTracker.Stat.ME_ACCESSED)
- }
- }
-
- fun shouldShowNotifications(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- is PhaseOne, PhaseTwo, PhaseThree, PhaseStaticPosters -> true
- }
- }
-
- fun shouldShowQuickStart(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun shouldShowHelpAndSupportOnEditor(): Boolean {
- val currentPhase = getCurrentPhase() ?: return true
- return when (currentPhase) {
- is PhaseStaticPosters, PhaseFour, PhaseNewUsers, PhaseSelfHostedUsers -> false
- else -> true
- }
- }
-
- fun getPhaseFourOverlayFrequency(): Int {
- return jetpackPhaseFourOverlayFrequencyConfig.getValue()
- }
-
- private fun arePosterizedPagesVisible() = !shouldShowStaticPage()
-}
-// Global overlay frequency is the frequency at which the overlay is shown across the features
-// no matter which feature was accessed last time
-
-// Feature specific overlay frequency is the frequency at which the overlay is shown for a specific feature
-
-sealed class JetpackFeatureRemovalPhase(
- val globalOverlayFrequency: Int = 0,
- val featureSpecificOverlayFrequency: Int = 0,
- val trackingName: String
-) {
- object PhaseOne : JetpackFeatureRemovalPhase(
- PHASE_ONE_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS,
- PHASE_ONE_FEATURE_OVERLAY_FREQUENCY_IN_DAYS,
- "one"
- )
-
- object PhaseTwo : JetpackFeatureRemovalPhase(
- PHASE_TWO_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS,
- PHASE_TWO_FEATURE_OVERLAY_FREQUENCY_IN_DAYS,
- "two"
- )
-
- object PhaseThree : JetpackFeatureRemovalPhase(
- PHASE_THREE_GLOBAL_OVERLAY_FREQUENCY_IN_DAYS,
- PHASE_THREE_FEATURE_OVERLAY_FREQUENCY_IN_DAYS,
- "three"
- )
-
- object PhaseStaticPosters : JetpackFeatureRemovalPhase(trackingName = "static_posters")
- object PhaseFour : JetpackFeatureRemovalPhase(trackingName = "four")
- object PhaseNewUsers : JetpackFeatureRemovalPhase(trackingName = "new_users")
- object PhaseSelfHostedUsers : JetpackFeatureRemovalPhase(trackingName = "self_hosted")
-}
-
-enum class JetpackFeatureRemovalSiteCreationPhase(val trackingName: String) {
- PHASE_ONE("one"), PHASE_TWO("two")
-}
-
-enum class JetpackDeepLinkPhase(val trackingName: String) {
- ALL("all")
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalWidgetHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalWidgetHelper.kt
index ecf6f8ad0f6d..f82c90fb4b03 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalWidgetHelper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalWidgetHelper.kt
@@ -4,7 +4,7 @@ import org.wordpress.android.util.PackageManagerWrapper
import javax.inject.Inject
class JetpackFeatureRemovalWidgetHelper @Inject constructor(
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
private val packageManagerWrapper: PackageManagerWrapper
) {
private val widgetReceivers = listOf(
@@ -13,8 +13,7 @@ class JetpackFeatureRemovalWidgetHelper @Inject constructor(
)
fun disableWidgetReceiversIfNeeded() {
- if (jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures() ||
- jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
+ if (jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
widgetReceivers.forEach { packageManagerWrapper.disableComponentEnabledSetting(it) }
} else {
widgetReceivers.forEach { packageManagerWrapper.enableComponentEnabledSetting(it) }
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackOverlayUIState.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackOverlayUIState.kt
index 56b8762bb157..9fdc706749c9 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackOverlayUIState.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackOverlayUIState.kt
@@ -12,50 +12,14 @@ sealed class JetpackFeatureOverlayComponentVisibility(
open val migrationText: Boolean = false,
val primaryButton: Boolean = true,
open val closeButton: Boolean = true,
- open val secondaryButton: Boolean = true,
- open val migrationInfoText: Boolean = false,
- open val newUsersContent: Boolean = false
+ val secondaryButton: Boolean = true
) {
- class PhaseOne : JetpackFeatureOverlayComponentVisibility()
- class PhaseTwo(override val migrationInfoText: Boolean = true) : JetpackFeatureOverlayComponentVisibility()
- class PhaseThree(
- override val migrationInfoText: Boolean = true,
+ class DeepLinkPhase : JetpackFeatureOverlayComponentVisibility()
+
+ class FeatureCollectionPhase(
override val closeButton: Boolean = false,
override val migrationText: Boolean = true
) : JetpackFeatureOverlayComponentVisibility()
-
- sealed class DeepLinkPhase : JetpackFeatureOverlayComponentVisibility() {
- class All : DeepLinkPhase()
- }
-
- sealed class FeatureCollectionPhase : JetpackFeatureOverlayComponentVisibility() {
- class PhaseThree(
- override val migrationInfoText: Boolean = true,
- override val closeButton: Boolean = false,
- override val migrationText: Boolean = true
- ) : FeatureCollectionPhase()
-
- class PhaseFour(
- override val migrationInfoText: Boolean = true,
- override val closeButton: Boolean = false,
- override val migrationText: Boolean = true
- ) : FeatureCollectionPhase()
-
- class PhaseNewUsers(
- override val migrationInfoText: Boolean = false,
- override val closeButton: Boolean = false,
- override val migrationText: Boolean = false,
- override val newUsersContent: Boolean = true
- ) : FeatureCollectionPhase()
-
- class PhaseSelfHostedUsers(
- override val migrationInfoText: Boolean = false,
- override val closeButton: Boolean = false,
- override val migrationText: Boolean = true
- ) : FeatureCollectionPhase()
-
- class Final(override val closeButton: Boolean = false) : FeatureCollectionPhase()
- }
}
data class JetpackFeatureOverlayContent(
@@ -63,8 +27,6 @@ data class JetpackFeatureOverlayContent(
@StringRes val title: Int,
val caption: UiString,
@StringRes val migrationText: Int? = null,
- @StringRes val migrationInfoText: Int? = null,
- val migrationInfoUrl: String? = null,
@StringRes val primaryButtonText: Int,
@StringRes val secondaryButtonText: Int? = null
)
@@ -78,6 +40,5 @@ sealed class JetpackFeatureOverlayActions {
object OpenPlayStore : JetpackFeatureOverlayActions()
object DismissDialog : JetpackFeatureOverlayActions()
object ForwardToJetpack : JetpackFeatureOverlayActions()
- data class OpenMigrationInfoLink(val url: String) : JetpackFeatureOverlayActions()
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackStaticPosterActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackStaticPosterActivity.kt
deleted file mode 100644
index bc4ad7c1756b..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/jetpackoverlay/JetpackStaticPosterActivity.kt
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import android.os.Bundle
-import android.view.View.generateViewId
-import android.view.ViewGroup
-import android.widget.FrameLayout
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.viewinterop.AndroidView
-import androidx.fragment.app.commit
-import dagger.hilt.android.AndroidEntryPoint
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.main.BaseAppCompatActivity
-import org.wordpress.android.ui.main.jetpack.staticposter.JetpackStaticPosterFragment
-import org.wordpress.android.util.extensions.setContent
-
-@AndroidEntryPoint
-class JetpackStaticPosterActivity : BaseAppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- setContent { ComposeFrame() }
- }
-
- @Composable
- fun ComposeFrame() {
- AndroidView(
- factory = { context ->
- FrameLayout(context).apply {
- id = generateViewId()
- layoutParams = ViewGroup.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT
- )
- }
- },
- update = { fragment ->
- supportFragmentManager.commit {
- replace(
- fragment.id,
- JetpackStaticPosterFragment.newInstance(JetpackPoweredScreen.WithStaticPoster.STATS)
- )
- }
- }
- )
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/BaseAppCompatActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/BaseAppCompatActivity.kt
index 6225fc81a75d..bfba0d011ff1 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/BaseAppCompatActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/BaseAppCompatActivity.kt
@@ -13,7 +13,6 @@ import org.wordpress.android.ui.debug.preferences.DebugSharedPreferenceFlagsActi
import org.wordpress.android.ui.domains.management.DomainManagementActivity
import org.wordpress.android.ui.domains.management.newdomainsearch.NewDomainSearchActivity
import org.wordpress.android.ui.domains.management.purchasedomain.PurchaseDomainActivity
-import org.wordpress.android.ui.jetpackoverlay.JetpackStaticPosterActivity
import org.wordpress.android.ui.main.feedbackform.FeedbackFormActivity
import org.wordpress.android.ui.media.MediaPreviewActivity
import org.wordpress.android.ui.media.MediaSettingsActivity
@@ -90,7 +89,6 @@ private val excludedActivities = listOf(
EditJetpackSocialShareMessageActivity::class.java.name,
ExperimentalFeaturesActivity::class.java.name,
FeedbackFormActivity::class.java.name,
- JetpackStaticPosterActivity::class.java.name,
MediaPreviewActivity::class.java.name,
MenuActivity::class.java.name,
NavMenusActivity::class.java.name,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
index f0e6ffd6e4c7..57d422ddb276 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/MeFragment.kt
@@ -43,7 +43,6 @@ import org.wordpress.android.fluxc.store.AccountStore.OnAccountChanged
import org.wordpress.android.fluxc.store.PostStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.fluxc.utils.AppLogWrapper
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.ActivityNavigator
import org.wordpress.android.ui.accounts.login.WPcomLoginHelper
@@ -60,13 +59,11 @@ import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFra
import org.wordpress.android.ui.notifications.utils.NotificationsUtils
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.prefs.experimentalfeatures.ExperimentalFeatures
-import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.ui.utils.UiString
import org.wordpress.android.ui.utils.UiString.UiStringText
import org.wordpress.android.util.AppLog
import org.wordpress.android.util.AppLog.T.MAIN
import org.wordpress.android.util.FluxCUtils
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.PackageManagerWrapper
import org.wordpress.android.util.SnackbarItem
import org.wordpress.android.util.SnackbarItem.Info
@@ -115,18 +112,12 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
@Inject
lateinit var qrCodeAuthFlowFeatureConfig: QRCodeAuthFlowFeatureConfig
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
@Inject
lateinit var packageManagerWrapper: PackageManagerWrapper
@Inject
lateinit var appPrefsWrapper: AppPrefsWrapper
- @Inject
- lateinit var uiHelpers: UiHelpers
-
@Inject
lateinit var domainManagementFeatureConfig: DomainManagementFeatureConfig
@@ -180,8 +171,6 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
appbarMain.visibility = View.GONE
}
- addJetpackBadgeIfNeeded()
-
val showPickerListener = OnClickListener {
AnalyticsTracker.track(ME_GRAVATAR_TAPPED)
showAvatarPicker()
@@ -356,23 +345,6 @@ class MeFragment : Fragment(R.layout.me_fragment), OnScrollToTopListener {
}
}
- private fun MeFragmentBinding.addJetpackBadgeIfNeeded() {
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithStaticText.ME
- jetpackBadge.isVisible = true
- jetpackBadge.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBadge.setOnClickListener {
- jetpackBrandingUtils.trackBadgeTapped(screen)
- viewModel.showJetpackPoweredBottomSheet()
- }
- }
- }
- }
-
private fun MeFragmentBinding.setupObservers(savedInstanceState: Bundle?) {
if (savedInstanceState != null) {
if (savedInstanceState.getBoolean(IS_DISCONNECTING, false)) {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainActivity.java
index df7757d306e9..32d5244a6316 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainActivity.java
@@ -88,7 +88,7 @@
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayFragment;
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil;
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource;
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper;
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper;
import org.wordpress.android.ui.main.MainActionListItem.ActionType;
import org.wordpress.android.ui.main.WPMainNavigationView.OnPageListener;
import org.wordpress.android.ui.main.WPMainNavigationView.PageType;
@@ -262,7 +262,7 @@ public class WPMainActivity extends BaseAppCompatActivity implements
@Inject OpenWebLinksWithJetpackFlowFeatureConfig mOpenWebLinksWithJetpackFlowFeatureConfig;
@Inject QRCodeAuthFlowFeatureConfig mQrCodeAuthFlowFeatureConfig;
@Inject JetpackFeatureRemovalOverlayUtil mJetpackFeatureRemovalOverlayUtil;
- @Inject JetpackFeatureRemovalPhaseHelper mJetpackFeatureRemovalPhaseHelper;
+ @Inject JetpackFeatureRemovalHelper mJetpackFeatureRemovalHelper;
@Inject BuildConfigWrapper mBuildConfigWrapper;
@@ -323,7 +323,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
String authTokenToSet = null;
mBottomNav = findViewById(R.id.bottom_navigation);
- mBottomNav.init(getSupportFragmentManager(), this, mJetpackFeatureRemovalPhaseHelper);
+ mBottomNav.init(getSupportFragmentManager(), this, mJetpackFeatureRemovalHelper);
if (savedInstanceState == null) {
if (!AppPrefs.isInstallationReferrerObtained()) {
@@ -521,9 +521,7 @@ private void showJetpackFeatureOverlayAccessedInCorrectly(Map tr
mAnalyticsTrackerWrapper.track(
Stat.JETPACK_FEATURE_INCORRECTLY_ACCESSED, trackingProperties);
JetpackFeatureFullScreenOverlayFragment.newInstance(
- null,
false,
- true,
JetpackFeatureCollectionOverlaySource.DISABLED_ENTRY_POINT
).show(getSupportFragmentManager(), JetpackFeatureFullScreenOverlayFragment.TAG);
}
@@ -576,9 +574,7 @@ private void showSignInForResultBasedOnIsJetpackAppBuildConfig(Activity activity
private void displayJetpackFeatureCollectionOverlayIfNeeded() {
if (mJetpackFeatureRemovalOverlayUtil.shouldShowFeatureCollectionJetpackOverlayForFirstTime()) {
JetpackFeatureFullScreenOverlayFragment.newInstance(
- null,
false,
- true,
JetpackFeatureCollectionOverlaySource.APP_OPEN
).show(getSupportFragmentManager(), JetpackFeatureFullScreenOverlayFragment.TAG);
}
@@ -763,7 +759,7 @@ private void initViewModel() {
private void triggerCreatePageFlow(ActionType actionType) {
if (mMLPViewModel.canShowModalLayoutPicker()
- && mJetpackFeatureRemovalPhaseHelper.shouldShowTemplateSelectionInPages()) {
+ && mJetpackFeatureRemovalHelper.shouldShowTemplateSelectionInPages()) {
mMLPViewModel.createPageFlowTriggered(getCreatePageDashboardSourceFromActionType(actionType));
} else {
if (actionType == ActionType.CREATE_NEW_PAGE_FROM_PAGES_CARD) {
@@ -812,7 +808,7 @@ private void handleOpenPageIntent(@NonNull Intent intent) {
break;
case ARG_NOTIFICATIONS:
setUpMainView();
- if (mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ if (mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
Map trackingProperties = new HashMap<>();
trackingProperties.put("calling_function", "deeplink_notifications");
showJetpackFeatureOverlayAccessedInCorrectly(trackingProperties);
@@ -822,7 +818,7 @@ private void handleOpenPageIntent(@NonNull Intent intent) {
break;
case ARG_READER:
setUpMainView();
- if (mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ if (mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
Map trackingProperties = new HashMap<>();
trackingProperties.put("calling_function", "deeplink_reader");
showJetpackFeatureOverlayAccessedInCorrectly(trackingProperties);
@@ -849,16 +845,12 @@ private void handleOpenPageIntent(@NonNull Intent intent) {
if (!mSelectedSiteRepository.hasSelectedSite()) {
initSelectedSite();
}
- if (mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ if (mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
Map trackingProperties = new HashMap<>();
trackingProperties.put("calling_function", "deeplink_stats");
showJetpackFeatureOverlayAccessedInCorrectly(trackingProperties);
break;
}
- if (mJetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- ActivityLauncher.showJetpackStaticPoster(this);
- break;
- }
mActivityNavigator.openStats(this, getSelectedSite(),
(StatsTimeframe) intent.getSerializableExtra(ARG_STATS_TIMEFRAME));
break;
@@ -1218,19 +1210,19 @@ private void trackLastVisiblePage(@NonNull final PageType pageType) {
switch (pageType) {
case MY_SITE:
ActivityId.trackLastActivity(ActivityId.MY_SITE);
- mJetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(PageType.MY_SITE, getSelectedSite());
+ mJetpackFeatureRemovalHelper.trackPageAccessedEventIfNeeded(PageType.MY_SITE, getSelectedSite());
break;
case READER:
ActivityId.trackLastActivity(ActivityId.READER);
- mJetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(PageType.READER);
+ mJetpackFeatureRemovalHelper.trackPageAccessedEventIfNeeded(PageType.READER);
break;
case NOTIFS:
ActivityId.trackLastActivity(ActivityId.NOTIFICATIONS);
- mJetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(PageType.NOTIFS);
+ mJetpackFeatureRemovalHelper.trackPageAccessedEventIfNeeded(PageType.NOTIFS);
break;
case ME:
ActivityId.trackLastActivity(ActivityId.ME);
- mJetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(PageType.ME);
+ mJetpackFeatureRemovalHelper.trackPageAccessedEventIfNeeded(PageType.ME);
break;
default:
break;
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt
index eb49b29c5069..83ac852cc21e 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/main/WPMainNavigationView.kt
@@ -32,14 +32,12 @@ import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.datasets.ReaderDatabase
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.WPMainActivity.OnScrollToTopListener
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.ME
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.MY_SITE
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.NOTIFS
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.READER
-import org.wordpress.android.ui.main.jetpack.staticposter.JetpackStaticPosterFragment
-import org.wordpress.android.ui.main.jetpack.staticposter.UiData
import org.wordpress.android.ui.main.utils.MeGravatarLoader
import org.wordpress.android.ui.mysite.MySiteFragment
import org.wordpress.android.ui.notifications.NotificationsListFragment
@@ -72,7 +70,7 @@ class WPMainNavigationView @JvmOverloads constructor(
private var fragmentManager: FragmentManager? = null
private lateinit var pageListener: OnPageListener
private var prevPosition = -1
- private lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private val unselectedButtonAlpha = ResourcesCompat.getFloat(
resources,
MaterialR.dimen.material_emphasis_disabled
@@ -109,10 +107,10 @@ class WPMainNavigationView @JvmOverloads constructor(
fun onNewPostButtonClicked(promptId: Int, origin: EntryPoint)
}
- fun init(fm: FragmentManager, listener: OnPageListener, helper: JetpackFeatureRemovalPhaseHelper) {
+ fun init(fm: FragmentManager, listener: OnPageListener, helper: JetpackFeatureRemovalHelper) {
fragmentManager = fm
pageListener = listener
- jetpackFeatureRemovalPhaseHelper = helper
+ jetpackFeatureRemovalHelper = helper
val inflater = LayoutInflater.from(context)
inflater.inflate(R.layout.main_navigation_view, this, true)
@@ -215,7 +213,7 @@ class WPMainNavigationView @JvmOverloads constructor(
}
private fun getMainPageIndex(): Int {
- return if (jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) 0
+ return if (jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) 0
else AppPrefs.getMainPageIndex(numPages() - 1)
}
@@ -332,7 +330,7 @@ class WPMainNavigationView @JvmOverloads constructor(
setImageViewSelected(position, true)
- if (jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures())
+ if (jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures())
AppPrefs.setMainPageIndex(0)
else AppPrefs.setMainPageIndex(position)
@@ -483,18 +481,11 @@ class WPMainNavigationView @JvmOverloads constructor(
}
private inner class NavAdapter {
- private fun createFragment(pageType: PageType, helper: JetpackFeatureRemovalPhaseHelper): Fragment {
- val shouldUseStaticPostersFragment = helper.shouldShowStaticPage()
+ private fun createFragment(pageType: PageType): Fragment {
val fragment = when (pageType) {
MY_SITE -> MySiteFragment.newInstance()
- READER -> if (shouldUseStaticPostersFragment)
- JetpackStaticPosterFragment.newInstance(UiData.READER)
- else ReaderFragment()
-
- NOTIFS -> if (shouldUseStaticPostersFragment)
- JetpackStaticPosterFragment.newInstance(UiData.NOTIFICATIONS)
- else NotificationsListFragment.newInstance()
-
+ READER -> ReaderFragment()
+ NOTIFS -> NotificationsListFragment.newInstance()
ME -> MeFragment.newInstance()
}
fragmentManager?.beginTransaction()
@@ -506,32 +497,7 @@ class WPMainNavigationView @JvmOverloads constructor(
fun getFragment(position: Int): Fragment? {
return pages().getOrNull(position)?.let { pageType ->
- val currentFragment = fragmentManager?.findFragmentByTag(getTagForPageType(pageType))
- return currentFragment?.let {
- when (it) {
- is ReaderFragment, is NotificationsListFragment -> checkAndCreateForStaticPage(it, pageType)
- is JetpackStaticPosterFragment -> checkAndCreateForNonStaticPage(it, pageType)
- else -> it
- }
- } ?: createFragment(pageType, jetpackFeatureRemovalPhaseHelper)
- }
- }
-
- private fun checkAndCreateForStaticPage(fragment: Fragment, pageType: PageType): Fragment {
- return if (jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- fragmentManager?.beginTransaction()?.remove(fragment)?.commitNow()
- createFragment(pageType, jetpackFeatureRemovalPhaseHelper)
- } else {
- fragment
- }
- }
-
- private fun checkAndCreateForNonStaticPage(fragment: Fragment, pageType: PageType): Fragment {
- return if (!jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- fragmentManager?.beginTransaction()?.remove(fragment)?.commitNow()
- createFragment(pageType, jetpackFeatureRemovalPhaseHelper)
- } else {
- fragment
+ fragmentManager?.findFragmentByTag(getTagForPageType(pageType)) ?: createFragment(pageType)
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterFragment.kt
deleted file mode 100644
index 21d84c62bbe4..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterFragment.kt
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.wordpress.android.ui.main.jetpack.staticposter
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.compose.material3.CircularProgressIndicator
-import androidx.compose.runtime.collectAsState
-import androidx.compose.runtime.getValue
-import androidx.compose.ui.platform.ComposeView
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.viewModels
-import dagger.hilt.android.AndroidEntryPoint
-import org.wordpress.android.ui.ActivityLauncherWrapper
-import org.wordpress.android.ui.ActivityLauncherWrapper.Companion.CAMPAIGN_STATIC_POSTER
-import org.wordpress.android.ui.ActivityLauncherWrapper.Companion.JETPACK_PACKAGE_NAME
-import org.wordpress.android.ui.WPWebViewActivity
-import org.wordpress.android.ui.compose.theme.AppThemeM3
-import org.wordpress.android.ui.main.jetpack.staticposter.compose.JetpackStaticPoster
-import org.wordpress.android.util.UrlUtils
-import org.wordpress.android.util.extensions.getParcelableCompat
-import javax.inject.Inject
-
-@AndroidEntryPoint
-class JetpackStaticPosterFragment : Fragment() {
- private val viewModel: JetpackStaticPosterViewModel by viewModels()
-
- @Inject
- lateinit var activityLauncher: ActivityLauncherWrapper
-
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ) = ComposeView(requireContext()).apply {
- setContent {
- AppThemeM3 {
- val uiState by viewModel.uiState.collectAsState()
- when (val state = uiState) {
- is UiState.Content -> JetpackStaticPoster(
- uiState = state,
- onPrimaryClick = viewModel::onPrimaryClick,
- onSecondaryClick = viewModel::onSecondaryClick,
- onBackClick = requireActivity().onBackPressedDispatcher::onBackPressed,
- )
- is UiState.Loading -> CircularProgressIndicator()
- }
- }
- }
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- observeEvents()
- viewModel.start(requireNotNull(requireArguments().getParcelableCompat(ARG_PARCEL)))
- }
-
- private fun observeEvents() {
- viewModel.events.observe(viewLifecycleOwner) { event ->
- when (event) {
- is Event.PrimaryButtonClick -> activityLauncher.openPlayStoreLink(
- requireActivity(),
- JETPACK_PACKAGE_NAME,
- CAMPAIGN_STATIC_POSTER
- )
- is Event.SecondaryButtonClick -> event.url?.let {
- WPWebViewActivity.openURL(requireContext(), UrlUtils.addUrlSchemeIfNeeded(it, true))
- }
- }
- }
- }
-
- companion object {
- private const val ARG_PARCEL = "ARG_PARCEL"
-
- fun newInstance(parcel: UiData) = JetpackStaticPosterFragment().apply {
- arguments = Bundle().apply {
- putParcelable(ARG_PARCEL, parcel)
- }
- }
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterViewModel.kt
deleted file mode 100644
index 312a21d1aa8b..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/JetpackStaticPosterViewModel.kt
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.wordpress.android.ui.main.jetpack.staticposter
-
-import androidx.lifecycle.LiveData
-import dagger.hilt.android.lifecycle.HiltViewModel
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.asStateFlow
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.modules.UI_THREAD
-import org.wordpress.android.ui.utils.UiString
-import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import org.wordpress.android.util.config.PhaseThreeBlogPostLinkConfig
-import org.wordpress.android.viewmodel.ScopedViewModel
-import org.wordpress.android.viewmodel.SingleLiveEvent
-import javax.inject.Inject
-import javax.inject.Named
-
-private const val KEY_SOURCE = "source"
-
-@HiltViewModel
-class JetpackStaticPosterViewModel @Inject constructor(
- @Named(UI_THREAD) mainDispatcher: CoroutineDispatcher,
- private val analyticsTrackerWrapper: AnalyticsTrackerWrapper,
- private val phaseThreeBlogPostLinkConfig: PhaseThreeBlogPostLinkConfig,
-) : ScopedViewModel(mainDispatcher) {
- private var isStarted = false
-
- private val _uiState = MutableStateFlow(UiState.Loading)
- val uiState = _uiState.asStateFlow()
-
- private val _events = SingleLiveEvent()
- val events = _events as LiveData
-
- private lateinit var data: UiData
-
- fun start(uiData: UiData) {
- if (!isStarted || uiData != data) trackStart(uiData.screen.trackingName)
- if (isStarted) return else isStarted = true
- data = uiData
- _uiState.value = data.toContentUiState()
- }
-
- fun onPrimaryClick() {
- trackPrimaryClick()
- launch { _events.value = Event.PrimaryButtonClick }
- }
-
- fun onSecondaryClick() {
- trackSecondaryClick()
- launch { _events.value = Event.SecondaryButtonClick(phaseThreeBlogPostLinkConfig.getValue()) }
- }
-
- private fun trackStart(source: String) = analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.REMOVE_STATIC_POSTER_DISPLAYED,
- mapOf(KEY_SOURCE to source)
- )
-
- private fun trackPrimaryClick() = analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.REMOVE_STATIC_POSTER_GET_JETPACK_TAPPED,
- mapOf(KEY_SOURCE to data.screen.trackingName)
- )
-
- private fun trackSecondaryClick() = analyticsTrackerWrapper.track(
- AnalyticsTracker.Stat.REMOVE_STATIC_POSTER_LINK_TAPPED,
- mapOf(KEY_SOURCE to data.screen.trackingName)
- )
-}
-
-sealed class UiState {
- object Loading : UiState()
- data class Content(
- val showTopBar: Boolean,
- val featureName: UiString,
- val showPluralTitle: Boolean
- ) : UiState()
-}
-
-sealed class Event {
- object PrimaryButtonClick : Event()
- data class SecondaryButtonClick(val url: String?) : Event()
-}
-
-typealias UiData = JetpackPoweredScreen.WithStaticPoster
-
-fun UiData.toContentUiState() = UiState.Content(
- showTopBar = this == UiData.STATS,
- featureName = screen.featureName,
- showPluralTitle = screen.isPlural
-)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/compose/JetpackStaticPoster.kt b/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/compose/JetpackStaticPoster.kt
deleted file mode 100644
index a6eee4ab006a..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/main/jetpack/staticposter/compose/JetpackStaticPoster.kt
+++ /dev/null
@@ -1,170 +0,0 @@
-package org.wordpress.android.ui.main.jetpack.staticposter.compose
-
-import android.annotation.SuppressLint
-import android.content.res.Configuration
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.foundation.layout.Spacer
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.automirrored.filled.ArrowBack
-import androidx.compose.material3.ButtonDefaults
-import androidx.compose.material3.ExperimentalMaterial3Api
-import androidx.compose.material3.Icon
-import androidx.compose.material3.IconButton
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Scaffold
-import androidx.compose.material3.Text
-import androidx.compose.material3.TopAppBar
-import androidx.compose.runtime.Composable
-import androidx.compose.runtime.getValue
-import androidx.compose.runtime.remember
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalConfiguration
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.res.colorResource
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
-import com.airbnb.lottie.compose.LottieAnimation
-import com.airbnb.lottie.compose.LottieCompositionSpec
-import com.airbnb.lottie.compose.rememberLottieComposition
-import org.wordpress.android.R
-import org.wordpress.android.ui.compose.components.buttons.PrimaryButtonM3
-import org.wordpress.android.ui.compose.components.buttons.SecondaryButtonM3
-import org.wordpress.android.ui.compose.theme.AppColor
-import org.wordpress.android.ui.compose.theme.jpColorPalette
-import org.wordpress.android.ui.compose.theme.AppThemeM3
-import org.wordpress.android.ui.compose.utils.uiStringText
-import org.wordpress.android.ui.main.jetpack.staticposter.UiData
-import org.wordpress.android.ui.main.jetpack.staticposter.UiState
-import org.wordpress.android.ui.main.jetpack.staticposter.toContentUiState
-import org.wordpress.android.util.extensions.isRtl
-
-@OptIn(ExperimentalMaterial3Api::class)
-@Composable
-@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
-fun JetpackStaticPoster(
- uiState: UiState.Content,
- onPrimaryClick: () -> Unit = {},
- onSecondaryClick: () -> Unit = {},
- onBackClick: () -> Unit = {},
-): Unit = with(uiState) {
- Scaffold(
- topBar = {
- if (showTopBar) {
- TopAppBar(
- title = { },
- navigationIcon = {
- IconButton(onClick = onBackClick) {
- Icon(
- Icons.AutoMirrored.Filled.ArrowBack,
- stringResource(R.string.close)
- )
- }
- },
- )
- }
- },
- ) {
- val orientation = LocalConfiguration.current.orientation
- val verticalPadding = remember(orientation) {
- if (orientation == Configuration.ORIENTATION_LANDSCAPE) 60.dp else 30.dp
- }
-
- Column(
- verticalArrangement = Arrangement.Center,
- horizontalAlignment = Alignment.CenterHorizontally,
- modifier = Modifier
- .fillMaxSize()
- .verticalScroll(rememberScrollState())
- .padding(horizontal = 30.dp, vertical = verticalPadding)
- ) {
- Column(
- horizontalAlignment = Alignment.Start,
- verticalArrangement = Arrangement.spacedBy(20.dp),
- modifier = Modifier
- .padding(bottom = 20.dp)
- .fillMaxWidth(),
- ) {
- val animRes = if (LocalContext.current.isRtl()) R.raw.wp2jp_rtl else R.raw.wp2jp_left
- val lottieComposition by rememberLottieComposition(LottieCompositionSpec.RawRes(animRes))
- LottieAnimation(lottieComposition)
- Text(
- stringResource(
- if (showPluralTitle)
- R.string.wp_jp_static_poster_title_plural else R.string.wp_jp_static_poster_title,
- uiStringText(featureName)
- ),
- style = MaterialTheme.typography.headlineLarge.copy(
- fontSize = 34.sp,
- fontWeight = FontWeight.Bold,
- lineHeight = 48.sp
- ),
- )
- Text(
- stringResource(R.string.wp_jp_static_poster_message),
- style = MaterialTheme.typography.bodyLarge.copy(fontSize = 17.sp),
- )
- Text(
- stringResource(R.string.wp_jp_static_poster_footnote),
- style = MaterialTheme.typography.bodyLarge.copy(colorResource(R.color.gray_50), 17.sp),
- )
- }
- PrimaryButtonM3(
- stringResource(R.string.wp_jp_static_poster_button_primary),
- onPrimaryClick,
- colors = ButtonDefaults.buttonColors(
- containerColor = jpColorPalette().primary,
- contentColor = AppColor.White,
- ),
- padding = PaddingValues(bottom = 15.dp),
- textStyle = MaterialTheme.typography.bodyLarge.copy(fontSize = 17.sp, fontWeight = FontWeight.SemiBold),
- )
- SecondaryButtonM3(
- stringResource(R.string.wp_jp_static_poster_button_secondary),
- onSecondaryClick,
- colors = ButtonDefaults.buttonColors(
- containerColor = Color.Transparent,
- contentColor = jpColorPalette().primary,
- ),
- padding = PaddingValues(0.dp),
- textStyle = MaterialTheme.typography.bodyLarge.copy(fontSize = 17.sp),
- ) {
- Spacer(modifier = Modifier.width(10.dp))
- Icon(
- painterResource(R.drawable.ic_external_v2),
- stringResource(R.string.icon_desc),
- tint = colorResource(R.color.jetpack_green_40)
- )
- }
- }
- }
-}
-
-@Preview(
- name = "Light Mode",
-)
-@Preview(
- name = "Dark Mode",
- showBackground = true,
- uiMode = Configuration.UI_MODE_NIGHT_YES,
-)
-@Composable
-private fun PreviewJetpackStaticPoster() {
- AppThemeM3 {
- val uiState = UiData.STATS.toContentUiState()
- JetpackStaticPoster(uiState)
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java
index 51335175611e..9a7124acc522 100755
--- a/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/media/MediaBrowserActivity.java
@@ -65,7 +65,7 @@
import org.wordpress.android.ui.ActivityId;
import org.wordpress.android.ui.ActivityNavigator;
import org.wordpress.android.ui.RequestCodes;
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper;
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper;
import org.wordpress.android.ui.main.BaseAppCompatActivity;
import org.wordpress.android.ui.media.MediaGridFragment.MediaFilter;
import org.wordpress.android.ui.media.MediaGridFragment.MediaGridListener;
@@ -127,7 +127,7 @@ public class MediaBrowserActivity extends BaseAppCompatActivity implements Media
@Inject MediaPickerLauncher mMediaPickerLauncher;
@Inject MediaUtilsWrapper mMediaUtilsWrapper;
@Inject SelectedSiteRepository mSelectedSiteRepository;
- @Inject JetpackFeatureRemovalPhaseHelper mJetpackFeatureRemovalPhaseHelper;
+ @Inject JetpackFeatureRemovalHelper mJetpackFeatureRemovalHelper;
@Inject ActivityNavigator mActivityNavigator;
@Inject WpAppNotifierHandler mWpAppNotifierHandler;
@@ -990,7 +990,7 @@ public void showAddMediaPopup() {
});
if (mBrowserType.isBrowser() && mSite.isUsingWpComRestApi()
- && !mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ && !mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
popup.getMenu().add(R.string.photo_picker_stock_media).setOnMenuItemClickListener(
item -> {
doAddMediaItemClicked(AddMenuItem.ITEM_CHOOSE_STOCK_MEDIA);
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/AccountDataViewModelSlice.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/AccountDataViewModelSlice.kt
index 555bb411a5d2..a175252995dc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/AccountDataViewModelSlice.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/AccountDataViewModelSlice.kt
@@ -6,7 +6,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.mysite.MySiteUiState.PartialState.AccountData
import org.wordpress.android.util.BuildConfigWrapper
import javax.inject.Inject
@@ -14,7 +14,7 @@ import javax.inject.Inject
class AccountDataViewModelSlice @Inject constructor(
private val accountStore: AccountStore,
private val buildConfigWrapper: BuildConfigWrapper,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) {
private lateinit var scope: CoroutineScope
@@ -56,6 +56,6 @@ class AccountDataViewModelSlice @Inject constructor(
private fun shouldBuildCard(): Boolean {
return (!buildConfigWrapper.isJetpackApp
- && jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures())
+ && jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures())
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapter.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapter.kt
index 03535d836876..213128b03507 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapter.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapter.kt
@@ -17,7 +17,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.ErrorCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.ErrorWithinCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackFeatureCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackInstallFullPluginCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackSwitchMenu
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PagesCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PersonalizeCardModel
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PostCard
@@ -30,7 +29,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.CategoryHeaderItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.InfoItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.ListItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.SingleActionCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.JetpackBadge
import org.wordpress.android.ui.mysite.cards.blaze.BlazeCampaignsCardViewHolder
import org.wordpress.android.ui.mysite.cards.blaze.PromoteWithBlazeCardViewHolder
import org.wordpress.android.ui.mysite.cards.dashboard.activity.ActivityCardViewHolder
@@ -46,7 +44,6 @@ import org.wordpress.android.ui.mysite.cards.dashboard.todaysstats.TodaysStatsCa
import org.wordpress.android.ui.mysite.cards.domainregistration.DomainRegistrationViewHolder
import org.wordpress.android.ui.mysite.cards.dynamiccard.DynamicDashboardCardViewHolder
import org.wordpress.android.ui.mysite.cards.jetpackfeature.JetpackFeatureCardViewHolder
-import org.wordpress.android.ui.mysite.cards.jetpackfeature.SwitchToJetpackMenuCardViewHolder
import org.wordpress.android.ui.mysite.cards.jpfullplugininstall.JetpackInstallFullPluginCardViewHolder
import org.wordpress.android.ui.mysite.cards.nocards.NoCardsMessageViewHolder
import org.wordpress.android.ui.mysite.cards.personalize.PersonalizeCardViewHolder
@@ -58,7 +55,6 @@ import org.wordpress.android.ui.mysite.items.categoryheader.MySiteCategoryItemVi
import org.wordpress.android.ui.mysite.items.infoitem.MySiteInfoItemViewHolder
import org.wordpress.android.ui.mysite.items.listitem.MySiteListItemViewHolder
import org.wordpress.android.ui.mysite.items.singleactioncard.SingleActionCardViewHolder
-import org.wordpress.android.ui.mysite.jetpackbadge.MySiteJetpackBadgeViewHolder
import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.util.HtmlCompatWrapper
import org.wordpress.android.util.image.ImageManager
@@ -117,10 +113,8 @@ class MySiteAdapter(
MySiteCardAndItem.Type.PAGES_CARD.ordinal -> PagesCardViewHolder(parent, uiHelpers)
MySiteCardAndItem.Type.ACTIVITY_CARD.ordinal -> ActivityCardViewHolder(parent, uiHelpers)
- MySiteCardAndItem.Type.JETPACK_BADGE.ordinal -> MySiteJetpackBadgeViewHolder(parent, uiHelpers)
MySiteCardAndItem.Type.SINGLE_ACTION_CARD.ordinal -> SingleActionCardViewHolder(parent)
MySiteCardAndItem.Type.JETPACK_FEATURE_CARD.ordinal -> JetpackFeatureCardViewHolder(parent, uiHelpers)
- MySiteCardAndItem.Type.JETPACK_SWITCH_CARD.ordinal -> SwitchToJetpackMenuCardViewHolder(parent)
MySiteCardAndItem.Type.JETPACK_INSTALL_FULL_PLUGIN_CARD.ordinal -> JetpackInstallFullPluginCardViewHolder(
parent
)
@@ -142,7 +136,6 @@ class MySiteAdapter(
is MySiteCategoryItemViewHolder -> holder.bind(getItem(position) as CategoryHeaderItem)
is MySiteCategoryItemEmptyViewHolder -> holder.bind(getItem(position) as CategoryEmptyHeaderItem)
is MySiteListItemViewHolder -> holder.bind(getItem(position) as ListItem)
- is MySiteJetpackBadgeViewHolder -> holder.bind(getItem(position) as JetpackBadge)
is ErrorCardViewHolder -> holder.bind(getItem(position) as ErrorCard)
is ErrorWithinCardViewHolder -> holder.bind(getItem(position) as ErrorWithinCard)
is TodaysStatsCardViewHolder -> holder.bind(getItem(position) as TodaysStatsCardWithData)
@@ -156,7 +149,6 @@ class MySiteAdapter(
is ActivityCardViewHolder -> holder.bind(getItem(position) as ActivityCard)
is SingleActionCardViewHolder -> holder.bind(getItem(position) as SingleActionCard)
is JetpackFeatureCardViewHolder -> holder.bind(getItem(position) as JetpackFeatureCard)
- is SwitchToJetpackMenuCardViewHolder -> holder.bind(getItem(position) as JetpackSwitchMenu)
is JetpackInstallFullPluginCardViewHolder -> holder.bind(getItem(position) as JetpackInstallFullPluginCard)
is NoCardsMessageViewHolder -> holder.bind(getItem(position) as MySiteCardAndItem.Card.NoCardsMessage)
is PersonalizeCardViewHolder -> holder.bind(getItem(position) as PersonalizeCardModel)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapterDiffCallback.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapterDiffCallback.kt
index c86cd26dbe70..d602fb66f9e3 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapterDiffCallback.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteAdapterDiffCallback.kt
@@ -13,7 +13,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.ErrorCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.ErrorWithinCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackFeatureCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackInstallFullPluginCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.JetpackSwitchMenu
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PagesCard
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PersonalizeCardModel
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Card.PostCard.PostCardWithPostItems
@@ -26,7 +25,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.CategoryHeaderItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.InfoItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.ListItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.SingleActionCard
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.JetpackBadge
@Suppress("ComplexMethod")
object MySiteAdapterDiffCallback : DiffUtil.ItemCallback() {
@@ -52,14 +50,12 @@ object MySiteAdapterDiffCallback : DiffUtil.ItemCallback() {
oldItem is DashboardPlansCard && updatedItem is DashboardPlansCard -> true
oldItem is PagesCard && updatedItem is PagesCard -> true
oldItem is ActivityCard && updatedItem is ActivityCard -> true
- oldItem is JetpackBadge && updatedItem is JetpackBadge -> true
oldItem is SingleActionCard && updatedItem is SingleActionCard -> {
oldItem.textResource == updatedItem.textResource
&& oldItem.imageResource == updatedItem.imageResource
}
oldItem is JetpackFeatureCard && updatedItem is JetpackFeatureCard -> true
- oldItem is JetpackSwitchMenu && updatedItem is JetpackSwitchMenu -> true
oldItem is JetpackInstallFullPluginCard && updatedItem is JetpackInstallFullPluginCard -> true
oldItem is MySiteCardAndItem.Card.NoCardsMessage && updatedItem is
MySiteCardAndItem.Card.NoCardsMessage -> true
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
index 4589826e8ed5..93ef3128cabf 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteCardAndItem.kt
@@ -9,7 +9,6 @@ import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.CATEGORY_HEADER_IT
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.DOMAIN_REGISTRATION_CARD
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.DYNAMIC_DASHBOARD_CARD
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.INFO_ITEM
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.JETPACK_BADGE
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.JETPACK_FEATURE_CARD
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.LIST_ITEM
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.QUICK_LINK_RIBBON
@@ -47,10 +46,8 @@ sealed class MySiteCardAndItem(open val type: Type) {
PAGES_CARD_ERROR,
PAGES_CARD,
ACTIVITY_CARD,
- JETPACK_BADGE,
SINGLE_ACTION_CARD,
JETPACK_FEATURE_CARD,
- JETPACK_SWITCH_CARD,
JETPACK_INSTALL_FULL_PLUGIN_CARD,
NO_CARDS_MESSAGE,
PERSONALIZE_CARD,
@@ -100,13 +97,6 @@ sealed class MySiteCardAndItem(open val type: Type) {
val learnMoreUrl: String?,
) : Card(JETPACK_FEATURE_CARD)
- data class JetpackSwitchMenu(
- val onClick: ListItemInteraction,
- val onRemindMeLaterItemClick: ListItemInteraction,
- val onHideMenuItemClick: ListItemInteraction,
- val onMoreMenuClick: ListItemInteraction
- ) : Card(Type.JETPACK_SWITCH_CARD)
-
data class JetpackInstallFullPluginCard(
val siteName: String,
val pluginNames: List,
@@ -404,9 +394,4 @@ sealed class MySiteCardAndItem(open val type: Type) {
val listItemAction: ListItemAction
) : Item(LIST_ITEM)
}
-
- data class JetpackBadge(
- val text: UiString,
- val onClick: ListItemInteraction? = null,
- ) : MySiteCardAndItem(JETPACK_BADGE)
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt
index 81912a03400c..7d2c1cf2125d 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/MySiteFragment.kt
@@ -673,9 +673,6 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
action.source,
action.shouldShowBlazeOverlay
)
- is SiteNavigationAction.ShowJetpackRemovalStaticPostersView -> {
- ActivityLauncher.showJetpackStaticPoster(requireActivity())
- }
is SiteNavigationAction.OpenActivityLogDetail -> ActivityLauncher.viewActivityLogDetailFromDashboardCard(
activity,
action.site,
@@ -802,10 +799,7 @@ class MySiteFragment : Fragment(R.layout.my_site_fragment),
source: JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource
) {
JetpackFeatureFullScreenOverlayFragment
- .newInstance(
- isFeatureCollectionOverlay = true,
- featureCollectionOverlaySource = source
- )
+ .newInstance(featureCollectionOverlaySource = source)
.show(requireActivity().supportFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/SiteNavigationAction.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/SiteNavigationAction.kt
index 4bc60d2c37f6..cfac453fe40c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/SiteNavigationAction.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/SiteNavigationAction.kt
@@ -61,7 +61,6 @@ sealed class SiteNavigationAction {
data class OpenPromoteWithBlazeOverlay(val source: BlazeFlowSource, val shouldShowBlazeOverlay: Boolean = false) :
SiteNavigationAction()
- object ShowJetpackRemovalStaticPostersView : SiteNavigationAction()
data class OpenActivityLogDetail(val site: SiteModel, val activityId: String, val isRewindable: Boolean) :
SiteNavigationAction()
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandler.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandler.kt
index b2dd5b883503..47e393468fcd 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandler.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandler.kt
@@ -5,7 +5,6 @@ import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.ui.blaze.BlazeFeatureUtils
import org.wordpress.android.ui.blaze.BlazeFlowSource
import org.wordpress.android.ui.blaze.blazecampaigns.campaignlisting.CampaignListingPageSource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.mysite.SiteNavigationAction
import org.wordpress.android.ui.mysite.items.listitem.ListItemAction
import org.wordpress.android.ui.newstats.NewStatsRouting
@@ -13,7 +12,6 @@ import javax.inject.Inject
class ListItemActionHandler @Inject constructor(
private val accountStore: AccountStore,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
private val blazeFeatureUtils: BlazeFeatureUtils,
private val newStatsRouting: NewStatsRouting
) {
@@ -50,10 +48,6 @@ class ListItemActionHandler @Inject constructor(
}
private fun getStatsNavigationActionForSite(site: SiteModel): SiteNavigationAction = when {
- // if we are in static posters phase - we don't want to show any connection/login messages
- jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage() ->
- SiteNavigationAction.ShowJetpackRemovalStaticPostersView
-
// If the user is not logged in and the site is already connected to Jetpack, ask to login.
!accountStore.hasAccessToken() && site.isJetpackConnected -> SiteNavigationAction.StartWPComLoginForJetpackStats
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSlice.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSlice.kt
index 8ce631295681..94892045a3b2 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSlice.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSlice.kt
@@ -3,7 +3,6 @@ package org.wordpress.android.ui.mysite.cards.dashboard.todaysstats
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import org.wordpress.android.fluxc.model.dashboard.CardModel.TodaysStatsCardModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.mysite.MySiteCardAndItem
import org.wordpress.android.ui.mysite.MySiteCardAndItemBuilderParams.TodaysStatsCardBuilderParams
import org.wordpress.android.ui.mysite.SelectedSiteRepository
@@ -17,7 +16,6 @@ import javax.inject.Inject
class TodaysStatsViewModelSlice @Inject constructor(
private val cardsTracker: CardsTracker,
private val selectedSiteRepository: SelectedSiteRepository,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
private val appPrefsWrapper: AppPrefsWrapper,
private val todaysStatsCardBuilder: TodaysStatsCardBuilder,
private val newStatsRouting: NewStatsRouting
@@ -55,15 +53,11 @@ class TodaysStatsViewModelSlice @Inject constructor(
CardsTracker.Type.STATS.label,
CardsTracker.StatsSubtype.TODAYS_STATS_NUDGE.label
)
- if (jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- _onNavigation.value = Event(SiteNavigationAction.ShowJetpackRemovalStaticPostersView)
- } else {
- _onNavigation.value = Event(
- SiteNavigationAction.OpenExternalUrl(
- TodaysStatsCardBuilder.URL_GET_MORE_VIEWS_AND_TRAFFIC
- )
+ _onNavigation.value = Event(
+ SiteNavigationAction.OpenExternalUrl(
+ TodaysStatsCardBuilder.URL_GET_MORE_VIEWS_AND_TRAFFIC
)
- }
+ )
}
private fun onMoreMenuClick() {
@@ -89,9 +83,6 @@ class TodaysStatsViewModelSlice @Inject constructor(
private fun navigateToTodaysStats() {
val navigationAction = when {
- jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage() ->
- SiteNavigationAction.ShowJetpackRemovalStaticPostersView
-
newStatsRouting.isNewStatsEnabled() -> SiteNavigationAction.OpenNewStatsForToday
else -> SiteNavigationAction.OpenStatsByDay(requireNotNull(selectedSiteRepository.getSelectedSite()))
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelper.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelper.kt
index facdd574a1c9..c00e518ee163 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelper.kt
@@ -2,11 +2,7 @@ package org.wordpress.android.ui.mysite.cards.jetpackfeature
import org.wordpress.android.R
import org.wordpress.android.analytics.AnalyticsTracker.Stat
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseNewUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseSelfHostedUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JETPACK_REMOVAL_TRACKING_NAME
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.utils.UiString
import org.wordpress.android.util.BuildConfigWrapper
@@ -21,60 +17,23 @@ class JetpackFeatureCardHelper @Inject constructor(
private val appPrefsWrapper: AppPrefsWrapper,
private val buildConfigWrapper: BuildConfigWrapper,
private val dateTimeUtilsWrapper: DateTimeUtilsWrapper,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
private val phaseThreeBlogPostLinkConfig: PhaseThreeBlogPostLinkConfig
) {
fun shouldShowJetpackFeatureCard(): Boolean {
val isWordPressApp = !buildConfigWrapper.isJetpackApp
val exceedsShowFrequency = exceedsShowFrequencyAndResetJetpackFeatureCardLastShownTimestampIfNeeded()
- return isWordPressApp && shouldShowJetpackFeatureCardInCurrentPhase() &&
- !isJetpackCardHiddenByUser() && exceedsShowFrequency
+ return isWordPressApp && !isJetpackCardHiddenByUser() && exceedsShowFrequency
}
- private fun isJetpackCardHiddenByUser(): Boolean {
- return jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.run {
- appPrefsWrapper.getShouldHideJetpackFeatureCard(
- this
- )
- } ?: false
- }
-
- fun shouldShowFeatureCardAtTop(): Boolean {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- is PhaseThree, PhaseSelfHostedUsers -> true
- else -> false
- }
- }
-
- private fun shouldShowJetpackFeatureCardInCurrentPhase(): Boolean {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- is PhaseThree, PhaseNewUsers, PhaseSelfHostedUsers -> true
- else -> false
- }
- }
-
- fun getCardContent(): UiString.UiStringRes? {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- is PhaseThree ->
- UiString.UiStringRes(R.string.jetpack_feature_card_content_phase_three)
- is PhaseNewUsers, PhaseSelfHostedUsers ->
- UiString.UiStringRes(R.string.jetpack_feature_card_content_phase_self_hosted_and_new_users)
- else -> null
- }
- }
+ private fun isJetpackCardHiddenByUser(): Boolean = appPrefsWrapper.getShouldHideJetpackFeatureCard()
- private fun isSwitchToJetpackMenuCardHiddenByUser(): Boolean {
- return jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.run {
- appPrefsWrapper.getShouldHideSwitchToJetpackMenuCard(
- this
- )
- } ?: false
- }
+ fun getCardContent(): UiString.UiStringRes =
+ UiString.UiStringRes(R.string.jetpack_feature_card_content_phase_self_hosted_and_new_users)
fun track(stat: Stat) {
analyticsTrackerWrapper.track(
stat,
- mapOf(PHASE to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName)
+ mapOf(PHASE to JETPACK_REMOVAL_TRACKING_NAME)
)
}
@@ -92,8 +51,7 @@ class JetpackFeatureCardHelper @Inject constructor(
@Suppress("ReturnCount")
private fun exceedsShowFrequencyAndResetJetpackFeatureCardLastShownTimestampIfNeeded(): Boolean {
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase() ?: return false
- val lastShownTimestamp = appPrefsWrapper.getJetpackFeatureCardLastShownTimestamp(currentPhase)
+ val lastShownTimestamp = appPrefsWrapper.getJetpackFeatureCardLastShownTimestamp()
if (lastShownTimestamp == DEFAULT_LAST_SHOWN_TIMESTAMP) return true
val lastShownDate = Date(lastShownTimestamp)
@@ -104,60 +62,19 @@ class JetpackFeatureCardHelper @Inject constructor(
val exceedsFrequency = daysPastOverlayShown >= FREQUENCY_IN_DAYS
if (exceedsFrequency) {
- appPrefsWrapper.setJetpackFeatureCardLastShownTimestamp(currentPhase, DEFAULT_LAST_SHOWN_TIMESTAMP)
- }
- return exceedsFrequency
- }
-
- fun shouldShowSwitchToJetpackMenuCard(): Boolean {
- return !buildConfigWrapper.isJetpackApp &&
- shouldShowSwitchToJetpackMenuCardInCurrentPhase() &&
- exceedsShowFrequencyAndResetSwitchToJetpackMenuLastShownTimestampIfNeeded() &&
- !isSwitchToJetpackMenuCardHiddenByUser()
- }
-
- private fun shouldShowSwitchToJetpackMenuCardInCurrentPhase(): Boolean {
- return when (jetpackFeatureRemovalPhaseHelper.getCurrentPhase()) {
- is JetpackFeatureRemovalPhase.PhaseFour -> true
- else -> false
- }
- }
-
- private fun exceedsShowFrequencyAndResetSwitchToJetpackMenuLastShownTimestampIfNeeded(): Boolean {
- val lastShownTimestamp = appPrefsWrapper.getSwitchToJetpackMenuCardLastShownTimestamp()
- if (lastShownTimestamp == DEFAULT_LAST_SHOWN_TIMESTAMP) return true
-
- val lastShownDate = Date(lastShownTimestamp)
- val daysPastOverlayShown = dateTimeUtilsWrapper.daysBetween(
- lastShownDate,
- Date(System.currentTimeMillis())
- )
-
- val exceedsFrequency = daysPastOverlayShown >= FREQUENCY_IN_DAYS
- if (exceedsFrequency) {
- appPrefsWrapper.setSwitchToJetpackMenuCardLastShownTimestamp(DEFAULT_LAST_SHOWN_TIMESTAMP)
+ appPrefsWrapper.setJetpackFeatureCardLastShownTimestamp(DEFAULT_LAST_SHOWN_TIMESTAMP)
}
return exceedsFrequency
}
fun hideJetpackFeatureCard() {
track(Stat.REMOVE_FEATURE_CARD_HIDE_TAPPED)
- jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.let {
- appPrefsWrapper.setShouldHideJetpackFeatureCard(it, true)
- }
+ appPrefsWrapper.setShouldHideJetpackFeatureCard(true)
}
fun setJetpackFeatureCardLastShownTimeStamp(currentTimeMillis: Long) {
track(Stat.REMOVE_FEATURE_CARD_REMIND_LATER_TAPPED)
- jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.let {
- appPrefsWrapper.setJetpackFeatureCardLastShownTimestamp(it, currentTimeMillis)
- }
- }
- fun hideSwitchToJetpackMenuCard() {
- track(Stat.REMOVE_FEATURE_CARD_HIDE_TAPPED)
- jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.let {
- appPrefsWrapper.setShouldHideSwitchToJetpackMenuCard(it, true)
- }
+ appPrefsWrapper.setJetpackFeatureCardLastShownTimestamp(currentTimeMillis)
}
companion object {
const val PHASE = "phase"
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardShownTracker.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardShownTracker.kt
index 857682b452ac..0124d0c75130 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardShownTracker.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardShownTracker.kt
@@ -1,15 +1,14 @@
package org.wordpress.android.ui.mysite.cards.jetpackfeature
import org.wordpress.android.analytics.AnalyticsTracker.Stat
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JETPACK_REMOVAL_TRACKING_NAME
import org.wordpress.android.ui.mysite.MySiteCardAndItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Type.JETPACK_FEATURE_CARD
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
import javax.inject.Inject
class JetpackFeatureCardShownTracker @Inject constructor(
- private val analyticsTrackerWrapper: AnalyticsTrackerWrapper,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val analyticsTrackerWrapper: AnalyticsTrackerWrapper
) {
private val cardsShownTracked = mutableListOf()
@@ -23,7 +22,7 @@ class JetpackFeatureCardShownTracker @Inject constructor(
cardsShownTracked.add(itemType)
analyticsTrackerWrapper.track(
Stat.REMOVE_FEATURE_CARD_DISPLAYED,
- mapOf("phase" to jetpackFeatureRemovalPhaseHelper.getCurrentPhase()?.trackingName)
+ mapOf("phase" to JETPACK_REMOVAL_TRACKING_NAME)
)
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/SwitchToJetpackMenuCardViewHolder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/SwitchToJetpackMenuCardViewHolder.kt
deleted file mode 100644
index 58890826f23b..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/SwitchToJetpackMenuCardViewHolder.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.wordpress.android.ui.mysite.cards.jetpackfeature
-
-import android.view.View
-import android.view.ViewGroup
-import androidx.appcompat.widget.PopupMenu
-import org.wordpress.android.R
-import org.wordpress.android.databinding.SwitchToJetpackMenuBinding
-import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.MySiteCardAndItemViewHolder
-import org.wordpress.android.ui.utils.ListItemInteraction
-import org.wordpress.android.util.extensions.viewBinding
-
-class SwitchToJetpackMenuCardViewHolder(
- parent: ViewGroup,
-) : MySiteCardAndItemViewHolder(
- parent.viewBinding(SwitchToJetpackMenuBinding::inflate)
-) {
- fun bind(card: MySiteCardAndItem.Card.JetpackSwitchMenu) = with(binding) {
- mySiteSwitchToJetpackCard.setOnClickListener { card.onClick.click() }
- switchToAppMoreIcon.setOnClickListener {
- showMoreMenu(
- card.onRemindMeLaterItemClick,
- card.onHideMenuItemClick,
- card.onMoreMenuClick,
- switchToAppMoreIcon,
- )
- }
- }
-
- private fun showMoreMenu(
- onHideClick: ListItemInteraction,
- onRemindMeLaterClick: ListItemInteraction,
- onMoreMenuClick: ListItemInteraction,
- anchor: View
- ) {
- onMoreMenuClick.click()
- val popupMenu = PopupMenu(itemView.context, anchor)
- popupMenu.setOnMenuItemClickListener {
- when (it.itemId) {
- R.id.jetpack_card_menu_item_remind_me_later -> {
- onRemindMeLaterClick.click()
- return@setOnMenuItemClickListener true
- }
- R.id.jetpack_card_menu_item_hide_this -> {
- onHideClick.click()
- return@setOnMenuItemClickListener true
- }
- else -> return@setOnMenuItemClickListener true
- }
- }
- popupMenu.inflate(R.menu.switch_to_jetpack_card_menu)
- popupMenu.show()
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/DashboardItemsViewModelSlice.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/DashboardItemsViewModelSlice.kt
index 6e3f7b9cb5af..631f8a4ed289 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/DashboardItemsViewModelSlice.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/DashboardItemsViewModelSlice.kt
@@ -10,10 +10,7 @@ import kotlinx.coroutines.launch
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.cards.jetpackfeature.JetpackFeatureCardHelper
import org.wordpress.android.ui.mysite.cards.sotw2023.WpSotw2023NudgeCardViewModelSlice
-import org.wordpress.android.ui.mysite.items.jetpackBadge.JetpackBadgeViewModelSlice
-import org.wordpress.android.ui.mysite.items.jetpackSwitchmenu.JetpackSwitchMenuViewModelSlice
import org.wordpress.android.ui.mysite.items.jetpackfeaturecard.JetpackFeatureCardViewModelSlice
import org.wordpress.android.ui.mysite.items.listitem.SiteItemsViewModelSlice
import org.wordpress.android.util.merge
@@ -23,11 +20,8 @@ import javax.inject.Named
class DashboardItemsViewModelSlice @Inject constructor(
@param:Named(BG_THREAD) private val bgDispatcher: CoroutineDispatcher,
private val jetpackFeatureCardViewModelSlice: JetpackFeatureCardViewModelSlice,
- private val jetpackSwitchMenuViewModelSlice: JetpackSwitchMenuViewModelSlice,
- private val jetpackBadgeViewModelSlice: JetpackBadgeViewModelSlice,
private val siteItemsViewModelSlice: SiteItemsViewModelSlice,
- private val sotw2023NudgeCardViewModelSlice: WpSotw2023NudgeCardViewModelSlice,
- private val jetpackFeatureCardHelper: JetpackFeatureCardHelper
+ private val sotw2023NudgeCardViewModelSlice: WpSotw2023NudgeCardViewModelSlice
) {
private lateinit var scope: CoroutineScope
@@ -42,23 +36,17 @@ class DashboardItemsViewModelSlice @Inject constructor(
val onNavigation = merge(
jetpackFeatureCardViewModelSlice.onNavigation,
- jetpackSwitchMenuViewModelSlice.onNavigation,
- jetpackBadgeViewModelSlice.onNavigation,
siteItemsViewModelSlice.onNavigation,
sotw2023NudgeCardViewModelSlice.onNavigation
)
val uiModel: MutableLiveData> = merge(
jetpackFeatureCardViewModelSlice.uiModel,
- jetpackSwitchMenuViewModelSlice.uiModel,
- jetpackBadgeViewModelSlice.uiModel,
siteItemsViewModelSlice.uiModel,
sotw2023NudgeCardViewModelSlice.uiModel
- ) { jetpackFeatureCard, jetpackSwitchMenu, jetpackBadge, siteItems, sotw2023NudgeCard ->
+ ) { jetpackFeatureCard, siteItems, sotw2023NudgeCard ->
mergeUiModels(
jetpackFeatureCard,
- jetpackSwitchMenu,
- jetpackBadge,
siteItems,
sotw2023NudgeCard
)
@@ -73,8 +61,6 @@ class DashboardItemsViewModelSlice @Inject constructor(
private fun mergeUiModels(
jetpackFeatureCard: MySiteCardAndItem.Card.JetpackFeatureCard?,
- jetpackSwitchMenu: MySiteCardAndItem.Card.JetpackSwitchMenu?,
- jetpackBadge: MySiteCardAndItem.JetpackBadge?,
siteItems: List?,
sotw2023NudgeCard: MySiteCardAndItem.Card.WpSotw2023NudgeCardModel?
): List {
@@ -82,11 +68,7 @@ class DashboardItemsViewModelSlice @Inject constructor(
dasbhboardSiteItems.apply {
sotw2023NudgeCard?.let { add(it) }
siteItems?.let { addAll(siteItems) }
- jetpackSwitchMenu?.let { add(jetpackSwitchMenu) }
- if (jetpackFeatureCardHelper.shouldShowFeatureCardAtTop())
- jetpackFeatureCard?.let { add(0, jetpackFeatureCard) }
- else jetpackFeatureCard?.let { add(jetpackFeatureCard) }
- jetpackBadge?.let { add(jetpackBadge) }
+ jetpackFeatureCard?.let { add(0, it) }
}.toList()
if(dasbhboardSiteItems.isNotEmpty()) trackShown(dasbhboardSiteItems)
return dasbhboardSiteItems
@@ -97,8 +79,6 @@ class DashboardItemsViewModelSlice @Inject constructor(
job = scope.launch(bgDispatcher) {
_isRefreshing.postValue(true)
jetpackFeatureCardViewModelSlice.buildJetpackFeatureCard()
- jetpackSwitchMenuViewModelSlice.buildJetpackSwitchMenu()
- jetpackBadgeViewModelSlice.buildJetpackBadge()
siteItemsViewModelSlice.buildSiteItems(site)
sotw2023NudgeCardViewModelSlice.buildCard()
_isRefreshing.postValue(false)
@@ -107,8 +87,6 @@ class DashboardItemsViewModelSlice @Inject constructor(
fun clearValue() {
jetpackFeatureCardViewModelSlice.clearValue()
- jetpackSwitchMenuViewModelSlice.clearValue()
- jetpackBadgeViewModelSlice.clearValue()
siteItemsViewModelSlice.clearValue()
sotw2023NudgeCardViewModelSlice.clearValue()
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSlice.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSlice.kt
deleted file mode 100644
index b6988527d8b4..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSlice.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.wordpress.android.ui.mysite.items.jetpackBadge
-
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.distinctUntilChanged
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.SiteNavigationAction
-import org.wordpress.android.ui.utils.ListItemInteraction
-import org.wordpress.android.util.JetpackBrandingUtils
-import org.wordpress.android.viewmodel.Event
-import javax.inject.Inject
-
-class JetpackBadgeViewModelSlice @Inject constructor(
- private val jetpackBrandingUtils: JetpackBrandingUtils
-){
- private val _onNavigation = MutableLiveData>()
- val onNavigation = _onNavigation
-
- private val _uiModel = MutableLiveData()
- val uiModel = _uiModel.distinctUntilChanged()
-
- val screen = JetpackPoweredScreen.WithStaticText.HOME
-
- suspend fun buildJetpackBadge(){
- if(jetpackBrandingUtils.shouldShowJetpackBrandingInDashboard().not())
- return _uiModel.postValue(null)
- _uiModel.postValue(MySiteCardAndItem.JetpackBadge(
- text = jetpackBrandingUtils.getBrandingTextForScreen(screen),
- onClick = if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- ListItemInteraction.create(screen, this::onJetpackBadgeClick)
- } else {
- null
- }
- ))
- }
-
- private fun onJetpackBadgeClick(screen: JetpackPoweredScreen) {
- jetpackBrandingUtils.trackBadgeTapped(screen)
- _onNavigation.value = Event(SiteNavigationAction.OpenJetpackPoweredBottomSheet)
- }
-
- fun clearValue() {
- _uiModel.postValue(null)
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSlice.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSlice.kt
deleted file mode 100644
index 3cf34e9013d0..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSlice.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.wordpress.android.ui.mysite.items.jetpackSwitchmenu
-
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.distinctUntilChanged
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.SiteNavigationAction
-import org.wordpress.android.ui.mysite.cards.jetpackfeature.JetpackFeatureCardHelper
-import org.wordpress.android.ui.prefs.AppPrefsWrapper
-import org.wordpress.android.ui.utils.ListItemInteraction
-import org.wordpress.android.viewmodel.Event
-import javax.inject.Inject
-
-class JetpackSwitchMenuViewModelSlice @Inject constructor(
- private val jetpackFeatureCardHelper: JetpackFeatureCardHelper,
- private val appPrefsWrapper: AppPrefsWrapper
-) {
- private val _onNavigation = MutableLiveData>()
- val onNavigation = _onNavigation
-
- private val _uiModel = MutableLiveData()
- val uiModel = _uiModel.distinctUntilChanged()
-
- suspend fun buildJetpackSwitchMenu() {
- if (!jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()) {
- _uiModel.postValue(null)
- return
- }
- _uiModel.postValue(
- MySiteCardAndItem.Card.JetpackSwitchMenu(
- onClick = ListItemInteraction.create(this::onJetpackFeatureCardClick),
- onRemindMeLaterItemClick = ListItemInteraction.create(
- this::onSwitchToJetpackMenuCardRemindMeLaterClick
- ),
- onHideMenuItemClick = ListItemInteraction.create(this::onSwitchToJetpackMenuCardHideMenuItemClick),
- onMoreMenuClick = ListItemInteraction.create(this::onJetpackFeatureCardMoreMenuClick)
- )
- )
- }
-
- private fun onJetpackFeatureCardClick() {
- jetpackFeatureCardHelper.track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_TAPPED)
- _onNavigation.value = Event(
- SiteNavigationAction.OpenJetpackFeatureOverlay(
- source = JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource.FEATURE_CARD
- )
- )
- }
-
- private fun onSwitchToJetpackMenuCardRemindMeLaterClick() {
- jetpackFeatureCardHelper.track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_REMIND_LATER_TAPPED)
- appPrefsWrapper.setSwitchToJetpackMenuCardLastShownTimestamp(System.currentTimeMillis())
- _uiModel.postValue(null)
- }
-
- private fun onSwitchToJetpackMenuCardHideMenuItemClick() {
- jetpackFeatureCardHelper.hideSwitchToJetpackMenuCard()
- _uiModel.postValue(null)
- }
-
- private fun onJetpackFeatureCardMoreMenuClick() {
- jetpackFeatureCardHelper.track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_MENU_ACCESSED)
- }
-
- fun clearValue() {
- _uiModel.postValue(null)
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilder.kt
index 489642f31234..7c0d14e82491 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilder.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilder.kt
@@ -4,7 +4,7 @@ import org.wordpress.android.BuildConfig
import org.wordpress.android.R
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.mysite.MySiteCardAndItem
import org.wordpress.android.ui.mysite.MySiteCardAndItem.Item.ListItem
import org.wordpress.android.ui.mysite.MySiteViewModel
@@ -41,7 +41,7 @@ class SiteListItemBuilder @Inject constructor(
private val siteUtilsWrapper: SiteUtilsWrapper,
private val buildConfigWrapper: BuildConfigWrapper,
private val themeBrowserUtils: ThemeBrowserUtils,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
private val siteMonitoringFeatureConfig: SiteMonitoringFeatureConfig,
private val selfHostedUsersFeatureConfig: SelfHostedUsersFeatureConfig,
private val siteCapabilityChecker: SiteCapabilityChecker
@@ -200,12 +200,11 @@ class SiteListItemBuilder @Inject constructor(
* exactly the same condition WPMainActivity uses to hide it. Me is account-level, so site
* capabilities deliberately play no part here.
*
- * No explicit Jetpack app check is needed: [JetpackFeatureRemovalPhaseHelper.getCurrentPhase]
- * returns null there, so [JetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures] is
- * always false and the item never builds.
+ * No explicit Jetpack app check is needed: [JetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures]
+ * is false in the Jetpack app, so the item never builds there.
*/
fun buildMeItemIfAvailable(onClick: (ListItemAction) -> Unit): ListItem? {
- return if (jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ return if (jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
ListItem(
R.drawable.ic_user_primary_white_24,
UiStringRes(R.string.me),
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/mysite/jetpackbadge/MySiteJetpackBadgeViewHolder.kt b/WordPress/src/main/java/org/wordpress/android/ui/mysite/jetpackbadge/MySiteJetpackBadgeViewHolder.kt
deleted file mode 100644
index 33f78e7eb486..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/ui/mysite/jetpackbadge/MySiteJetpackBadgeViewHolder.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.wordpress.android.ui.mysite.jetpackbadge
-
-import android.view.ViewGroup
-import org.wordpress.android.databinding.JetpackBadgeBinding
-import org.wordpress.android.ui.mysite.MySiteCardAndItem.JetpackBadge
-import org.wordpress.android.ui.mysite.MySiteCardAndItemViewHolder
-import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.extensions.viewBinding
-
-class MySiteJetpackBadgeViewHolder(
- parent: ViewGroup,
- private val uiHelpers: UiHelpers,
-) : MySiteCardAndItemViewHolder(parent.viewBinding(JetpackBadgeBinding::inflate)) {
- fun bind(item: JetpackBadge) = with(binding) {
- jetpackPoweredBadge.text = uiHelpers.getTextOfUiString(binding.jetpackPoweredBadge.context, item.text)
- item.onClick?.run {
- jetpackPoweredBadge.setOnClickListener { click() }
- }
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt
index d9599d68913b..3a05c1628791 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListFragment.kt
@@ -38,15 +38,12 @@ import org.wordpress.android.analytics.AnalyticsTracker.Stat.NOTIFICATION_TAPPED
import org.wordpress.android.databinding.NotificationsListFragmentBinding
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.JetpackConnectionSource.NOTIFICATIONS
import org.wordpress.android.ui.JetpackConnectionWebViewActivity
import org.wordpress.android.ui.RequestCodes
import org.wordpress.android.ui.ScrollableViewInitializedListener
import org.wordpress.android.ui.WPWebViewActivity
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayFragment
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
import org.wordpress.android.ui.jetpackrestconnection.JetpackRestConnectionActivity
import org.wordpress.android.ui.jetpackrestconnection.JetpackRestConnectionViewModel
import org.wordpress.android.ui.main.WPMainActivity
@@ -60,8 +57,6 @@ import org.wordpress.android.ui.notifications.adapters.Filter
import org.wordpress.android.ui.notifications.services.NotificationsUpdateServiceStarter
import org.wordpress.android.ui.notifications.services.NotificationsUpdateServiceStarter.IS_TAPPED_ON_NOTIFICATION
import org.wordpress.android.ui.stats.StatsConnectJetpackActivity
-import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.PermissionUtils
import org.wordpress.android.util.WPPermissionUtils
import org.wordpress.android.util.WPPermissionUtils.NOTIFICATIONS_PERMISSION_REQUEST_CODE
@@ -77,12 +72,6 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment)
@Inject
lateinit var accountStore: AccountStore
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
- @Inject
- lateinit var uiHelpers: UiHelpers
-
@Inject
lateinit var analyticsTrackerWrapper: AnalyticsTrackerWrapper
@@ -147,13 +136,6 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment)
.newInstance(it, PageType.NOTIFS)
.show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
}
-
- viewModel.showJetpackOverlay.observeEvent(viewLifecycleOwner) {
- if (savedInstanceState == null)
- JetpackFeatureFullScreenOverlayFragment
- .newInstance(JetpackFeatureOverlayScreenType.NOTIFICATIONS)
- .show(childFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
- }
}
override fun onDestroyView() {
@@ -179,7 +161,6 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment)
setSelectedTab(lastTabPosition)
setNotificationPermissionWarning()
}
- viewModel.onResume()
}
private fun fetchRemoteNotes() {
@@ -409,30 +390,6 @@ class NotificationsListFragment : Fragment(R.layout.notifications_list_fragment)
override fun onScrollableViewInitialized(containerId: Int) {
this.containerId = containerId
binding?.appBar?.setLiftOnScrollTargetViewIdAndRequestLayout(containerId)
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithDynamicText.NOTIFICATIONS
- binding?.root?.post {
- // post is used to create a minimal delay here. containerId changes just before
- // onScrollableViewInitialized is called, and findViewById can't find the new id before the delay.
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = getRecyclerViewById() ?: return@post
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBannerView.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
}
private fun getRecyclerViewById() =
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListViewModel.kt
index 966fdd683df5..0c6dba2de7ea 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/notifications/NotificationsListViewModel.kt
@@ -20,8 +20,6 @@ import org.wordpress.android.models.Notification.PostLike
import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.modules.UI_THREAD
import org.wordpress.android.push.GCMMessageHandler
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.NOTIFICATIONS
import org.wordpress.android.ui.notifications.NotificationEvents.NotificationsChanged
import org.wordpress.android.ui.notifications.NotificationEvents.OnNoteCommentLikeChanged
import org.wordpress.android.ui.notifications.utils.NotificationsActionsWrapper
@@ -44,7 +42,6 @@ class NotificationsListViewModel @Inject constructor(
@Named(BG_THREAD) bgDispatcher: CoroutineDispatcher,
@Named(UI_THREAD) private val mainDispatcher: CoroutineDispatcher,
private val appPrefsWrapper: AppPrefsWrapper,
- private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil,
private val gcmMessageHandler: GCMMessageHandler,
private val networkUtilsWrapper: NetworkUtilsWrapper,
private val toastUtilsWrapper: ToastUtilsWrapper,
@@ -63,9 +60,6 @@ class NotificationsListViewModel @Inject constructor(
private val _showJetpackPoweredBottomSheet = MutableLiveData>()
val showJetpackPoweredBottomSheet: LiveData> = _showJetpackPoweredBottomSheet
- private val _showJetpackOverlay = MutableLiveData>()
- val showJetpackOverlay: LiveData> = _showJetpackOverlay
-
private val _updatedNote = MutableLiveData()
val updatedNote: LiveData = _updatedNote
@@ -74,15 +68,6 @@ class NotificationsListViewModel @Inject constructor(
val isNotificationsPermissionsWarningDismissed
get() = appPrefsWrapper.notificationPermissionsWarningDismissed
- fun onResume() {
- if (jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(NOTIFICATIONS))
- showJetpackOverlay()
- }
-
- private fun showJetpackOverlay() {
- _showJetpackOverlay.value = Event(true)
- }
-
fun onNotificationsPermissionWarningDismissed() {
appPrefsWrapper.notificationPermissionsWarningDismissed = true
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt
index ee9d7b49b257..ab99219cda65 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/pages/PagesFragment.kt
@@ -42,7 +42,7 @@ import org.wordpress.android.ui.RequestCodes
import org.wordpress.android.ui.ScrollableViewInitializedListener
import org.wordpress.android.ui.WPWebViewActivity
import org.wordpress.android.ui.blaze.BlazeFlowSource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.mlp.ModalLayoutPickerFragment
import org.wordpress.android.ui.mlp.ModalLayoutPickerFragment.Companion.MODAL_LAYOUT_PICKER_TAG
import org.wordpress.android.ui.posts.EditorConstants
@@ -122,7 +122,7 @@ class PagesFragment : Fragment(R.layout.pages_fragment), ScrollableViewInitializ
lateinit var uploadUtilsWrapper: UploadUtilsWrapper
@Inject
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Suppress("DEPRECATION")
private var progressDialog: ProgressDialog? = null
@@ -375,7 +375,7 @@ class PagesFragment : Fragment(R.layout.pages_fragment), ScrollableViewInitializ
viewModel.createNewPage.observe(viewLifecycleOwner) {
if (mlpViewModel.canShowModalLayoutPicker()
- && jetpackFeatureRemovalPhaseHelper.shouldShowTemplateSelectionInPages()
+ && jetpackFeatureRemovalHelper.shouldShowTemplateSelectionInPages()
) {
mlpViewModel.createPageFlowTriggered()
} else {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt
index 78a85f670962..513a6d70ff78 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/pagesrs/PagesRsListActivity.kt
@@ -21,7 +21,7 @@ import org.wordpress.android.ui.PagePostCreationSourcesDetail.PAGE_FROM_PAGES_LI
import org.wordpress.android.ui.WPWebViewActivity
import org.wordpress.android.ui.blaze.BlazeFlowSource
import org.wordpress.android.ui.compose.theme.AppThemeM3
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.mlp.ModalLayoutPickerFragment
import org.wordpress.android.ui.mlp.ModalLayoutPickerFragment.Companion.MODAL_LAYOUT_PICKER_TAG
@@ -37,7 +37,7 @@ import javax.inject.Inject
@AndroidEntryPoint
class PagesRsListActivity : BaseAppCompatActivity() {
@Inject lateinit var viewModelFactory: ViewModelProvider.Factory
- @Inject lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ @Inject lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private val viewModel: PagesRsListViewModel by viewModels()
private lateinit var mlpViewModel: ModalLayoutPickerViewModel
@@ -141,7 +141,7 @@ class PagesRsListActivity : BaseAppCompatActivity() {
private fun startCreatePageFlow() {
if (mlpViewModel.canShowModalLayoutPicker() &&
- jetpackFeatureRemovalPhaseHelper.shouldShowTemplateSelectionInPages()
+ jetpackFeatureRemovalHelper.shouldShowTemplateSelectionInPages()
) {
mlpViewModel.createPageFlowTriggered()
} else {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleListFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleListFragment.java
index 84163bde0266..739392b04757 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleListFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PeopleListFragment.java
@@ -28,14 +28,10 @@
import org.wordpress.android.fluxc.model.RoleModel;
import org.wordpress.android.fluxc.model.SiteModel;
import org.wordpress.android.fluxc.store.SiteStore;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.models.PeopleListFilter;
import org.wordpress.android.models.Person;
import org.wordpress.android.models.RoleUtils;
import org.wordpress.android.ui.ActionableEmptyView;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
-import org.wordpress.android.ui.utils.UiHelpers;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.NetworkUtils;
import org.wordpress.android.util.WPAvatarUtils;
import org.wordpress.android.util.image.ImageManager;
@@ -60,8 +56,6 @@ public class PeopleListFragment extends Fragment {
@Inject SiteStore mSiteStore;
@Inject ImageManager mImageManager;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
- @Inject UiHelpers mUiHelpers;
public static PeopleListFragment newInstance(SiteModel site) {
PeopleListFragment peopleListFragment = new PeopleListFragment();
@@ -131,36 +125,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
new DividerItemDecoration(mRecyclerView.getContext(), DividerItemDecoration.VERTICAL)
);
- showJetpackBannerIfNeeded(rootView);
-
return rootView;
}
- private void showJetpackBannerIfNeeded(final View rootView) {
- if (mJetpackBrandingUtils.shouldShowJetpackBrandingForPhaseTwo()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithStaticText.PERSON;
- View jetpackBannerView = rootView.findViewById(R.id.jetpack_banner);
- TextView jetpackBannerTextView = jetpackBannerView.findViewById(R.id.jetpack_banner_text);
- jetpackBannerTextView.setText(
- mUiHelpers.getTextOfUiString(
- requireContext(),
- mJetpackBrandingUtils.getBrandingTextForScreen(screen))
- );
- RecyclerView scrollableView = mRecyclerView;
-
- mJetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView);
- mJetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView);
-
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBannerView.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBannerTapped(screen);
- new JetpackPoweredBottomSheetFragment()
- .show(getChildFragmentManager(), JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- }
- }
-
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// important for accessibility - talkback
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonDetailFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonDetailFragment.java
index f5855a315849..ddfa3186d11c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/people/PersonDetailFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/people/PersonDetailFragment.java
@@ -25,14 +25,10 @@
import org.wordpress.android.fluxc.model.RoleModel;
import org.wordpress.android.fluxc.model.SiteModel;
import org.wordpress.android.fluxc.store.SiteStore;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.models.Person;
import org.wordpress.android.models.RoleUtils;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
-import org.wordpress.android.ui.utils.UiHelpers;
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.WPAvatarUtils;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.image.ImageManager;
import org.wordpress.android.util.image.ImageType;
@@ -65,8 +61,6 @@ public class PersonDetailFragment extends Fragment {
@Inject SiteStore mSiteStore;
@Inject ImageManager mImageManager;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
- @Inject UiHelpers mUiHelpers;
public static PersonDetailFragment newInstance(long currentUserId, long personId, int localTableBlogId,
Person.PersonType personType) {
@@ -144,27 +138,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
setHasOptionsMenu(true);
}
- if (mJetpackBrandingUtils.shouldShowJetpackBrandingForPhaseTwo()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithStaticText.PERSON;
- View jetpackBadgeContainer = rootView.findViewById(R.id.jetpack_badge);
- TextView jetpackBadge = jetpackBadgeContainer.findViewById(R.id.jetpack_powered_badge);
- jetpackBadge.setText(
- mUiHelpers.getTextOfUiString(
- requireContext(),
- mJetpackBrandingUtils.getBrandingTextForScreen(screen))
- );
-
- jetpackBadgeContainer.setVisibility(View.VISIBLE);
-
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBadge.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBadgeTapped(screen);
- new JetpackPoweredBottomSheetFragment()
- .show(requireActivity().getSupportFragmentManager(), JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- }
-
return rootView;
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
index bc55d8463056..4d10b46e74e2 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/EditPostActivity.kt
@@ -132,7 +132,7 @@ import org.wordpress.android.ui.Shortcut
import org.wordpress.android.ui.WPWebViewActivity
import org.wordpress.android.ui.history.HistoryDetailContainerFragment.KEY_REVISION
import org.wordpress.android.ui.history.HistoryListItem.Revision
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.media.MediaBrowserActivity
import org.wordpress.android.ui.media.MediaBrowserType
@@ -399,7 +399,7 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor
@Inject lateinit var bloggingPromptsStore: BloggingPromptsStore
- @Inject lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ @Inject lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Inject lateinit var contactSupportFeatureConfig: ContactSupportFeatureConfig
@@ -1533,7 +1533,7 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor
if (helpMenuItem != null) {
// Support section will be disabled in WordPress app when Jetpack-powered features are removed.
// Therefore, we have to update the Help menu item accordingly.
- val showHelpAndSupport = jetpackFeatureRemovalPhaseHelper.shouldShowHelpAndSupportOnEditor()
+ val showHelpAndSupport = jetpackFeatureRemovalHelper.shouldShowHelpAndSupportOnEditor()
val helpMenuTitle = if (showHelpAndSupport) R.string.help_and_support else R.string.help
helpMenuItem.setTitle(helpMenuTitle)
if (editorFragment is GutenbergEditorFragment && showMenuItems) {
@@ -2442,7 +2442,7 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor
isNewPost,
gutenbergWebViewAuthorizationData,
gutenbergPropsBuilder,
- jetpackFeatureRemovalPhaseHelper.shouldShowJetpackPoweredEditorFeatures()
+ jetpackFeatureRemovalHelper.shouldShowJetpackPoweredEditorFeatures()
)
}
@@ -2503,7 +2503,7 @@ class EditPostActivity : BaseAppCompatActivity(), EditorFragmentActivity, Editor
val hostAppNamespace = if (buildConfigWrapper.isJetpackApp) "Jetpack" else "WordPress"
// Disable Jetpack-powered editor features in WordPress app based on Jetpack Features Removal Phase helper
- val jetpackFeaturesRemoved = !jetpackFeatureRemovalPhaseHelper.shouldShowJetpackPoweredEditorFeatures()
+ val jetpackFeaturesRemoved = !jetpackFeatureRemovalHelper.shouldShowJetpackPoweredEditorFeatures()
if (jetpackFeaturesRemoved) {
return GutenbergPropsBuilder(
enableContactInfoBlock = false,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitActivity.kt
index 8af182756744..66ce7535fbcc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/GutenbergKitActivity.kt
@@ -121,7 +121,7 @@ import org.wordpress.android.ui.Shortcut
import org.wordpress.android.ui.WPWebViewActivity
import org.wordpress.android.ui.history.HistoryDetailContainerFragment.KEY_REVISION
import org.wordpress.android.ui.history.HistoryListItem.Revision
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.media.MediaBrowserActivity
import org.wordpress.android.ui.media.MediaBrowserType
@@ -372,7 +372,7 @@ class GutenbergKitActivity : BaseAppCompatActivity(), EditorImageSettingsListene
@Inject lateinit var bloggingPromptsStore: BloggingPromptsStore
- @Inject lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ @Inject lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Inject lateinit var contactSupportFeatureConfig: ContactSupportFeatureConfig
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/posts/PublishNotificationReceiver.kt b/WordPress/src/main/java/org/wordpress/android/ui/posts/PublishNotificationReceiver.kt
index 8fd22fe37712..cab78bc4ff32 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/posts/PublishNotificationReceiver.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/posts/PublishNotificationReceiver.kt
@@ -8,7 +8,7 @@ import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.push.NotificationType
import org.wordpress.android.push.NotificationsProcessingService
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.NotificationManagerWrapper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import javax.inject.Inject
@@ -21,14 +21,14 @@ class PublishNotificationReceiver : BroadcastReceiver() {
lateinit var systemNotificationsTracker: SystemNotificationsTracker
@Inject
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Inject
lateinit var notificationManagerWrapper: NotificationManagerWrapper
override fun onReceive(context: Context, intent: Intent) {
(context.applicationContext as WordPress).component().inject(this)
- if(!jetpackFeatureRemovalPhaseHelper.shouldShowNotifications())
+ if(!jetpackFeatureRemovalHelper.shouldShowNotifications())
return
val notificationId = intent.getIntExtra(NOTIFICATION_ID, 0)
val uiModel = publishNotificationReceiverViewModel.loadNotification(notificationId)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
index b0dab86f4d62..b9e0e1be8e39 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefs.java
@@ -20,7 +20,7 @@
import org.wordpress.android.models.ReaderTag;
import org.wordpress.android.models.ReaderTagType;
import org.wordpress.android.ui.ActivityId;
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase;
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelperKt;
import org.wordpress.android.ui.mysite.SelectedSiteRepository;
import org.wordpress.android.ui.mysite.tabs.MySiteTabType;
import org.wordpress.android.ui.posts.AuthorFilterSelection;
@@ -179,8 +179,6 @@ public enum DeletablePrefKey implements PrefKey {
OPEN_WEB_LINKS_WITH_JETPACK,
SHOULD_HIDE_JETPACK_FEATURE_CARD,
JETPACK_FEATURE_CARD_LAST_SHOWN_TIMESTAMP,
- SWITCH_TO_JETPACK_MENU_CARD_SHOWN_TIMESTAMP,
- SHOULD_HIDE_SWITCH_TO_JETPACK_MENU_CARD,
SHOULD_HIDE_JETPACK_INSTALL_FULL_PLUGIN_CARD,
SHOULD_SHOW_JETPACK_FULL_PLUGIN_INSTALL_ONBOARDING,
SHOULD_HIDE_PROMOTE_WITH_BLAZE_CARD,
@@ -1641,51 +1639,31 @@ public static void setIsOpenWebLinksWithJetpack(final boolean isOpenWebLinksWith
setBoolean(DeletablePrefKey.OPEN_WEB_LINKS_WITH_JETPACK, isOpenWebLinksWithJetpack);
}
- public static Boolean getShouldHideJetpackFeatureCard(JetpackFeatureRemovalPhase phase) {
- return prefs().getBoolean(getHideJetpackFeatureCardWithPhaseKey(phase), false);
+ public static Boolean getShouldHideJetpackFeatureCard() {
+ return prefs().getBoolean(getHideJetpackFeatureCardWithPhaseKey(), false);
}
- public static void setShouldHideJetpackFeatureCard(JetpackFeatureRemovalPhase phase, final boolean isHidden) {
- prefs().edit().putBoolean(getHideJetpackFeatureCardWithPhaseKey(phase), isHidden).apply();
+ public static void setShouldHideJetpackFeatureCard(final boolean isHidden) {
+ prefs().edit().putBoolean(getHideJetpackFeatureCardWithPhaseKey(), isHidden).apply();
}
- public static Long getJetpackFeatureCardLastShownTimestamp(JetpackFeatureRemovalPhase jetpackFeatureRemovalPhase) {
- return prefs().getLong(getJetpackFeatureCardLastShownTimeStampWithPhaseKey(jetpackFeatureRemovalPhase), 0L);
+ public static Long getJetpackFeatureCardLastShownTimestamp() {
+ return prefs().getLong(getJetpackFeatureCardLastShownTimeStampWithPhaseKey(), 0L);
}
- public static void setJetpackFeatureCardLastShownTimestamp(JetpackFeatureRemovalPhase jetpackFeatureRemovalPhase,
- final Long lastShownTimestamp) {
- prefs().edit().putLong(getJetpackFeatureCardLastShownTimeStampWithPhaseKey(jetpackFeatureRemovalPhase),
- lastShownTimestamp).apply();
+ public static void setJetpackFeatureCardLastShownTimestamp(final Long lastShownTimestamp) {
+ prefs().edit().putLong(getJetpackFeatureCardLastShownTimeStampWithPhaseKey(), lastShownTimestamp).apply();
}
- @NonNull private static String getHideJetpackFeatureCardWithPhaseKey(JetpackFeatureRemovalPhase phase) {
- return DeletablePrefKey.SHOULD_HIDE_JETPACK_FEATURE_CARD.name() + phase.getTrackingName();
+ @NonNull private static String getHideJetpackFeatureCardWithPhaseKey() {
+ return DeletablePrefKey.SHOULD_HIDE_JETPACK_FEATURE_CARD.name()
+ + JetpackFeatureRemovalHelperKt.JETPACK_REMOVAL_TRACKING_NAME;
}
@NonNull
- private static String getJetpackFeatureCardLastShownTimeStampWithPhaseKey(JetpackFeatureRemovalPhase phase) {
- return DeletablePrefKey.JETPACK_FEATURE_CARD_LAST_SHOWN_TIMESTAMP.name() + phase.getTrackingName();
- }
-
- public static Long getSwitchToJetpackMenuCardLastShownTimestamp() {
- return getLong(DeletablePrefKey.SWITCH_TO_JETPACK_MENU_CARD_SHOWN_TIMESTAMP, 0L);
- }
-
- public static void setSwitchToJetpackMenuCardLastShownTimestamp(final Long lastShownTimestamp) {
- setLong(DeletablePrefKey.SWITCH_TO_JETPACK_MENU_CARD_SHOWN_TIMESTAMP, lastShownTimestamp);
- }
-
- public static Boolean getShouldHideSwitchToJetpackMenuCard(JetpackFeatureRemovalPhase phase) {
- return prefs().getBoolean(getHideSwitchToJetpackMenuCardWithPhaseKey(phase), false);
- }
-
- public static void setShouldHideSwitchToJetpackMenuCard(JetpackFeatureRemovalPhase phase, final boolean isHidden) {
- prefs().edit().putBoolean(getHideSwitchToJetpackMenuCardWithPhaseKey(phase), isHidden).apply();
- }
-
- @NonNull private static String getHideSwitchToJetpackMenuCardWithPhaseKey(JetpackFeatureRemovalPhase phase) {
- return DeletablePrefKey.SHOULD_HIDE_SWITCH_TO_JETPACK_MENU_CARD.name() + phase.getTrackingName();
+ private static String getJetpackFeatureCardLastShownTimeStampWithPhaseKey() {
+ return DeletablePrefKey.JETPACK_FEATURE_CARD_LAST_SHOWN_TIMESTAMP.name()
+ + JetpackFeatureRemovalHelperKt.JETPACK_REMOVAL_TRACKING_NAME;
}
public static Boolean getShouldHideJetpackInstallFullPluginCard(int siteId) {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
index 8fc18b7bf05e..53464413e6bc 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppPrefsWrapper.kt
@@ -5,7 +5,6 @@ import com.google.gson.Gson
import org.wordpress.android.fluxc.model.JetpackCapability
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.models.ReaderTag
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase
import org.wordpress.android.ui.posts.AuthorFilterSelection
import org.wordpress.android.ui.prefs.AppPrefs.PrefKey
import org.wordpress.android.ui.prefs.AppPrefs.getBoolean
@@ -357,35 +356,17 @@ class AppPrefsWrapper @Inject constructor(val buildConfigWrapper: BuildConfigWra
fun setIsOpenWebLinksWithJetpack(isOpenWebLinksWithJetpack: Boolean) =
AppPrefs.setIsOpenWebLinksWithJetpack(isOpenWebLinksWithJetpack)
- fun getShouldHideJetpackFeatureCard(jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase): Boolean =
- AppPrefs.getShouldHideJetpackFeatureCard(jetpackFeatureRemovalPhase)
+ fun getShouldHideJetpackFeatureCard(): Boolean =
+ AppPrefs.getShouldHideJetpackFeatureCard()
- fun setShouldHideJetpackFeatureCard(jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase, isHidden: Boolean) =
- AppPrefs.setShouldHideJetpackFeatureCard(jetpackFeatureRemovalPhase, isHidden)
+ fun setShouldHideJetpackFeatureCard(isHidden: Boolean) =
+ AppPrefs.setShouldHideJetpackFeatureCard(isHidden)
- fun getJetpackFeatureCardLastShownTimestamp(jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase): Long =
- AppPrefs.getJetpackFeatureCardLastShownTimestamp(jetpackFeatureRemovalPhase)
+ fun getJetpackFeatureCardLastShownTimestamp(): Long =
+ AppPrefs.getJetpackFeatureCardLastShownTimestamp()
- fun setJetpackFeatureCardLastShownTimestamp(
- jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase,
- lastShownTimestamp: Long
- ) {
- AppPrefs.setJetpackFeatureCardLastShownTimestamp(jetpackFeatureRemovalPhase, lastShownTimestamp)
- }
-
- fun getSwitchToJetpackMenuCardLastShownTimestamp(): Long = AppPrefs.getSwitchToJetpackMenuCardLastShownTimestamp()
-
- fun setSwitchToJetpackMenuCardLastShownTimestamp(lastShownTimestamp: Long) {
- AppPrefs.setSwitchToJetpackMenuCardLastShownTimestamp(lastShownTimestamp)
- }
-
- fun getShouldHideSwitchToJetpackMenuCard(jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase): Boolean =
- AppPrefs.getShouldHideSwitchToJetpackMenuCard(jetpackFeatureRemovalPhase)
-
- fun setShouldHideSwitchToJetpackMenuCard(
- jetpackFeatureRemovalPhase: JetpackFeatureRemovalPhase,
- isHidden: Boolean
- ) = AppPrefs.setShouldHideSwitchToJetpackMenuCard(jetpackFeatureRemovalPhase, isHidden)
+ fun setJetpackFeatureCardLastShownTimestamp(lastShownTimestamp: Long) =
+ AppPrefs.setJetpackFeatureCardLastShownTimestamp(lastShownTimestamp)
fun getShouldHideJetpackInstallFullPluginCard(siteId: Int): Boolean =
AppPrefs.getShouldHideJetpackInstallFullPluginCard(siteId)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java
index 2bc319f1c6c2..bbc48e885f48 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java
@@ -32,7 +32,6 @@
import org.wordpress.android.WordPress;
import org.wordpress.android.analytics.AnalyticsTracker;
import org.wordpress.android.analytics.AnalyticsTracker.Stat;
-import org.wordpress.android.databinding.JetpackBadgeFooterBinding;
import org.wordpress.android.fluxc.Dispatcher;
import org.wordpress.android.fluxc.action.AccountAction;
import org.wordpress.android.fluxc.generated.AccountActionBuilder;
@@ -44,19 +43,15 @@
import org.wordpress.android.fluxc.store.WhatsNewStore.OnWhatsNewFetched;
import org.wordpress.android.fluxc.store.WhatsNewStore.WhatsNewAppId;
import org.wordpress.android.fluxc.store.WhatsNewStore.WhatsNewFetchPayload;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.ui.deeplinks.DeepLinkOpenWebLinksWithJetpackHelper;
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper;
import org.wordpress.android.ui.prefs.language.LocalePickerBottomSheet;
import org.wordpress.android.ui.prefs.language.LocalePickerBottomSheet.LocalePickerCallback;
-import org.wordpress.android.ui.utils.UiHelpers;
import org.wordpress.android.ui.whatsnew.FeatureAnnouncementDialogFragment;
import org.wordpress.android.ui.whatsnew.FeatureAnnouncementProvider;
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.AppThemeUtils;
import org.wordpress.android.util.BuildConfigWrapper;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.NetworkUtils;
import org.wordpress.android.util.PerAppLocaleManager;
import org.wordpress.android.util.ToastUtils;
@@ -101,10 +96,8 @@ public class AppSettingsFragment extends PreferenceFragment
@Inject ContextProvider mContextProvider;
@Inject FeatureAnnouncementProvider mFeatureAnnouncementProvider;
@Inject BuildConfigWrapper mBuildConfigWrapper;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
@Inject DeepLinkOpenWebLinksWithJetpackHelper mOpenWebLinksWithJetpackHelper;
- @Inject UiHelpers mUiHelpers;
- @Inject JetpackFeatureRemovalPhaseHelper mJetpackFeatureRemovalPhaseHelper;
+ @Inject JetpackFeatureRemovalHelper mJetpackFeatureRemovalHelper;
@Inject PerAppLocaleManager mPerAppLocaleManager;
private static final String TRACK_STYLE = "style";
@@ -242,7 +235,6 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
final ListView listOfPreferences = view.findViewById(android.R.id.list);
if (listOfPreferences != null) {
ViewCompat.setNestedScrollingEnabled(listOfPreferences, true);
- addJetpackBadgeAsFooterIfEnabled(inflater, listOfPreferences);
}
mLanguagePreference = (WPPreference) findPreference(getString(R.string.pref_key_language));
@@ -258,29 +250,6 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
addPrivacyToolbar();
}
- private void addJetpackBadgeAsFooterIfEnabled(LayoutInflater inflater, ListView listView) {
- if (mJetpackBrandingUtils.shouldShowJetpackBranding()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithStaticText.APP_SETTINGS;
- final JetpackBadgeFooterBinding binding = JetpackBadgeFooterBinding.inflate(inflater);
- binding.footerJetpackBadge.jetpackPoweredBadge.setText(
- mUiHelpers.getTextOfUiString(
- getContext(),
- mJetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
- );
-
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding.footerJetpackBadge.jetpackPoweredBadge.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBadgeTapped(screen);
- new JetpackPoweredBottomSheetFragment().show(
- ((AppCompatActivity) getActivity()).getSupportFragmentManager(),
- JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- listView.addFooterView(binding.getRoot(), null, false);
- }
- }
-
private void removeExperimentalCategory() {
PreferenceCategory experimentalPreferenceCategory =
(PreferenceCategory) findPreference(getString(R.string.pref_key_experimental_section));
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java
index 5b553bc3adc6..41881be36799 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/SiteSettingsFragment.java
@@ -78,7 +78,7 @@
import org.wordpress.android.ui.bloggingprompts.BloggingPromptsSettingsHelper;
import org.wordpress.android.ui.bloggingreminders.BloggingReminderUtils;
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersViewModel;
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper;
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper;
import org.wordpress.android.util.PlansConstants;
import org.wordpress.android.ui.posts.EditorCapabilityResolver;
import org.wordpress.android.ui.posts.EditorCapabilityState;
@@ -195,7 +195,7 @@ public class SiteSettingsFragment extends PreferenceFragment
@Inject BloggingPromptsFeature mBloggingPromptsFeature;
@Inject ManageCategoriesFeatureConfig mManageCategoriesFeatureConfig;
@Inject UiHelpers mUiHelpers;
- @Inject JetpackFeatureRemovalPhaseHelper mJetpackFeatureRemovalPhaseHelper;
+ @Inject JetpackFeatureRemovalHelper mJetpackFeatureRemovalHelper;
@Inject BloggingPromptsSettingsHelper mPromptsSettingsHelper;
@Inject EditorCapabilityResolver mEditorCapabilityResolver;
@Inject GutenbergKitFeatureChecker mGutenbergKitFeatureChecker;
@@ -1143,7 +1143,7 @@ public void initPreferences() {
}
// hide site accelerator jetpack settings if plugin version < 5.8
- if (mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures() || (
+ if (mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures() || (
!supportsJetpackSiteAcceleratorSettings(mSite)
&& mSite.getPlanId() != PlansConstants.BUSINESS_PLAN_ID)) {
removeJetpackSiteAcceleratorSettings();
@@ -1166,7 +1166,7 @@ public void initPreferences() {
if (!mManageCategoriesFeatureConfig.isEnabled()) {
removeCategoriesPreference();
}
- if (mJetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()) {
+ if (mJetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
WPPrefUtils.removePreference(this, R.string.pref_key_site_writing,
R.string.pref_key_site_related_posts);
WPPrefUtils.removePreference(this, R.string.pref_key_site_screen,
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/prefs/notifications/NotificationsSettingsFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/prefs/notifications/NotificationsSettingsFragment.java
index 02c6aa885b11..090270e5c158 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/prefs/notifications/NotificationsSettingsFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/prefs/notifications/NotificationsSettingsFragment.java
@@ -14,7 +14,6 @@
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.text.TextUtils;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -44,7 +43,6 @@
import org.wordpress.android.WordPress;
import org.wordpress.android.analytics.AnalyticsTracker;
import org.wordpress.android.analytics.AnalyticsTracker.Stat;
-import org.wordpress.android.databinding.JetpackBadgeFooterBinding;
import org.wordpress.android.datasets.ReaderBlogTable;
import org.wordpress.android.fluxc.Dispatcher;
import org.wordpress.android.fluxc.generated.AccountActionBuilder;
@@ -58,14 +56,12 @@
import org.wordpress.android.fluxc.store.AccountStore.UpdateSubscriptionPayload;
import org.wordpress.android.fluxc.store.AccountStore.UpdateSubscriptionPayload.SubscriptionFrequency;
import org.wordpress.android.fluxc.store.SiteStore;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.models.NotificationsSettings;
import org.wordpress.android.models.NotificationsSettings.Channel;
import org.wordpress.android.models.NotificationsSettings.Type;
import org.wordpress.android.ui.WPLaunchActivity;
import org.wordpress.android.ui.bloggingreminders.BloggingReminderUtils;
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersViewModel;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
import org.wordpress.android.ui.notifications.NotificationEvents;
import org.wordpress.android.ui.notifications.utils.NotificationsUtils;
import org.wordpress.android.ui.prefs.notifications.FollowedBlogsProvider.PreferenceModel;
@@ -76,7 +72,6 @@
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.AppLog.T;
import org.wordpress.android.util.BuildConfigWrapper;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.SiteUtils;
import org.wordpress.android.util.ToastUtils;
import org.wordpress.android.util.ToastUtils.Duration;
@@ -138,7 +133,6 @@ public class NotificationsSettingsFragment extends PreferenceFragment
@Inject FollowedBlogsProvider mFollowedBlogsProvider;
@Inject BuildConfigWrapper mBuildConfigWrapper;
@Inject ViewModelProvider.Factory mViewModelFactory;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
@Inject UiHelpers mUiHelpers;
private BloggingRemindersViewModel mBloggingRemindersViewModel;
@@ -218,7 +212,6 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
final ListView lv = (ListView) view.findViewById(android.R.id.list);
if (lv != null) {
ViewCompat.setNestedScrollingEnabled(lv, true);
- addJetpackBadgeAsFooterIfEnabled(lv);
}
initBloggingReminders();
}
@@ -230,30 +223,6 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
addToolbarToDialog(otherBlogsScreen);
}
- private void addJetpackBadgeAsFooterIfEnabled(ListView listView) {
- if (mJetpackBrandingUtils.shouldShowJetpackBranding()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithDynamicText.NOTIFICATIONS_SETTINGS;
- final Context context = getContext();
- final LayoutInflater inflater = LayoutInflater.from(context);
- final JetpackBadgeFooterBinding binding = JetpackBadgeFooterBinding.inflate(inflater);
- binding.footerJetpackBadge.jetpackPoweredBadge.setText(
- mUiHelpers.getTextOfUiString(
- context,
- mJetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
- );
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding.footerJetpackBadge.jetpackPoweredBadge.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBadgeTapped(screen);
- new JetpackPoweredBottomSheetFragment().show(
- ((AppCompatActivity) getActivity()).getSupportFragmentManager(),
- JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- listView.addFooterView(binding.getRoot(), null, false);
- }
- }
-
@Override
public void onStart() {
super.onStart();
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListActivity.java
index 266ff9b3de4d..ba5a3df78502 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListActivity.java
@@ -33,7 +33,6 @@
import org.wordpress.android.ui.main.BaseAppCompatActivity;
import org.wordpress.android.ui.publicize.PublicizeConstants.ConnectAction;
import org.wordpress.android.ui.publicize.adapters.PublicizeServiceAdapter;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.SiteUtils;
import org.wordpress.android.util.ToastUtils;
import org.wordpress.android.util.analytics.AnalyticsUtils;
@@ -55,7 +54,6 @@ public class PublicizeListActivity extends BaseAppCompatActivity
PublicizeListFragment.PublicizeButtonPrefsListener, ScrollableViewInitializedListener {
private static final String WPCOM_CONNECTIONS_URL = "https://wordpress.com/marketing/connections/";
@Inject SiteStore mSiteStore;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
private SiteModel mSite;
private ProgressDialog mProgressDialog;
private AppBarLayout mAppBarLayout;
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListFragment.java b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListFragment.java
index 07d9803f7d62..07c0280da29d 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListFragment.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/publicize/PublicizeListFragment.java
@@ -17,11 +17,9 @@
import org.wordpress.android.WordPress;
import org.wordpress.android.fluxc.model.SiteModel;
import org.wordpress.android.fluxc.store.AccountStore;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.models.PublicizeService;
import org.wordpress.android.ui.ScrollableViewInitializedListener;
import org.wordpress.android.ui.WPWebViewActivity;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
import org.wordpress.android.ui.publicize.PublicizeListViewModel.ActionEvent;
import org.wordpress.android.ui.publicize.PublicizeListViewModel.ActionEvent.OpenServiceDetails;
import org.wordpress.android.ui.publicize.PublicizeListViewModel.UIState;
@@ -30,8 +28,6 @@
import org.wordpress.android.ui.publicize.adapters.PublicizeServiceAdapter;
import org.wordpress.android.ui.publicize.adapters.PublicizeServiceAdapter.OnAdapterLoadedListener;
import org.wordpress.android.ui.publicize.adapters.PublicizeServiceAdapter.OnServiceClickListener;
-import org.wordpress.android.ui.utils.UiHelpers;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.NetworkUtils;
import org.wordpress.android.util.SiteUtils;
import org.wordpress.android.util.ToastUtils;
@@ -57,8 +53,6 @@ public interface PublicizeButtonPrefsListener {
private View mNestedScrollView;
@Inject AccountStore mAccountStore;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
- @Inject UiHelpers mUiHelpers;
@Inject ImageManager mImageManager;
@Inject ViewModelProvider.Factory mViewModelFactory;
@Inject PublicizeTwitterDeprecationNoticeAnalyticsTracker mPublicizeTwitterDeprecationNoticeAnalyticsTracker;
@@ -126,26 +120,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
manageContainer.setVisibility(View.GONE);
}
- if (mJetpackBrandingUtils.shouldShowJetpackBranding()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithDynamicText.SHARE;
- TextView jetpackBadge = rootView.findViewById(R.id.jetpack_powered_badge);
- jetpackBadge.setVisibility(View.VISIBLE);
- jetpackBadge.setText(
- mUiHelpers.getTextOfUiString(
- requireContext(),
- mJetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
- );
-
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBadge.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBadgeTapped(screen);
- new JetpackPoweredBottomSheetFragment()
- .show(requireActivity().getSupportFragmentManager(), JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- }
-
return rootView;
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFragment.kt
index b86852b30956..b86862afb03a 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderFragment.kt
@@ -16,16 +16,12 @@ import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStoreOwner
-import androidx.recyclerview.widget.RecyclerView
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.databinding.ReaderFragmentLayoutBinding
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.models.ReaderTag
import org.wordpress.android.ui.ScrollableViewInitializedListener
import org.wordpress.android.ui.compose.theme.AppThemeM3
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayFragment
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
import org.wordpress.android.ui.main.WPMainActivity.OnScrollToTopListener
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.READER
import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
@@ -52,7 +48,6 @@ import org.wordpress.android.ui.reader.viewmodels.ReaderViewModel.ReaderUiState.
import org.wordpress.android.ui.reader.views.compose.ReaderTopAppBar
import org.wordpress.android.ui.reader.views.compose.filter.ReaderFilterType
import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.NetworkUtils
import org.wordpress.android.util.SnackbarSequencer
import org.wordpress.android.viewmodel.Event
@@ -70,9 +65,6 @@ class ReaderFragment : Fragment(R.layout.reader_fragment_layout), ScrollableView
@Inject
lateinit var uiHelpers: UiHelpers
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
@Inject
lateinit var snackbarSequencer: SnackbarSequencer
@@ -284,8 +276,6 @@ class ReaderFragment : Fragment(R.layout.reader_fragment_layout), ScrollableView
.show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
}
- observeJetpackOverlayEvent(savedInstanceState)
-
viewModel.start(savedInstanceState)
}
@@ -333,15 +323,6 @@ class ReaderFragment : Fragment(R.layout.reader_fragment_layout), ScrollableView
}
}
- private fun observeJetpackOverlayEvent(savedInstanceState: Bundle?) {
- if (savedInstanceState == null)
- viewModel.showJetpackOverlay.observeEvent(viewLifecycleOwner) {
- JetpackFeatureFullScreenOverlayFragment
- .newInstance(JetpackFeatureOverlayScreenType.READER)
- .show(childFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
- }
- }
-
fun requestBookmarkTab() {
if (!::viewModel.isInitialized) {
viewModel = ViewModelProvider(this@ReaderFragment, viewModelFactory)[ReaderViewModel::class.java]
@@ -380,30 +361,6 @@ class ReaderFragment : Fragment(R.layout.reader_fragment_layout), ScrollableView
override fun onScrollableViewInitialized(containerId: Int) {
binding?.appBar?.liftOnScrollTargetViewId = containerId
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithDynamicText.READER
- binding?.root?.post {
- // post is used to create a minimal delay here. containerId changes just before
- // onScrollableViewInitialized is called, and findViewById can't find the new id before the delay.
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = binding?.root?.findViewById(containerId) as? RecyclerView ?: return@post
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBannerView.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
}
private fun getCurrentFeedFragment(): Fragment? {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt
index 783cfa72bbf8..795a5ef9e97c 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostDetailFragment.kt
@@ -67,7 +67,6 @@ import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.fluxc.store.SiteStore.FetchPrivateAtomicCookiePayload
import org.wordpress.android.fluxc.store.SiteStore.OnPrivateAtomicCookieFetched
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.models.ReaderPost
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.PrivateAtCookieRefreshProgressDialog
@@ -126,7 +125,6 @@ import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.util.AniUtils
import org.wordpress.android.util.AppLog
import org.wordpress.android.util.AppLog.T
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.NetworkUtils
import org.wordpress.android.util.PermissionUtils
import org.wordpress.android.util.RtlUtils
@@ -268,9 +266,6 @@ class ReaderPostDetailFragment : ViewPagerFragment(),
@Inject
lateinit var commentsSnippetFeatureConfig: CommentsSnippetFeatureConfig
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
@Inject
lateinit var readingPreferencesFeatureConfig: ReaderReadingPreferencesFeatureConfig
@@ -814,21 +809,6 @@ class ReaderPostDetailFragment : ViewPagerFragment(),
private fun renderUiState(state: ReaderPostDetailsUiState, binding: ReaderFragmentPostDetailBinding) {
onPostExecuteShowPost()
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithDynamicText.READER_POST_DETAIL
- binding.jetpackBadge.root.isVisible = true
- binding.jetpackBadge.jetpackPoweredBadge.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding.jetpackBadge.jetpackPoweredBadge.setOnClickListener {
- jetpackBrandingUtils.trackBadgeTapped(screen)
- viewModel.showJetpackPoweredBottomSheet()
- }
- }
- }
-
binding.headerView.updatePost(
state.headerUiState,
getReadingPreferences(),
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.kt
index 534f9b35f295..db1630df5b7f 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostListFragment.kt
@@ -15,10 +15,8 @@ import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
-import android.view.ViewGroup.MarginLayoutParams
import android.view.animation.Animation
import android.widget.ProgressBar
-import android.widget.TextView
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
@@ -64,7 +62,6 @@ import org.wordpress.android.fluxc.store.ReaderStore
import org.wordpress.android.fluxc.store.ReaderStore.OnReaderSitesSearched
import org.wordpress.android.fluxc.store.ReaderStore.ReaderSearchSitesPayload
import org.wordpress.android.models.FilterCriteria
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.models.ReaderPost
import org.wordpress.android.models.ReaderPostDiscoverData
import org.wordpress.android.models.ReaderTag
@@ -82,7 +79,6 @@ import org.wordpress.android.ui.main.ChooseSiteActivity
import org.wordpress.android.ui.main.WPMainActivity.OnActivityBackPressedListener
import org.wordpress.android.ui.main.WPMainActivity.OnScrollToTopListener
import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.prefs.AppPrefs
import org.wordpress.android.ui.reader.ReaderActivityLauncher.OpenUrlType
@@ -140,8 +136,6 @@ import org.wordpress.android.ui.utils.UiHelpers
import org.wordpress.android.util.AniUtils
import org.wordpress.android.util.AppLog
import org.wordpress.android.util.DisplayUtils
-import org.wordpress.android.util.DisplayUtilsWrapper
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.NetworkUtils
import org.wordpress.android.util.NetworkUtilsWrapper
import org.wordpress.android.util.SnackbarItem
@@ -193,18 +187,12 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
@Inject
lateinit var seenUnseenWithCounterFeatureConfig: SeenUnseenWithCounterFeatureConfig
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
@Inject
lateinit var readerTracker: ReaderTracker
@Inject
lateinit var snackbarSequencer: SnackbarSequencer
- @Inject
- lateinit var displayUtilsWrapper: DisplayUtilsWrapper
-
@Inject
lateinit var networkConnectionMonitor: NetworkConnectionMonitor
@@ -221,7 +209,6 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
private lateinit var newPostsBar: View
private lateinit var progressBar: ProgressBar
private lateinit var searchMenuItem: MenuItem
- private lateinit var jetpackBanner: View
private lateinit var postListViewModel: ReaderPostListViewModel
@@ -590,47 +577,6 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
}
}
- private fun toggleJetpackBannerIfEnabled(showIfEnabled: Boolean, animateOnScroll: Boolean) {
- if (!isAdded || view == null || !isSearching) return
-
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- if (animateOnScroll) {
- val scrollView = recyclerView.internalRecyclerView
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(
- jetpackBanner,
- scrollView
- )
- // Return early since the banner visibility was handled by showJetpackBannerIfScrolledToTop
- return
- }
-
- if (showIfEnabled && !displayUtilsWrapper.isPhoneLandscape()) {
- showJetpackBanner()
- } else {
- hideJetpackBanner()
- }
- }
- }
-
- private fun showJetpackBanner() {
- jetpackBanner.visibility = View.VISIBLE
-
- // Add bottom margin to search suggestions list and empty view.
- val jetpackBannerHeight = resources.getDimensionPixelSize(R.dimen.jetpack_banner_height)
- (recyclerView.searchSuggestionsRecyclerView.layoutParams as MarginLayoutParams).bottomMargin
- (actionableEmptyView!!.layoutParams as MarginLayoutParams).bottomMargin =
- jetpackBannerHeight
- }
-
- private fun hideJetpackBanner() {
- jetpackBanner.visibility = View.GONE
-
- // Remove bottom margin from search suggestions list and empty view.
- (recyclerView.searchSuggestionsRecyclerView.layoutParams as MarginLayoutParams).bottomMargin =
- 0
- (actionableEmptyView!!.layoutParams as MarginLayoutParams).bottomMargin = 0
- }
-
private fun setFollowStatusForBlog(readerData: FollowStatusChanged) {
if (!hasPostAdapter()) {
return
@@ -1102,9 +1048,6 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
progressBar = rootView.findViewById(R.id.progress_footer)
progressBar.visibility = View.GONE
- jetpackBanner = rootView.findViewById(R.id.jetpack_banner)
- setupJetpackBanner()
-
if (savedInstanceState?.containsKey(ReaderConstants.KEY_CURRENT_UPDATE_ACTIONS) == true) {
val actions =
BundleCompat.getSerializable(
@@ -1292,36 +1235,10 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
)
}
- private fun setupJetpackBanner() {
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen: JetpackPoweredScreen = JetpackPoweredScreen.WithDynamicText.READER_SEARCH
- jetpackBrandingUtils.initJetpackBannerAnimation(
- jetpackBanner,
- recyclerView.internalRecyclerView
- )
- val jetpackBannerTextView =
- jetpackBanner.findViewById(R.id.jetpack_banner_text)
- jetpackBannerTextView.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBanner.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
-
private fun showSearchMessageOrSuggestions() {
val hasQuery = !isSearchViewEmpty
val hasPerformedSearch = !TextUtils.isEmpty(currentSearchQuery)
- toggleJetpackBannerIfEnabled(showIfEnabled = true, animateOnScroll = false)
-
// prevents suggestions from being shown after the search view has been collapsed
if (!isSearching) {
return
@@ -1413,8 +1330,6 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
updatePostsInCurrentSearch(0)
updateSitesInCurrentSearch(0)
- toggleJetpackBannerIfEnabled(showIfEnabled = false, animateOnScroll = false)
-
// track that the user performed a search
if (trimQuery != "") {
readerTracker.trackQuery(AnalyticsTracker.Stat.READER_SEARCH_PERFORMED, trimQuery)
@@ -2042,8 +1957,6 @@ class ReaderPostListFragment : ViewPagerFragment(), OnPostSelectedListener, OnFo
}
if (isSearching && !isSearchTabsShowing()) {
showSearchTabs()
- } else if (isSearching) {
- toggleJetpackBannerIfEnabled(showIfEnabled = true, animateOnScroll = true)
}
}
restorePosition = 0
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostPagerActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostPagerActivity.kt
index a9e301a328c4..f0f15f151025 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostPagerActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderPostPagerActivity.kt
@@ -51,7 +51,7 @@ import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayVi
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureOverlayActions.ForwardToJetpack
import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.main.WPMainActivity
import org.wordpress.android.ui.mysite.SelectedSiteRepository
@@ -205,7 +205,7 @@ class ReaderPostPagerActivity : BaseAppCompatActivity() {
lateinit var mAccountStore: AccountStore
@Inject
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Inject
lateinit var getReadingPreferencesSyncUseCase: ReaderGetReadingPreferencesSyncUseCase
@@ -419,22 +419,13 @@ class ReaderPostPagerActivity : BaseAppCompatActivity() {
host = uri.host
}
- if (uri == null || jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()
- || jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()
- ) {
+ if (uri == null || jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()) {
readerTracker.trackDeepLink(AnalyticsTracker.Stat.DEEP_LINKED, action!!, host!!, uri)
// invalid uri so, just show the entry screen
- if (jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- val intent = Intent(this, WPMainActivity::class.java)
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
- intent.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER)
- startActivity(intent)
- } else {
- val intent = Intent(this, WPLaunchActivity::class.java)
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
- intent.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER)
- startActivity(intent)
- }
+ val intent = Intent(this, WPLaunchActivity::class.java)
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
+ intent.putExtra(WPMainActivity.ARG_OPEN_PAGE, WPMainActivity.ARG_READER)
+ startActivity(intent)
finish()
return
}
@@ -638,9 +629,7 @@ class ReaderPostPagerActivity : BaseAppCompatActivity() {
deepLinkOpenWebLinksWithJetpackHelper.onOverlayShown()
newInstance(
- null,
isDeepLinkOverlay = true,
- isFeatureCollectionOverlay = false,
featureCollectionOverlaySource = JetpackFeatureCollectionOverlaySource.UNSPECIFIED
)
.show(supportFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderSearchActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderSearchActivity.kt
index 9193113db977..8298059d604e 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderSearchActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/ReaderSearchActivity.kt
@@ -8,7 +8,6 @@ import org.wordpress.android.WordPress
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.reader.tracker.ReaderTracker
import org.wordpress.android.ui.reader.tracker.ReaderTrackerType.MAIN_READER
-import org.wordpress.android.util.JetpackBrandingUtils
import javax.inject.Inject
/**
@@ -21,9 +20,6 @@ class ReaderSearchActivity : BaseAppCompatActivity() {
@Inject
lateinit var readerTracker: ReaderTracker
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(application as WordPress).component().inject(this)
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModel.kt
index 826708ef8515..2725b3cb4bb9 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModel.kt
@@ -21,8 +21,6 @@ import org.wordpress.android.models.ReaderTagList
import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.modules.UI_THREAD
import org.wordpress.android.ui.reader.views.compose.dropdown.JetpackMenuElementData
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.READER
import org.wordpress.android.ui.prefs.AppPrefs
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.reader.ReaderEvents
@@ -63,7 +61,6 @@ class ReaderViewModel @Inject constructor(
private val readerTracker: ReaderTracker,
private val accountStore: AccountStore,
private val jetpackBrandingUtils: JetpackBrandingUtils,
- private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil,
private val readerTopBarMenuHelper: ReaderTopBarMenuHelper,
private val urlUtilsWrapper: UrlUtilsWrapper,
private val readerTagsFeedFeatureConfig: ReaderTagsFeedFeatureConfig,
@@ -94,9 +91,6 @@ class ReaderViewModel @Inject constructor(
private val _showJetpackPoweredBottomSheet = MutableLiveData>()
val showJetpackPoweredBottomSheet: LiveData> = _showJetpackPoweredBottomSheet
- private val _showJetpackOverlay = MutableLiveData>()
- val showJetpackOverlay: LiveData> = _showJetpackOverlay
-
private var readerTagsList = ReaderTagList()
init {
@@ -260,11 +254,6 @@ class ReaderViewModel @Inject constructor(
appPrefsWrapper.getReaderTag()?.let {
trackReaderTabShownIfNecessary(it)
}
- if (jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(READER)) showJetpackOverlay()
- }
-
- private fun showJetpackOverlay() {
- _showJetpackOverlay.value = Event(true)
}
@Suppress("UNUSED_PARAMETER")
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsActivity.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsActivity.kt
index 81045bdc40cb..c96dab5e46d3 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsActivity.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsActivity.kt
@@ -11,13 +11,11 @@ import org.wordpress.android.databinding.StatsListActivityBinding
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.push.NotificationType
import org.wordpress.android.push.NotificationsProcessingService.ARG_NOTIFICATION_TYPE
-import org.wordpress.android.ui.ActivityLauncher
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.main.BaseAppCompatActivity
import org.wordpress.android.ui.stats.StatsTimeframe
import org.wordpress.android.ui.stats.refresh.utils.StatsLaunchedFrom
import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
-import org.wordpress.android.util.JetpackBrandingUtils
import javax.inject.Inject
import android.R as AndroidR
@@ -27,20 +25,12 @@ class StatsActivity : BaseAppCompatActivity() {
lateinit var statsSiteProvider: StatsSiteProvider
@Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
- @Inject
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private val viewModel: StatsViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- if (jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()) {
- ActivityLauncher.showJetpackStaticPoster(this)
- finish()
- } else {
- setContentView(StatsListActivityBinding.inflate(layoutInflater).root)
- }
+ setContentView(StatsListActivityBinding.inflate(layoutInflater).root)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsFragment.kt
index 8a7868b890cc..0cdaadf5ee52 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsFragment.kt
@@ -13,7 +13,6 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.Lifecycle
-import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.MarginPageTransformer
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -26,12 +25,7 @@ import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.analytics.AnalyticsTracker.Stat
import org.wordpress.android.databinding.StatsFragmentBinding
-import org.wordpress.android.models.JetpackPoweredScreen
import org.wordpress.android.ui.ScrollableViewInitializedListener
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayFragment
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature
import org.wordpress.android.ui.main.WPMainNavigationView.PageType.MY_SITE
import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
import org.wordpress.android.ui.newstats.NewStatsActivity
@@ -92,9 +86,6 @@ class StatsFragment : Fragment(R.layout.stats_fragment), ScrollableViewInitializ
@Inject
lateinit var newStatsRouting: NewStatsRouting
- @Inject
- lateinit var jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
-
@Inject
lateinit var mStatsTrafficSubscribersTabsFeatureConfig: StatsTrafficSubscribersTabsFeatureConfig
@@ -170,13 +161,9 @@ class StatsFragment : Fragment(R.layout.stats_fragment), ScrollableViewInitializ
if (appPrefsWrapper.getStatsNewStatsSuggestionShown()) return
// Don't nag users who deliberately switched back to old Stats.
if (newStatsRouting.hasOptedOut()) return
- // Avoid stacking on top of the Jetpack-powered bottom sheet or the feature-removal overlay,
- // both of which may show on a fresh Stats activity launch.
+ // Avoid stacking on top of the Jetpack-powered bottom sheet, which may show on a fresh
+ // Stats activity launch.
if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) return
- if (jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(
- JetpackOverlayConnectedFeature.STATS
- )
- ) return
val lastDismissedAt = appPrefsWrapper.getStatsNewStatsSuggestionLastDismissedAt()
val isSecondAttempt = lastDismissedAt > 0L
if (isSecondAttempt &&
@@ -264,14 +251,6 @@ class StatsFragment : Fragment(R.layout.stats_fragment), ScrollableViewInitializ
.show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
}
}
-
- viewModel.showJetpackOverlay.observeEvent(viewLifecycleOwner) {
- if (isFirstStart) {
- JetpackFeatureFullScreenOverlayFragment
- .newInstance(JetpackFeatureOverlayScreenType.STATS)
- .show(childFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
- }
- }
}
private fun StatsFragmentBinding.setupObservers(activity: FragmentActivity) {
@@ -410,34 +389,6 @@ class StatsFragment : Fragment(R.layout.stats_fragment), ScrollableViewInitializ
override fun onScrollableViewInitialized(containerId: Int) {
StatsFragmentBinding.bind(requireView()).appBarLayout.liftOnScrollTargetViewId = containerId
- initJetpackBanner(containerId)
- }
-
- private fun initJetpackBanner(scrollableContainerId: Int) {
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithDynamicText.STATS
- binding?.root?.post {
- val jetpackBannerView = binding?.jetpackBanner?.root ?: return@post
- val scrollableView = binding?.root?.findViewById(scrollableContainerId) as? RecyclerView
- ?: return@post
-
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- binding?.jetpackBanner?.jetpackBannerText?.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- binding?.jetpackBanner?.root?.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsViewModel.kt
index 5f6d1c028192..3ad521cfcf66 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/StatsViewModel.kt
@@ -29,8 +29,6 @@ import org.wordpress.android.modules.BG_THREAD
import org.wordpress.android.modules.UI_THREAD
import org.wordpress.android.push.NotificationType
import org.wordpress.android.push.NotificationsProcessingService.ARG_NOTIFICATION_TYPE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.STATS
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.stats.StatsTimeframe
@@ -82,7 +80,6 @@ class StatsViewModel
private val statsModuleActivateUseCase: StatsModuleActivateUseCase,
private val notificationsTracker: SystemNotificationsTracker,
private val jetpackBrandingUtils: JetpackBrandingUtils,
- private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil,
private val statsTrafficSubscribersTabsFeatureConfig: StatsTrafficSubscribersTabsFeatureConfig
) : ScopedViewModel(mainDispatcher) {
private val _isRefreshing = MutableLiveData()
@@ -113,9 +110,6 @@ class StatsViewModel
private val _showJetpackPoweredBottomSheet = MutableLiveData>()
val showJetpackPoweredBottomSheet: LiveData> = _showJetpackPoweredBottomSheet
- private val _showJetpackOverlay = MutableLiveData>()
- val showJetpackOverlay: LiveData> = _showJetpackOverlay
-
fun start(intent: Intent, restart: Boolean = false) {
val localSiteId = intent.getIntExtra(WordPress.LOCAL_SITE_ID, 0)
@@ -249,9 +243,6 @@ class StatsViewModel
}
if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) showJetpackPoweredBottomSheet()
-
- if (jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(STATS))
- showJetpackOverlay()
}
private fun updateSelectedSectionByTrafficSubscribersTabFeatureConfig() {
@@ -269,10 +260,6 @@ class StatsViewModel
}
}
- private fun showJetpackOverlay() {
- _showJetpackOverlay.value = Event(true)
- }
-
private fun showJetpackPoweredBottomSheet() {
// _showJetpackPoweredBottomSheet.value = Event(true)
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailFragment.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailFragment.kt
index 6c53b40058e7..9dc5eb6df9b9 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailFragment.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailFragment.kt
@@ -6,22 +6,14 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModelProvider
-import androidx.recyclerview.widget.RecyclerView
import dagger.hilt.android.AndroidEntryPoint
import org.wordpress.android.R
import org.wordpress.android.WordPress
import org.wordpress.android.databinding.StatsDetailFragmentBinding
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureFullScreenOverlayFragment
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment
import org.wordpress.android.ui.stats.refresh.lists.StatsListViewModel.StatsSection
import org.wordpress.android.ui.stats.refresh.utils.StatsSiteProvider
-import org.wordpress.android.ui.utils.UiHelpers
-import org.wordpress.android.util.JetpackBrandingUtils
import org.wordpress.android.util.WPSwipeToRefreshHelper
import org.wordpress.android.util.helpers.SwipeToRefreshHelper
-import org.wordpress.android.viewmodel.observeEvent
import javax.inject.Inject
@AndroidEntryPoint
@@ -32,12 +24,6 @@ class StatsDetailFragment : Fragment(R.layout.stats_detail_fragment) {
@Inject
lateinit var statsSiteProvider: StatsSiteProvider
- @Inject
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
- @Inject
- lateinit var uiHelpers: UiHelpers
-
private lateinit var viewModel: StatsDetailViewModel
private lateinit var swipeToRefreshHelper: SwipeToRefreshHelper
@@ -53,45 +39,18 @@ class StatsDetailFragment : Fragment(R.layout.stats_detail_fragment) {
it.setDisplayHomeAsUpEnabled(true)
}
}
- initializeViewModels(nonNullActivity, savedInstanceState == null)
+ initializeViewModels(nonNullActivity)
initializeViews()
- initJetpackBanner()
}
}
- private fun StatsDetailFragmentBinding.initJetpackBanner() {
- if (jetpackBrandingUtils.shouldShowJetpackBranding()) {
- val screen = JetpackPoweredScreen.WithDynamicText.STATS
- root.post {
- val jetpackBannerView = jetpackBanner.root
- val scrollableView = root.findViewById(R.id.recyclerView) as? RecyclerView
- ?: return@post
-
- jetpackBrandingUtils.showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView)
- jetpackBrandingUtils.initJetpackBannerAnimation(jetpackBannerView, scrollableView)
- jetpackBanner.jetpackBannerText.text = uiHelpers.getTextOfUiString(
- requireContext(),
- jetpackBrandingUtils.getBrandingTextForScreen(screen)
- )
-
- if (jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBanner.root.setOnClickListener {
- jetpackBrandingUtils.trackBannerTapped(screen)
- JetpackPoweredBottomSheetFragment
- .newInstance()
- .show(childFragmentManager, JetpackPoweredBottomSheetFragment.TAG)
- }
- }
- }
- }
- }
private fun StatsDetailFragmentBinding.initializeViews() {
swipeToRefreshHelper = WPSwipeToRefreshHelper.buildSwipeToRefreshHelper(pullToRefresh) {
viewModel.onPullToRefresh()
}
}
- private fun initializeViewModels(activity: FragmentActivity, isFirstStart: Boolean) {
+ private fun initializeViewModels(activity: FragmentActivity) {
val siteId = activity.intent?.getIntExtra(WordPress.LOCAL_SITE_ID, 0) ?: 0
statsSiteProvider.start(siteId)
@@ -109,22 +68,14 @@ class StatsDetailFragment : Fragment(R.layout.stats_detail_fragment) {
postUrl
)
- setupObservers(viewModel, isFirstStart)
+ setupObservers(viewModel)
}
- private fun setupObservers(viewModel: StatsDetailViewModel, isFirstStart: Boolean) {
+ private fun setupObservers(viewModel: StatsDetailViewModel) {
viewModel.isRefreshing.observe(viewLifecycleOwner) {
it?.let { isRefreshing ->
swipeToRefreshHelper.isRefreshing = isRefreshing
}
}
-
- viewModel.showJetpackOverlay.observeEvent(viewLifecycleOwner) {
- if (isFirstStart) {
- JetpackFeatureFullScreenOverlayFragment
- .newInstance(JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType.STATS)
- .show(childFragmentManager, JetpackFeatureFullScreenOverlayFragment.TAG)
- }
- }
}
}
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailViewModel.kt b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailViewModel.kt
index 553705b62d29..f69a88eb97f1 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailViewModel.kt
+++ b/WordPress/src/main/java/org/wordpress/android/ui/stats/refresh/lists/detail/StatsDetailViewModel.kt
@@ -6,8 +6,6 @@ import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.CoroutineDispatcher
import org.wordpress.android.R
import org.wordpress.android.modules.UI_THREAD
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.stats.refresh.BLOCK_DETAIL_USE_CASE
import org.wordpress.android.ui.stats.refresh.lists.BaseListUseCase
@@ -19,7 +17,6 @@ import org.wordpress.android.ui.utils.UiString.UiStringRes
import org.wordpress.android.util.NetworkUtilsWrapper
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
import org.wordpress.android.util.mergeNotNull
-import org.wordpress.android.viewmodel.Event
import org.wordpress.android.viewmodel.ScopedViewModel
import javax.inject.Inject
import javax.inject.Named
@@ -32,7 +29,6 @@ class StatsDetailViewModel
private val statsPostProvider: StatsPostProvider,
private val networkUtilsWrapper: NetworkUtilsWrapper,
private val analyticsTrackerWrapper: AnalyticsTrackerWrapper,
- private val jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
) : ScopedViewModel(mainDispatcher) {
private val _isRefreshing = MutableLiveData()
val isRefreshing: LiveData = _isRefreshing
@@ -44,9 +40,6 @@ class StatsDetailViewModel
)
val showSnackbarMessage: LiveData = _showSnackbarMessage
- private val _showJetpackOverlay = MutableLiveData>()
- val showJetpackOverlay: LiveData> = _showJetpackOverlay
-
fun init(
postId: Long,
postType: String,
@@ -59,15 +52,6 @@ class StatsDetailViewModel
)
statsPostProvider.init(postId, postType, postTitle, postUrl)
-
- if (jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(
- JetpackOverlayConnectedFeature.STATS)) {
- showJetpackOverlay()
- }
- }
-
- private fun showJetpackOverlay() {
- _showJetpackOverlay.value = Event(true)
}
fun refresh() {
diff --git a/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserActivity.java b/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserActivity.java
index 4c633695c931..63c86f3b5841 100644
--- a/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserActivity.java
+++ b/WordPress/src/main/java/org/wordpress/android/ui/themes/ThemeBrowserActivity.java
@@ -4,9 +4,6 @@
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnScrollChangeListener;
-import android.widget.TextView;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
@@ -36,21 +33,15 @@
import org.wordpress.android.fluxc.store.ThemeStore.OnThemeInstalled;
import org.wordpress.android.fluxc.store.ThemeStore.OnWpComThemesChanged;
import org.wordpress.android.fluxc.store.ThemeStore.SiteThemePayload;
-import org.wordpress.android.models.JetpackPoweredScreen;
import org.wordpress.android.ui.ActivityId;
-import org.wordpress.android.ui.ScrollableViewInitializedListener;
import org.wordpress.android.ui.main.BaseAppCompatActivity;
-import org.wordpress.android.ui.mysite.jetpackbadge.JetpackPoweredBottomSheetFragment;
import org.wordpress.android.ui.prefs.AppPrefs;
import org.wordpress.android.ui.themes.ThemeBrowserFragment.ThemeBrowserFragmentCallback;
-import org.wordpress.android.ui.utils.UiHelpers;
import org.wordpress.android.util.AppLog;
import org.wordpress.android.util.AppLog.T;
-import org.wordpress.android.util.JetpackBrandingUtils;
import org.wordpress.android.util.ToastUtils;
import org.wordpress.android.util.analytics.AnalyticsUtils;
import org.wordpress.android.util.extensions.CompatExtensionsKt;
-import org.wordpress.android.widgets.HeaderGridView;
import java.util.HashMap;
import java.util.Map;
@@ -60,8 +51,7 @@
import dagger.hilt.android.AndroidEntryPoint;
@AndroidEntryPoint
-public class ThemeBrowserActivity extends BaseAppCompatActivity implements ThemeBrowserFragmentCallback,
- ScrollableViewInitializedListener {
+public class ThemeBrowserActivity extends BaseAppCompatActivity implements ThemeBrowserFragmentCallback {
public static final int ACTIVATE_THEME = 1;
public static final String THEME_ID = "theme_id";
@@ -75,8 +65,6 @@ public class ThemeBrowserActivity extends BaseAppCompatActivity implements Theme
@Inject ThemeStore mThemeStore;
@Inject Dispatcher mDispatcher;
- @Inject JetpackBrandingUtils mJetpackBrandingUtils;
- @Inject UiHelpers mUiHelpers;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -200,69 +188,6 @@ public void onSwipeToRefresh() {
fetchWpComThemesIfSyncTimedOut(true);
}
- @Override
- public void onScrollableViewInitialized(int containerId) {
- if (mJetpackBrandingUtils.shouldShowJetpackBrandingForPhaseTwo()) {
- final JetpackPoweredScreen screen = JetpackPoweredScreen.WithDynamicText.THEMES;
- findViewById(R.id.root_view).post(() -> {
- View jetpackBannerView = findViewById(R.id.jetpack_banner);
- TextView jetpackBannerTextView = jetpackBannerView.findViewById(R.id.jetpack_banner_text);
- jetpackBannerTextView.setText(
- mUiHelpers.getTextOfUiString(
- this,
- mJetpackBrandingUtils.getBrandingTextForScreen(screen))
- );
-
- HeaderGridView scrollableView = findViewById(containerId);
-
- showJetpackBannerIfScrolledToTop(jetpackBannerView, scrollableView);
- initJetpackBannerAnimation(jetpackBannerView, scrollableView);
-
- if (mJetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()) {
- jetpackBannerView.setOnClickListener(v -> {
- mJetpackBrandingUtils.trackBannerTapped(screen);
- new JetpackPoweredBottomSheetFragment()
- .show(getSupportFragmentManager(), JetpackPoweredBottomSheetFragment.TAG);
- });
- }
- });
- }
- }
-
- private void showJetpackBannerIfScrolledToTop(View banner, HeaderGridView scrollableView) {
- banner.setVisibility(View.VISIBLE);
-
- boolean isEmpty = scrollableView.getAdapter().isEmpty();
- int scrollOffset = scrollableView.computeVerticalScrollOffset();
-
- float jetpackBannerHeight = banner.getResources().getDimension(R.dimen.jetpack_banner_height);
-
- float translationY = scrollOffset == 0 || isEmpty ? 0 : jetpackBannerHeight;
- banner.setTranslationY(translationY);
- }
-
- private void initJetpackBannerAnimation(View banner, HeaderGridView scrollableView) {
- scrollableView.setOnScrollChangeListener(new OnScrollChangeListener() {
- private boolean mIsScrollAtTop = true;
-
- @Override
- public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
- int scrollOffset = scrollableView.computeVerticalScrollOffset();
-
- if (scrollOffset == 0 && !mIsScrollAtTop) {
- // Show the banner by moving up
- mIsScrollAtTop = true;
- banner.animate().translationY(0f).start();
- } else if (scrollOffset != 0 && mIsScrollAtTop) {
- // Hide the banner by moving down
- mIsScrollAtTop = false;
- float jetpackBannerHeight = banner.getResources().getDimension(R.dimen.jetpack_banner_height);
- banner.animate().translationY(jetpackBannerHeight).start();
- }
- }
- });
- }
-
@SuppressWarnings("unused")
@Subscribe(threadMode = ThreadMode.MAIN)
public void onWpComThemesChanged(OnWpComThemesChanged event) {
diff --git a/WordPress/src/main/java/org/wordpress/android/util/JetpackBrandingUtils.kt b/WordPress/src/main/java/org/wordpress/android/util/JetpackBrandingUtils.kt
index 1063f9aa8e56..b21579d68957 100644
--- a/WordPress/src/main/java/org/wordpress/android/util/JetpackBrandingUtils.kt
+++ b/WordPress/src/main/java/org/wordpress/android/util/JetpackBrandingUtils.kt
@@ -1,91 +1,22 @@
package org.wordpress.android.util
-import android.view.View
-import android.view.View.OnScrollChangeListener
-import androidx.core.view.isVisible
-import androidx.recyclerview.widget.RecyclerView
-import org.wordpress.android.R
import org.wordpress.android.analytics.AnalyticsTracker.Stat
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalBrandingUtil
import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import org.wordpress.android.ui.utils.UiString
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
import org.wordpress.android.util.config.JetpackPoweredBottomSheetFeatureConfig
-import org.wordpress.android.util.config.JetpackPoweredFeatureConfig
import javax.inject.Inject
class JetpackBrandingUtils @Inject constructor(
- private val jetpackPoweredFeatureConfig: JetpackPoweredFeatureConfig,
private val jetpackPoweredBottomSheetFeatureConfig: JetpackPoweredBottomSheetFeatureConfig,
- private val jetpackFeatureRemovalBrandingUtil: JetpackFeatureRemovalBrandingUtil,
private val selectedSiteRepository: SelectedSiteRepository,
private val siteUtilsWrapper: SiteUtilsWrapper,
private val buildConfigWrapper: BuildConfigWrapper,
private val analyticsTrackerWrapper: AnalyticsTrackerWrapper
) {
- fun shouldShowJetpackBranding(): Boolean {
- return isWpComSite() && jetpackPoweredFeatureConfig.isEnabled() && !buildConfigWrapper.isJetpackApp
- && !jetpackFeatureRemovalBrandingUtil.isInRemovalPhase()
- }
-
- fun shouldShowJetpackBrandingInDashboard(): Boolean {
- return isWpComSite() && jetpackPoweredFeatureConfig.isEnabled() && !buildConfigWrapper.isJetpackApp
- && jetpackFeatureRemovalBrandingUtil.shouldShowBrandingInDashboard()
- }
-
- fun shouldShowJetpackBrandingForPhaseOne(): Boolean {
- return shouldShowJetpackBranding() && jetpackFeatureRemovalBrandingUtil.shouldShowPhaseOneBranding()
- }
-
- fun shouldShowJetpackBrandingForPhaseTwo(): Boolean {
- return shouldShowJetpackBranding() && jetpackFeatureRemovalBrandingUtil.shouldShowPhaseTwoBranding()
- }
-
fun shouldShowJetpackPoweredBottomSheet(): Boolean {
return isWpComSite() && jetpackPoweredBottomSheetFeatureConfig.isEnabled() && !buildConfigWrapper.isJetpackApp
}
- fun getBrandingTextForScreen(screen: JetpackPoweredScreen): UiString {
- return jetpackFeatureRemovalBrandingUtil.getBrandingTextByPhase(screen)
- }
-
- fun showJetpackBannerIfScrolledToTop(banner: View, scrollableView: RecyclerView) {
- banner.isVisible = true
-
- val isEmpty = scrollableView.layoutManager?.itemCount == 0
- val scrollOffset = scrollableView.computeVerticalScrollOffset()
-
- banner.translationY = if (scrollOffset == 0 || isEmpty) {
- // Show
- 0f
- } else {
- // Hide by moving down
- banner.resources.getDimension(R.dimen.jetpack_banner_height)
- }
- }
-
- fun initJetpackBannerAnimation(banner: View, scrollableView: RecyclerView) {
- scrollableView.setOnScrollChangeListener(object : OnScrollChangeListener {
- private var isScrollAtTop = true
-
- override fun onScrollChange(v: View?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int) {
- val scrollOffset = scrollableView.computeVerticalScrollOffset()
-
- if (scrollOffset == 0 && !isScrollAtTop) {
- // Show the banner by moving up
- isScrollAtTop = true
- banner.animate().translationY(0f).start()
- } else if (scrollOffset != 0 && isScrollAtTop) {
- // Hide the banner by moving down
- isScrollAtTop = false
- val jetpackBannerHeight = banner.resources.getDimension(R.dimen.jetpack_banner_height)
- banner.animate().translationY(jetpackBannerHeight).start()
- }
- }
- })
- }
-
private fun isWpComSite(): Boolean {
val selectedSite = selectedSiteRepository.getSelectedSite()
return selectedSite != null && siteUtilsWrapper.isAccessedViaWPComRest(selectedSite)
@@ -94,16 +25,6 @@ class JetpackBrandingUtils @Inject constructor(
/**
* Tracks
*/
- fun trackBadgeTapped(screen: JetpackPoweredScreen) = analyticsTrackerWrapper.track(
- Stat.JETPACK_POWERED_BADGE_TAPPED,
- mapOf(SCREEN_KEY to screen.trackingName)
- )
-
- fun trackBannerTapped(screen: JetpackPoweredScreen) = analyticsTrackerWrapper.track(
- Stat.JETPACK_POWERED_BANNER_TAPPED,
- mapOf(SCREEN_KEY to screen.trackingName)
- )
-
fun trackGetJetpackAppTapped() = analyticsTrackerWrapper.track(
Stat.JETPACK_POWERED_BOTTOM_SHEET_GET_JETPACK_APP_TAPPED
)
@@ -111,8 +32,4 @@ class JetpackBrandingUtils @Inject constructor(
fun trackDismissTapped() = analyticsTrackerWrapper.track(
Stat.JETPACK_POWERED_BOTTOM_SHEET_CONTINUE_TAPPED
)
-
- companion object {
- private const val SCREEN_KEY = "screen"
- }
}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalNewUsersConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalNewUsersConfig.kt
deleted file mode 100644
index 6d439d2148f5..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalNewUsersConfig.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalNewUsersConfig.Companion.JETPACK_FEATURE_REMOVAL_NEW_USERS_REMOTE_FIELD
-import javax.inject.Inject
-
-/**
- * Configuration for Jetpack feature removal phase new users
- */
-@Feature(JETPACK_FEATURE_REMOVAL_NEW_USERS_REMOTE_FIELD, false)
-class JetpackFeatureRemovalNewUsersConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_NEW_USERS,
- JETPACK_FEATURE_REMOVAL_NEW_USERS_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_NEW_USERS_REMOTE_FIELD = "jp_removal_new_users"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseFourConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseFourConfig.kt
deleted file mode 100644
index bbd0adaf7df0..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseFourConfig.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseFourConfig.Companion.JETPACK__FEATURE_REMOVAL_PHASE_FOUR_REMOTE_FIELD
-import javax.inject.Inject
-
-@Feature(JETPACK__FEATURE_REMOVAL_PHASE_FOUR_REMOTE_FIELD, false)
-class JetpackFeatureRemovalPhaseFourConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_PHASE_FOUR,
- JETPACK__FEATURE_REMOVAL_PHASE_FOUR_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK__FEATURE_REMOVAL_PHASE_FOUR_REMOTE_FIELD = "jp_removal_four"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseOneConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseOneConfig.kt
deleted file mode 100644
index e846aaf6cb5a..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseOneConfig.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseOneConfig.Companion.JETPACK_FEATURE_REMOVAL_PHASE_ONE_REMOTE_FIELD
-import javax.inject.Inject
-
-@Feature(JETPACK_FEATURE_REMOVAL_PHASE_ONE_REMOTE_FIELD, false)
-class JetpackFeatureRemovalPhaseOneConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_PHASE_ONE,
- JETPACK_FEATURE_REMOVAL_PHASE_ONE_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_PHASE_ONE_REMOTE_FIELD = "jp_removal_one"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseThreeConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseThreeConfig.kt
deleted file mode 100644
index 54ee145d8727..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseThreeConfig.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseThreeConfig.Companion.JETPACK_FEATURE_REMOVAL_PHASE_THREE_REMOTE_FIELD
-import javax.inject.Inject
-
-@Feature(JETPACK_FEATURE_REMOVAL_PHASE_THREE_REMOTE_FIELD, false)
-class JetpackFeatureRemovalPhaseThreeConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_PHASE_THREE,
- JETPACK_FEATURE_REMOVAL_PHASE_THREE_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_PHASE_THREE_REMOTE_FIELD = "jp_removal_three"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseTwoConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseTwoConfig.kt
deleted file mode 100644
index 715a46735c9b..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalPhaseTwoConfig.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseTwoConfig.Companion.JETPACK_FEATURE_REMOVAL_PHASE_TWO_REMOTE_FIELD
-import javax.inject.Inject
-
-@Feature(JETPACK_FEATURE_REMOVAL_PHASE_TWO_REMOTE_FIELD, false)
-class JetpackFeatureRemovalPhaseTwoConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_PHASE_TWO,
- JETPACK_FEATURE_REMOVAL_PHASE_TWO_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_PHASE_TWO_REMOTE_FIELD = "jp_removal_two"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalRemoteFields.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalRemoteFields.kt
index b5b127509852..e252e55713f5 100644
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalRemoteFields.kt
+++ b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalRemoteFields.kt
@@ -3,26 +3,6 @@ package org.wordpress.android.util.config
import org.wordpress.android.annotation.RemoteFieldDefaultGenerater
import javax.inject.Inject
-const val JP_DEADLINE_REMOTE_FIELD = "jp_deadline"
-const val JP_DEADLINE_DEFAULT = ""
-
-@RemoteFieldDefaultGenerater(remoteField = JP_DEADLINE_REMOTE_FIELD, defaultValue = JP_DEADLINE_DEFAULT)
-class JPDeadlineConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- JP_DEADLINE_REMOTE_FIELD
- )
-
-const val PHASE_TWO_BLOG_POST_REMOTE_FIELD = "phase_two_blog_post"
-const val PHASE_TWO_BLOG_POST_DEFAULT = ""
-
-@RemoteFieldDefaultGenerater(remoteField = PHASE_TWO_BLOG_POST_REMOTE_FIELD, PHASE_TWO_BLOG_POST_DEFAULT)
-class PhaseTwoBlogPostLinkConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- PHASE_TWO_BLOG_POST_REMOTE_FIELD
- )
-
const val PHASE_THREE_BLOG_POST_LINK_REMOTE_FIELD = "phase_three_blog_post"
const val PHASE_THREE_BLOG_POST_LINK_DEFAULT_VALUE = ""
@@ -36,54 +16,3 @@ class PhaseThreeBlogPostLinkConfig @Inject constructor(appConfig: AppConfig) :
PHASE_THREE_BLOG_POST_LINK_REMOTE_FIELD
)
-const val PHASE_FOUR_BLOG_POST_LINK_REMOTE_FIELD = "phase_four_blog_post"
-const val PHASE_FOUR_BLOG_POST_LINK_DEFAULT_VALUE = ""
-
-@RemoteFieldDefaultGenerater(
- remoteField = PHASE_FOUR_BLOG_POST_LINK_REMOTE_FIELD,
- defaultValue = PHASE_FOUR_BLOG_POST_LINK_DEFAULT_VALUE
-)
-class PhaseFourBlogPostLinkConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- PHASE_FOUR_BLOG_POST_LINK_REMOTE_FIELD
- )
-
-const val PHASE_NEW_USERS_BLOG_POST_LINK = "phase_new_users_blog_post"
-const val PHASE_NEW_USERS_BLOG_POST_LINK_DEFAULT_VALUE = ""
-
-@RemoteFieldDefaultGenerater(
- remoteField = PHASE_NEW_USERS_BLOG_POST_LINK,
- defaultValue = PHASE_NEW_USERS_BLOG_POST_LINK_DEFAULT_VALUE
-)
-class PhaseNewUsersBlogPostLinkConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- PHASE_NEW_USERS_BLOG_POST_LINK
- )
-
-const val PHASE_SELF_HOSTED_BLOG_POST_LINK_REMOTE_FIELD = "phase_self_hosted_blog_post"
-const val PHASE_SELF_HOSTED_BLOG_POST_LINK_DEFAULT_VALUE = ""
-
-@RemoteFieldDefaultGenerater(
- remoteField = PHASE_SELF_HOSTED_BLOG_POST_LINK_REMOTE_FIELD,
- defaultValue = PHASE_SELF_HOSTED_BLOG_POST_LINK_DEFAULT_VALUE
-)
-class PhaseSelfHostedPostLinkConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- PHASE_SELF_HOSTED_BLOG_POST_LINK_REMOTE_FIELD
- )
-
-const val PHASE_FOUR_OVERLAY_FREQUENCY_IN_DAYS_REMOTE_FIELD = "phase_four_overlay_frequency_in_days"
-const val PHASE_FOUR_OVERLAY_FREQUENCY_IN_DAYS_DEFAULT_VALUE = "-1"
-
-@RemoteFieldDefaultGenerater(
- remoteField = PHASE_FOUR_OVERLAY_FREQUENCY_IN_DAYS_REMOTE_FIELD,
- defaultValue = PHASE_FOUR_OVERLAY_FREQUENCY_IN_DAYS_DEFAULT_VALUE
-)
-class PhaseFourOverlayFrequencyConfig @Inject constructor(appConfig: AppConfig) :
- RemoteConfigField(
- appConfig,
- PHASE_FOUR_OVERLAY_FREQUENCY_IN_DAYS_REMOTE_FIELD
- )
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalSelfHostedUsersConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalSelfHostedUsersConfig.kt
deleted file mode 100644
index 4322b1f5ed31..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalSelfHostedUsersConfig.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalSelfHostedUsersConfig.Companion.JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS_REMOTE_FIELD
-import javax.inject.Inject
-
-/**
- * Configuration for Jetpack feature removal phase new users
- */
-@Feature(JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS_REMOTE_FIELD, false)
-class JetpackFeatureRemovalSelfHostedUsersConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS,
- JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_SELF_HOSTED_USERS_REMOTE_FIELD = "jp_removal_self_hosted"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalStaticPostersConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalStaticPostersConfig.kt
deleted file mode 100644
index ceb3ad5b5f7b..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackFeatureRemovalStaticPostersConfig.kt
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import org.wordpress.android.util.config.JetpackFeatureRemovalStaticPostersConfig.Companion.JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD
-import javax.inject.Inject
-
-/**
- * Configuration for Jetpack feature removal phase new users
- */
-@Feature(JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD, false)
-class JetpackFeatureRemovalStaticPostersConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_FEATURE_REMOVAL_STATIC_POSTERS,
- JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_FEATURE_REMOVAL_STATIC_POSTERS_REMOTE_FIELD = "jp_removal_static_posters"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackPoweredFeatureConfig.kt b/WordPress/src/main/java/org/wordpress/android/util/config/JetpackPoweredFeatureConfig.kt
deleted file mode 100644
index 49fec9327395..000000000000
--- a/WordPress/src/main/java/org/wordpress/android/util/config/JetpackPoweredFeatureConfig.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.wordpress.android.BuildConfig
-import org.wordpress.android.annotation.Feature
-import javax.inject.Inject
-
-/**
- * Configuration for Jetpack Powered indicators
- */
-@Feature(JetpackPoweredFeatureConfig.JETPACK_POWERED_REMOTE_FIELD, true)
-class JetpackPoweredFeatureConfig @Inject constructor(
- appConfig: AppConfig
-) : FeatureConfig(
- appConfig,
- BuildConfig.JETPACK_POWERED,
- JETPACK_POWERED_REMOTE_FIELD
-) {
- companion object {
- const val JETPACK_POWERED_REMOTE_FIELD = "jetpack_powered_remote_field"
- }
-}
diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelper.kt b/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelper.kt
index 13f41d332241..ca8cd02e7091 100644
--- a/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelper.kt
+++ b/WordPress/src/main/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelper.kt
@@ -19,7 +19,7 @@ import org.wordpress.android.fluxc.model.post.PostStatus.SCHEDULED
import org.wordpress.android.fluxc.model.post.PostStatus.TRASHED
import org.wordpress.android.fluxc.model.post.PostStatus.UNKNOWN
import org.wordpress.android.ui.blaze.BlazeFeatureUtils
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.posts.AuthorFilterSelection
import org.wordpress.android.ui.posts.AuthorFilterSelection.EVERYONE
import org.wordpress.android.ui.posts.PostModelUploadStatusTracker
@@ -75,7 +75,7 @@ class PostListItemUiStateHelper @Inject constructor(
private val appPrefsWrapper: AppPrefsWrapper,
private val uploadUiStateUseCase: PostModelUploadUiStateUseCase,
private val labelColorUseCase: PostPageListLabelColorUseCase,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper,
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper,
private val blazeFeatureUtils: BlazeFeatureUtils,
private val buildConfigWrapper: BuildConfigWrapper
) {
@@ -109,7 +109,7 @@ class PostListItemUiStateHelper @Inject constructor(
siteHasCapabilitiesToPublish = capabilitiesToPublish,
statsSupported = statsSupported,
shouldShowStatsInJetpackRemovalPhase =
- jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton(),
+ jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton(),
shouldShowPromoteWithBlaze = blazeFeatureUtils.isPostBlazeEligible(
site,
postStatus,
diff --git a/WordPress/src/main/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandler.kt b/WordPress/src/main/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandler.kt
index 8230dceb5317..197bb1ca1c56 100644
--- a/WordPress/src/main/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandler.kt
+++ b/WordPress/src/main/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandler.kt
@@ -5,7 +5,7 @@ import android.content.Context
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.push.NotificationType.BLOGGING_PROMPTS_ONBOARDING
import org.wordpress.android.ui.ActivityLauncher
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.DismissNotificationReceiver
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.workers.notification.local.LocalNotificationHandler
@@ -14,10 +14,10 @@ import javax.inject.Inject
class BloggingPromptsOnboardingNotificationHandler @Inject constructor(
private val accountStore: AccountStore,
private val notificationsTracker: SystemNotificationsTracker,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) : LocalNotificationHandler {
override fun shouldShowNotification(): Boolean {
- return accountStore.hasAccessToken() && jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()
+ return accountStore.hasAccessToken() && jetpackFeatureRemovalHelper.shouldShowNotifications()
}
override fun buildFirstActionPendingIntent(context: Context, notificationId: Int): PendingIntent {
diff --git a/WordPress/src/main/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandler.kt b/WordPress/src/main/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandler.kt
index 0cde15e6d7d6..0cdc390e8dbd 100644
--- a/WordPress/src/main/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandler.kt
+++ b/WordPress/src/main/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandler.kt
@@ -8,7 +8,7 @@ import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.push.NotificationType.CREATE_SITE
import org.wordpress.android.ui.ActivityLauncher
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.ui.sitecreation.misc.SiteCreationSource
import org.wordpress.android.viewmodel.ResourceProvider
@@ -21,7 +21,7 @@ class CreateSiteNotificationHandler @Inject constructor(
private val accountStore: AccountStore,
private val siteStore: SiteStore,
private val notificationsTracker: SystemNotificationsTracker,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) : LocalNotificationHandler {
override fun shouldShowNotification(): Boolean {
val isNotificationSettingsEnabled = sharedPrefs.getBoolean(
@@ -31,7 +31,7 @@ class CreateSiteNotificationHandler @Inject constructor(
return isNotificationSettingsEnabled &&
accountStore.hasAccessToken() &&
!siteStore.hasSite() &&
- jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()
+ jetpackFeatureRemovalHelper.shouldShowNotifications()
}
override fun buildFirstActionPendingIntent(context: Context, notificationId: Int): PendingIntent {
diff --git a/WordPress/src/main/java/org/wordpress/android/workers/reminder/ReminderNotifier.kt b/WordPress/src/main/java/org/wordpress/android/workers/reminder/ReminderNotifier.kt
index 6edf2f10d231..9b163136e418 100644
--- a/WordPress/src/main/java/org/wordpress/android/workers/reminder/ReminderNotifier.kt
+++ b/WordPress/src/main/java/org/wordpress/android/workers/reminder/ReminderNotifier.kt
@@ -10,7 +10,7 @@ import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.push.NotificationPushIds.REMINDER_NOTIFICATION_ID
import org.wordpress.android.push.NotificationType.BLOGGING_REMINDERS
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersAnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.posts.PostListType
import org.wordpress.android.ui.posts.PostsListActivity
import org.wordpress.android.util.SiteUtils
@@ -25,7 +25,7 @@ class ReminderNotifier @Inject constructor(
val accountStore: AccountStore,
val reminderNotificationManager: ReminderNotificationManager,
val analyticsTracker: BloggingRemindersAnalyticsTracker,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) {
fun notify(siteId: Int) {
val context = contextProvider.getContext()
@@ -70,7 +70,7 @@ class ReminderNotifier @Inject constructor(
fun shouldNotify(siteId: Int) =
siteId != NO_SITE_ID && siteStore.getSiteByLocalId(siteId) != null && accountStore.hasAccessToken() &&
- jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()
+ jetpackFeatureRemovalHelper.shouldShowNotifications()
companion object {
const val NO_SITE_ID = -1
diff --git a/WordPress/src/main/java/org/wordpress/android/workers/reminder/prompt/PromptReminderNotifier.kt b/WordPress/src/main/java/org/wordpress/android/workers/reminder/prompt/PromptReminderNotifier.kt
index f4554a426ed3..45eaee004950 100644
--- a/WordPress/src/main/java/org/wordpress/android/workers/reminder/prompt/PromptReminderNotifier.kt
+++ b/WordPress/src/main/java/org/wordpress/android/workers/reminder/prompt/PromptReminderNotifier.kt
@@ -21,7 +21,7 @@ import org.wordpress.android.fluxc.store.bloggingprompts.BloggingPromptsStore
import org.wordpress.android.push.NotificationPushIds.REMINDER_NOTIFICATION_ID
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersAnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.DismissNotificationReceiver
import org.wordpress.android.ui.posts.PostUtils.EntryPoint
import org.wordpress.android.util.HtmlCompatWrapper
@@ -45,7 +45,7 @@ class PromptReminderNotifier @Inject constructor(
val bloggingRemindersAnalyticsTracker: BloggingRemindersAnalyticsTracker,
val htmlCompatWrapper: HtmlCompatWrapper,
private val bloggingRemindersStore: BloggingRemindersStore,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) {
@Suppress("MagicNumber")
suspend fun notify(siteId: Int) {
@@ -170,7 +170,7 @@ class PromptReminderNotifier @Inject constructor(
val bloggingRemindersModel = bloggingRemindersStore.bloggingRemindersModel(siteId).first()
val hasOptedInBloggingPromptsReminders = siteModel != null && bloggingRemindersModel.isPromptIncluded
// In Jetpack feature removal phase 4, all notifications are disabled.
- val shouldShowNotificationsInJetpackRemovalPhase = jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()
+ val shouldShowNotificationsInJetpackRemovalPhase = jetpackFeatureRemovalHelper.shouldShowNotifications()
return hasAccessToken &&
isBloggingPromptsEnabled &&
hasOptedInBloggingPromptsReminders &&
diff --git a/WordPress/src/main/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifier.kt b/WordPress/src/main/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifier.kt
index 0e1643e929f9..22cc12d0525f 100644
--- a/WordPress/src/main/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifier.kt
+++ b/WordPress/src/main/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifier.kt
@@ -12,7 +12,7 @@ import org.wordpress.android.push.NotificationPushIds.WEEKLY_ROUNDUP_NOTIFICATIO
import org.wordpress.android.push.NotificationType.WEEKLY_ROUNDUP
import org.wordpress.android.ui.ActivityLauncher
import org.wordpress.android.ui.Organization
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.stats.StatsTimeframe.WEEK
@@ -34,10 +34,10 @@ class WeeklyRoundupNotifier @Inject constructor(
private val weeklyRoundupRepository: WeeklyRoundupRepository,
private val appPrefs: AppPrefsWrapper,
private val statsUtils: StatsUtils,
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
) {
fun shouldShowNotifications() = accountStore.hasAccessToken() &&
- siteStore.hasSitesAccessedViaWPComRest() && jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()
+ siteStore.hasSitesAccessedViaWPComRest() && jetpackFeatureRemovalHelper.shouldShowNotifications()
suspend fun buildNotifications(): List = coroutineScope {
siteStore.sitesAccessedViaWPComRest
diff --git a/WordPress/src/main/res/drawable-night/ic_jetpack_logo_24dp.xml b/WordPress/src/main/res/drawable-night/ic_jetpack_logo_24dp.xml
deleted file mode 100644
index c055ecf07387..000000000000
--- a/WordPress/src/main/res/drawable-night/ic_jetpack_logo_24dp.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/WordPress/src/main/res/drawable/ic_external_v2.xml b/WordPress/src/main/res/drawable/ic_external_v2.xml
deleted file mode 100644
index 2c3fa058a7bf..000000000000
--- a/WordPress/src/main/res/drawable/ic_external_v2.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/WordPress/src/main/res/drawable/ic_jetpack_logo_24dp.xml b/WordPress/src/main/res/drawable/ic_jetpack_logo_24dp.xml
deleted file mode 100644
index 638d230294f9..000000000000
--- a/WordPress/src/main/res/drawable/ic_jetpack_logo_24dp.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/WordPress/src/main/res/drawable/ic_notification_feature_overlay_new_users.xml b/WordPress/src/main/res/drawable/ic_notification_feature_overlay_new_users.xml
deleted file mode 100644
index f1d0e052aae5..000000000000
--- a/WordPress/src/main/res/drawable/ic_notification_feature_overlay_new_users.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
diff --git a/WordPress/src/main/res/drawable/ic_reader_feature_overlay_reader_new_users.xml b/WordPress/src/main/res/drawable/ic_reader_feature_overlay_reader_new_users.xml
deleted file mode 100644
index a8785b333394..000000000000
--- a/WordPress/src/main/res/drawable/ic_reader_feature_overlay_reader_new_users.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
diff --git a/WordPress/src/main/res/drawable/ic_stats_feature_overlay_new_users.xml b/WordPress/src/main/res/drawable/ic_stats_feature_overlay_new_users.xml
deleted file mode 100644
index f42f50b60140..000000000000
--- a/WordPress/src/main/res/drawable/ic_stats_feature_overlay_new_users.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay.xml b/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay.xml
index 10a128d22268..60dc4f106752 100644
--- a/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay.xml
+++ b/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay.xml
@@ -78,21 +78,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title" />
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay_new_users_content.xml b/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay_new_users_content.xml
deleted file mode 100644
index d4cc3e227edc..000000000000
--- a/WordPress/src/main/res/layout-land/jetpack_feature_removal_overlay_new_users_content.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/activity_log_item_detail.xml b/WordPress/src/main/res/layout/activity_log_item_detail.xml
index ef32b426faa1..9a8679ee52a2 100644
--- a/WordPress/src/main/res/layout/activity_log_item_detail.xml
+++ b/WordPress/src/main/res/layout/activity_log_item_detail.xml
@@ -198,12 +198,6 @@
tools:text="Jetpack Backup for Multisite installations provides downloadable backups, no one-click restores. For more information visit our documentation page."
tools:visibility="visible" />
-
-
diff --git a/WordPress/src/main/res/layout/activity_log_list_activity.xml b/WordPress/src/main/res/layout/activity_log_list_activity.xml
index f2c6be50ffa1..fec6356d3ab2 100644
--- a/WordPress/src/main/res/layout/activity_log_list_activity.xml
+++ b/WordPress/src/main/res/layout/activity_log_list_activity.xml
@@ -82,7 +82,4 @@
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
-
diff --git a/WordPress/src/main/res/layout/jetpack_badge.xml b/WordPress/src/main/res/layout/jetpack_badge.xml
deleted file mode 100644
index c8095279b7a3..000000000000
--- a/WordPress/src/main/res/layout/jetpack_badge.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/jetpack_badge_footer.xml b/WordPress/src/main/res/layout/jetpack_badge_footer.xml
deleted file mode 100644
index c14365fa4d73..000000000000
--- a/WordPress/src/main/res/layout/jetpack_badge_footer.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/jetpack_banner.xml b/WordPress/src/main/res/layout/jetpack_banner.xml
deleted file mode 100644
index 0cc156e51483..000000000000
--- a/WordPress/src/main/res/layout/jetpack_banner.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/jetpack_feature_card.xml b/WordPress/src/main/res/layout/jetpack_feature_card.xml
index eb0660d59ecc..12d74b801c9b 100644
--- a/WordPress/src/main/res/layout/jetpack_feature_card.xml
+++ b/WordPress/src/main/res/layout/jetpack_feature_card.xml
@@ -45,13 +45,13 @@
android:ellipsize="end"
android:lineSpacingMultiplier="1.2"
android:maxLines="5"
- android:text="@string/jetpack_feature_card_content_phase_three"
+ android:text="@string/jetpack_feature_card_content_phase_self_hosted_and_new_users"
android:textAlignment="viewStart"
android:textAppearance="?attr/textAppearanceSubtitle1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/my_site_jetpack_feature_card_logo"
- tools:text="@string/jetpack_feature_card_content_phase_three" />
+ tools:text="@string/jetpack_feature_card_content_phase_self_hosted_and_new_users" />
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/jetpack_feature_removal_overlay_new_users_content.xml b/WordPress/src/main/res/layout/jetpack_feature_removal_overlay_new_users_content.xml
deleted file mode 100644
index 2559ed4c54e2..000000000000
--- a/WordPress/src/main/res/layout/jetpack_feature_removal_overlay_new_users_content.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/me_fragment.xml b/WordPress/src/main/res/layout/me_fragment.xml
index 95b328b569b8..3115eb959b5a 100644
--- a/WordPress/src/main/res/layout/me_fragment.xml
+++ b/WordPress/src/main/res/layout/me_fragment.xml
@@ -354,30 +354,6 @@
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/person_detail_fragment.xml b/WordPress/src/main/res/layout/person_detail_fragment.xml
index d82f46c0cdf6..cbe8e0deadaf 100644
--- a/WordPress/src/main/res/layout/person_detail_fragment.xml
+++ b/WordPress/src/main/res/layout/person_detail_fragment.xml
@@ -124,14 +124,4 @@
android:layout_below="@id/person_role_container"
android:background="?android:attr/listDivider" />
-
-
diff --git a/WordPress/src/main/res/layout/publicize_list_fragment.xml b/WordPress/src/main/res/layout/publicize_list_fragment.xml
index f69c493c4d9b..9f0e05ec383a 100644
--- a/WordPress/src/main/res/layout/publicize_list_fragment.xml
+++ b/WordPress/src/main/res/layout/publicize_list_fragment.xml
@@ -124,28 +124,6 @@
-
-
diff --git a/WordPress/src/main/res/layout/reader_fragment_layout.xml b/WordPress/src/main/res/layout/reader_fragment_layout.xml
index 64d03853edf3..7a13b9d4adb0 100644
--- a/WordPress/src/main/res/layout/reader_fragment_layout.xml
+++ b/WordPress/src/main/res/layout/reader_fragment_layout.xml
@@ -24,10 +24,6 @@
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
-
-
-
diff --git a/WordPress/src/main/res/layout/reader_fragment_post_detail.xml b/WordPress/src/main/res/layout/reader_fragment_post_detail.xml
index 1986a9f8fde5..1d26e490dac6 100644
--- a/WordPress/src/main/res/layout/reader_fragment_post_detail.xml
+++ b/WordPress/src/main/res/layout/reader_fragment_post_detail.xml
@@ -85,16 +85,6 @@
android:layout_alignStart="@+id/layout_post_detail_content"
tools:ignore="UnknownIdInLayout">
-
-
-
-
diff --git a/WordPress/src/main/res/layout/scan_history_fragment.xml b/WordPress/src/main/res/layout/scan_history_fragment.xml
index 6f8d6ff3f2e1..95d111363b16 100644
--- a/WordPress/src/main/res/layout/scan_history_fragment.xml
+++ b/WordPress/src/main/res/layout/scan_history_fragment.xml
@@ -40,8 +40,4 @@
android:layout_height="match_parent"
layout="@layout/fullscreen_error_with_retry" />
-
-
diff --git a/WordPress/src/main/res/layout/stats_detail_fragment.xml b/WordPress/src/main/res/layout/stats_detail_fragment.xml
index 1614916e416b..8a9186d69e38 100644
--- a/WordPress/src/main/res/layout/stats_detail_fragment.xml
+++ b/WordPress/src/main/res/layout/stats_detail_fragment.xml
@@ -24,10 +24,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/WordPress/src/main/res/layout/theme_browser_activity.xml b/WordPress/src/main/res/layout/theme_browser_activity.xml
index fc0c1ef512ec..591034c80f0d 100644
--- a/WordPress/src/main/res/layout/theme_browser_activity.xml
+++ b/WordPress/src/main/res/layout/theme_browser_activity.xml
@@ -25,8 +25,4 @@
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent" />
-
-
diff --git a/WordPress/src/main/res/menu/switch_to_jetpack_card_menu.xml b/WordPress/src/main/res/menu/switch_to_jetpack_card_menu.xml
deleted file mode 100644
index 574a0407b423..000000000000
--- a/WordPress/src/main/res/menu/switch_to_jetpack_card_menu.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
diff --git a/WordPress/src/main/res/raw/jp_all_features_left.json b/WordPress/src/main/res/raw/jp_all_features_left.json
deleted file mode 100644
index f628bf65715b..000000000000
--- a/WordPress/src/main/res/raw/jp_all_features_left.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.9.6","fr":60,"ip":0,"op":148,"w":259,"h":71,"nm":"Logo animation-4-up-left lottie","ddd":0,"assets":[{"id":"comp_0","nm":"Logo animation-4-up-left","fr":60,"layers":[{"ddd":0,"ind":2,"ty":0,"nm":"Jetpack","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.185],"y":[1]},"o":{"x":[0.561],"y":[0]},"t":74,"s":[90.001]},{"t":121,"s":[465.242]}],"ix":3},"y":{"a":0,"k":81.001,"ix":4}},"a":{"a":0,"k":[77.5,77.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[0,0,100]},{"t":58,"s":[99.8,99.8,100]}],"ix":6,"l":2}},"ao":0,"w":155,"h":155,"ip":32,"op":1212,"st":12,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"White Solid 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[89.9,81,0],"ix":2,"l":2},"a":{"a":0,"k":[70,70,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":20,"s":[0,0,100]},{"t":44,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[38.66,0],[0,-38.66],[-38.66,0],[0,38.66]],"o":[[-38.66,0],[0,38.66],[38.66,0],[0,-38.66]],"v":[[70,0],[0,70],[70,140],[140,70]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":140,"sh":140,"sc":"#ffffff","ip":0,"op":61,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"WP 2","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[89.93,81,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":1,"nm":"Pale Green Solid 1","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[17.137,76.999,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"WP 3","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":89.93,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"WP","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":89.93,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":1,"nm":"Pale Green Solid 1","parent":11,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[124.44,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[93.284,93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"Notifications","tt":1,"refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.186],"y":[0.995]},"o":{"x":[0.567],"y":[0]},"t":74,"s":[90.28]},{"t":121,"s":[340.28]}],"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":1,"nm":"Pale Green Solid 1","parent":14,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.974,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[93.284,93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"Reader","tt":1,"refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.095],"y":[1]},"o":{"x":[0.498],"y":[0]},"t":74,"s":[90.28]},{"t":113.201171875,"s":[215.28]}],"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":1,"nm":"Pale Green Solid 1","parent":17,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[123.974,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[93.284,93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"Stats","tt":1,"refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":90.28,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0}]},{"id":"comp_1","nm":"jetpack logo","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Circle 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Top Triangle","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":77.499,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.104],"y":[1]},"o":{"x":[0.452],"y":[0]},"t":42,"s":[219.499]},{"t":74,"s":[77.499]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-19.239,5.797],[-1.804,5.797],[-1.804,-28.128]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1242,"st":42,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Circle 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Bottom Triangle","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":77.499,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.104],"y":[1]},"o":{"x":[0.452],"y":[0]},"t":42,"s":[-57.501]},{"t":74,"s":[77.499]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.761,-5.883],[1.761,28.043],[19.153,-5.883]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1242,"st":42,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Notifications","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Gridicon / gridicons-bell","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.523,0.523],[0,0],[0.001,-0.797],[-1.596,0]],"o":[[0,0],[-0.523,0.523],[0,1.596],[0.797,0]],"v":[[-4.38,8.373],[-8.464,4.288],[-9.311,6.331],[-6.422,9.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.56,0.56],[0,0],[3.38,3.38],[3.38,-3.38],[0,0],[1.089,0.156],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.156,-1.089],[0,0],[3.38,-3.38],[-3.38,-3.38],[0,0],[-0.56,0.56],[0,0],[0,0],[0,0]],"v":[[3.324,13],[4.343,11.98],[4.117,10.39],[4.853,7.389],[10.465,1.777],[10.465,-10.465],[-1.777,-10.465],[-7.388,-4.854],[-10.388,-4.118],[-11.98,-4.344],[-13,-3.325]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Gridicon / gridicons-bell","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_3","nm":"Reader","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Gridicon / gridicons-reader","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64.35,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.788],[0,0],[0,0],[0,0],[1.788,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,1.788],[0,0],[-1.788,0]],"v":[[-14.625,9.75],[-14.625,-13],[14.625,-13],[14.625,9.75],[11.375,13],[-11.375,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,4.875],[-3.25,4.875],[-3.25,3.25],[-11.375,3.25]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,1.625],[0,1.625],[0,0],[-11.375,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,-1.625],[0,-1.625],[0,-3.25],[-11.375,-3.25]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.25,4.875],[11.375,4.875],[11.375,-3.25],[3.25,-3.25]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,-6.5],[11.375,-6.5],[11.375,-9.75],[-11.375,-9.75]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Gridicon / gridicons-reader","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_4","nm":"Stats","fr":30,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Frame 562","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,62,0],"ix":2,"l":2},"a":{"a":0,"k":[30,30,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":60,"h":60,"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_5","nm":"Frame 562","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,56.613,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-15,1.694],[15,1.694],[15,-1.694],[-15,-1.694]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.142,28.305,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,7.621],[2.143,7.621],[2.143,-7.621],[-2.143,-7.621]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,21.774,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,10.887],[2.143,10.887],[2.143,-10.887],[-2.143,-10.887]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.857,32.662,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,5.444],[2.143,5.444],[2.143,-5.444],[-2.143,-5.444]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Frame 562","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,30,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[30,30],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Frame 562","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Logo animation-4-up-left","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[128,35.5,0],"ix":2,"l":2},"a":{"a":0,"k":[275,81,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"w":550,"h":162,"ip":0,"op":148,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/WordPress/src/main/res/raw/jp_all_features_rtl.json b/WordPress/src/main/res/raw/jp_all_features_rtl.json
deleted file mode 100644
index 3038caa04483..000000000000
--- a/WordPress/src/main/res/raw/jp_all_features_rtl.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.9.6","fr":60,"ip":0,"op":148,"w":259,"h":71,"nm":"Logo animation-4-up-right lottie","ddd":0,"assets":[{"id":"comp_0","nm":"Logo animation-4-up-right","fr":60,"layers":[{"ddd":0,"ind":2,"ty":0,"nm":"Jetpack","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.109],"y":[1]},"o":{"x":[0.58],"y":[0]},"t":74,"s":[465.242]},{"t":121,"s":[90.001]}],"ix":3},"y":{"a":0,"k":81.001,"ix":4}},"a":{"a":0,"k":[77.5,77.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":42,"s":[0,0,100]},{"t":58,"s":[99.8,99.8,100]}],"ix":6,"l":2}},"ao":0,"w":155,"h":155,"ip":32,"op":1212,"st":12,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"White Solid 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[464.9,81,0],"ix":2,"l":2},"a":{"a":0,"k":[70,70,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":20,"s":[0,0,100]},{"t":44,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[38.66,0],[0,-38.66],[-38.66,0],[0,38.66]],"o":[[-38.66,0],[0,38.66],[38.66,0],[0,-38.66]],"v":[[70,0],[0,70],[70,140],[140,70]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":140,"sh":140,"sc":"#ffffff","ip":0,"op":61,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"WP 2","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[464.93,81,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":1,"nm":"Pale Green Solid 1","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-93.083,76.999,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"WP 3","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":464.93,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"WP","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":464.93,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.94,0],[0,-17.908],[17.908,0],[0,17.94]],"o":[[17.908,0],[0,17.94],[-17.94,0],[0,-17.908]],"v":[[0,-32.5],[32.5,0],[0,32.5],[-32.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.788,-0.065],[0,0],[0,0],[0,0],[0,0],[-1.625,-0.098],[-2.827,0],[0,0],[1.625,-0.163],[1.755,-0.065],[0,0],[0,4.842],[1.137,1.982],[0,2.405],[-2.21,-0.357],[7.572,0],[5.167,-7.93],[-0.585,0],[0,0],[1.625,-0.195]],"o":[[0,0],[0,0],[0,0],[0,0],[-1.625,-0.065],[0,0],[3.055,0],[1.625,-0.098],[0,0],[0,0],[0,0],[0,-3.575],[-1.462,-2.405],[0,-3.867],[-5.2,-4.777],[-10.173,0],[0.682,0.033],[2.99,0],[1.625,-0.065],[0,0]],"v":[[-18.298,-12.285],[-7.215,17.452],[-1.333,-1.495],[-5.428,-12.577],[-8.417,-12.837],[-8.223,-16.803],[-0.65,-16.413],[7.085,-16.803],[7.28,-12.837],[4.615,-12.285],[14.462,14.917],[19.012,-1.333],[17.225,-9.327],[14.3,-16.152],[19.663,-21.288],[0,-28.893],[-24.277,-15.827],[-22.393,-15.795],[-14.69,-16.152],[-14.495,-12.545]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[2.275,4.193],[0.78,-2.08],[3.152,-8.417],[0,10.693]],"o":[[1.008,7.735],[-3.185,8.385],[8.678,-5.005],[0,-5.005]],"v":[[25.48,-13.812],[24.083,0],[14.592,25.285],[28.893,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,-4.225],[-9.685,-4.68],[4.615,12.643]],"o":[[0,11.473],[-4.648,-12.643],[-1.592,3.607]],"v":[[-28.893,0],[-12.675,26.292],[-26.553,-11.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-2.795,0.943],[0,0],[2.633,-7.735],[-2.568,0]],"o":[[0,0],[-2.6,7.67],[2.34,0.715],[3.087,0]],"v":[[8.807,27.43],[0.423,4.745],[-7.443,27.82],[0,28.893]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"WP","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":1,"nm":"Pale Green Solid 1","parent":11,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6.903,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[-93.284,-93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"Notifications","tt":1,"refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.186],"y":[1.005]},"o":{"x":[0.567],"y":[0]},"t":74,"s":[465.08]},{"t":121,"s":[214.28]}],"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":1,"nm":"Pale Green Solid 1","parent":14,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[5.504,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[-93.284,-93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":0,"nm":"Reader","tt":1,"refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.095],"y":[1]},"o":{"x":[0.498],"y":[0]},"t":74,"s":[465.08]},{"t":113,"s":[339.28]}],"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":1,"nm":"Pale Green Solid 1","parent":17,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6.437,65,0],"ix":2,"l":2},"a":{"a":0,"k":[150,81,0],"ix":1,"l":2},"s":{"a":0,"k":[-93.284,-93.284,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"s","pt":{"a":0,"k":{"i":[[38.936,0],[0,-38.936],[-38.936,0],[0,38.936]],"o":[[-38.936,0],[0,38.936],[38.936,0],[0,-38.936]],"v":[[206,11],[135.5,81.5],[206,152],[276.5,81.5]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"sw":300,"sh":162,"sc":"#bdf0bc","ip":0,"op":1200,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":0,"nm":"Stats","tt":1,"refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":465.08,"ix":3},"y":{"a":0,"k":81,"ix":4}},"a":{"a":0,"k":[65,65,0],"ix":1,"l":2},"s":{"a":0,"k":[107.2,107.2,100],"ix":6,"l":2}},"ao":0,"w":130,"h":130,"ip":58,"op":1200,"st":0,"bm":0}]},{"id":"comp_1","nm":"jetpack logo","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Circle 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Top Triangle","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":77.499,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.104],"y":[1]},"o":{"x":[0.452],"y":[0]},"t":42,"s":[219.499]},{"t":74,"s":[77.499]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-19.239,5.797],[-1.804,5.797],[-1.804,-28.128]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1242,"st":42,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Circle 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Bottom Triangle","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":77.499,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.104],"y":[1]},"o":{"x":[0.452],"y":[0]},"t":42,"s":[-57.501]},{"t":74,"s":[77.499]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[1.761,-5.883],[1.761,28.043],[19.153,-5.883]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1242,"st":42,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Circle","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[77.499,77.499,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,19.325],[-19.282,0],[0,-19.325],[19.325,0]],"o":[[0,-19.325],[19.325,0],[0,19.325],[-19.325,0]],"v":[[-35,0],[0,-35],[35,0],[0,35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.61960786581,0.031372550875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Notifications","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Gridicon / gridicons-bell","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.523,0.523],[0,0],[0.001,-0.797],[-1.596,0]],"o":[[0,0],[-0.523,0.523],[0,1.596],[0.797,0]],"v":[[-4.38,8.373],[-8.464,4.288],[-9.311,6.331],[-6.422,9.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.56,0.56],[0,0],[3.38,3.38],[3.38,-3.38],[0,0],[1.089,0.156],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.156,-1.089],[0,0],[3.38,-3.38],[-3.38,-3.38],[0,0],[-0.56,0.56],[0,0],[0,0],[0,0]],"v":[[3.324,13],[4.343,11.98],[4.117,10.39],[4.853,7.389],[10.465,1.777],[10.465,-10.465],[-1.777,-10.465],[-7.388,-4.854],[-10.388,-4.118],[-11.98,-4.344],[-13,-3.325]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Gridicon / gridicons-bell","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_3","nm":"Reader","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Gridicon / gridicons-reader","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64.35,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.788],[0,0],[0,0],[0,0],[1.788,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,1.788],[0,0],[-1.788,0]],"v":[[-14.625,9.75],[-14.625,-13],[14.625,-13],[14.625,9.75],[11.375,13],[-11.375,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,4.875],[-3.25,4.875],[-3.25,3.25],[-11.375,3.25]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,1.625],[0,1.625],[0,0],[-11.375,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,-1.625],[0,-1.625],[0,-3.25],[-11.375,-3.25]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3.25,4.875],[11.375,4.875],[11.375,-3.25],[3.25,-3.25]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-11.375,-6.5],[11.375,-6.5],[11.375,-9.75],[-11.375,-9.75]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Gridicon / gridicons-reader","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_4","nm":"Stats","fr":30,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Frame 562","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[64,62,0],"ix":2,"l":2},"a":{"a":0,"k":[30,30,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":60,"h":60,"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,65,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[65,65],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.023529412225,0.458823531866,0.768627464771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]},{"id":"comp_5","nm":"Frame 562","fr":30,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,56.613,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-15,1.694],[15,1.694],[15,-1.694],[-15,-1.694]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[47.142,28.305,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,7.621],[2.143,7.621],[2.143,-7.621],[-2.143,-7.621]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,21.774,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,10.887],[2.143,10.887],[2.143,-10.887],[-2.143,-10.887]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.857,32.662,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.143,5.444],[2.143,5.444],[2.143,-5.444],[-2.143,-5.444]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Frame 562","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30,30,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[30,30],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[200,200],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Frame 562","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1200,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Logo animation-4-up-right","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[128.1,35.5,0],"ix":2,"l":2},"a":{"a":0,"k":[275,81,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"w":550,"h":162,"ip":0,"op":148,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/WordPress/src/main/res/values-ar/strings.xml b/WordPress/src/main/res/values-ar/strings.xml
index e87867a907c0..e1538f324a8e 100644
--- a/WordPress/src/main/res/values-ar/strings.xml
+++ b/WordPress/src/main/res/values-ar/strings.xml
@@ -920,9 +920,6 @@ Language: ar
لا تتوافر ميزة المشاركة التلقائية على تويتر بعد الآن بسبب التغييرات التي أجرتها تويتر في الشروط والأسعار.لا تتوافر ميزة المشاركة التلقائية في تويتر بعد الآنالسماح بالتنبيهات بمواكبة موقعك
- يحتوي تطبيق Jetpack على كل وظائف تطبيق ووردبريس، إلى جانب وصول حصري الآن إلى ميزات Stats وReader وNotifications والمزيد.
- استخدم ووردبريس مع %s في Jetpack\u00A0app.
- استخدم ووردبريس مع %s في Jetpack\u00A0app.لون غير مصنّف. %sآخر نشاطعلى غرار المثال أعلاه، يسمح النطاق للأشخاص بالعثور على موقعك وزيارته من متصفح الويب لديهم.
@@ -977,9 +974,6 @@ Language: ar
هذا الموقعيستخدم %1$s %2$s، التي لا تدعم كل ميزات التطبيق حتى الآن. Please install the %3$s.يستخدم %1$s %2$s، التي لا تدعم كل ميزات التطبيق حتى الآن. Please install the %3$s.
- التبديل مجاني، ولا يستغرق سوى بضع دقائق.
- معرفة المزيد على jetpack.com
- التبديل إلى تطبيق Jetpackمسؤول ووردبريسإدارة المحتوياتحركة المرور
@@ -1036,12 +1030,6 @@ Language: ar
افتح إمكانات موقعك بالكامل. احصل على ميزات الإحصاءات والتنبيهات والمزيد من خلال Jetpack.يتضمن موقعك إضافة Jetpackتم تصميم تطبيق Jetpack للهاتف المحمول للعمل إلى جانب إضافة Jetpack. قم بالتبديل الآن لكي تحظى بإمكانية الوصول إلى ميزات الإحصاءات والتنبيهات والقارئ والمزيد.
- تلقَّ تنبيهات بالتعليقات والإعجابات والمشاهدات الجديدة، والمزيد.
- اعثر على الموقع والمجتمعات التي تفضّلها وتابعها، ثم شارك محتواك.
- راقب الزيادة في حركة المرور لديك من خلال الرؤى المفيدة والإحصاءات الشاملة.
- الإحصاءات والرؤى
- يتيح لك Jetpack القيام بالمزيد من خلال موقع ووردبريس الخاص بك. التبديل مجاني، ولا يستغرق سوى بضع دقائق.
- تعزيز ووردبريس من خلال Jetpackيمكنك التحكم في مطالبات التدوين والتذكيرات في أي وقت ضمن موقعي > الإعدادات > التدوينسيتضمن التنبيه كلمة أو عبارة مختصرة كمصدر للإلهامزيارة <b>إعدادات الموقع</b> لإعادة التشغيل
@@ -1053,15 +1041,6 @@ Language: ar
إظهار المطالباتالتدوينيرجى تثبيت متجر Google Play للحصول على تطبيق Jetpack
- القيام بهذا لاحقًا
- التبديل إلى Jetpack
- تمت إزالة ميزات الإحصاءات والقارئ والتنبيهات وغيرها من الميزات التي يدعمها Jetpack من تطبيق ووردبريس.
- لقد انتقلت ميزات Jetpack.
- ستنتقل %1$s في غضون %2$s
- ستنتقل %1$s قريبًا
- سينتقل %1$s قريبًا
- سينتقل %1$s في غضون %2$s
- تنزيل تطبيق Jetpackعرض كل الردود%1$s أقل من الأيام الـ 7 السابقة%1$s أعلى من الأيام الـ 7 السابقة
@@ -1071,26 +1050,15 @@ Language: ar
إن مشاهداتك في آخر 7 أيام أعلى بنسبة %1$s من الأيام الـ 7 السابقة.الأيام الـ 7 السابقةآخر 7 أيام
- %d من الأسابيع
- أسبوع واحدمن <b>Day One</b>ذكرني لاحقًاالتبديل إلى تطبيق Jetpack
- معرفة المزيد على jetpack.comالتبديل مجاني، ولا يستغرق سوى بضع دقائق.
- ستتم إزالة ميزات الإحصاءات والقارئ والتنبيهات وغيرها من الميزات التي يدعمها Jetpack من تطبيق ووردبريس قريبًا.
- ستنتقل ميزات الإحصاءات والقارئ والتنبيهات وغيرها من الميزات قريبًا إلى تطبيق Jetpack للهاتف المحمول.
- ستتم إزالة ميزات الإحصاءات والقارئ والتنبيهات وغيرها من الميزات التي يدعمها Jetpack من تطبيق ووردبريس في %s.
- ستنتقل ميزات Jetpack قريبًا.
- ستنتقل ميزة التنبيهات إلى Jetpack
- ستنتقل ميزة القارئ إلى تطبيق Jetpack
- التبديل إلى تطبيق Jetpack الجديدحدث خطأ في أثناء تحميل المطالبات.عذرًالا توجد مطالبات بعد%d من الإجاباتإجابة واحدة
- ستنتقل ميزة الإحصاءات لديك إلى تطبيق Jetpack0 من الإجابات✓ تم الردالمطالبات
@@ -1111,12 +1079,6 @@ Language: ar
الاستمرار من دون Jetpackروابط الويبروابط عناوين uri
- قم بالتبديل إلى تطبيق Jetpack للاستمرار في تلقي من التنبيهات في الوقت الفعلي على جهازك.
- قم بالتبديل إلى تطبيق Jetpack للعثور على كل المواقع والتدوينات التي تفضّلها ومتابعتها والإعجاب بها باستخدام القارئ.
- قم بالتبديل إلى تطبيق Jetpack لمراقبة نمو حركة المرور في موقعك من خلال الإحصاءات والرؤى.
- تلقي تنبيهاتك من خلال تطبيق Jetpack
- متابعة أي موقع باستخدام تطبيق Jetpack
- الحصول على إحصاءاتك باستخدام تطبيق Jetpack جديديتعذر تعطيل فتح الروابط في Jetpackيتعذر تمكين فتح الروابط في Jetpackفتح الروابط في Jetpack
@@ -1179,7 +1141,6 @@ Language: ar
كانت لديك الأسبوع الماضي %1$s من المشاهدات.كانت لديك الأسبوع الماضي %1$s من المشاهدات، و%2$s من الإعجابات، و%3$s من التعليقات.⭐️ لقد تلقت تدوينتك الأخيرة %1$s %2$s إعجاب.
- مدعوم بواسطة Jetpackصورة تشير إلى وجود خطأصورة تشير إلى مسح رمز تسجيل الدخول قيد التقدملا يوجد اتصال
diff --git a/WordPress/src/main/res/values-cs/strings.xml b/WordPress/src/main/res/values-cs/strings.xml
index c6e8626015a6..adbfdaeb59e2 100644
--- a/WordPress/src/main/res/values-cs/strings.xml
+++ b/WordPress/src/main/res/values-cs/strings.xml
@@ -944,9 +944,6 @@ Language: cs_CZ
Automatické sdílení na Twitteru již není dostupné kvůli změnám podmínek a cen Twitteru.Automatické sdílení na Twitteru již není dostupnéPovolte oznámení pro sledování svého webu
- Aplikace Jetpack má veškerou funkcionalitu aplikace WordPress a nyní exkluzivní přístup ke statistikám, čtečce, oznámením a dalšímu.
- Používejte WordPress s %s v aplikaci Jetpack .
- Používejte WordPress s %s v aplikaci Jetpack .Nepojmenovaná barva. %sNedávná aktivitaStejně jako výše uvedený příklad, doména umožňuje lidem najít a navštívit váš web z jejich webového prohlížeče.
@@ -1001,9 +998,6 @@ Language: cs_CZ
Tento web%1$s používá aplikaci %2$s, která zatím nepodporuje všechny funkce aplikace. Nainstalujte prosím %3$s.%1$s používá aplikaci %2$s, která zatím nepodporuje všechny funkce aplikace. Nainstalujte %3$s.
- Přepínání je zdarma a trvá jen minutu.
- Více se dozvíte na Jetpack.com
- Přepněte do aplikace JetpackWP AdminSprávaNávštěvnost
@@ -1060,12 +1054,6 @@ Language: cs_CZ
Odemkněte plný potenciál svého webu. Získejte statistiky, upozornění a další s Jetpack.Vaše stránky mají plugin JetpackMobilní aplikace Jetpack je navržena tak, aby fungovala společně s pluginem Jetpack. Přepněte nyní a získejte přístup ke statistikám, oznámením, čtečce a dalším.
- Dostávejte upozornění na nové komentáře, hodnocení Líbí se mi, zhlédnutí a další.
- Najděte a sledujte své oblíbené stránky a komunity a sdílejte svůj obsah.
- Sledujte, jak vaše návštěvnost roste, pomocí užitečných statistik a komplexních statistik.
- Statistiky a postřehy
- Jetpack vám umožní udělat více s vaším webem WordPress. Přepínání je zdarma a trvá jen minutu.
- Dejte WordPressu podporu s JetpackemPředvolby pro návrhy a připomenutí psaní blogu můžete kdykoli nastavit v části Můj web > Nastavení > BlogováníOznámení bude obsahovat slovo nebo krátkou frázi pro inspiraciNavštivte <b>nastavení webu</b> a znovu jej zapněte
@@ -1077,15 +1065,6 @@ Language: cs_CZ
Zobrazit výzvyBlogováníChcete-li získat aplikaci Jetpack, nainstalujte si obchod Google Play
- Odložit na později
- Přejděte na Jetpack
- Statistiky, čtečka, upozornění a další funkce poháněné Jetpack byly z aplikace WordPress odstraněny.
- Funkce Jetpacku se přesunuly
- %1$s se přesunou za %2$s
- %1$s se přesune za %2$s
- %1$s se brzy přesunou
- %1$s se brzy přesune
- Získejte aplikaci JetpackZobrazit všechny odpovědi%1$s méně než za předchozích 7 dní%1$s vyšší než za předchozích 7 dní
@@ -1095,21 +1074,10 @@ Language: cs_CZ
Počet zhlédnutí za posledních 7 dní je o %1$s vyšší než za předchozích 7 dní.Předchozích 7 dníPosledních 7 dní
- %d týdnů
- 1 týdenOd <b>Day One</b>Připomenout pozdějiPřepněte do aplikace Jetpack
- Více se dozvíte na jetpack.comPřepínání je zdarma a trvá jen minutu.
- Statistiky, čtečka, upozornění a další funkce poháněné Jetpack budou z aplikace WordPress brzy odstraněny.
- Statistiky, čtečka, upozornění a další funkce poháněné Jetpack budou z aplikace WordPress odstraněny na %s.
- Statistiky, čtečka, upozornění a další funkce se brzy přesunou do mobilní aplikace Jetpack.
- Funkce Jetpacku se brzy přesunou.
- Oznámení se přesouvají do Jetpacku
- Čtečka se přesouvá do aplikace Jetpack
- Vaše statistiky se přesouvají do aplikace Jetpack
- Přepněte na novou aplikaci JetpackDošlo k chybě při načítání to se mi líbíJejdaZatím žádné výzvy
@@ -1135,12 +1103,6 @@ Language: cs_CZ
Pokračujte bez Jetpackuweblinksurilinks
- Přepněte na aplikaci Jetpack, abyste do svého zařízení nadále dostávali upozornění v reálném čase.
- Přepněte do aplikace Jetpack a najděte, sledujte a lajkujte všechny své oblíbené stránky a příspěvky pomocí aplikace Reader.
- Přepněte do aplikace Jetpack a sledujte, jak návštěvnost vašeho webu roste pomocí statistik a statistik.
- Získejte oznámení pomocí aplikace Jetpack
- Sledujte libovolnou stránku pomocí aplikace Jetpack
- Získejte své statistiky pomocí nové aplikace JetpackNelze zakázat otevřené odkazy v JetpackuNelze povolit otevřené odkazy v JetpackuOtevřít odkazy v Jetpacku
@@ -1203,7 +1165,6 @@ Language: cs_CZ
Minulý týden jste měli %1$s zhlédnutí.Minulý týden jste měli %1$s zhlédnutí, %2$s lajků a %3$s komentářů.⭐️ Vašemu poslednímu příspěvku %1$s se líbí %2$s.
- Poháněno JetpackemObrázek označující probíhající skenování přihlašovacího kóduObrázek označující chybuAutentikace se nezdařila
diff --git a/WordPress/src/main/res/values-de/strings.xml b/WordPress/src/main/res/values-de/strings.xml
index e0d3549887dc..57c72cd84ac7 100644
--- a/WordPress/src/main/res/values-de/strings.xml
+++ b/WordPress/src/main/res/values-de/strings.xml
@@ -944,9 +944,6 @@ Language: de
Das automatische Teilen auf Twitter ist aufgrund von Änderungen der Bedingungen und der Preisgestaltung von Twitter nicht länger verfügbar.Das automatische Teilen auf Twitter ist nicht länger verfügbarBenachrichtigungen zulassen, um deine Website auf dem neusten Stand zu halten
- Die Jetpack-App verfügt über alle Funktionen der WordPress-App und bietet ab sofort exklusiven Zugriff auf Statistiken, den Reader, Benachrichtigungen und mehr.
- Verwende WordPress mit %s in der Jetpack-App.
- Verwende WordPress mit %s in der Jetpack-App.Unbenannte Farbe. %sLetzte AktivitätWie im Beispiel oben ermöglicht eine Domain Personen, deine Website über ihren Webbrowser zu finden.
@@ -1001,9 +998,6 @@ Language: de
Diese Website%1$s verwendet %2$s, die noch nicht alle Funktionen der App unterstützen. Bitte installiere das %3$s.%1$s verwendet %2$s, das noch nicht alle Funktionen der App unterstützt. Bitte installiere das %3$s.
- Der Wechsel ist kostenlos und dauert nur eine Minute.
- Mehr erfahren auf Jetpack.com
- Zur Jetpack-App wechselnWP AdminVerwaltenTraffic
@@ -1060,12 +1054,6 @@ Language: de
Entfalte das volle Potenzial deiner Website. Erhalte Statistiken, Benachrichtigungen und vieles mehr mit Jetpack.Deine Website hat das Jetpack-PluginDie Jetpack-Mobil-App wurde entwickelt, um mit dem Jetpack-Plugin zusammenzuarbeiten. Wechsle jetzt, um u. a. Zugang zu Statistiken, Benachrichtigungen und dem Reader zu erhalten.
- Erhalte Benachrichtigungen über neue Kommentare, Likes, Aufrufe und vieles mehr.
- Suche deine Lieblingswebsites und -communities, folge ihnen und teile deine Inhalte.
- Beobachte dank hilfreicher Einblicke und umfassender Statistiken, wie dein Traffic wächst.
- Statistiken und Einblicke
- Mit Jetpack kannst du mehr aus deiner WordPress-Website herausholen. Der Wechsel ist kostenlos und dauert nur eine Minute.
- Gib WordPress einen Schub mit JetpackUnter „Meine Website > Einstellungen > Bloggen“ kannst du jederzeit Einstellungen für Blog-Schreibanregungen und -Erinnerungen vornehmenDie Benachrichtigung beinhaltet ein Wort oder einen kurzen Satz zur InspirationWechsle zu den <b>Website-Einstellungen</b>, um sie wieder zu aktivieren
@@ -1077,15 +1065,6 @@ Language: de
Schreibanregungen anzeigenBloggenBitte installiere Google Play Store, um die Jetpack-App zu erhalten
- Später erledigen
- Zu Jetpack wechseln
- Statistiken, der Reader, Benachrichtigungen und weitere von Jetpack unterstützte Funktionen wurden aus der WordPress-App entfernt.
- Jetpack-Funktionen wurden verschoben.
- %1$s werden in %2$s verschoben
- %1$s wird in %2$s verschoben
- %1$s werden demnächst verschoben
- %1$s wird demnächst verschoben
- Jetpack-App sichernAlle Antworten anzeigen%1$s niedriger als in den vorherigen 7 Tagen%1$s höher als in den vorherigen 7 Tagen
@@ -1095,21 +1074,10 @@ Language: de
Deine Aufrufe in den letzten 7 Tagen sind %1$s höher als in den vorherigen 7 Tagen.Vorherige 7 TageLetzte 7 Tage
- %d Wochen
- 1 WocheVon <b>Day One</b>Später daran erinnern
- Die Statistiken, der Reader, die Benachrichtigungen und weitere Funktionen werden bald in die Jetpack-Mobil-App verschoben.Zur Jetpack-App wechseln
- Mehr erfahren auf jetpack.comDer Wechsel ist kostenlos und dauert nur eine Minute.
- Statistiken, der Reader, Benachrichtigungen und weitere, von Jetpack unterstützte Funktionen werden bald aus der WordPress-App entfernt.
- Statistiken, der Reader, Benachrichtigungen und weitere, von Jetpack unterstützte Funktionen werden am %s aus der WordPress-App entfernt.
- Jetpack-Funktionen werden in Kürze verschoben.
- Benachrichtigungen werden in die Jetpack-App verschoben
- Der Reader wird in die Jetpack-App verschoben
- Deine Statistiken werden in die Jetpack-App verschoben
- Zur neuen Jetpack-App wechselnBeim Laden der Schreibanregungen ist ein Fehler aufgetreten.UpsNoch keine Schreibanregungen
@@ -1135,12 +1103,6 @@ Language: de
Ohne Jetpack fortfahrenweblinksurilinks
- Wechsle zur Jetpack-App, um weiterhin Benachrichtigungen in Echtzeit auf deinem Gerät zu erhalten.
- Wechsle zur Jetpack-App, um mit dem Reader all deine Lieblings-Websites und -Beiträge zu finden, ihnen zu folgen und Likes dafür zu vergeben.
- Wechsle zur Jetpack-App, um dir Statistiken und Einblicke zum Wachstum deines Website-Traffics anzusehen.
- Benachrichtigungen in der Jetpack-App erhalten
- Mit der Jetpack-App beliebigen Websites folgen
- Statistiken in der neuen Jetpack-App ansehenDie Option „Links in Jetpack öffnen“ konnte nicht deaktiviert werdenDie Option „Links in Jetpack öffnen“ konnte nicht aktiviert werdenLinks in Jetpack öffnen
@@ -1203,7 +1165,6 @@ Language: de
Letzte Woche hattest du %1$s Aufrufe.Letzte Woche hattest du %1$s Aufrufe, %2$s Likes und %3$s Kommentare.⭐️ Dein neuester Beitrag %1$s hat %2$s Like erhalten.
- Angetrieben von JetpackBild, das anzeigt, dass der Scan des Anmeldecodes läuftBild, das einen Fehler anzeigtAuthentifizierung fehlgeschlagen
diff --git a/WordPress/src/main/res/values-en-rCA/strings.xml b/WordPress/src/main/res/values-en-rCA/strings.xml
index 878289d521d4..0e771211293d 100644
--- a/WordPress/src/main/res/values-en-rCA/strings.xml
+++ b/WordPress/src/main/res/values-en-rCA/strings.xml
@@ -567,9 +567,6 @@ Language: en_CA
Twitter auto-sharing is no longer availableTwitter auto-sharing is no longer available due to Twitter\'s changes in terms and pricing.Allow notifications to keep up with your site
- The Jetpack app has all the WordPress app’s functionality, and now exclusive access to Stats, Reader, Notifications and more.
- Use WordPress with %s in the Jetpack\u00A0app.
- Use WordPress with %s in the Jetpack\u00A0app.Unlabeled color. %sRecent activityLike the example above, a domain allows people to find and visit your site from their web browser.
@@ -624,15 +621,12 @@ Language: en_CA
This site%1$s is using %2$s, which don’t support all features of the app yet. Please install the %3$s.%1$s is using %2$s, which doesn’t support all features of the app yet. Please install the %3$s.
- Switching is free and only takes a minute.DoneSet upManageContentTrafficWP Admin
- Switch to the Jetpack app
- Learn more at Jetpack.comNow that Jetpack is installed, we just need to get you set up. This will only take a minute.Blaze this PostBlaze this Page
@@ -682,17 +676,11 @@ Language: en_CA
Your website credentials will not be stored and are used only for the purpose of installing Jetpack.Unlock your site’s full potential. Get stats, notifications and more with Jetpack.Your site has the Jetpack plugin
- Get notifications for new comments, likes, views, and more.
- Watch your traffic grow with helpful insights and comprehensive stats.
- Find and follow your favourite sites and communities, and share you content.The Jetpack mobile app is designed to work in companion with the Jetpack plugin. Switch now to get access to stats, notifications, reader, and more.
- Stats & InsightsBlogging Prompts hidden
- Give WordPress a boost with JetpackVisit <b>Site Settings</b> to turn back onNotification will include a word or short phrase for inspirationYou can control Blogging Prompts and Reminders at any time in My Site > Settings > Blogging
- Jetpack lets you do more with your WordPress site. Switching is free and only takes a minute.BloggingShow promptsCommunity forums
@@ -700,14 +688,6 @@ Language: en_CA
Blogging remindersGet help from our group of volunteers.Please install Google Play Store to get the Jetpack app
- Stats, Reader, Notifications and other Jetpack powered features have been removed from the WordPress app.
- Jetpack features have moved.
- Do this later
- Switch to Jetpack
- %1$s are moving in %2$s
- %1$s are moving soon
- %1$s is moving in %2$s
- %1$s is moving soonView all responses%1$s lower than the previous 7-days%1$s higher than the previous 7-days
@@ -717,28 +697,16 @@ Language: en_CA
Your visitors in the last 7-days are %1$s higher than the previous 7-days.Last 7-daysPrevious 7-days
- 1 week
- %d weeks
- Get the Jetpack appFrom <b>Day One</b>Remind me later
- Learn more at jetpack.comSwitching is free and only takes a minute.
- Stats, Reader, Notifications and other Jetpack powered features will be removed from the WordPress app on %s.
- Stats, Reader, Notifications and other Jetpack powered features will be removed from the WordPress app soon.Switch to the Jetpack app
- Stats, Reader, Notifications and other features will soon move to the Jetpack mobile app.There was an error loading prompts.OopsNo prompts yet1 answer%d answers0 answers
- Jetpack features are moving soon.
- Notifications are moving to Jetpack
- Reader is moving to the Jetpack app
- Your stats are moving to the Jetpack app
- Switch to the new Jetpack app✓ AnsweredPromptsclose
@@ -758,15 +726,9 @@ Language: en_CA
Open links in WordPressIt looks like you have the Jetpack app installed.\n\nWould you like to open links in the Jetpack app in the future?\n\nYou can always change this in App Settings > Open links in JetpackOpen links in Jetpack?
- Switch to the Jetpack app to keep receiving realtime notifications on your device.
- Switch to the Jetpack app to find, follow, and like all your favorite sites and posts with Reader.
- Switch to the Jetpack app to watch your site’s traffic grow with stats and insights.Open links in JetpackUnable to disable open links in JetpackUnable to enable open links in Jetpack
- Get your notifications with the Jetpack app
- Follow any site with the Jetpack app
- Get your stats using the new Jetpack appPlease contact support or try again later.We’re sorry but something didn’t go as planned. Your data is safe, but we’re unable to transfer it at this time.We are unable to transfer your data and settings without a network connection.
@@ -826,7 +788,6 @@ Language: en_CA
Last week you had %1$s views and %2$s commentsLast week you had %1$s views and %2$s likesLast week you had %1$s views.
- Jetpack poweredImage indicating scan log-in code in processImage indicating an errorYou\'re logged in!
diff --git a/WordPress/src/main/res/values-en-rGB/strings.xml b/WordPress/src/main/res/values-en-rGB/strings.xml
index 666e20f6d7ff..eb4c47eefcd1 100644
--- a/WordPress/src/main/res/values-en-rGB/strings.xml
+++ b/WordPress/src/main/res/values-en-rGB/strings.xml
@@ -944,9 +944,6 @@ Language: en_GB
Twitter auto-sharing is no longer available due to Twitter\'s changes in terms and pricing.Twitter auto-sharing is no longer availableAllow notifications to keep up with your site
- The Jetpack app has all the WordPress app’s functionality, and now exclusive access to Stats, Reader, Notifications and more.
- Use WordPress with %s in the Jetpack\u00A0app.
- Use WordPress with %s in the Jetpack\u00A0app.Unlabeled colour. %sRecent activityLike the example above, a domain allows people to find and visit your site from their web browser.
@@ -1001,9 +998,6 @@ Language: en_GB
This site%1$s is using %2$s, which don’t support all features of the app yet. Please install the %3$s.%1$s is using %2$s, which doesn’t support all features of the app yet. Please install the %3$s.
- Switching is free and only takes a minute.
- Learn more at Jetpack.com
- Switch to the Jetpack appWP AdminManageTraffic
@@ -1060,12 +1054,6 @@ Language: en_GB
Unlock your site’s full potential. Get stats, notifications and more with Jetpack.Your site has the Jetpack pluginThe Jetpack mobile app is designed to work in companion with the Jetpack plugin. Switch now to get access to stats, notifications, reader, and more.
- Get notifications for new comments, likes, views, and more.
- Find and follow your favourite sites and communities, and share you content.
- Watch your traffic grow with helpful insights and comprehensive stats.
- Stats & Insights
- Jetpack lets you do more with your WordPress site. Switching is free and only takes a minute.
- Give WordPress a boost with JetpackYou can control Blogging Prompts and Reminders at any time in My Site > Settings > BloggingNotification will include a word or short phrase for inspirationVisit <b>Site Settings</b> to turn back on
@@ -1077,15 +1065,6 @@ Language: en_GB
Show promptsBloggingPlease install Google Play Store to get the Jetpack app
- Do this later
- Switch to Jetpack
- Stats, Reader, Notifications and other Jetpack powered features have been removed from the WordPress app.
- Jetpack features have moved.
- %1$s are moving in %2$s
- %1$s is moving in %2$s
- %1$s are moving soon
- %1$s is moving soon
- Get the Jetpack appView all responses%1$s lower than the previous 7 days%1$s higher than the previous 7 days
@@ -1095,21 +1074,10 @@ Language: en_GB
Your views in the last 7 days are %1$s higher than the previous 7 days.Previous 7 daysLast 7 days
- %d weeks
- 1 weekFrom <b>Day One</b>Remind me later
- Stats, Reader, Notifications and other features will soon move to the Jetpack mobile app.Switch to the Jetpack app
- Learn more at jetpack.comSwitching is free and only takes a minute.
- Stats, Reader, Notifications and other Jetpack-powered features will be removed from the WordPress app soon.
- Stats, Reader, Notifications and other Jetpack-powered features will be removed from the WordPress app on %s.
- Jetpack features are moving soon.
- Notifications are moving to Jetpack
- Reader is moving to the Jetpack app
- Your stats are moving to the Jetpack app
- Switch to the new Jetpack appThere was an error loading prompts.OopsNo prompts yet
@@ -1135,12 +1103,6 @@ Language: en_GB
Continue without Jetpackweblinksurilinks
- Switch to the Jetpack app to keep receiving realtime notifications on your device.
- Switch to the Jetpack app to find, follow, and like all your favourite sites and posts with Reader.
- Switch to the Jetpack app to watch your site’s traffic grow with stats and insights.
- Get your notifications with the Jetpack app
- Follow any site with the Jetpack app
- Get your stats using the new Jetpack appUnable to disable open links in JetpackUnable to enable open links in JetpackOpen links in Jetpack
@@ -1203,7 +1165,6 @@ Language: en_GB
Last week, you had %1$s views.Last week, you had %1$s views, %2$s likes, and %3$s comments.⭐️ Your latest post %1$s has received %2$s like.
- Jetpack poweredImage indicating scan log-in code in processImage indicating an errorAuthentication Failed
diff --git a/WordPress/src/main/res/values-es-rCL/strings.xml b/WordPress/src/main/res/values-es-rCL/strings.xml
index a2b2341bf741..40fa73446335 100644
--- a/WordPress/src/main/res/values-es-rCL/strings.xml
+++ b/WordPress/src/main/res/values-es-rCL/strings.xml
@@ -462,9 +462,6 @@ Language: es_CL
Saber másLa opción de compartir automáticamente en Twitter ya no está disponibleActiva las notificaciones para estar al tanto de lo que sucede en tu sitio
- La aplicación de Jetpack tiene todas las funciones de la aplicación de WordPress, y ahora ofrece acceso exclusivo a Estadísticas, Lector, Notificaciones y mucho más.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.Actividad recienteColor sin etiquetar. %sComo en el ejemplo superior, un dominio le permite a la gente encontrar y visitar tu sitio desde su navegador.
@@ -519,7 +516,6 @@ Language: es_CL
%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.Este sitio%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.
- El cambio es gratuito y solo te llevará un minuto.HechoConfigurarAhora que Jetpack está instalado, solo tenemos que configurarlo. Solo te llevará un minuto.
@@ -527,8 +523,6 @@ Language: es_CL
ContenidoGestionarTráfico
- Cambiar a la aplicación de Jetpack
- Encontrarás más información en Jetpack.comPromocionar esta página con BlazePromocionar esta entrada con BlazePromocionar una entrada con Blaze ahora
@@ -576,18 +570,12 @@ Language: es_CL
Instalando JetpackÍcono de JetpackLibera todo el potencial de tu sitio. Obtén estadísticas, notificaciones y más con Jetpack.
- Recibe notificaciones por nuevos comentarios, Me gusta, visualizaciones, etc.
- Comparte tu contenido y busca tus comunidades y sitios favoritos para seguirlos.
- Consulta el crecimiento del tráfico a tu sitio con información útil y estadísticas completas.La aplicación móvil Jetpack está diseñada para funcionar junto con el plugin de Jetpack. Haz el cambio ahora y obtén acceso a estadísticas, notificaciones o el lector, entre otras funciones.Tu sitio tiene el plugin de JetpackPuedes gestionar los recordatorios y estímulos para bloguear en cualquier momento desde Mi sitio > Ajustes > BloguearCada notificación incluirá una palabra o una breve frase inspiradoraVe a <b>Ajustes del sitio</b> para reactivarlos.Se han ocultado los estímulos para bloguear.
- Con Jetpack sacarás más partido de tu sitio de WordPress. El cambio es gratuito y solo te llevará un minuto.
- Estadísticas y datos clave
- Dale un impulso a WordPress con JetpackDesactivar estímulosBloguearMostrar estímulos
@@ -595,14 +583,6 @@ Language: es_CL
Recibe ayuda de nuestro grupo de voluntarios.Foros de la comunidadPor favor, instala la Google Play Store para obener al app Jetpack
- Algunas características de Jetpack como Estadísticas, Lector o Notificaciones, entre otras, han sido eliminadas de la app de WordPress.
- Las características de Jetpack se han trasladado.
- Hacerlo más tarde
- Cambiar a Jetpack
- %1$s se trasladarán a %2$s
- %1$s se trasladarán pronto
- %1$s se trasladará a %2$s
- %1$s se trasladará prontoVer todas las respuestas%1$s es menor que la semana anterior%1$s es mayor que la semana anterior
@@ -612,16 +592,9 @@ Language: es_CL
Tus visitantes en los últimos siete días son %1$s más que en los siete días anteriores.Últimos siete díasSiete días anteriores
- 1 semana
- %d semanas
- Obtén la aplicación de JetpackDesde <b>Day One</b>
- Algunas funciones, como estadísticas, lector o avisos, se trasladarán pronto a la aplicación móvil de Jetpack.Recuérdamelo más tarde
- Más información en jetpack.comEl cambio es gratuito y solo lleva un minuto.
- Se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack el %s.
- Pronto se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack.Cambiar a la aplicación de JetpackSe ha producido un error al cargar las indicaciones.¡Oh!
@@ -629,11 +602,6 @@ Language: es_CL
1 respuesta%d respuestas0 respuestas
- Las funciones de Jetpack se trasladarán pronto.
- Los avisos se están trasladando a la aplicación de Jetpack
- El lector se está trasladando a la aplicación de Jetpack
- La estadísticas se están trasladado a la aplicación de Jetpack
- Cambiar a la nueva aplicación de Jetpack✓ RespondidoPeticionescerrar
@@ -653,15 +621,9 @@ Language: es_CL
Abrir enlaces en WordPressParece que tienes instalada la aplicación de Jetpack.\n\n¿Quieres abrir enlaces en la aplicación de Jetpack en el futuro?\n\nPuedes cambiar esta opción en cualquier momento desde Ajustes de la aplicación > Abrir enlaces en Jetpack.¿Quieres abrir enlaces en Jetpack?
- Cambia a la aplicación de Jetpack para seguir recibiendo notificaciones en tiempo real en tu dispositivo.
- Cambia a la aplicación de Jetpack para buscar tus entradas y sitios favoritos, seguirlos e indicar que te gustan con el Lector.
- Cambia a la aplicación de Jetpack para ver cómo crece el tráfico de tu sitio con estadísticas y detalles.Abrir enlaces en JetpackNo se puede desactivar Abrir enlaces en JetpackNo se puede activar Abrir enlaces en Jetpack
- Recibe tus notificaciones con la aplicación de Jetpack
- Sigue cualquier sitio con la aplicación de Jetpack
- Obtén tus estadísticas con la nueva aplicación de JetpackContacta con el equipo de soporte o inténtalo de nuevo más tarde.Algo no ha ido como estaba previsto. Tus datos están protegidos, pero no podemos transferirlos en este momento.No podemos transferir tus datos y ajustes sin una conexión de red.
@@ -721,7 +683,6 @@ Language: es_CL
La semana pasada tuviste %1$s visitas y %2$s comentariosLa semana pasada tuviste %1$s visitas y %2$s Me gustaLa semana pasada tuviste %1$s visitas.
- Funciona gracias a JetpackImagen que señala que el escaneo de código de acceso está en procesoImagen que señala un errorDescartar
diff --git a/WordPress/src/main/res/values-es-rCO/strings.xml b/WordPress/src/main/res/values-es-rCO/strings.xml
index 674501302964..28aecd732ecb 100644
--- a/WordPress/src/main/res/values-es-rCO/strings.xml
+++ b/WordPress/src/main/res/values-es-rCO/strings.xml
@@ -944,9 +944,6 @@ Language: es_CO
La opción de compartir automáticamente en Twitter ya no está disponible debido a las modificaciones que ha sufrido esta red social en lo que respecta a términos y precios.La opción de compartir automáticamente en Twitter ya no está disponibleActiva las notificaciones para estar al tanto de lo que sucede en tu sitio
- La aplicación de Jetpack tiene todas las funciones de la aplicación de WordPress, y ahora ofrece acceso exclusivo a Estadísticas, Lector, Notificaciones y mucho más.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.Color sin etiquetar. %sActividad recienteComo en el ejemplo superior, un dominio le permite a la gente encontrar y visitar tu sitio desde su navegador.
@@ -1001,9 +998,6 @@ Language: es_CO
Este sitio%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.
- El cambio es gratuito y solo te llevará un minuto.
- Encontrarás más información en Jetpack.com
- Cambiar a la aplicación de JetpackWP AdminGestionarTráfico
@@ -1060,12 +1054,6 @@ Language: es_CO
Libera todo el potencial de tu sitio. Obtén estadísticas, notificaciones y más con Jetpack.Tu sitio tiene el plugin de JetpackLa aplicación móvil Jetpack está diseñada para funcionar junto con el plugin de Jetpack. Haz el cambio ahora y obtén acceso a estadísticas, notificaciones o el lector, entre otras funciones.
- Recibe notificaciones por nuevos comentarios, Me gusta, visualizaciones, etc.
- Comparte tu contenido y busca tus comunidades y sitios favoritos para seguirlos.
- Consulta el crecimiento del tráfico a tu sitio con información útil y estadísticas completas.
- Estadísticas y datos clave
- Con Jetpack sacarás más partido de tu sitio de WordPress. El cambio es gratuito y solo te llevará un minuto.
- Dale un impulso a WordPress con JetpackPuedes gestionar los recordatorios y estímulos para bloguear en cualquier momento desde Mi sitio > Ajustes > Bloguear.Cada notificación incluirá una palabra o una breve frase inspiradora.Ve a <b>Ajustes del sitio</b> para reactivarlos.
@@ -1077,15 +1065,6 @@ Language: es_CO
Mostrar estímulosBloguearPor favor, instala la Google Play Store para obener al app Jetpack
- Hacerlo más tarde
- Cambiar a Jetpack
- Algunas características de Jetpack como Estadísticas, Lector o Notificaciones, entre otras, han sido eliminadas de la app de WordPress.
- Las características de Jetpack se han trasladado.
- %1$s se trasladarán a %2$s
- %1$s se trasladará a %2$s
- %1$s se trasladarán pronto
- %1$s se trasladará pronto
- Obtén la aplicación de JetpackVer todas las respuestas%1$s es menor que la semana anterior%1$s es mayor que la semana anterior
@@ -1095,21 +1074,10 @@ Language: es_CO
Tus visitas en los últimos siete días son %1$s más que en los siete días anteriores.Siete días anterioresÚltimos siete días
- %d semanas
- 1 semanaDesde <b>Day One</b>Recuérdamelo más tarde
- Algunas funciones, como estadísticas, lector o avisos, se trasladarán pronto a la aplicación móvil de Jetpack.Cambiar a la aplicación de Jetpack
- Más información en jetpack.comEl cambio es gratuito y solo lleva un minuto.
- Pronto se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack.
- Se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack el %s.
- Las funciones de Jetpack se trasladarán pronto.
- Los avisos se están trasladando a la aplicación de Jetpack
- El lector se está trasladando a la aplicación de Jetpack
- La estadísticas se están trasladado a la aplicación de Jetpack
- Cambiar a la nueva aplicación de JetpackSe ha producido un error al cargar las indicaciones.¡Vaya!Todavía no hay sugerencias
@@ -1135,12 +1103,6 @@ Language: es_CO
Continuar sin Jetpackenlaces webenlaces URI
- Cambia a la aplicación de Jetpack para continuar recibiendo las notificaciones actualizadas en su dispositivo.
- Cambia a la aplicación de Jetpack para encontrar, seguir y poner like en todos sus sitios favoritos y posts con el Lector.
- Cambiar a la aplicación de Jetpack para ver el tráfico de su sitio crece con estadísticas y detalles.
- Recibir sus notificaciones en la aplicación de Jetpack.
- Seguir cualquier sitio con la aplicación de Jetpack.
- Recibir sus estadísticas de la aplicación nuevo Jetpack.No se puede deshabilitar las ligas abiertas en Jetpack.No se puede activar las ligas abiertas en Jetpack.Abrir las ligas en Jetpack.
@@ -1203,7 +1165,6 @@ Language: es_CO
⭐️ Tu última entrada %1$s ha recibido %2$s Me gusta.La semana pasada tuviste %1$s visitas, %2$s Me gusta y %3$s comentarios.Problema al mostrar el bloque. \nToca para intentar la recuperación del bloque.
- Funciona gracias a JetpackImagen que señala un errorImagen que señala que el escaneo de código de acceso está en procesoDescartar
diff --git a/WordPress/src/main/res/values-es-rMX/strings.xml b/WordPress/src/main/res/values-es-rMX/strings.xml
index a51644375be5..1a05a8b04f24 100644
--- a/WordPress/src/main/res/values-es-rMX/strings.xml
+++ b/WordPress/src/main/res/values-es-rMX/strings.xml
@@ -20,12 +20,6 @@ Language: es_MX
Continúe sin JetpackEnlancesEnlances URI
- Cambia a la aplicación de Jetpack para continuar recibiendo las notificaciones actualizadas en su dispositivo.
- Cambia a la aplicación de Jetpack para encontrar, seguir y poner like en todos sus sitios favoritos y posts con el Lector.
- Cambiar a la aplicación de Jetpack para ver el tráfico de su sitio crece con estadísticas y detalles.
- Recibir sus notificaciones en la aplicación de Jetpack.
- Seguir cualquier sitio con la aplicación de Jetpack.
- Recibir sus estadísticas de la aplicación nuevo Jetpack.No se puede deshabilitar las ligas abiertas en Jetpack.No se puede activar las ligas abiertas en Jetpack.Abrir las ligas en Jetpack.
diff --git a/WordPress/src/main/res/values-es-rVE/strings.xml b/WordPress/src/main/res/values-es-rVE/strings.xml
index cecf1dc8bac1..9a63d62eff3d 100644
--- a/WordPress/src/main/res/values-es-rVE/strings.xml
+++ b/WordPress/src/main/res/values-es-rVE/strings.xml
@@ -27,7 +27,6 @@ Language: es_VE
⭐️ Tu última entrada %1$s ha recibido %2$s Me gusta.La semana pasada tuviste %1$s visitas, %2$s Me gusta y %3$s comentarios.Problema al mostrar el bloque. \nToca para intentar la recuperación del bloque.
- Funciona gracias a JetpackImagen que señala un errorImagen que señala que el escaneo de código de acceso está en procesoDescartar
diff --git a/WordPress/src/main/res/values-es/strings.xml b/WordPress/src/main/res/values-es/strings.xml
index dba9daf36012..c882b96fa094 100644
--- a/WordPress/src/main/res/values-es/strings.xml
+++ b/WordPress/src/main/res/values-es/strings.xml
@@ -944,9 +944,6 @@ Language: es
La opción de compartir automáticamente en Twitter ya no está disponible debido a las modificaciones que ha sufrido esta red social en lo que respecta a términos y precios.La opción de compartir automáticamente en Twitter ya no está disponibleActiva las notificaciones para estar al tanto de lo que sucede en tu sitio
- La aplicación de Jetpack tiene todas las funciones de la aplicación de WordPress, y ahora ofrece acceso exclusivo a Estadísticas, Lector, Notificaciones y mucho más.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.
- Usa WordPress con %s en la\u00A0aplicación de Jetpack.Color sin etiquetar. %sActividad recienteComo en el ejemplo superior, un dominio le permite a la gente encontrar y visitar tu sitio desde su navegador.
@@ -1001,9 +998,6 @@ Language: es
Este sitio%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.%1$s usa %2$s, que todavía no es compatible con todas las funciones de la aplicación. Instala el %3$s.
- El cambio es gratuito y solo te llevará un minuto.
- Encontrarás más información en Jetpack.com
- Cambiar a la aplicación de JetpackWP AdminGestionarTráfico
@@ -1060,12 +1054,6 @@ Language: es
Libera todo el potencial de tu sitio. Obtén estadísticas, notificaciones y más con Jetpack.Tu sitio tiene el plugin de JetpackLa aplicación móvil Jetpack está diseñada para funcionar junto con el plugin de Jetpack. Haz el cambio ahora y obtén acceso a estadísticas, notificaciones o el lector, entre otras funciones.
- Recibe notificaciones por nuevos comentarios, Me gusta, visualizaciones, etc.
- Comparte tu contenido y busca tus comunidades y sitios favoritos para seguirlos.
- Consulta el crecimiento del tráfico a tu sitio con información útil y estadísticas completas.
- Estadísticas y datos clave
- Con Jetpack sacarás más partido de tu sitio de WordPress. El cambio es gratuito y solo te llevará un minuto.
- Dale un impulso a WordPress con JetpackPuedes gestionar los recordatorios y las sugerencias para bloguear en cualquier momento desde Mi sitio > Ajustes > Bloguear.Cada notificación incluirá una palabra o una breve frase inspiradora.Ve a <b>Ajustes del sitio</b> para reactivarlos.
@@ -1077,15 +1065,6 @@ Language: es
Mostrar sugerenciasBloguearPor favor, instala la Google Play Store para obener al app Jetpack
- Hacerlo más tarde
- Cambiar a Jetpack
- Algunas características de Jetpack como Estadísticas, Lector o Notificaciones, entre otras, han sido eliminadas de la app de WordPress.
- Las características de Jetpack se han trasladado.
- %1$s se trasladarán a %2$s
- %1$s se trasladará a %2$s
- %1$s se trasladarán pronto
- %1$s se trasladará pronto
- Obtén la aplicación de JetpackVer todas las respuestas%1$s es menor que la semana anterior%1$s es mayor que la semana anterior
@@ -1095,21 +1074,10 @@ Language: es
Tus visitas en los últimos siete días son %1$s más que en los siete días anteriores.Siete días anterioresÚltimos siete días
- %d semanas
- 1 semanaDesde <b>Day One</b>Recuérdamelo más tarde
- Algunas funciones, como estadísticas, lector o avisos, se trasladarán pronto a la aplicación móvil de Jetpack.Cambiar a la aplicación de Jetpack
- Más información en jetpack.comEl cambio es gratuito y solo lleva un minuto.
- Pronto se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack.
- Se van a retirar de la aplicación de WordPress las estadísticas, lectura, avisos y otras funcionalidades de Jetpack el %s.
- Las funciones de Jetpack se trasladarán pronto.
- Los avisos se están trasladando a la aplicación de Jetpack
- El lector se está trasladando a la aplicación de Jetpack
- La estadísticas se están trasladado a la aplicación de Jetpack
- Cambiar a la nueva aplicación de JetpackSe ha producido un error al cargar las indicaciones.¡Vaya!Todavía no hay sugerencias
@@ -1135,12 +1103,6 @@ Language: es
Continuar sin Jetpackenlaces webenlaces URI
- Cambia a la aplicación de Jetpack para seguir recibiendo notificaciones en tiempo real en tu dispositivo.
- Cambia a la aplicación de Jetpack para buscar tus entradas y sitios favoritos, seguirlos e indicar que te gustan con el Lector.
- Cambia a la aplicación de Jetpack para ver cómo crece el tráfico de tu sitio con estadísticas y detalles.
- Recibe tus notificaciones con la aplicación de Jetpack
- Sigue cualquier sitio con la aplicación de Jetpack
- Obtén tus estadísticas con la nueva aplicación de JetpackNo se puede desactivar Abrir enlaces en JetpackNo se puede activar Abrir enlaces en JetpackAbrir enlaces en Jetpack
@@ -1203,7 +1165,6 @@ Language: es
La semana pasada tuviste %1$s visitas.La semana pasada tuviste %1$s visitas, %2$s Me gusta y %3$s comentarios.⭐️ Tu última entrada %1$s ha recibido %2$s Me gusta.
- Funciona gracias a JetpackImagen que señala que el escaneo de código de acceso está en procesoImagen que señala un errorIdentificación fallida
diff --git a/WordPress/src/main/res/values-fr-rCA/strings.xml b/WordPress/src/main/res/values-fr-rCA/strings.xml
index 7020d33b81e0..d651b17926f6 100644
--- a/WordPress/src/main/res/values-fr-rCA/strings.xml
+++ b/WordPress/src/main/res/values-fr-rCA/strings.xml
@@ -918,9 +918,6 @@ Language: fr
Le partage automatique sur Twitter n’est plus disponible en raison de modifications des conditions générales et tarifaires de Twitter.Le partage automatique sur Twitter n’est plus disponibleAutoriser les notifications pour suivre l’évolution de votre site
- L’application Jetpack dispose de toutes les fonctionnalités de l’application WordPress et inclut désormais un accès exclusif aux statistiques, au lecteur, aux notifications, et plus encore.
- Utilisez WordPress avec %s dans l’application Jetpack\u00A0.
- Utilisez WordPress avec %s dans l’application Jetpack\u00A0.Couleur sans libellé. %sActivité récenteComme le montre l’exemple ci-dessus, un domaine permet aux internautes de trouver et de visiter votre site depuis leur navigateur Web.
@@ -975,9 +972,6 @@ Language: fr
Ce site%1$s utilise des %2$s, qui ne prennent pas encore en charge toutes les fonctionnalités de l’application. Installez l’%3$s.%1$s utilise une %2$s, qui ne prend pas encore en charge toutes les fonctionnalités de l’application. Installez l’%3$s.
- Passer d’une application à l’autre est gratuit et ne prend qu’une minute.
- Lire la suite sur Jetpack.com
- Passer à l’application JetpackAdministrateur WPGérerTrafic
@@ -1034,12 +1028,6 @@ Language: fr
Libérez tout le potentiel de votre site. Profitez de statistiques, de notifications et de bien d’autres choses encore avec Jetpack.Votre site comporte l’extension JetpackL’application mobile Jetpack est conçue pour compléter l’extension Jetpack. Effectuez le changement dès maintenant pour accéder aux statistiques, aux notifications, au lecteur et bien plus encore.
- Recevez des notifications pour tout nouveau commentaire, mention J\'aime, vue, et plus encore.
- Trouvez et suivez vos sites et communautés préférés, et partagez votre contenu.
- Suivez l’évolution de votre trafic avec des tendances utiles et des statistiques complètes.
- Statistiques et tendances
- Jetpack vous aide à en faire plus avec votre site WordPress. Passer d’une application à l’autre est gratuit et ne prend qu’une minute.
- Booster WordPress avec JetpackVous pouvez contrôler les invites pour bloguer et les rappels à tout moment en accédant à Mon site > Réglages > BloggingLa notification inclura un mot ou une phrase courte pour vous inspirerConsulter <b>les réglages du site</b> pour réactiver
@@ -1051,15 +1039,6 @@ Language: fr
Afficher les invitesBloguerPlease install Google Play Store to get the Jetpack app
- Plus tard
- Passer à Jetpack
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack ont été supprimées de l’application WordPress.
- Les fonctionnalités Jetpack ont été déplacées.
- %1$s vont être déplacés dans %2$s
- %1$s is moving in %2$s
- %1$s vont bientôt être déplacées
- %1$s va bientôt être déplacée
- Obtenir l’application JetpackConsulter les réponses du formulaireinférieur de %1$s par rapport à la semaine précédente%1$s en hausse par rapport aux 7 jours précédents
@@ -1069,21 +1048,10 @@ Language: fr
Au cours des 7 derniers jours, vous avez enregistré %1$s de vues en plus par rapport aux 7 jours précédents.7 jours précédents7 derniers jours
- %d semaines
- 1 semaineDe <b>Day One</b>Me rappeler ultérieurement
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités seront bientôt transférées vers l’application mobile Jetpack.Passer à l’application Jetpack
- Lire la suite sur jetpack.comPasser d’une application à l’autre est gratuit et ne prend qu’une minute.
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack seront bientôt supprimées de l’application WordPress.
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack seront supprimés de l’application WordPress le %s.
- Les fonctionnalités Jetpack vont bientôt être déplacées.
- Les notifications vont être déplacées dans Jetpack
- Le lecteur va être déplacé dans l’application Jetpack
- Les statistiques vont être déplacées dans l’application Jetpack
- Passer à la nouvelle application JetpackUn problème est survenu lors du chargement des incitations.OupsPas encore d’incitation
@@ -1109,12 +1077,6 @@ Language: fr
Continuer sans Jetpackliens Webliens URI
- Passez à l\'application Jetpack pour continuer de recevoir des notifications en temps réel sur votre appareil.
- Passez à l\'application Jetpack pour trouver, suivre et aimer tous vos sites et articles favoris avec le Lecteur.
- Passez à l\'application Jetpack pour avoir le contrôle du trafic de votre site grâce aux statistiques et aux tendances.
- Obtenir des notifications avec l\'application JetPack
- Suivre un site à l\'aide de l\'application Jetpack
- Obtenir des statistiques grâce à la nouvelle application JetpackImpossible de désactiver l’ouverture des liens dans JetpackImpossible d’activer l’ouverture des liens dans JetpackOuvrir les liens dans Jetpack
@@ -1177,7 +1139,6 @@ Language: fr
La semaine dernière, vous avez eu %1$s vues.La semaine dernière, vous avez eu %1$s vues, %2$s mentions J’aime et %3$s commentaires.⭐️ Votre dernier article %1$s a reçu %2$s mentions J’aime.
- Optimisé par JetpackImage indiquant que le scan du code de connexion est en coursImage indiquant une erreurÉchec de l’authentification
diff --git a/WordPress/src/main/res/values-fr/strings.xml b/WordPress/src/main/res/values-fr/strings.xml
index 7020d33b81e0..d651b17926f6 100644
--- a/WordPress/src/main/res/values-fr/strings.xml
+++ b/WordPress/src/main/res/values-fr/strings.xml
@@ -918,9 +918,6 @@ Language: fr
Le partage automatique sur Twitter n’est plus disponible en raison de modifications des conditions générales et tarifaires de Twitter.Le partage automatique sur Twitter n’est plus disponibleAutoriser les notifications pour suivre l’évolution de votre site
- L’application Jetpack dispose de toutes les fonctionnalités de l’application WordPress et inclut désormais un accès exclusif aux statistiques, au lecteur, aux notifications, et plus encore.
- Utilisez WordPress avec %s dans l’application Jetpack\u00A0.
- Utilisez WordPress avec %s dans l’application Jetpack\u00A0.Couleur sans libellé. %sActivité récenteComme le montre l’exemple ci-dessus, un domaine permet aux internautes de trouver et de visiter votre site depuis leur navigateur Web.
@@ -975,9 +972,6 @@ Language: fr
Ce site%1$s utilise des %2$s, qui ne prennent pas encore en charge toutes les fonctionnalités de l’application. Installez l’%3$s.%1$s utilise une %2$s, qui ne prend pas encore en charge toutes les fonctionnalités de l’application. Installez l’%3$s.
- Passer d’une application à l’autre est gratuit et ne prend qu’une minute.
- Lire la suite sur Jetpack.com
- Passer à l’application JetpackAdministrateur WPGérerTrafic
@@ -1034,12 +1028,6 @@ Language: fr
Libérez tout le potentiel de votre site. Profitez de statistiques, de notifications et de bien d’autres choses encore avec Jetpack.Votre site comporte l’extension JetpackL’application mobile Jetpack est conçue pour compléter l’extension Jetpack. Effectuez le changement dès maintenant pour accéder aux statistiques, aux notifications, au lecteur et bien plus encore.
- Recevez des notifications pour tout nouveau commentaire, mention J\'aime, vue, et plus encore.
- Trouvez et suivez vos sites et communautés préférés, et partagez votre contenu.
- Suivez l’évolution de votre trafic avec des tendances utiles et des statistiques complètes.
- Statistiques et tendances
- Jetpack vous aide à en faire plus avec votre site WordPress. Passer d’une application à l’autre est gratuit et ne prend qu’une minute.
- Booster WordPress avec JetpackVous pouvez contrôler les invites pour bloguer et les rappels à tout moment en accédant à Mon site > Réglages > BloggingLa notification inclura un mot ou une phrase courte pour vous inspirerConsulter <b>les réglages du site</b> pour réactiver
@@ -1051,15 +1039,6 @@ Language: fr
Afficher les invitesBloguerPlease install Google Play Store to get the Jetpack app
- Plus tard
- Passer à Jetpack
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack ont été supprimées de l’application WordPress.
- Les fonctionnalités Jetpack ont été déplacées.
- %1$s vont être déplacés dans %2$s
- %1$s is moving in %2$s
- %1$s vont bientôt être déplacées
- %1$s va bientôt être déplacée
- Obtenir l’application JetpackConsulter les réponses du formulaireinférieur de %1$s par rapport à la semaine précédente%1$s en hausse par rapport aux 7 jours précédents
@@ -1069,21 +1048,10 @@ Language: fr
Au cours des 7 derniers jours, vous avez enregistré %1$s de vues en plus par rapport aux 7 jours précédents.7 jours précédents7 derniers jours
- %d semaines
- 1 semaineDe <b>Day One</b>Me rappeler ultérieurement
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités seront bientôt transférées vers l’application mobile Jetpack.Passer à l’application Jetpack
- Lire la suite sur jetpack.comPasser d’une application à l’autre est gratuit et ne prend qu’une minute.
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack seront bientôt supprimées de l’application WordPress.
- Les statistiques, le lecteur, les notifications et d’autres fonctionnalités reposant sur Jetpack seront supprimés de l’application WordPress le %s.
- Les fonctionnalités Jetpack vont bientôt être déplacées.
- Les notifications vont être déplacées dans Jetpack
- Le lecteur va être déplacé dans l’application Jetpack
- Les statistiques vont être déplacées dans l’application Jetpack
- Passer à la nouvelle application JetpackUn problème est survenu lors du chargement des incitations.OupsPas encore d’incitation
@@ -1109,12 +1077,6 @@ Language: fr
Continuer sans Jetpackliens Webliens URI
- Passez à l\'application Jetpack pour continuer de recevoir des notifications en temps réel sur votre appareil.
- Passez à l\'application Jetpack pour trouver, suivre et aimer tous vos sites et articles favoris avec le Lecteur.
- Passez à l\'application Jetpack pour avoir le contrôle du trafic de votre site grâce aux statistiques et aux tendances.
- Obtenir des notifications avec l\'application JetPack
- Suivre un site à l\'aide de l\'application Jetpack
- Obtenir des statistiques grâce à la nouvelle application JetpackImpossible de désactiver l’ouverture des liens dans JetpackImpossible d’activer l’ouverture des liens dans JetpackOuvrir les liens dans Jetpack
@@ -1177,7 +1139,6 @@ Language: fr
La semaine dernière, vous avez eu %1$s vues.La semaine dernière, vous avez eu %1$s vues, %2$s mentions J’aime et %3$s commentaires.⭐️ Votre dernier article %1$s a reçu %2$s mentions J’aime.
- Optimisé par JetpackImage indiquant que le scan du code de connexion est en coursImage indiquant une erreurÉchec de l’authentification
diff --git a/WordPress/src/main/res/values-gl/strings.xml b/WordPress/src/main/res/values-gl/strings.xml
index 7a5d4309e412..615ee36faf00 100644
--- a/WordPress/src/main/res/values-gl/strings.xml
+++ b/WordPress/src/main/res/values-gl/strings.xml
@@ -599,9 +599,6 @@ Language: gl_ES
A opción de compartir automaticamente en Twitter xa non está dispoñibleO uso compartido automático de Twitter xa non está disponible debido aos cambios de Twitter nos termos e prezos.Permitir avisos para estar ao día co teu sitio
- A aplicación JetPack ten todas as funcionalidades da aplicación WordPress, e agora acceso exclusivo a Estatísticas, Lector, Avisos e máis.
- Usar WordPress con %s na aplicación\u00A0JetPack.
- Usar WordPress con %s na aplicación\u00A0JetPack.Actividade recenteONomeDaTuaWeb.comCor sen etiquetar. %s
@@ -656,15 +653,12 @@ Language: gl_ES
Este sitio%1$s usa %2$s, que aínda non é compatible con todas as funcións da aplicación. Instala o %3$s.%1$s usa %2$s, que aínda non é compatible con todas as funcións da aplicación. Instala o %3$s.
- O cambio é gratuíto e só che levará un minuto.FeitoXestionarConfigurarTráficoContidoWP Admin
- Encontrarás máis información en Jetpack.com
- Cambia á aplicación de JetpackAgora que Jetpack está instalado, só tenemos que configuralo. Só che levará un minuto.Fai un seguimento do rendemento, inicia e para a actividade promocional de Blaze en calquera momento.Promover unha entrada con Blaze agora
@@ -714,38 +708,21 @@ Language: gl_ES
Instalar JetpackLibera todo o potencial do teu sitio. Obtén estatísticas, notificacións e máis con Jetpack.O teu sitio ten o plugin de Jetpack
- Recibe notificacións por novos comentarios, Gústame, visualizacións, etc.
- Consulta o crecemento do tráfico ao teu sitio con información útil e estatísticas completas.
- Comparte o teu contido e busca as túas comunidades e sitios favoritos para seguilos.A aplicación móbil Jetpack está deseñada para funcionar xunto co plugin de Jetpack. Fai o cambio agora e obtén acceso a estatísticas, notificacións e ao lector, entre outras funcións.
- Estatísticas e datos claveOcultáronse os estímulos para bloguear.
- Dálle un impulso a WordPress con JetpackVai a <b>Axustes do sitio</b> para reactivalos.Cada notificación incluirá unha palabra ou unha breve frase inspiradora.Podes xestionar os recordatorios e estímulos para bloguear en calquera momento desde O meu sitio > Axustes > Bloguear.
- Con Jetpack sacarás máis partido do teu sitio de WordPress. O cambio é gratuíto e só che levará un minuto.BloguearAmosar estímulosDesactivar estímulosForos da comunidadeRecordatorios de blogueoRecibe axuda do noso grupo de voluntarios.
- Facelo máis tarde
- Cambiar a Jetpack
- %1$s trasladarase pronto
- %1$s trasladaranse pronto
- %1$s trasladarase a %2$s
- %1$s trasladaranse a %2$s
- As características de Jetpack trasladáronse.Por favor, instala a Google Play Store para obter a app de Jetpack
- Algunhas características de Jetpack como Estatísticas, Lector ou Notificacións, entre outras, elimináronse da app de WordPress.
- 1 semana
- %d semanasÚltimos sete díasSete días anterioresVer todas as respostas
- Obtén a aplicación de Jetpack%1$s é menor que a semana anterior%1$s é maior que a semana anteriorAs túas visitas nos últimos sete días son %1$s menos que nos sete días anteriores.
@@ -755,22 +732,13 @@ Language: gl_ES
Desde <b>Day One</b>Recórdamo máis tardeCambiar á aplicación de Jetpack
- Máis información en jetpack.comO cambio é gratuíto e só leva un minuto.
- Vanse a retirar pronto da aplicación de WordPress as estatísticas, lectura, avisos e outras funcionalidades de Jetpack.
- Vanse a retirar da aplicación de WordPress as estatísticas, lectura, avisos e outras funcionalidades de Jetpack o %s.
- As estatísticas, o lector, as notificacións e outras características trasladaranse pronto á aplicación móbil de Jetpack.Vaia!1 resposta0 respostas%d respostasAínda non hai suxerencias
- Cambiar á nova aplicación de Jetpack
- As funcións de Jetpack trasladaranse pronto.
- Os avisos estanse trasladando á aplicación de Jetpack
- O lector estase trasladando á aplicación de JetpackProduciuse un erro ao cargar as indicacións.
- A estatísticas estanse trasladado á aplicación de JetpackPeticións✓ Respondidopechar
@@ -790,15 +758,9 @@ Language: gl_ES
Continuar sen Jetpackurilinksweblinks
- Muda para a aplicación Jetpack para continuar a recibir notificacións en tempo real no seu dispositivo.
- Muda para a aplicación Jetpack para encontrar, seguir e gustar todas as túas publicacións e sitios favoritos co Lector.
- Muda para a aplicación Jetpack para observar o crecemento do tráfico do teu sitio con estatísticas e outros detalles.Abrir ligazóns en Jetpack
- Segue calquera sitio coa aplicación de JetpackNon se pode activar abrir as ligazóns en JetpackNon se pode desactivar abrir as ligazóns en Jetpack
- Obtén as túas estatísticas coa nova aplicación de Jetpack
- Recibe as túas notificacións coa aplicación de JetpackNon se puido conectar a Internet.Contacta co equipo de soporte ou inténtao de novo máis tarde.Comproba a túa conexión de rede para asegurarte de que funcione e volve a intentalo.
@@ -858,7 +820,6 @@ Language: gl_ES
⭐️ A túa última entrada %1$s recibiu %2$s Gústame.A semana pasada tiveches %1$s visitas, %2$s Gústame e %3$s comentarios.Problema ao mostrar o bloque. \nToca para intentar a recuperación do bloque.
- Funciona grazas a JetpackImaxe que sinala un erroImaxe que sinala que o escaneo do código de acceso está en procesoDescartar
diff --git a/WordPress/src/main/res/values-h720dp/dimens.xml b/WordPress/src/main/res/values-h720dp/dimens.xml
deleted file mode 100644
index 55d6502e217c..000000000000
--- a/WordPress/src/main/res/values-h720dp/dimens.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- @dimen/margin_extra_medium_large
-
diff --git a/WordPress/src/main/res/values-he/strings.xml b/WordPress/src/main/res/values-he/strings.xml
index c00191818a4c..e3ffa47038ce 100644
--- a/WordPress/src/main/res/values-he/strings.xml
+++ b/WordPress/src/main/res/values-he/strings.xml
@@ -931,9 +931,6 @@ Language: he_IL
האפשרות לשיתוף אוטומטי בטוויטר כבר לא זמינה עקב השינויים בתנאים ובתמחור של טוויטר.האפשרות לשיתוף אוטומטי בטוויטר כבר לא זמינהלאפשר להודעות להתעדכן מול האתר שלך
- באפליקציה של Jetpack יש את כל הפונקציונליות של האפליקציה של WordPress ועכשיו גם גישה בלעדית לנתונים סטטיסטיים, ל-Reader, להודעות ועוד.
- להשתמש ב-WordPress עם %s באפליקציה של Jetpack\u00A0.
- להשתמש ב-WordPress עם %s באפליקציה של Jetpack\u00A0.צבע ללא תווית. %sפעילות אחרונהכמו הדוגמה שמוצגת למעלה, דומיין מאפשר לאנשים למצוא את האתר שלך ולבקר בו מדפדפן האינטרנט שלהם.
@@ -988,9 +985,6 @@ Language: he_IL
האתר הזההאתר %1$s משתמש ב-%2$s שעדיין לא תומכים בכל האפשרויות של האפליקציה. יש להתקין את %3$s.האתר %1$s משתמש ב-%2$s שעדיין לא תומך בכל האפשרויות של האפליקציה. יש להתקין את %3$s.
- ההחלפה היא חינמית ואורכת דקה בלבד.
- מידע נוסף באתר Jetpack.com
- החלפה לאפליקציה של Jetpackניהול WPניהולתעבורה
@@ -1047,12 +1041,6 @@ Language: he_IL
להתחיל לממש את מלוא הפוטנציאל של האתר. לקבל נתונים סטטיסטיים, לקרוא הודעות ועוד בעזרת Jetpack.באתר שלך מותקן תוסף של Jetpackהאפליקציה לנייד של Jetpack נועדה לעבוד בשילוב עם התוסף של Jetpack. כדאי להחליף עכשיו כדי לגשת לנתונים סטטיסטיים, להודעות, ל-Reader ועוד.
- לקבל הודעות על תגובות חדשות, לייקים, צפיות ועוד.
- למצוא את האתרים והקהילות המועדפים עליך, לעקוב אחריהם ולשתף את התוכן שלך.
- להגדיל את התעבורה לאתר בעזרת גישה לתובנות שימושיות ולנתונים סטטיסטיים מקיפים.
- נתונים סטטיסטיים ותובנות
- השירות של Jetpack מאפשר לך להפיק את המרב מהאתר שלך ב-WordPress. ההחלפה היא חינמית ואורכת דקה בלבד.
- לשפר את השירות של WordPress עם Jetpackאפשר לשלוט ב\'הצעות כתיבה בבלוג\' וב\'תזכורות\' בכל עת דרך \'האתר שלי\' > \'הגדרות\' > \'פרסום בבלוג\'ההודעה תכלול מילה או ביטוי קצר להשראהיש לעבור אל <b>הגדרות האתר</b> כדי להפעיל אותן בחזרה
@@ -1064,15 +1052,6 @@ Language: he_IL
להציג הצעות כתיבהפרסום בבלוגיש להתקין את Google Play Store כדי להוריד את האפליקציה של Jetpack
- אפשר לחכות עם זה
- לעבור ל-Jetpack
- נתונים סטטיסטיים, Reader, הודעות ואפשרויות אחרות שמופעלות על ידי Jetpack הוסרו מאפליקציית WordPress.
- האפשרויות של Jetpack הועברו.
- האפשרויות %1$s עוברות בתאריך %2$s
- האפשרות %1$s עוברת בתאריך %2$s
- האפשרויות %1$s יועברו בקרוב
- האפשרות %1$s תועבר בקרוב
- להוריד את האפליקציה של Jetpackלהציג את כל התשובות%1$s פחות לעומת שבעת הימים הקודמים%1$s יותר משבעת הימים הקודמים
@@ -1082,21 +1061,10 @@ Language: he_IL
כמות הצפיות באתר במהלך שבעת הימים האחרונים הייתה גבוהה בשיעור של %1$s מהכמות בשבעת הימים שקדמו להם.שבעת הימים הקודמיםשבעת הימים האחרונים
- %d שבועות
- שבוע אחדמ-<b>Day One</b>הזכירו לי מאוחר יותר
- האפשרויות של נתונים סטטיסטיים, Reader, הודעות ואפשרויות אחרות יועברו בקרוב אל האפליקציה של Jetpack לנייד.החלפה לאפליקציה של Jetpack
- מידע נוסף באתר Jetpack.comההחלפה היא חינמית ואורכת דקה בלבד.
- נתונים סטטיסטיים, Reader, הודעות וכלים אחרים שמופעלים על ידי Jetpack יוסרו מאפליקציית WordPress בקרוב.
- נתונים סטטיסטיים, Reader, הודעות וכלים אחרים שמופעלים על ידי Jetpack יוסרו מאפליקציית WordPress בתאריך %s.
- האפשרויות של Jetpack יועברו בקרוב.
- ההודעות עוברות ל-Jetpack
- הכלי Reader עובר לאפליקציה של Jetpack
- הנתונים הסטטיסטיים שלך עוברים לאפליקציה של Jetpack
- לעבור לאפליקציה החדשה של Jetpackאירעה שגיאה בטעינת ההצעות.אופסעדיין אין הצעות
@@ -1122,12 +1090,6 @@ Language: he_IL
להמשיך בלי Jetpackweblinksurilinks
- יש לעבור לאפליקציה של Jetpack כדי להמשיך לקבל התראות בזמן אמת אל המכשיר שלך.
- כדאי לעבור לאפליקציה של Jetpack כדי למצוא, לעקוב ולסמן לייק בכל האתרים והפוסטים האהובים עליך עם Reader.
- יש לעבור לאפליקציה של Jetpack כדי לראות איך התעבורה של האתר שלך גדלה הודות לנתונים סטטיסטיים ולתובנות.
- אפשר לקבל הודעות דרך האפליקציה של Jetpack
- אפשר לעקוב אחרי כל אתר דרך האפליקציה של Jetpack
- אפשר לקבל את הנתונים הסטטיסטיים שלך דרך האפליקציה החדשה של Jetpackאין אפשרות להשבית את פתיחת הקישורים ב-Jetpackאין אפשרות להפעיל את פתיחת הקישורים ב-Jetpackלפתוח את הקישורים ב-Jetpack
@@ -1190,7 +1152,6 @@ Language: he_IL
בשבוע הקודם היו לך %1$s צפיות.בשבוע הקודם היו לך %1$s צפיות, %2$s לייקים ו-%3$s תגובות.⭐️ הפוסט האחרון שלך %1$s קיבל לייק %2$s.
- מופעל באמצעות Jetpackתמונה להמחשה שתהליך הסריקה של קוד ההתחברות החלתמונה להמחשה שאירעה שגיאההאימות נכשל
diff --git a/WordPress/src/main/res/values-id/strings.xml b/WordPress/src/main/res/values-id/strings.xml
index 70a0669d26cf..eaa46bda95fa 100644
--- a/WordPress/src/main/res/values-id/strings.xml
+++ b/WordPress/src/main/res/values-id/strings.xml
@@ -933,9 +933,6 @@ Language: id
Membagikan otomatis di Twitter tidak lagi tersedia karena perubahan kebijakan dan harga di Twitter.Membagikan otomatis di Twitter tidak lagi tersediaIzinkan pemberitahuan untuk mengikuti perkembangan situs Anda
- Aplikasi Jetpack memiliki semua fungsionalitas aplikasi WordPress, dan sekarang memiliki akses eksklusif ke Statistik, Pembaca, Notifikasi, dan lainnya.
- Gunakan WordPress dengan %s di aplikasi\u00A0Jetpack.
- Gunakan WordPress dengan %s di aplikasi\u00A0Jetpack.Warna tanpa label. %sAktivitas terbaruSeperti contoh di atas, domain mengizinkan Anda menemukan dan mengunjungi situs Anda dari web browser.
@@ -990,9 +987,6 @@ Language: id
Situs berikut%1$s ini menggunakan %2$s yang belum mendukung semua fitur dalam aplikasi. Silakan instal %3$s.%1$s ini menggunakan %2$s yang belum mendukung semua fitur dalam aplikasi. Silakan instal %3$s.
- Beralihlah ke aplikasi—gratis dan prosesnya cepat!
- Baca selengkapnya di Jetpack.com
- Ganti ke aplikasi JetpackAdmin WPKelolaLalu Lintas
@@ -1049,12 +1043,6 @@ Language: id
Maksimalkan potensi situs Anda. Dapatkan statistik, pemberitahuan, dan lainnya dengan Jetpack.Situs Anda memiliki plugin JetpackAplikasi seluler Jetpack didesain agar terintegrasi dengan plugin Jetpack. Beralih sekarang untuk mengakses statistik, pemberitahuan, pembaca dan lainnya.
- Dapatkan notifikasi komentar, jumlah suka, jumlah pengunjung baru, dan lainnya.
- Temukan dan ikuti situs dan komunitas favorit Anda, serta bagikan konten Anda.
- Amati peningkatan lalu lintas Anda lewat statistik lengkap dan wawasan penuh makna.
- Statistik & Wawasan
- Jetpack membuka jalan untuk lebih memberdayakan situs WordPress Anda. Beralihlah ke aplikasi—gratis dan prosesnya cepat!
- Sempurnakan WordPress dengan JetpackAnda dapat mengendalikan Prompt dan Pengingat Blogging kapan pun di Situs Saya > Pengaturan > BloggingPemberitahuan akan mencakup kata atau frasa singkat sebagai inspirasiBuka <b>Pengaturan Situs</b> untuk menyalakan kembali
@@ -1066,15 +1054,6 @@ Language: id
Tampilkan promptPenulisan BlogSilakan instal Google Play Store untuk mendapatkan aplikasi Jetpack
- Lakukan ini nanti
- Ganti ke Jetpack
- Statistik, Reader, Pemberitahuan, dan beragam fitur lain berbasis Jetpack telah dihapus dari aplikasi WordPress.
- Fitur-fitur Jetpack telah berpindah.
- %1$s berpindah %2$s
- %1$s berpindah %2$s
- %1$s segera berpindah
- %1$s segera berpindah
- Dapatkan aplikasi JetpackLihat semua tanggapan%1$s lebih rendah dari 7 hari sebelumnya%1$s lebih tinggi dari 7 hari sebelumnya
@@ -1084,21 +1063,10 @@ Language: id
Penayangan Anda dalam 7 hari terakhir %1$s lebih tinggi dari 7 hari sebelumnya.7 hari sebelumnya7 hari terakhir
- %d minggu
- 1 mingguDari <b>Day One</b>Ingatkan saya nanti
- Statistik, Reader, Pemberitahuan, dan berbagai fitur lain akan segera berpindah ke aplikasi ponsel Jetpack.Ganti ke aplikasi Jetpack
- Baca selengkapnya di jetpack.comBergantilah ke aplikasi—gratis dan prosesnya cepat!
- Statistik, Reader, Pemberitahuan, dan beragam fitur lain berbasis Jetpack akan segera dihapus dari aplikasi WordPress.
- Statistik, Reader, Pemberitahuan, dan beragam fitur lain berbasis Jetpack akan dihapus dari aplikasi WordPress pada %s.
- Beragam fitur Jetpack akan segera berpindah.
- Pemberitahuan akan berpindah ke Jetpack
- Reader akan berpindah ke aplikasi Jetpack
- Statistik Anda akan berpindah ke aplikasi Jetpack
- Beralih ke aplikasi Jetpack baruTerjadi eror saat memuat prompt.WaduhBelum ada prompt
@@ -1124,12 +1092,6 @@ Language: id
Lanjutkan tanpa Jetpacktautanwebtautanuri
- Ganti ke aplikasi Jetpack agar dapat tetap menerima notifikasi real-time langsung di perangkat Anda.
- Ganti ke aplikasi Jetpack untuk menemukan, mengikuti, dan memberi suka ke situs dan pos favorit lewat Reader.
- Ganti ke aplikasi Jetpack untuk memantau perkembangan situs dengan fitur statistik dan wawasan.
- Dapatkan pemberitahuan dengan aplikasi Jetpack
- Ikuti situs apa pun dengan aplikasi Jetpack
- Dapatkan statistik situs Anda lewat aplikasi Jetpack baruTidak dapat menonaktifkan fitur buka tautan di JetpackTidak dapat mengaktifkan fitur buka tautan di JetpackBuka tautan di Jetpack
@@ -1192,7 +1154,6 @@ Language: id
Minggu lalu Anda mendapatkan %1$s tayangan.Minggu lalu Anda mendapatkan %1$s tayangan, %2$s suka, dan %3$s komentar.⭐️ Artikel terbaru Anda %1$s telah menerima %2$s suka.
- Didukung JetpackGambar menunjukkan pemindaian kode login sedang berlangsungGambar menunjukkan terjadinya errorAutentikasi Gagal
diff --git a/WordPress/src/main/res/values-it/strings.xml b/WordPress/src/main/res/values-it/strings.xml
index 8f4e9b80999d..d318ece8b78e 100644
--- a/WordPress/src/main/res/values-it/strings.xml
+++ b/WordPress/src/main/res/values-it/strings.xml
@@ -944,9 +944,6 @@ Language: it
La condivisione automatica di Twitter non è più disponibile a causa delle modifiche nei termini e nei prezzi di Twitter.La condivisione automatica di Twitter non è più disponibileConsenti le notifiche per stare al passo con il tuo sito
- L\'app Jetpack offre tutte le funzionalità dell\'app WordPress e ora anche l\'accesso esclusivo a Statistiche, Reader, Notifiche e altro.
- Usa WordPress con %s nell\'app Jetpack\u00A0.
- Usa WordPress con %s nell\'app Jetpack\u00A0.Colore senza etichetta. %sAttività recenteCome nell\'esempio precedente, un dominio consente agli utenti di trovare e visitare il tuo sito dal proprio browser web.
@@ -1001,9 +998,6 @@ Language: it
Questo sito%1$s utilizza %2$s, che non supportano ancora tutte le funzionalità dell\'app. Please install the %3$s.%1$s utilizza %2$s, che non supportano ancora tutte le funzionalità dell\'app. Please install the %3$s.
- Il passaggio è gratuito e richiede solo un minuto.
- Maggiori informazioni su jetpack.com
- Passa all\'app JetpackWP AdminGestisciTraffico
@@ -1060,12 +1054,6 @@ Language: it
Sblocca tutto il potenziale del tuo sito web. Ottieni statistiche, notifiche e altro con Jetpack.Il tuo sito ha il plugin JetpackL\'app mobile Jetpack è progettata per funzionare insieme al plugin Jetpack. Passa ora per accedere a statistiche, notifiche, reader e altro ancora.
- Ricevi notifiche per nuovi commenti, Mi piace, visualizzazioni e altro ancora.
- Trova e segui i tuoi siti e le community preferiti e condividi i tuoi contenuti.
- Osserva la crescita del tuo traffico con informazioni utili e statistiche complete.
- Statistiche e panoramica
- Jetpack ti permette di fare di più con il tuo sito WordPress. Il passaggio è gratuito e richiede solo un minuto.
- Dai una spinta a WordPress con JetpackPuoi controllare le richieste di blog e i promemoria in qualsiasi momento in Il mio sito > Impostazioni > BlogLa notifica includerà una parola o una breve frase da cui trarre ispirazioneVisita le <b>Impostazioni del sito</b> per riattivare
@@ -1077,15 +1065,6 @@ Language: it
Mostra richiesteCreazione di un blogInstalla Google Play Store per ottenere l\'app Jetpack
- Fallo più tardi
- Passa a Jetpack
- Statistiche, Reader, Notifiche e altre funzionalità basate su Jetpack sono state rimosse dall\'app WordPress.
- Le funzionalità di Jetpack sono state trasferite.
- %1$s si stanno trasferendo a %2$s
- %1$s si sta trasferendo a %2$s
- %1$s si trasferiranno presto
- %1$s si trasferirà presto
- Ottieni l\'app di JetpackVisualizza tutte le risposte%1$s in meno rispetto ai 7 giorni precedenti%1$s in più rispetto ai 7 giorni precedenti
@@ -1095,21 +1074,10 @@ Language: it
Le tue visualizzazioni negli ultimi 7 giorni sono %1$s in più rispetto ai 7 giorni precedenti.7 giorni precedentiUltimi 7 giorni
- %d settimane
- 1 settimanaDa <b>Day One</b>Ricordamelo più tardi
- Statistiche, Reader, Notifiche e altre funzionalità passeranno presto all\'app mobile Jetpack.Passa all\'app Jetpack
- Maggiori informazioni su jetpack.comIl passaggio è gratuito e richiede solo un minuto.
- Statistiche, Reader, Notifiche e altre funzionalità basate su Jetpack saranno rimosse presto dall\'app WordPress.
- Statistiche, Reader, Notifiche e altre funzionalità basate su Jetpack saranno rimosse dall\'app WordPress il %s.
- Le funzionalità di Jetpack si trasferiranno presto.
- Le notifiche si stanno spostando su Jetpack
- Le notifiche si stanno spostando sull\'app Jetpack
- Le tue statistiche si stanno spostando sull\'app Jetpack
- Passa alla nuova app JetpackSi è verificato un errore durante il caricamento delle richieste.OpsAncora nessuna richiesta
@@ -1135,12 +1103,6 @@ Language: it
Continua senza Jetpacklink weblink url
- Passa all\'app Jetpack per continuare a ricevere notifiche in tempo reale sul tuo dispositivo.
- Passa all\'app Jetpack per trovare, seguire e mettere mi piace a tutti i tuoi siti e post preferiti con Reader.
- Passa all\'app Jetpack per vedere crescere il traffico del tuo sito con statistiche e approfondimenti.
- Ricevi le tue notifiche con l\'app Jetpack
- Segui qualsiasi sito con l\'app Jetpack
- Ottieni le statistiche usando la nuova app di JetpackImpossibile disabilitare i collegamenti aperti in JetpackImpossibile abilitare i collegamenti aperti in JetpackApri i collegamenti in Jetpack
@@ -1203,7 +1165,6 @@ Language: it
L\'ultima settimana hai avuto %1$s visualizzazioni.L\'ultima settimana hai avuto %1$s visualizzazioni, %2$s Mi piace e %3$s commenti.⭐️ Il tuo ultimo articolo %1$s ha ricevuto %2$s Mi piace.
- Con tecnologia JetpackImmagine indicante la scansione del codice di accesso in elaborazioneImmagine indiante un erroreAutenticazione non riuscita
diff --git a/WordPress/src/main/res/values-ja/strings.xml b/WordPress/src/main/res/values-ja/strings.xml
index 99fb6cf5e7a5..64bb1367cf85 100644
--- a/WordPress/src/main/res/values-ja/strings.xml
+++ b/WordPress/src/main/res/values-ja/strings.xml
@@ -924,9 +924,6 @@ Language: ja_JP
Twitter の自動共有機能は Twitter の規約と価格に変更があったため利用できなくなりました。Twitter の自動共有機能は利用できなくなりましたサイトを更新するよう通知を許可する
- Jetpack アプリで WordPress アプリの全機能に加えて統計、Reader、通知などを特別に利用できるようになりました。
- Jetpack\u00A0app で WordPress と %sを利用できます。
- Jetpack\u00A0app で WordPress と %sを利用できます。ラベルない色。 %s最近のアクティビティ上記の例のように、ドメインを使用するとユーザーは、Web ブラウザーからサイトを見つけてアクセスできます。
@@ -981,9 +978,6 @@ Language: ja_JP
このサイト%1$s が使用している %2$s は、まだアプリのすべての機能をサポートしていません。 %3$s をインストールしてください。%1$s が使用している %2$s は、まだアプリのすべての機能をサポートしていません。 %3$s をインストールしてください。
- 切り替えは無料で、数分で終わります。
- 詳細は Jetpack.com をご覧ください
- Jetpack アプリに切り替えるWP 管理画面管理トラフィック
@@ -1040,12 +1034,6 @@ Language: ja_JP
サイトの可能性を十分に引き出すことができます。 Jetpack で統計や通知などを利用できます。ご利用のサイトには Jetpack プラグインが設定されていますJetpack モバイルアプリは、Jetpack プラグインと連携させて利用できます。 今すぐ乗り換えて、統計、通知、Reader などをご利用ください。
- 新しいコメントや「いいね」、表示数などの通知を受信できます。
- お気に入りのサイトやコミュニティを見つけてフォローし、コンテンツを共有できます。
- 便利な統計概要と包括的な統計情報で、トラフィックの成長を確認できます。
- 統計情報と統計概要
- Jetpack を使用すれば、WordPress でさらなる機能を利用できます。 切り替えは無料で、数分で終わります。
- Jetpack で WordPress をレベルアップブログのプロンプトやリマインダーは、「My Site」 > 「設定」 > 「ブログ」でいつでもコントロールできます通知にはヒントになる言葉や短いフレーズが記載されます<b>「サイトの設定」</b>に移動して表示をオンに戻す
@@ -1057,15 +1045,6 @@ Language: ja_JP
プロンプトを表示ブログJetpack アプリを入手するには Google Play ストアをインストールしてください
- 後で実行する
- Jetpack に切り替える
- 統計、Reader、通知などの Jetpack 機能は、WordPress アプリから削除されました。
- Jetpack 機能が移動しました。
- %1$s がまもなく %2$s に移動します
- %1$s がまもなく %2$s に移動します
- %1$s がまもなく移動します
- %1$s がまもなく移動します
- Jetpack アプリを入手すべての回答を表示前の7日間と比べて%1$s 減少前の7日間と比べて%1$s 増加
@@ -1075,21 +1054,10 @@ Language: ja_JP
過去7日間の表示数は、その前の7日間よりも%1$s人増えました。前の7日間過去7日間
- %d週
- 1週<b>Day One</b> から後で再通知
- 統計、Reader、通知などの機能は、まもなく Jetpack モバイルアプリに移動します。Jetpack アプリに切り替える
- 詳細は jetpack.com をご覧ください切り替えは無料で、数分で終わります。
- 統計、Reader、通知などの Jetpack 機能は、まもなく WordPress アプリから削除されます。
- 統計、Reader、通知などの Jetpack 機能は、%sに WordPress アプリから削除されます。
- Jetpack 機能はまもなく移動します。
- 通知は Jetpack アプリに移動しています
- Reader は Jetpack アプリに移動しています
- 統計は Jetpack アプリに移動しています
- 新しい Jetpack アプリに切り替えるプロンプトの読み込みでエラーが発生しました。エラーですプロンプトはまだありません
@@ -1115,12 +1083,6 @@ Language: ja_JP
Jetpack なしで連携weblinksurilinks
- 端末で リアルタイムの通知を引き続き受信するには、Jetpack アプリに切り替えてください。
- Jetpack アプリに切り替えると、Reader を使用してお気に入りのサイトや投稿をすべて検索、フォロー、「いいね」できます。
- Jetpack アプリに切り替えて、統計と統計概要を使用してサイトのトラフィックの増加を確認してください。
- Jetpack アプリで通知を受け取る
- Jetpack アプリで任意のサイトをフォロー
- 新しい Jetpack アプリを使用して統計を入手する「Jetpack でリンクを開く」を無効にできません「Jetpack でリンクを開く」を有効にできませんJetpack でリンクを開く
@@ -1183,7 +1145,6 @@ Language: ja_JP
先週、%1$s件の表示がありました。先週、%1$s件の表示、%2$s件の「いいね」、%3$s件のコメントを受け取りました。⭐️最新の投稿 %1$s が%2$s回「いいね」されました。
- Jetpack 提供ログインコードをスキャンしていることを示す画像エラーが発生していることを示す画像認証できませんでした
diff --git a/WordPress/src/main/res/values-ko/strings.xml b/WordPress/src/main/res/values-ko/strings.xml
index 947a400f67f1..6cc31522d328 100644
--- a/WordPress/src/main/res/values-ko/strings.xml
+++ b/WordPress/src/main/res/values-ko/strings.xml
@@ -935,9 +935,6 @@ Language: ko_KR
Twitter의 약관 및 가격 변경으로 인해 Twitter 자동 공유를 더 이상 사용할 수 없습니다.Twitter 자동 공유를 더 이상 사용할 수 없습니다.알림이 사이트에 계속 표시되도록 허용
- 젯팩 앱에서는 워드프레스 앱의 모든 기능을 보유하며, 이제 통계, 리더, 알림 등에 독점적으로 접근할 수 있습니다.
- 젯팩\u00A0앱에서 %s과(와) 함께 워드프레스를 사용하세요.
- 젯팩\u00A0앱에서 %s과(와) 함께 워드프레스를 사용하세요.레이블이 없는 색상입니다. %s최근 활동위의 예와 같이 사용자가 웹 브라우저에서 도메인을 통해 사이트를 찾고 방문할 수 있습니다.
@@ -992,9 +989,6 @@ Language: ko_KR
이 사이트%1$s에서는 %2$s을(를) 사용하고 있으며 여기에서는 아직 앱의 모든 기능이 지원되지 않습니다. %3$s을(를) 설치하세요.%1$s에서는 %2$s을(를) 사용하고 있으며 여기에서는 아직 앱의 모든 기능이 지원되지 않습니다. %3$s을(를) 설치하세요.
- 전환은 무료이며 1분밖에 걸리지 않습니다.
- Jetpack.com에서 더 알아보기
- 젯팩 앱으로 전환WP 관리자관리트래픽
@@ -1051,12 +1045,6 @@ Language: ko_KR
사이트의 전체 잠재력을 잠금 해제하세요. 젯팩으로 통계, 알림 등을 이용하세요.사이트에 젯팩 플러그인 있음젯팩 모바일 앱은 젯팩 플러그인과 연동하도록 설계되었습니다. 지금 전환하여 통계, 알림, 리더 등에 대한 접근 권한을 받으세요.
- 새 댓글, 좋아요, 조회수 등에 대한 알림을 받으세요.
- 즐겨 찾는 사이트와 커뮤니티를 찾아서 팔로우하고, 자신의 콘텐츠를 공유하세요.
- 유용한 인사이트와 포괄적인 통계를 통해 트래픽 증가를 지켜보세요.
- 통계 및 인사이트
- 젯팩을 통해 워드프레스 사이트에서 더 많은 작업을 수행할 수 있습니다. 전환은 무료이며 1분밖에 걸리지 않습니다.
- 젯팩으로 워드프레스 성능 향상언제든지 내 사이트 > 설정 > 블로깅에서 블로깅 프롬프트와 알림을 관리할 수 있습니다.영감을 주는 단어 또는 짧은 구문이 알림에 포함됩니다.<b>사이트 설정</b>으로 이동하여 다시 켜기
@@ -1068,15 +1056,6 @@ Language: ko_KR
프롬프트 표시블로깅젯팩 앱을 이용하려면 Google Play 스토어를 설치하세요.
- 나중에 하겠습니다.
- 젯팩으로 전환
- 통계, 리더, 알림 및 기타 젯팩에서 제공되는 기능이 워드프레스 앱에서 제거되었습니다.
- 젯팩 기능이 제거되었습니다.
- %2$s에 %1$s 이동
- %2$s에 %1$s 이동
- 곧 %1$s 이동 예정
- 곧 %1$s 이동 예정
- 젯팩 앱 받기모든 응답 보기이전 7일보다 %1$s 적음이전 7일보다 %1$s 많음
@@ -1086,21 +1065,10 @@ Language: ko_KR
최근 7일의 조회수가 이전 7일보다 %1$s 많습니다.이전 7일최근 7일
- %d주
- 1주출처: <b>Day One</b>나중에 다시 알림
- 곧 통계, 리더, 알림 및 기타 기능이 젯팩 모바일 앱으로 이동됩니다.젯팩 앱으로 전환
- jetpack.com에서 더 알아보기전환은 무료이며 1분밖에 걸리지 않습니다.
- 통계, 리더, 알림 및 기타 젯팩에서 제공되는 기능이 조만간 워드프레스 앱에서 제거됩니다.
- 통계, 리더, 알림 및 기타 젯팩에서 제공되는 기능이 %s에 워드프레스 앱에서 제거됩니다.
- 젯팩 기능이 곧 이동합니다.
- 젯팩으로 알림 이동 중
- 젯팩 앱으로 리더 이동 중
- 젯팩 앱으로 통계 이동 중
- 새 젯팩 앱으로 전환프롬프트 로드 중 오류가 발생했습니다.죄송합니다.아직 프롬프트 없음
@@ -1126,12 +1094,6 @@ Language: ko_KR
젯팩 없이 계속웹 링크URL 링크
- 젯팩 앱으로 전환하여 계속 기기에서 실시간 알림을 받으세요.
- 젯팩 앱으로 전환하여 리더를 통해 좋아하는 모든 사이트와 글을 찾고, 팔로우하고, 좋아요를 표시하세요.
- 젯팩 앱으로 전환하여 통계와 인사이트를 통해 사이트의 트래픽 증가를 지켜보세요.
- 젯팩 앱으로 알림 받기
- 젯팩 앱으로 사이트 팔로우
- 새 젯팩 앱을 사용하여 통계 받기젯팩에서 링크 열기를 비활성화할 수 없음젯팩에서 링크 여기를 활성화할 수 없음젯팩에서 링크 열기
@@ -1194,7 +1156,6 @@ Language: ko_KR
지난주에는 조회수 %1$s개가 있습니다.지난주에는 조회수 %1$s개, 좋아요 %2$s개 및 댓글 %3$s개가 있습니다.⭐️ 최신 글 %1$s에 좋아요 %2$s개가 있습니다.
- Jetpack powered진행 중인 로그인 코드 스캔을 나타내는 이미지오류를 나타내는 이미지인증 실패
diff --git a/WordPress/src/main/res/values-lv/strings.xml b/WordPress/src/main/res/values-lv/strings.xml
index 83362ff6f86d..c2fad9975ca1 100644
--- a/WordPress/src/main/res/values-lv/strings.xml
+++ b/WordPress/src/main/res/values-lv/strings.xml
@@ -481,10 +481,7 @@ Language: lv
Automātiskā koplietošana pakalpojumā Twitter vairs nav pieejamaTwitter auto-dalīšanās vairs nav pieejama, jo Twitter ir veicis izmaiņas terminos un cenās.Uzzināt vairāk
- Jetpack lietotnei ir visi WordPress lietotnes funkcionalitātes, un tagad ekskluzīva piekļuve statistikai, lasītājam, paziņojumiem un citiem resursiem.Ļaujiet saņemt paziņojumus, lai sekotu līdzi jūsu vietnei
- Izmantojiet WordPress ar %s Jetpack\u00A0app.
- Izmantojiet WordPress ar %s Jetpack\u00A0app.YourSiteName.comLīdzīgi kā iepriekš minētajā piemērā, domēns ļauj cilvēkiem atrast un apmeklēt jūsu vietni savā tīmekļa pārlūkprogrammā.Pēdējā darbība
@@ -539,7 +536,6 @@ Language: lv
%1$s izmanto %2$s, kas vēl neatbalsta visas lietotnes funkcijas. Lūdzu, instalējiet %3$s.Šī vietne%1$s izmanto %2$s, kas vēl neatbalsta visas lietotnes funkcijas. Lūdzu, instalējiet %3$s.
- Pārslēgšanās ir bezmaksas un aizņem tikai minūti.Tagad, kad Jetpack ir instalēts, mums ir tikai jāveic iestatīšana. Tas prasīs tikai minūti.GatavsUzstādīt
@@ -547,8 +543,6 @@ Language: lv
SatiksmePārvaldītWP administrators
- Pārslēdzieties uz Jetpack lietotni
- Uzziniet vairāk vietnē Jetpack.comSekojiet veiktspējai, iedarbiniet un apturiet savu Blaze jebkurā laikā.Izgaismojiet šo ziņuIzgaismojiet šo lapu
@@ -596,35 +590,19 @@ Language: lv
Gatavs šīs vietnes izmantošanai ar lietotni.Instalēt JetpackAtbrīvojiet visu savas vietnes potenciālu. Iegūstiet statistiku, paziņojumus un daudz ko citu, izmantojot Jetpack.
- Vērojiet, kā jūsu datplūsma pieaug, izmantojot noderīgus ieskatus un visaptverošu statistiku.
- Atrodiet un sekojiet savām iecienītākajām vietnēm un kopienām, kā arī kopīgojiet savu saturu.
- Saņemiet paziņojumus par jauniem komentāriem, atzīmēm Patīk, skatījumiem un daudz ko citu.Jetpack mobilā lietotne ir paredzēta darbam kopā ar Jetpack spraudni. Pārslēdziet tagad, lai piekļūtu statistikai, paziņojumiem, lasītājam un daudz kam citam.Jūsu vietnei ir spraudnis JetpackEmuāru rakstīšanas pamudinājumi slēptiApmeklējiet <b>Vietnes iestatījumi</b>, lai tos ieslēgtu atkalPaziņojumā būs iekļauts vārds vai īsa frāze iedvesmaiEmuāru rakstīšanas uzvednes un atgādinājumus varat kontrolēt katrā laikā sadaļā Mana vietne > Iestatījumi > Emuāri
- Sniedziet atbalstu WordPress ar Jetpack
- Jetpack ļauj paveikt vairāk savā WordPress vietnē. Pārslēgšanās ir bezmaksas un aizņem tikai minūti.
- Statistika un ieskatiEmuāru rakstīšanaRādīt uzvednesEmuāru rakstīšanas atgādinājumiKopienas forumiSaņemiet palīdzību no mūsu brīvprātīgo grupas.Izslēgt uzvednes
- %1$s drīzumā tiks pārvietots
- %1$s drīzumā tiks pārvietoti
- %1$s pārvietojas uz %2$s
- %1$s pārvietojas uz %2$s
- Jetpack funkcijas ir pārvietotas.
- Statistika, lasītājs, paziņojumi un citas Jetpack darbināmas funkcijas ir noņemtas no WordPress lietotnes.
- Pārslēdzieties uz Jetpack Lūdzu, instalējiet Google Play veikalu, lai iegūtu lietotni Jetpack
- Dariet to vēlāk
- 1 nedēļa
- %d nedēļasPēdējās 7 dienasIepriekšējās 7 dienasJūsu skatījumu skaits pēdējo 7 dienu laikā ir par %1$s lielāks nekā iepriekšējās 7 dienās.
@@ -634,26 +612,16 @@ Language: lv
Par %1$s vairāk nekā iepriekšējās 7 dienāsPar %1$s mazāk nekā iepriekšējās 7 dienāsSkatīt visas atbildes
- Iegūst Jetpack lietotniNo <b>Pirmās dienas</b>Pārslēgšanās ir bezmaksas un aizņem tikai minūti.
- Uzziniet vairāk vietnē jetpack.comPārslēdzieties uz Jetpack lietotniAtgādināt vēlāk
- Statistika, Lasītājs, paziņojumi un citas Jetpack darbināmas funkcijas tiks noņemtas no WordPress lietotnes vietnē %s.
- Statistika, Lasītājs, paziņojumi un citas Jetpack darbināmas funkcijas drīzumā tiks noņemtas no WordPress lietotnes.
- Statistika, Lasītājs, Paziņojumi un citi līdzekļi drīzumā tiks pārvietoti uz Jetpack mobilo lietotni.0 atbildes1 atbilde%d atbildesVēl nav uzvedņuHmm…Ielādējot uzvednes, radās kļūda.
- Pārslēdzieties uz jauno Jetpack lietotni
- Jūsu statistika tiek pārvietota uz Jetpack lietotni
- Lasītājs pāriet uz Jetpack lietotni
- Paziņojumi tiek pārvietoti uz Jetpack
- Jetpack funkcijas drīzumā tiks pārvietotas.aizvērtUzvednes✓ Atbildēts
@@ -667,21 +635,15 @@ Language: lv
Ziņot par šo lietotājuBloķēt lietotājuZiņas no šī lietotāja vairs netiks rādītas
- Pārslēdzieties uz Jetpack lietotni, lai turpinātu saņemt reāllaika paziņojumus savā ierīcē.tīmekļa saitesTurpiniet bez JetpackVai atvērt saites pakalpojumā Jetpack?urilinksIzskatās, ka jums ir instalēta Jetpack lietotne.\n\nVai vēlaties nākotnē atvērt saites Jetpack lietotnē?\n\nTo vienmēr varat mainīt sadaļā Lietotnes iestatījumi > Atvērt saites Jetpack.Atveriet saites pakalpojumā WordPress
- Pārslēdzieties uz lietotni Jetpack, lai, izmantojot statistiku un ieskatus, vērotu savas vietnes datplūsmas pieaugumu.
- Pārslēdzieties uz lietotni Jetpack, lai atrastu, sekotu un patīk visām savām iecienītākajām vietnēm un ziņām, izmantojot programmu Reader.\nPārslēdzieties uz Jetpack lietotni, lai atrastu, sekotu un skatītu visas iecienītākās vietnes un ziņojumus, izmantojot Lasītāju.
- Saņemiet paziņojumus, izmantojot Jetpack lietotniAtveriet saites pakalpojumā JetpackNevar iespējot atvērtās saites pakalpojumā JetpackNevar atspējot atvērtās saites pakalpojumā Jetpack
- Iegūstiet savu statistiku, izmantojot jauno Jetpack lietotni
- Sekojiet jebkurai vietnei, izmantojot Jetpack lietotniAtvainojiet, bet kaut kas neizdevās kā plānots. Jūsu dati ir drošībā, taču mēs pašlaik nevaram tos pārsūtīt.Lūdzu, sazinieties ar atbalsta dienestu vai vēlāk mēģiniet vēlreiz.Nevar izveidot savienojumu ar internetu.
@@ -741,7 +703,6 @@ Language: lv
Pagājušajā nedēļā jums bija %1$s skatījumi un %2$s atzīmes PatīkPagājušajā nedēļā jums bija %1$s skatījumi un %2$s komentāriProblēma, parādot bloku. \nPiesitiet, lai mēģinātu bloka atkopšanu.
- Jetpack darbināmsAttēls, kas norāda uz kļūduAttēls, kas norāda, ka tiek skenēts pieteikšanās kodsVai mēģināt pieteikties savā tīmekļa pārlūkprogrammā netālu no %1$s?
diff --git a/WordPress/src/main/res/values-night/colors.xml b/WordPress/src/main/res/values-night/colors.xml
index bedc4e367c7a..1c738a835cd1 100644
--- a/WordPress/src/main/res/values-night/colors.xml
+++ b/WordPress/src/main/res/values-night/colors.xml
@@ -12,9 +12,6 @@
@color/gray_100
- @color/jetpack_green_90
- @color/gray_80
- @color/jetpack_green_90@color/jetpack_green_100
diff --git a/WordPress/src/main/res/values-nl/strings.xml b/WordPress/src/main/res/values-nl/strings.xml
index dbebb13c28ba..dcbccf2ec848 100644
--- a/WordPress/src/main/res/values-nl/strings.xml
+++ b/WordPress/src/main/res/values-nl/strings.xml
@@ -944,9 +944,6 @@ Language: nl
Automatisch delen op Twitter is niet langer beschikbaar vanwege wijzigingen van de voorwaarden en prijzen van Twitter.Automatisch delen op Twitter is niet langer beschikbaarSta meldingen toe om op de hoogte te blijven van je site
- De Jetpack app heeft alle functies van de WordPress app, en nu ook exclusieve toegang tot Statistieken, Reader, Meldingen en meer.
- Gebruik WordPress met %s in de Jetpack\u00A0app.
- Gebruik WordPress met %s in de Jetpack\u00A0app.Niet-gelabelde kleur. %sRecente activiteitNet als in het voorbeeld hierboven kunnen mensen met een domein je site vinden en bezoeken vanuit hun webbrowser.
@@ -1001,9 +998,6 @@ Language: nl
Deze site%1$s gebruikt %2$s. Deze ondersteunen nog niet alle functies van de app. Installeer de %3$s.%1$s gebruikt %2$s. Deze ondersteunt nog niet alle functies van de app. Installeer de %3$s.
- Overstappen is gratis en duurt maar een minuut.
- Lees verder op Jetpack.com
- Schakel over naar de Jetpack-appWP AdminBeherenBezoekersaantallen
@@ -1060,12 +1054,6 @@ Language: nl
Ontgrendel de volledige functionaliteit van je site. Krijg Statistieken, Lezer, Meldingen en meer met Jetpack.Je site heeft de Jetpack pluginDe Jetpack mobiele app is ontworpen om samen met de Jetpack plugin te werken. Stap nu over om toegang te krijgen tot Statistieken, Meldingen, Reader en meer.
- Verkrijg meldingen over nieuwe reacties, vind-ik-leuks, weergaven en meer.
- Vind en volg je favoriete sites en community’s, en deel je content.
- Laat het aantal bezoekers van je site groeien via waardevolle inzichten en uitgebreide statistieken.
- Statistieken en inzichten
- Met Jetpack kun je meer doen met je WordPress site. Overstappen is gratis en duurt maar een minuut.
- Geef WordPress een boost met JetpackJe kunt blogmeldingen en -herinneringen te allen tijde beheren via Mijn site > Instellingen > BloggenMeldingen bevatten een woord of korte zin ter inspiratieGa naar <b>Site-instellingen</b> om weer in te schakelen
@@ -1077,15 +1065,6 @@ Language: nl
Meldingen weergevenBloggenInstalleer Google Play Store om de Jetpack-app te downloaden
- Doe dit later
- Overstappen naar Jetpack
- Statistieken, Reader, meldingen en andere functies die door Jetpack aangedreven worden, zijn verwijderd uit de WordPress-app.
- Jetpack functies zijn verplaatst.
- %1$s worden over %2$s verplaatst
- %1$s wordt over %2$s verplaatst
- %1$s worden binnenkort verplaatst
- %1$s wordt binnenkort verplaatst
- Verkrijg de Jetpack appAlle reacties bekijken%1$s minder dan de vorige 7 dagen%1$s meer dan de vorige 7 dagen
@@ -1095,21 +1074,10 @@ Language: nl
Je hebt de afgelopen 7 dagen %1$s meer weergaven gehad dan de vorige 7 dagen.Vorige 7 dagenAfgelopen 7 dagen
- %d weken
- 1 weekVan <b>Day One</b>Herinner mij hier later aan
- Statistieken, Lezer, Meldingen en andere functies worden binnenkort verplaatst naar de mobiele Jetpack-app.Schakel over naar de Jetpack-app
- Lees verder op jetpack.comOverstappen is gratis en duurt maar een minuut.
- Statistieken, Reader, Meldingen en andere functies die door Jetpack aangedreven worden, zullen binnenkort uit de WordPress-app worden verwijderd.
- Statistieken, Reader, Meldingen en andere functies die door Jetpack aangedreven worden op %s uit de WordPress-app worden verwijderd.
- Jetpack functies worden binnenkort verplaatst.
- Meldingen zullen naar Jetpack worden verplaatst
- Reader zal naar de Jetpack app worden verplaatst
- Je statistieken zullen naar de Jetpack app worden verplaatst
- Schakel over naar de nieuwe Jetpack appEr is een fout opgetreden bij het laden van opdrachten.OepsEr zijn nog geen opdrachten
@@ -1135,12 +1103,6 @@ Language: nl
Doorgaan zonder Jetpackweblinksurilinks
- Schakel over naar de Jetpack-app om realtime meldingen te blijven ontvangen op je apparaat.
- Schakel over naar de Jetpack-app om je favoriete sites en berichten te vinden, te volgen en een like te geven met Reader.
- Ga naar de Jetpack app om het verkeer op je site te zien groeien met statistieken en inzichten.
- Verkrijg je meldingen met de Jetpack app
- Sites met de Jetpack app volgen
- Verkrijg je stats met de nieuwe Jetpack appKan links openen in Jetpack niet uitschakelenKan links openen in Jetpack niet inschakelenLinks in Jetpack openen
@@ -1203,7 +1165,6 @@ Language: nl
Vorige week had je %1$s weergaven.Vorige week had je %1$s weergaven, %2$s vind-ik-leuks, en %3$s reacties.⭐️ Je nieuwste bericht %1$s heeft %2$s likes gekregen.
- Door Jetpack aangedrevenAfbeelding met vermelding van scan login code in procesAfbeelding waarop een fout staat weergegevenAuthenticatie mislukt
diff --git a/WordPress/src/main/res/values-pl/strings.xml b/WordPress/src/main/res/values-pl/strings.xml
index 372d05552218..39c4253acd39 100644
--- a/WordPress/src/main/res/values-pl/strings.xml
+++ b/WordPress/src/main/res/values-pl/strings.xml
@@ -944,9 +944,6 @@ Language: pl
Automatyczje udostępnianie na Twitterze nie jest już dostępne z powodu zmian w regulaminie i cenniku Twittera.Automatyczne udostępnianie w Twitterze nie jest już dostępneZezwalaj na powiadomienia, aby być na bieżąco ze swoją witryną
- Aplikacja Jetpack ma wszystkie funkcje aplikacji WordPress, a teraz ma też ekskluzywny dostęp do Statystyk, Czytnika, Powiadomień i nie tylko.
- Użyj WordPressa z %s w aplikacji Jetpack.
- Użyj WordPressa z %s w aplikacji Jetpack.Nieoznakowany kolor. %sOstatnia aktywnośćJak w powyższym przykładzie, domena pozwala ludziom znaleźć i przejść na twoją witrynę z ich przeglądarki internetowej.
@@ -1001,9 +998,6 @@ Language: pl
Ta witryna%1$s używa %2$s, które jeszcze nie obsługują wszystkich funkcji aplikacji. Proszę zainstalować %3$s.%1$s używa %2$s, który nie obsługuje jeszcze wszystkich funkcji aplikacji. Zainstaluj %3$s.
- Zmiana jest bezpłatna i zajmie tylko minutę.
- Dowiedz się więcej na Jetpack.com
- Przejdź na aplikację JetpackWP AdminZarządzajRuch na blogu
@@ -1060,12 +1054,6 @@ Language: pl
Odblokuj pełny potencjał swojej witryny. Zdobądź statystyki, powiadomienia i więcej z Jetpackiem.Twoja witryna ma wtyczkę JetpackAplikacja mobilna Jetpack jest zaprojektowana do współpracy z wtyczką Jetpack. Przełącz się teraz, aby uzyskać dostęp do statystyk, powiadomień, czytnika i nie tylko.
- Otrzymuj powiadomienia o nowych komentarzach, polubieniach, wyświetleniach, i nie tylko.
- Znajdź i obserwuj swoje ulubione witryny i społeczności, a następnie udostępniaj swoje treści.
- Obserwuj, jak rośnie twój ruch dzięki pomocnym wskazówkom i szczegółowym statystykom.
- Statystyki i Wnioski
- Jetpack pozwala ci robić więcej z twoją witryną WordPress. Przełączenie jest darmowe i zajmuje chwilę.
- Daj WordPressowi kopa z JetpackiemMożesz w dowolnym momencie kontrolować monity i przypomnienia dotyczące blogowania w sekcji Moja witryna > Ustawienia > BlogowaniePowiadomienie będzie zawierać słowo lub krótką frazę dla inspiracjiPrzejdź na <b>Ustawienia witryny</b>, żeby włączyć z powrotem
@@ -1077,15 +1065,6 @@ Language: pl
Pokaż monityBlogowanieZainstaluj Google Play Store, żeby pobrać aplikację Jetpack
- Zrób to później
- Przejdź na Jetpack
- Statystyki, Czytnik, Powiadomienia i inne funkcje zasilane przez Jetpack zostały usunięte z aplikacji WordPress.
- Funkcje jetpacka zostały przeniesione.
- %1$s porusza się w %2$s
- %1$s porusza się w %2$s
- %1$s wkrótce się przeniesie
- %1$s wkrótce się przeniesie
- Uzyskaj aplikację JetpackZobacz wszystkie odpowiedzi%1$s niższa niż w ciągu poprzednich 7 dni%1$s wyższa niż w ciągu poprzednich 7 dni
@@ -1095,21 +1074,10 @@ Language: pl
Liczba wyświetleń w ciągu ostatnich 7 dni jest o %1$s wyższa niż w ciągu poprzednich 7 dni.Poprzednie 7 dniOstatnie 7 dni
- %d tygodni
- 1 tydzieńOd <b>Pierwszego Dnia</b>Przypomnij mi później
- Statystyki, Czytnik, Powiadomienia i inne funkcje przejdą wkrótce do aplikacji mobilnej Jetpack.Przejdź na aplikację Jetpack
- Dowiedz się więcej na jetpack.comPrzejście jest darmowe i zajmuje chwilę.
- Statystyki, Czytnik, Powiadomienia i inne funkcje zasilane przez Jetpack zostaną wkrótce usunięte z aplikacji WordPress.
- Statystyki, Czytnik, Powiadomienia i inne funkcje zasilane przez Jetpack zostaną usunięte z aplikacji WordPress dnia %s.
- Funkcje jetpacka wkrótce się przeniosą.
- Powiadomienia przenoszą się do aplikacji Jetpack
- Czytnik przenosi się do aplikacji Jetpack
- Twoje statystyki przenoszą się do aplikacji Jetpack
- Przejdź na aplikację JetpackWystąpił błąd podczas wczytywania monitów.UpsBrak monitów
@@ -1135,12 +1103,6 @@ Language: pl
Kontynuuj bez Jetpackaodnośniki internetoweurilinki
- Przełącz się na aplikację Jetpack, żeby dalej dostawać powiadomienia w czasie rzeczywistym na swoim urządzeniu.
- Przełącz się na aplikację Jetpack, aby używać Czytnika do wyszukiwania, obserwowania i dodawania polubień wszystkich swoich ulubionych stron i wpisów.
- Przełącz się na aplikację Jetpack, aby obserwować jak wzrasta ruch na swojej witrynie dzięki statystykom i szczegółom.
- Otrzymuj powiadomienia dzięki aplikacji Jetpack
- Subskrybuj dowolną witrynę za pomocą aplikacji Jetpack
- Uzyskaj dostęp do statystyk za pomocą nowej aplikacji JetpackNie można wyłączyć otwartych odnośników w JetpackuNie mogę włączyć otwierania odnośników w JetpackuOtwórz odnośniki w Jetpack
@@ -1203,7 +1165,6 @@ Language: pl
W zeszłym tygodniu było %1$s wyświetleń.W zeszłym tygodniu było %1$s wyświetleń %2$s polubień i %3$s komentarzy.⭐️ Twój ostatni wpis %1$s otrzymał %2$s polubień.
- Obsługiwane przez JetpackObrazek wskazujący skanowanie kodu logowania w trakcie procesuObrazek wskazujący na błądNieudane uwierzytelnianie
diff --git a/WordPress/src/main/res/values-pt-rBR/strings.xml b/WordPress/src/main/res/values-pt-rBR/strings.xml
index 14956d0806ba..e1f868f830c2 100644
--- a/WordPress/src/main/res/values-pt-rBR/strings.xml
+++ b/WordPress/src/main/res/values-pt-rBR/strings.xml
@@ -638,9 +638,6 @@ Language: pt_BR
O autocompartilhamento do Twitter não está mais disponível devido a uma mudança nos termos e preços do Twitter.O autocompartilhamento no Twitter não está mais disponívelAtive as notificações para acompanhar a atividade do seu site
- O aplicativo do Jetpack tem todas as funcionalidades do aplicativo do WordPress e agora acesso exclusivo a Estatísticas, Leitor, Notificações e muito mais.
- Use o WordPress com %s no aplicativo do\u00A0Jetpack.
- Use o WordPress com %s no aplicativo do\u00A0Jetpack.Cor não rotulada. %sAtividade recenteComo no exemplo acima, um domínio permite que as pessoas encontrem e visitem seu site usando um navegador.
@@ -695,9 +692,6 @@ Language: pt_BR
Este site%1$s está usando %2$s, que ainda não são compatíveis com todas as funcionalidades do aplicativo. Instale o %3$s.%1$s está usando %2$s, que ainda não é compatível com todas as funcionalidades do aplicativo. Instale o %3$s.
- A mudança é gratuita e leva apenas um minuto.
- Saiba mais em br.jetpack.com
- Mudar para o aplicativo do JetpackPainel WP AdminGerenciarTráfego
@@ -754,12 +748,6 @@ Language: pt_BR
Libere todo o potencial do seu site. Veja estatísticas, notificações e muito mais com o Jetpack.Seu site possui o plugin JetpackO aplicativo Jetpack foi projetado para trabalhar junto ao plugin Jetpack. Mude agora e tenha acesso a estatísticas, notificações, leitor e muito mais.
- Receba notificações sobre novos comentários, curtidas, visualizações, e muito mais.
- Encontre e siga seus sites e comunidades favoritos, e compartilhe seu conteúdo.
- Acompanhe o crescimento de seu site com análises úteis e estatísticas fáceis de entender.
- Estatísticas e informações
- O Jetpack permite que você faça ainda mais com seu site WordPress. A mudança é gratuita e leva apenas um minuto.
- Melhore o WordPress com o JetpackVocê pode controlar as sugestões e os lembretes de publicação a qualquer momento em Meu site > Configurações > BlogA notificação incluirá uma palavra ou uma frase curta, para inspiraçãoVá às <b>configurações do site</b> para reativar as sugestões
@@ -771,15 +759,6 @@ Language: pt_BR
Mostrar sugestõesBlogInstale o Google Play Store para obter o aplicativo Jetpack
- Fazer isso depois
- Mudar para o Jetpack
- Estatísticas, Leitor, Notificações e outras funcionalidades com tecnologia Jetpack foram removidas do aplicativo WordPress.
- Recursos do Jetpack foram movidos.
- %1$s serão movidos em %2$s
- %1$s será movido em %2$s
- %1$s serão movidos em breve
- %1$s será movido em breve
- Obtenha o aplicativo do JetpackVer todas as respostas%1$s menor do que nos sete dias anteriores%1$s maior do que nos sete dias anteriores
@@ -789,21 +768,10 @@ Language: pt_BR
O número de visualizações nos últimos sete dias é %1$s maior do que nos sete dias anteriores.7 dias anterioresÚltimos 7 dias
- %d semanas
- 1 semanaDo <b>Day One</b>Lembre-me depois
- As estatísticas, o Leitor, as notificações e outras funcionalidades em breve irão para o aplicativo móvel do Jetpack.Mudar para o aplicativo do Jetpack
- Saiba mais em br.jetpack.comA migração é gratuita e leva apenas um minuto.
- As estatísticas, o Leitor, as notificações e outras funcionalidades com tecnologia Jetpack serão removidas do aplicativo WordPress em breve.
- As estatísticas, o Leitor, as notificações e outras funcionalidades com tecnologia Jetpack serão removidas do aplicativo WordPress em %s.
- Recursos do Jetpack serão movidos em breve.
- As notificações estão migrando para o aplicativo Jetpack
- O Leitor está migrando para o aplicativo Jetpack
- Suas estatísticas estão migrando para o aplicativo Jetpack
- Mudar para o novo aplicativo do JetpackOcorreu um erro ao carregar as sugestões.OpaNenhuma sugestão ainda
@@ -829,12 +797,6 @@ Language: pt_BR
Continuar sem Jetpackweblinksurilinks
- Mude para o aplicativo Jetpack para continuar recebendo notificações em tempo real no seu dispositivo.
- Mude para o aplicativo Jetpack para encontrar, seguir e curtir todas as suas publicações e sites favoritos com o Leitor.
- Mude para o aplicativo Jetpack para observar o crescimento do tráfego de seu site com estatísticas e informações.
- Receba notificações com o aplicativo Jetpack
- Siga qualquer site com o aplicativo Jetpack
- Acesse suas estatísticas com o novo aplicativo JetpackNão é possível desabilitar links abertos no JetpackNão é possível habilitar links abertos no JetpackAbrir links no Jetpack
@@ -897,7 +859,6 @@ Language: pt_BR
Na semana passada, você recebeu %1$s visualizações.Na semana passada, você recebeu %1$s visualizações, %2$s curtidas e %3$s comentários.⭐️ Seu post mais recente, %1$s, recebeu %2$s curtida.
- Recurso do JetpackImagem indicando que a verificação do código de acesso está em andamentoImagem indicando um erroFalha na autenticação
diff --git a/WordPress/src/main/res/values-ro/strings.xml b/WordPress/src/main/res/values-ro/strings.xml
index 85f2a3d0b010..3113a158abb3 100644
--- a/WordPress/src/main/res/values-ro/strings.xml
+++ b/WordPress/src/main/res/values-ro/strings.xml
@@ -944,9 +944,6 @@ Language: ro
Partajarea automată pe Twitter nu mai este disponibilă deoarece Twitter a făcut modificări la termeni și prețuri.Află mai multePermite ca notificările să continue pe site-ul tău
- Aplicația Jetpack are toate funcționalitățile aplicației WordPress, cu acces exclusiv la Statistici, Cititor, Notificări și altele.
- Folosește WordPress cu %s în aplicația Jetpack.
- Folosește WordPress cu %s în aplicația Jetpack.numelesiteuluitau.comLa fel ca în exemplul de mai sus, un domeniu le permite oamenilor să-ți găsească și să-ți viziteze site-ul din navigatoarele lor web.Activitate recentă
@@ -1001,7 +998,6 @@ Language: ro
Acest site%1$s folosește %2$s, care încă nu suportă toate funcționalitățile aplicației. Te rog instalează %3$s.%1$s folosește %2$s, care încă nu suportă toate funcționalitățile aplicației. Te rog instalează %3$s.
- Comutarea este gratuită și durează numai un minut.Acum, după ce ai instalat Jetpack, trebuie doar să te pregătim pentru inițializare. Nu va dura decât un minut.GataInițializează
@@ -1009,8 +1005,6 @@ Language: ro
TraficAdministreazăAdministrare WP
- Comută la aplicația Jetpack
- Află mai multe la Jetpack.comUrmărești performanța, pornești și oprești Blaze în orice moment.Promovează acest articolPromovează această pagină
@@ -1058,17 +1052,11 @@ Language: ro
Gata pentru a folosi acest site în aplicație.Datele de conectare ale site-ului tău web nu vor fi stocate și sunt folosite numai cu scopul de a instala Jetpack.Deblochează întregul potențial al site-ului tău. Cu Jetpack, ai statistici, notificări și multe altele.
- Urmărești creșterea traficului cu informații generale utile și statistici comprehensive.
- Găsește, urmărește site-urile și comunitățile preferate și partajează conținutul tău.
- Primești notificări pentru comentarii noi, aprecieri, vizualizări și multe altele.Site-ul tău are modulul JetpackAplicația Jetpack pentru mobil este proiectată să funcționeze împreună cu modulul Jetpack. Comută acum pentru a avea acces la statistici, notificări, cititor și multe altele.Îndemnuri pentru publicare ascunseAccesează<b>Setări site</b> pentru a le reactivaNotificarea va include un cuvânt sau o frază scurtă pentru inspirație
- Îmbunătățește WordPress cu Jetpack
- Jetpack îți permite să realizezi mai multe cu site-ul tău WordPress. Este gratuit și instalarea durează numai un minut.
- Statistici și privire generalăPoți controla în orice moment îndemnurile și reamintirile pentru publicare în Site-ul meu > Setări > BloggingArată îndemnurileForumuri pentru comunitate
@@ -1076,17 +1064,7 @@ Language: ro
Primești ajutor de la grupul nostru de voluntari.BloggingReamintiri pentru publicare
- Funcționalitățile Jetpack s-au mutat.
- Statisticile, cititorul, notificările și alte funcționalități propulsate de Jetpack au fost înlăturate din aplicația WordPress.
- Comută la Jetpack
- Fă asta mai târziuTe rog instalează Google Play Store pentru a obține aplicația Jetpack
- %1$s se mută în curând
- %1$s se mută în curând
- %1$s se mută în %2$s
- %1$s se mută în %2$s
- O săptămână
- %d săptămâniUltimele 7 zile7 zile anterioareVizualizările din ultimele 7 zile sunt cu %1$s mai mari decât cele din 7 zile anterioare.
@@ -1096,26 +1074,16 @@ Language: ro
Cu %1$s mai mult decât în ultimele 7 zileCu %1$s mai puțin decât în ultimele 7 zileVezi toate răspunsurile
- Ia aplicația JetpackDe la <b>Day One</b>Comutarea este gratuită și durează numai un minut.
- Află mai multe la jetpack.comComută la aplicația JetpackAmintește-mi mai târziu
- În curând, Statistici, Cititor, Notificări și alte funcționalități se vor muta în aplicația Jetpack pentru mobil.
- În curând, Statistici, Cititor, Notificări și alte funcționalități propulsate de Jetpack vor fi înlăturate din aplicația WordPress.
- Statistici, Cititor, Notificări și alte funcționalități propulsate de Jetpack vor fi înlăturate din aplicația WordPress pe %s.Niciun răspunsUn răspuns%d răspunsuriNiciun îndemn încăHopaA fost o eroare la încărcarea îndemnurilor.
- Comută la noua aplicație Jetpack
- Statisticile se mută în aplicația Jetpack
- Cititorul a fost mutat în aplicația Jetpack
- Notificările au fost mutate în Jetpack
- Funcționalitățile Jetpack se mută în curând.închideÎndemnuri✓ Am răspuns
@@ -1132,18 +1100,12 @@ Language: ro
legături webContinuă fără JetpackDeschizi legăturile în Jetpack?
- Comută la aplicația Jetpack pentru a continua să primești notificări în timp real pe dispozitivul tău.urilinksSe pare că ai aplicația Jetpack instalată.\n\nÎn viitor vrei să deschizi legăturile în aplicația Jetpack?\n\nPoți schimba oricând asta în Setări aplicație > Deschide legăturile în JetpackDeschide legăturile în WordPress
- Comută la aplicația Jetpack pentru a urmări creșterea traficului de pe site cu statistici și priviri generale.
- Comută la aplicația Jetpack pentru a găsi, urmări și aprecia toate site-urile și articolele tale preferate din Cititor.Nu pot activa deschiderea legăturilor în JetpackNu pot dezactiva deschiderea legăturilor în JetpackDeschide legăturile în Jetpack
- Cu aplicația Jetpack, primești notificări
- Cu aplicația Jetpack, poți să urmărești orice site
- Cu aplicația Jetpack, îți vezi statisticileNu mă pot conecta la internet.Ne pare rău, dar ceva nu a mers conform planului. Datele tale sunt în siguranță, dar nu le putem transfera momentan.Te rog contactează suportul sau încearcă din nou mai târziu.
@@ -1203,7 +1165,6 @@ Language: ro
Săptămâna trecută ai avut %1$s de vizualizări.Săptămâna trecută ai avut %1$s de vizualizări, %2$s aprecieri și %3$s comentarii.⭐️ Ultimul tău articol %1$s a avut %2$s aprecieri.
- Propulsat de JetpackImagine care indică o eroareImagine care indică scanarea în desfășurare a codului de autentificarePentru a scana codurile de autentificare, ai nevoie de o conexiune activă la internet
diff --git a/WordPress/src/main/res/values-ru/strings.xml b/WordPress/src/main/res/values-ru/strings.xml
index ecefb190b4fb..a1e25ba491b3 100644
--- a/WordPress/src/main/res/values-ru/strings.xml
+++ b/WordPress/src/main/res/values-ru/strings.xml
@@ -944,9 +944,6 @@ Language: ru
Автоматическая публикация в Twitter больше не доступна из-за изменения условий использования и цен Twitter.Автоматическая публикация в Twitter больше не доступнаРазрешите уведомления, чтобы быть в курсе событий на сайте
- Приложение Jetpack обладает всеми возможностями приложения WordPress, а теперь и исключительным доступом к статистике, «Чтиву», уведомлениям и другим функциям.
- Используйте WordPress с %s в приложении Jetpack.
- Используйте WordPress с %s в приложении Jetpack.Цвет без ярлыка. %sНедавние действияЗная домен, пользователи могут найти сайт с помощью браузера, как в примере выше.
@@ -1001,9 +998,6 @@ Language: ru
Этот сайтНа %1$s используется плагин %2$s, который пока поддерживает не все функции приложения. Установите %3$s.На %1$s используется плагин %2$s, который пока поддерживает не все функции приложения. Установите %3$s.
- Переход бесплатен и занимает всего минуту.
- Дополнительные сведения см. на Jetpack.com
- Перейти в новое приложение JetpackКонсольУправлениеПосещаемость
@@ -1060,12 +1054,6 @@ Language: ru
Используйте возможности сайта максимально эффективно. Установите Jetpack и получите доступ к статистике, уведомлениям и другим функциям.На вашем сайте есть плагин Jetpack.Мобильное приложение Jetpack создано работать в паре с плагином Jetpack. Перейдите в приложение, чтобы использовать статистику, уведомления, Чтиво и другие возможности.
- Получайте уведомления о новых комментариях, отметках «Нравится», просмотрах и других событиях.
- Находите интересные сайты и сообщества и подписывайтесь на них, а также публикуйте своё содержимое.
- Увеличивайте посещаемость с помощью полезной статистики и аналитики.
- Статистика и обзор
- Jetpack открывает дополнительные возможности для сайтов WordPress. Переход бесплатен и занимает всего минуту.
- Расширьте возможности WordPress с помощью JetpackНастроить подсказки по ведению блога и напоминания можно в любое время в разделе Мой сайт > Настройки > Ведение блога.Напоминание будет содержать слово или короткую вдохновляющую фразуПерейдите в <b>настройки сайта</b>, чтобы снова включить
@@ -1077,15 +1065,6 @@ Language: ru
Показать подсказкиВедение блогаПожалуйста, установите Google Play Store, чтобы получить приложение Jetpack
- Позже
- Перейти на Jetpack
- Статистика, Чтиво, Уведомления и другие функции Jetpack удалены из приложения WordPress.
- Возможности Jetpack переехали.
- %1$s переедут через %2$s
- %1$s переедет через %2$s
- %1$s скоро переедут
- %1$s скоро переедет
- Получить приложение JetpackПоказать все ответыНа %1$s меньше, чем в предыдущие 7 днейНа %1$s больше, чем в предыдущие 7 дней
@@ -1095,21 +1074,10 @@ Language: ru
Просмотров за последние 7 дней на %1$s больше, чем в предыдущие.Предыдущие 7 днейПоследние 7 дней
- %d нед.
- 1 неделяОт <b>В Первый День</b>Напомнить мне позже
- Статистика, Чтиво, Уведомления и другие функции скоро переедут в мобильное приложение Jetpack.Перейти в новое приложение Jetpack
- Узнайте больше на Jetpack.comПереход бесплатен и займет всего минуту.
- Статистика, Чтиво, Уведомления и другие функции Jetpack скоро будут удалены из приложения WordPress.
- Статистика, Чтиво, Уведомления и другие функции Jetpack скоро будут удалены из приложения WordPress %s.
- Возможности Jetpack скоро переедут.
- Уведомления переезжают в Jetpack
- Чтиво переезжает в приложение Jetpack
- Статистика переезжает в приложение Jetpack
- Перейти в новое приложение JetpackПри загрузке подсказок возникла ошибка.Ой!Пока нет подсказок
@@ -1135,12 +1103,6 @@ Language: ru
Продолжить без Jetpackвеб-ссылкиURI-ссылки
- Перейдите в приложение Jetpack, чтобы получать на устройство уведомления в реальном времени.
- Перейдите в приложение Jetpack, чтобы найти, подписаться и поставить отметки «Нравится» любимым сайтам и записям в Чтиве.
- Перейдите в приложение Jetpack, чтобы следить за ростом посещаемости в разделах «Статистика» и «Обзор».
- Получайте уведомления в приложении Jetpack
- Подпишитесь на любые сайты в приложении Jetpack
- Просматривайте статистику в новом приложении JetpackНе удалось отключить открытие ссылок в JetpackНе удалось включить открытие ссылок в JetpackОткрывать ссылки в Jetpack
@@ -1203,7 +1165,6 @@ Language: ru
Просмотров сайта за последнюю неделю — %1$s.За последнюю неделю: просмотров сайта — %1$s, отметок «Нравится» —%2$s, комментариев — %3$s.⭐️ На последней записи %1$s %2$s отметка «Нравится».
- Работает с JetpackИзображение процедуры сканирования кода для входаИзображение ошибкиСбой аутентификации
diff --git a/WordPress/src/main/res/values-sq/strings.xml b/WordPress/src/main/res/values-sq/strings.xml
index b49a5db682a7..999f1ded80d7 100644
--- a/WordPress/src/main/res/values-sq/strings.xml
+++ b/WordPress/src/main/res/values-sq/strings.xml
@@ -837,9 +837,6 @@ Language: sq_AL
Ndarja e automatizuar me të tjerë që nga Twitter s’mund të përdoret më, për shkak ndryshimesh në kushte dhe çmim nga ana e Twitter-it.Ndarja e automatizuar me të tjerë që nga Twitter s’mund të përdoret mëLejoni njoftime, që të jeni në dijeni se ç’ndodh në sajtin tuaj
- Aplikacioni Jetpack ka krejt anët e aplikacionit WordPress dhe tanimë edhe hyrje përjashtimore te Statistika, Lexues, Njoftime, etj.
- Përdorni WordPress-in me %s në Jetpack\u00A0app.
- Përdorni WordPress-in me %s në Jetpack\u00A0app.Ngjyrë pa etiketë. %sVeprimtari së fundiNë ngjashmëri me shembullin më sipër, një përkatësi u lejon njerëzve të gjejnë dhe vizitojnë sajtin tuaj që nga shfletuesi.
@@ -894,9 +891,6 @@ Language: sq_AL
Këtë sajt%1$s po përdor %2$s, të cilat nuk i mbulojnë ende krejt veçoritë e aplikacionit. Ju lutemi, instaloni %3$s.%1$s po përdor %2$s, i cili nuk i mbulon ende krejt veçoritë e aplikacionit. Ju lutemi, instaloni %3$s.
- Kalimi është falas dhe do vetëm një minutë.
- Mësoni më tepër, te Jetpack.com
- Kaloni te aplikacioni JetpackPërgjegjës WP-jeAdministrojiniTrafik
@@ -952,12 +946,6 @@ Language: sq_AL
Çlironi potencialin e plotë të sajtit tuaj. Merrni statistika, njoftime, etj, me Jetpack-un.Sajti juaj e ka shtojcën JetpackAplikacioni Jetpack për celular është menduar të punojë tok me shtojcën Jetpack. Kaloni që tani në të, që të mund të përdorni statistikat, njoftimet, lexuesin, etj.
- Merrni njoftime për komente, pëlqime, parje të reja, etj.
- Gjeni dhe ndiqni sajtet dhe bashkësitë tuaja të parapëlqyera dhe ndani me të tjerë lëndën tuaj.
- Shiheni si rritet trafiku juaj, me prirje të dobishme dhe statistika të plota.
- Statistika & Tendenca
- Jetpack-u ju lejon të bëni më tepër gjëra me sajtin tuaj WordPress. Kalimi është falas dhe do vetëm një minutë.
- Jepini WordPress-it një përforcim me Jetpack-unCytjet dhe Kujtuesit për Blogim mund t’i kontrolloni në çfarëdo kohe që nga Sajti Im > Rregullime > BlogimNjoftimi do të përfshijë një fjalë, ose togfjalësh të shkurtër, për frymëzimQë ta riaktivizoni, vizitoni <b>Rregullime Sajti</b>
@@ -969,15 +957,6 @@ Language: sq_AL
Shfaq cytjeBlogimQë të merrni aplikacionin Jetpack, ju lutemi, instaloni Google Play Store
- Bëjeni më vonë
- Kalo te Jetpack
- Statistikat, Lexuesi, Njoftimet dhe të tjera veçorit të fuqishme të Jetpack-ut janë hequr nga aplikacioni WordPress.
- Veçori të Jetpack-ut janë lëvizur.
- %1$s po kalohet në %2$s
- %1$s po kalohet në %2$s
- Së shpejti %1$s do të lëvizen
- Së shpejti %1$s do të lëvizet
- Merrni aplikacionin JetpackShihni krejt përgjigjet%1$s më poshtë se 7 ditët e mëparshme%1$s më sipër se 7 ditët e mëparshme
@@ -987,21 +966,10 @@ Language: sq_AL
Parjet tuaja gjatë 7 ditëve të fundit janë %1$s më lart se ato të 7 ditëve të kaluara.7 ditët e mëparshme7 ditët e fundit
- %d javë
- 1 javëNga <b>Dita e Parë</b>Kujtoma më vonë
- Statistikat, Lexuesi, Njoftimet dhe të tjera veçorit të Jetpack-ut së shpejti do të kalohen te aplikacioni Jetpack për celular.Kaloni te aplikacioni Jetpack
- Mësoni më tepër, te jetpack.comKalimi është falas dhe do vetëm një minutë.
- Statistikat, Lexuesi, Njoftimet dhe të tjera veçorit të fuqishme të Jetpack-ut do të hiqen së shpejti nga aplikacioni WordPress.
- Statistikat, Lexuesi, Njoftimet dhe të tjera veçorit të fuqishme të Jetpack-ut do të hiqen nga aplikacioni WordPress në %s.
- Veçoritë Jetpack së shpejti do të shpërngulen.
- Njoftimet po kalojnë te aplikacioni Jetpack
- Lexuesi po kalohet te aplikacioni Jetpack
- Statistikat tuaja po kalojnë te aplikacioni Jetpack
- Kaloni në aplikacionin e ri JetpackPati një gabim në ngarkim cytjesh.HëmEnde pa cytje
@@ -1027,12 +995,6 @@ Language: sq_AL
Vazhdo pa Jetpack-unlidhje weblidhje URI
- Që të vazhdoni të merrni në pajisjen tuaj njoftime të atypëratyshme, kaloni te aplikacioni Jetpack.
- Që të gjeni, ndiqni dhe pëlqeni krejt sajtet dhe postimet tuaj të parapëlqyer me Lexuesin, kaloni te aplikacioni Jetpack.
- Që të shihni shtim trafiku në sajtin tuaj, përmes statistikash dhe prirjesh, kaloni te aplikacioni Jetpack.
- Merrini njoftimet tuaja me aplikacionin Jetpack
- Ndiqni çfarëdo sajti, me aplikacionin Jetpack
- Merrni statistikat tuaja duke përdorur aplikacionin e ri JetpackS’arrihet të çaktivizohet hapje lidhjesh në JetpackS’arrihet të aktivizohet hapje lidhjesh në JetpackLidhjet hapi në Jetpack
@@ -1095,7 +1057,6 @@ Language: sq_AL
Javën e kaluar patët %1$s parje.Javën e kaluar patët %1$s parje, %2$s pëlqime dhe %3$s komente.⭐️ Postimi juaj më i ri %1$s ka marrë %2$s pëlqime.
- Bazuar në JetpackFigurë që tregon skanim kodi hyrjeje në punë e sipërFigurë që tregon një gabimMirëfilltësimi Dështoi
diff --git a/WordPress/src/main/res/values-sr/strings.xml b/WordPress/src/main/res/values-sr/strings.xml
index f8f83f5c4836..b0a7b0533965 100644
--- a/WordPress/src/main/res/values-sr/strings.xml
+++ b/WordPress/src/main/res/values-sr/strings.xml
@@ -56,12 +56,9 @@ Language: sr_RS
Искључи обавештењаФоруми заједницеПрикажи обавештења
- Уради ово каснијеВиди све одговореПоследњих 7 данаПретходних 7 дана
- %d седмица
- 1 седмицаПодсети ме каснијеУпсНадређена страна
diff --git a/WordPress/src/main/res/values-sv/strings.xml b/WordPress/src/main/res/values-sv/strings.xml
index efd136d9a75a..07bb995db0f4 100644
--- a/WordPress/src/main/res/values-sv/strings.xml
+++ b/WordPress/src/main/res/values-sv/strings.xml
@@ -944,9 +944,6 @@ Language: sv_SE
Automatisk delning på Twitter är inte längre tillgängligt på grund av Twitters ändringar i villkor och pris.Automatisk delning på Twitter är inte längre tillgängligtTillåt aviseringar för att hålla koll på din webbplats
- Jetpack-appen har alla WordPress-appens funktionalitet och nu exklusiv åtkomst till statistik, Läsare, aviseringar och mer.
- Använd WordPress med %s i Jetpack-appen.
- Använd WordPress med %s i Jetpack-appen.Omärkt färg. %sSenaste aktivitetPrecis som i exemplet ovan så låter en domän människor hitta och besöka din webbplats från sina webbläsare.
@@ -1001,9 +998,6 @@ Language: sv_SE
Denna webbplats%1$sanvänder %2$s, som inte stöder alla funktioner i appen än. Installera %3$s.%1$s använder %2$s, som inte stöder alla funktioner i appen än. Installera %3$s.
- Att byta är gratis och tar bara en minut.
- Lär dig mer på Jetpack.com
- Byt till Jetpack-appenWP-AdminpanelHanteraTrafik
@@ -1060,12 +1054,6 @@ Language: sv_SE
Lås upp din webbplats fulla potential. Få statistik, aviseringar och mer med Jetpack.Din webbplats har Jetpack-tilläggetJetpacks mobilapp är designad för att fungera tillsammans med tillägget Jetpack. Byt nu för att få åtkomst till statistik, aviseringar, läsare och mer.
- Få aviseringar för nya kommentarer, gilla-markeringar, visningar och mer.
- Hitta och följ dina favoritwebbplatser och -communities samt dela ditt innehåll.
- Se din trafik öka med användbara insikter och omfattande statistik.
- Statistik och insikter
- Med Jetpack kan du göra mer med din WordPress-webbplats. Att byta är gratis och tar bara en minut.
- Förbättra WordPress med JetpackDu kan kontrollera bloggningsförslag och påminnelser när som helst i Min webbplats > Inställningar > BloggandeAviseringen kommer att innehålla ett ord eller en kort fras för inspirationGå till <b>Webbplatsinställningar</b> för att aktivera igen
@@ -1077,15 +1065,6 @@ Language: sv_SE
Visa förslagBloggandeInstallera Google Play Store för att hämta Jetpack-appen
- Gör detta senare
- Byt till Jetpack
- Statistik, läsare, aviseringar och andra Jetpack-drivna funktioner har tagits bort från WordPress-appen.
- Jetpack-funktioner har flyttat.
- %1$s flyttar om %2$s
- %1$s flyttar om %2$s
- %1$s flyttar snart
- %1$s flyttar snart
- Skaffa Jetpack-appenVisa alla svar%1$s lägre än under de föregående 7 dagarna%1$s högre än under de föregående 7 dagarna
@@ -1095,21 +1074,10 @@ Language: sv_SE
Antalet visningar under de senaste 7 dagarna är %1$s högre än under de föregående 7 dagarna.De föregående 7 dagarnaSenaste 7 dagarna
- %d veckor
- 1 veckaFrån <b>Day One</b>Påminn mig senare
- Statistik, läsare, aviseringar och andra funktioner kommer snart att flyttas till Jetpacks mobilapp.Byt till Jetpack-appen
- Läs mer på jetpack.comBytet är gratis och tar bara en minut.
- Statistik, läsare, aviseringar och andra Jetpack-drivna funktioner kommer snart att tas bort från WordPress-appen.
- Statistik, läsare, aviseringar och andra Jetpack-drivna funktioner kommer att tas bort från WordPress-appen den %s.
- Jetpack-funktioner flyttas snart.
- Aviseringar flyttar till Jetpack
- Läsaren flyttar till Jetpack-appen
- Din statistik flyttas till Jetpack-appen
- Byt till den nya Jetpack-appenDet var ett problem att ladda in förslag.HoppsanInga förslag än
@@ -1135,12 +1103,6 @@ Language: sv_SE
Fortsätt utan Jetpackweblinksurilinks
- Byt till Jetpack-appen för att fortsätta ta emot aviseringar i realtid på din enhet.
- Byt till Jetpack-appen för att hitta, följa och gilla alla dina favoritwebbplatser och inlägg med läsare.
- Byt till Jetpack-appen för att se insikter och statistik över hur webbplatsens trafik ökar.
- Få dina aviseringar med Jetpack-appen
- Följ vilken webbplats som helst med Jetpack-appen
- Få din statistik med den nya Jetpack-appenDet gick inte att inaktivera öppning av länkar i JetpackDet gick inte att aktivera öppning av länkar i JetpackÖppna länkar i Jetpack
@@ -1203,7 +1165,6 @@ Language: sv_SE
Förra veckan hade du %1$s visningar.Förra veckan hade du %1$s visningar, %2$s gillamarkeringar och %3$s kommentarer.⭐️ Ditt senaste inlägg %1$s har fått %2$s gillamarkering.
- Drivs med JetpackBild som indikerar att avläsning av inloggningskod pågårBild som indikerar ett felAutentiseringen misslyckades
diff --git a/WordPress/src/main/res/values-tr/strings.xml b/WordPress/src/main/res/values-tr/strings.xml
index a720c2203ff1..6b3b5bcec4f3 100644
--- a/WordPress/src/main/res/values-tr/strings.xml
+++ b/WordPress/src/main/res/values-tr/strings.xml
@@ -944,9 +944,6 @@ Language: tr
X otomatik paylaşım özelliği, X hüküm ve koşulları ile fiyatlandırma değişiklikleri nedeniyle artık kullanılmıyor.X otomatik paylaşım özelliği artık kullanılamıyorSitenizle ilgili bilgileri almak için bildirimlere izin verin
- Jetpack uygulamasının, WordPress uygulamasının tüm işlevleri ile istatistiklere, okuyucuya, bildirimlere ve diğer özelliklere özel erişimi vardır.
- Jetpack\u00A0uygulamasından WordPress %s kullanın.
- Jetpack\u00A0uygulamasından WordPress %s kullanın.Etiketsiz renk. %sSon etkinlikYukarıdaki örnekte olduğu gibi, bir etki alanı, kişilerin sitenizi bir tarayıcı üzerinden bulmasını ve ziyaret etmesini sağlar.
@@ -1001,9 +998,6 @@ Language: tr
Bu site%1$s, henüz uygulamanın tüm özelliklerini desteklemeyen %2$s kullanıyor. Lütfen %3$s kurun.%1$s, henüz uygulamanın tüm özelliklerini desteklemeyen %2$s kullanıyor. Lütfen %3$s kurun.
- Geçiş ücretsizdir ve yalnızca bir dakika sürer.
- Jetpack.com üzerinden ayrıntılı bilgi alın
- Jetpack uygulamasına geçiş yapınPanoYönetTrafik
@@ -1060,12 +1054,6 @@ Language: tr
Sitenizin tüm potansiyelini ortaya çıkarın. Jetpack ile istatistikler, bildirimler ve daha fazlasını elde edin.Sitenizde Jetpack eklentisi varJetpack mobil uygulaması, Jetpack eklentisi ile birlikte çalışacak şekilde tasarlanmıştır. İstatistikler, okuyucu, bildirimler ve daha fazlasına erişmek için şimdi geçiş yapın.
- Yeni yorumlar, beğeniler, görüntülemeler ve diğerleri için bildirim alın.
- Beğendiğiniz siteleri ve toplulukları bulup takip edin ve içeriğinizi paylaşın.
- Yararlı bilgiler ve kapsamlı istatistiklerle trafiğinizin büyümesini izleyin.
- İstatistikler ve yönelimler
- Jetpack, WordPress sitenizle daha fazlasını yapmanızı sağlar. Geçiş ücretsizdir ve yalnızca bir dakika sürer.
- Jetpack ile WordPress\'e destek verinBlog istemlerini ve hatırlatıcılarını istediğiniz zaman Sitem > Ayarlar > Blog yazma bölümünden ayarlayabilirsinizBildirimde, ilham almak için bir sözcük veya kısa bir ifade bulunurYeniden açmak için <b>Site ayarları</b> bölümüne gidin
@@ -1077,15 +1065,6 @@ Language: tr
İstemleri görüntüleBlog yazmaJetpack uygulamasını almak için Google Play mağazasını kurun
- Bunu daha sonra yap
- Jetpack kullanmaya geç
- İstatistikler, Okuyucu, Bildirimler ve Jetpack destekli diğer özellikler, yakında WordPress uygulamasından kaldırıldı.
- Jetpack özellikleri taşındı.
- %1$s %2$s içinde taşınıyor
- %1$s %2$s içinde taşınıyor
- %1$s yakında taşınıyor
- %1$s yakında taşınıyor
- Jetpack uygulamasını edininTüm yanıtları görüntüleSon 7 güne göre %1$s daha düşükSon 7 güne göre %1$s daha yüksek
@@ -1095,21 +1074,10 @@ Language: tr
Son 7 gündeki görüntülemeleriniz, önceki 7 güne göre %1$s daha yüksek.Önceki 7 günSon 7 gün
- %d hafta
- 1 hafta<b>Birinci günden</b>Daha sonra hatırlat
- İstatistikler, Okuyucu, Bildirimler ve diğer özellikler yakında Jetpack mobil uygulamasına taşınacak.Jetpack uygulamasına geçin
- Jetpack.com üzerinden ayrıntılı bilgi alınGeçiş ücretsizdir ve yalnızca bir dakika sürer.
- İstatistikler, Okuyucu, Bildirimler ve Jetpack destekli diğer özellikler, yakında WordPress uygulamasından kaldırılacak.
- İstatistikler, Okuyucu, Bildirimler ve Jetpack destekli diğer özellikler, %s tarihinde WordPress uygulamasından kaldırılacak.
- Jetpack özellikleri yakında taşınıyor.
- Bildirimler Jetpack uygulamasına taşınıyor
- Okuyucu, Jetpack uygulamasına taşınıyor
- İstatistikleriniz Jetpack uygulamasına taşınıyor
- Yeni Jetpack uygulamasına geçiş yapınİstemler yüklenirken bir sorun çıktı.EyvahHenüz bir istem yok
@@ -1135,12 +1103,6 @@ Language: tr
Jetpack kullanmadan ilerleweblinksurilinks
- Aygıtınızda gerçek zamanlı bildirimler almayı sürdürmek için Jetpack uygulamasına geçin.
- Okuyucu ile tüm beğendiğiniz siteleri ve yazıları bulmak, takip etmek ve beğenmek için Jetpack uygulamasına geçin.
- İstatistikler ve bilgilerle sitenizin trafiğinin büyümesini izlemek için Jetpack uygulamasına geçin.
- Bildirimlerinizi Jetpack uygulamasıyla alın
- Jetpack uygulamasıyla istediğiniz siteyi takip edin
- Yeni Jetpack uygulamasını kullanarak istatistiklerinizi alınBağlantıları Jetpack ile açma özelliği kapatılamadıBağlantıları Jetpack ile açma özelliği açılamadıBağlantıları Jetpack ile aç
@@ -1203,7 +1165,6 @@ Language: tr
Geçen hafta %1$s görüntüleme aldınız.Geçen hafta %1$s görüntüleme, %2$s beğeni ve %3$s yorum aldınız.⭐️ Son yazınız (%1$s) %2$s beğeni aldı.
- Jetpack destekliİşlem sırasında tarama oturum açma kodunu gösteren görselBir sorunu gösteren görselKimlik doğrulanamadı
diff --git a/WordPress/src/main/res/values-zh-rCN/strings.xml b/WordPress/src/main/res/values-zh-rCN/strings.xml
index 80fc4083fd95..857f3945155a 100644
--- a/WordPress/src/main/res/values-zh-rCN/strings.xml
+++ b/WordPress/src/main/res/values-zh-rCN/strings.xml
@@ -939,9 +939,6 @@ Language: zh_CN
由于 Twitter 更改了条款和定价,Twitter 自动共享功能已无法使用。Twitter 自动分享功能已无法使用允许通知,持续关注您的站点
- Jetpack 应用拥有 WordPress 应用的所有功能,现在可以独家访问统计信息、阅读器、通知等功能。
- 在 Jetpack\u00A0应用中结合使用 WordPress 和 %s。
- 在 Jetpack\u00A0应用中结合使用 WordPress 和 %s。未标记的颜色 %s近期的动态如以上示例所示,域名允许访客从其 Web 浏览器查找和访问您的站点。
@@ -996,9 +993,6 @@ Language: zh_CN
此站点%1$s 使用 %2$s,尚不支持该应用程序的全部功能。 请安装 %3$s。%1$s 使用 %2$s,尚不支持该应用程序的全部功能。 请安装 %3$s。
- 切换免费,只需一会儿。
- 请访问 Jetpack.com 了解详情
- 切换到 Jetpack 应用程序WP 管理管理流量
@@ -1055,12 +1049,6 @@ Language: zh_CN
释放站点的全部潜力。 通过 Jetpack,获取统计信息、通知和更多功能。您的站点已安装 Jetpack 插件Jetpack 移动应用程序旨在与 Jetpack 插件配合使用。 立即切换,访问统计信息、通知、阅读器以及更多功能。
- 接收有关新评论、点赞、查看等内容的通知。
- 查找并关注您喜欢的站点和社区,并分享您的内容。
- 借助有用的数据分析和全面的统计信息,观察您的流量增长情况。
- 统计信息与数据分析
- 有了 Jetpack,您可以通过自己的 WordPress 站点做更多事情。 切换免费,只需一会儿。
- 借助Jetpack,进一步提升 WordPress 体验您随时可以访问“我的站点”>“设置”>“博客”,控制博客提示和提醒。通知会包括可提供灵感的单词或短语访问<b>站点设置</b>以重新打开
@@ -1072,15 +1060,6 @@ Language: zh_CN
显示提示撰写博客请安装 Google Play 商店获取 Jetpack 应用程序
- 以后再说
- 切换至 Jetpack
- 统计信息、阅读器、通知和其他由 Jetpack 提供支持的功能已从 WordPress 应用程序上删除。
- Jetpack 功能已移动。
- %1$s 将在 %2$s后移动
- %1$s 将在 %2$s后移动
- %1$s 即将移动
- %1$s 即将移动
- 获取 Jetpack 应用程序查看所有回复比上一个 7 天低 %1$s比上一个 7 天高 %1$s
@@ -1090,21 +1069,10 @@ Language: zh_CN
您过去 7 天的查看数比上一个 7 天高 %1$s。上一个 7 天过去 7 天
- %d 周
- 1 周来自 <b>Day One</b>稍后提醒我
- 统计信息、阅读器、通知和其他功能即将移至 Jetpack 移动应用。切换到 Jetpack 应用
- 请访问 jetpack.com 以了解详情切换免费,只需一会儿。
- 统计信息、阅读器、通知和其他 Jetpack 提供的功能即将从 WordPress 应用上删除。
- 统计信息、阅读器、通知和其他 Jetpack 提供的功能将于 %s从 WordPress 应用上删除。
- Jetpack 功能即将移动。
- 通知即将移至 Jetpack
- 阅读器即将移至 Jetpack 应用
- 统计信息即将移至 Jetpack 应用
- 切换到新版 Jetpack 应用加载提示时出错。糟糕尚无提示
@@ -1130,12 +1098,6 @@ Language: zh_CN
继续,不使用 Jetpack网络链接URI 链接
- 切换到 Jetpack 应用,以在设备上接收 实时通知。
- 切换到 Jetpack 应用,使用阅读器来查找、关注和点赞所有您喜欢的站点和文章。
- 切换到 Jetpack 应用,通过统计数据和数据分析查看站点的流量增长情况。
- 使用 Jetpack 应用获取通知
- 借助 Jetpack 应用以关注任何站点状况
- 使用新版 Jetpack 应用获取统计数据无法禁用在 Jetpack 中打开链接无法启用在 Jetpack 中打开链接在 Jetpack 中打开链接
@@ -1198,7 +1160,6 @@ Language: zh_CN
上周共计 %1$s 次查看。上周共计 %1$s 次查看、%2$s 个赞和 %3$s 条评论。⭐️ 您的最新文章 %1$s 收到了 %2$s 个赞。
- 由 Jetpack 提供支持图片显示正在扫描登录代码图片指示错误验证失败
diff --git a/WordPress/src/main/res/values-zh-rHK/strings.xml b/WordPress/src/main/res/values-zh-rHK/strings.xml
index 84c9c548dd71..4db765774f1c 100644
--- a/WordPress/src/main/res/values-zh-rHK/strings.xml
+++ b/WordPress/src/main/res/values-zh-rHK/strings.xml
@@ -934,9 +934,6 @@ Language: zh_TW
由於 Twitter 變更條款和定價,Twitter 自動分享功能已無法使用。Twitter 自動分享功能已無法使用允許通知以掌握你的網站動態
- Jetpack 應用程式具備 WordPress 應用程式所有功能,現在還可獨家使用統計資料、閱讀器、通知等功能。
- 在 Jetpack\u00A0應用程式中使用 WordPress 和 %s。
- 在 Jetpack\u00A0應用程式中使用 WordPress 和 %s。未標記的顏色。 %s最近活動如同上方範例,網域可讓使用者從網頁瀏覽器找到並造訪你的網站。
@@ -991,9 +988,6 @@ Language: zh_TW
本網站%1$s 正在使用 %2$s,目前尚未支援應用程式的所有功能。 Please install the %3$s.%1$s 正在使用 %2$s,目前尚未支援應用程式的所有功能。 Please install the %3$s.
- 切換完全免費,只要 1 分鐘就能完成。
- 前往 jetpack.com 深入瞭解
- 切換至 Jetpack 應用程式WP 管理員管理流量
@@ -1050,12 +1044,6 @@ Language: zh_TW
充分發揮網站的潛能。 透過 Jetpack 取得統計資料、通知等。你的網站已安裝 Jetpack 外掛程式Jetpack 行動應用程式設計為可搭配 Jetpack 外掛程式運作。 立即切換以取得統計資料、通知、閱讀器等功能。
- 接收新留言、按讚、瀏覽次數等內容的通知。
- 尋找並追蹤你喜愛的網站和社群,並分享你的內容。
- 取得實用洞察報告和全面的統計資料,帶你見證流量成長。
- 統計資料和洞察報告
- Jetpack 讓你更充分發揮 WordPress 網站潛能。 切換完全免費,只要 1 分鐘就能完成。
- 透過 Jetpack 提升 WordPress 成效你可以隨時前往「我的網站」>「設定」>「撰寫網誌」控制網誌提示和提醒通知會包含可啟發靈感的字詞或短語前往「<b>網站設定</b>」以重新啟用
@@ -1067,15 +1055,6 @@ Language: zh_TW
顯示提示撰寫網誌請安裝 Google Play 商店以取得 Jetpack 應用程式
- 稍後進行
- 切換至 Jetpack
- WordPress 應用程式已移除「統計資料」、「閱讀器」、「通知」和其他 Jetpack 提供的功能。
- Jetpack 功能已經搬遷。
- %1$s 即將於 %2$s後搬遷
- %1$s 即將於 %2$s後搬遷
- %1$s 即將搬遷
- %1$s 即將搬遷
- 取得 Jetpack 應用程式檢視所有回應較先前 7 天低 %1$s較先前 7 天高 %1$s
@@ -1085,21 +1064,10 @@ Language: zh_TW
你在過去 7 天內的檢視數比更早之前 7 天的檢視數高 %1$s。更早之前 7 天過去 7 天
- %d 週
- 1 週來自 <b>Day One</b>稍後再提醒我
- 「統計資料」、「閱讀器」、「通知」及其他功能即將搬遷至 Jetpack 行動應用程式。切換至 Jetpack 應用程式
- 前往 jetpack.com 深入瞭解切換完全免費,只要 1 分鐘就能完成。
- WordPress 應用程式即將移除「統計資料」、「閱讀器」、「通知」和 Jetpack 提供的其他功能。
- WordPress 應用程式將於 %s 移除「統計資料」、「閱讀器」、「通知」和 Jetpack 提供的其他功能。
- Jetpack 功能即將搬遷了。
- 「通知」將轉移至 Jetpack 應用程式
- 「閱讀器」將轉移至 Jetpack 應用程式
- 你的統計資料將轉移至 Jetpack 應用程式
- 切換至全新 Jetpack 應用程式載入提示時發生錯誤。糟糕尚無提示
@@ -1125,12 +1093,6 @@ Language: zh_TW
繼續但不使用 Jetpack網頁連結URI 連結
- 切換至 Jetpack 應用程式,以便繼續 在你的裝置上接收即時通知。
- 切換至 Jetpack 應用程式,以便透過閱讀器搜尋、追蹤並按讚所有喜愛的網站及文章。
- 切換至 Jetpack 應用程式,以便透過統計資料和洞察報告,查看網站流量成長。
- 透過 Jetpack 應用程式接收通知
- 透過 Jetpack 應用程式追蹤任何網站
- 使用全新 Jetpack 應用程式取得統計資料無法停用在 Jetpack 中開啟連結無法啟用在 Jetpack 中開啟連結在 Jetpack 中開啟連結
@@ -1193,7 +1155,6 @@ Language: zh_TW
上週你有 %1$s 個瀏覽次數。上週你有 %1$s 個瀏覽次數、%2$s 個讚和 %3$s 個留言。⭐️ 你的最新文章 %1$s 已獲得 %2$s 個讚。
- 採用 Jetpack 技術圖片表示正在掃描登入碼圖片表示錯誤驗證失敗
diff --git a/WordPress/src/main/res/values-zh-rTW/strings.xml b/WordPress/src/main/res/values-zh-rTW/strings.xml
index 84c9c548dd71..4db765774f1c 100644
--- a/WordPress/src/main/res/values-zh-rTW/strings.xml
+++ b/WordPress/src/main/res/values-zh-rTW/strings.xml
@@ -934,9 +934,6 @@ Language: zh_TW
由於 Twitter 變更條款和定價,Twitter 自動分享功能已無法使用。Twitter 自動分享功能已無法使用允許通知以掌握你的網站動態
- Jetpack 應用程式具備 WordPress 應用程式所有功能,現在還可獨家使用統計資料、閱讀器、通知等功能。
- 在 Jetpack\u00A0應用程式中使用 WordPress 和 %s。
- 在 Jetpack\u00A0應用程式中使用 WordPress 和 %s。未標記的顏色。 %s最近活動如同上方範例,網域可讓使用者從網頁瀏覽器找到並造訪你的網站。
@@ -991,9 +988,6 @@ Language: zh_TW
本網站%1$s 正在使用 %2$s,目前尚未支援應用程式的所有功能。 Please install the %3$s.%1$s 正在使用 %2$s,目前尚未支援應用程式的所有功能。 Please install the %3$s.
- 切換完全免費,只要 1 分鐘就能完成。
- 前往 jetpack.com 深入瞭解
- 切換至 Jetpack 應用程式WP 管理員管理流量
@@ -1050,12 +1044,6 @@ Language: zh_TW
充分發揮網站的潛能。 透過 Jetpack 取得統計資料、通知等。你的網站已安裝 Jetpack 外掛程式Jetpack 行動應用程式設計為可搭配 Jetpack 外掛程式運作。 立即切換以取得統計資料、通知、閱讀器等功能。
- 接收新留言、按讚、瀏覽次數等內容的通知。
- 尋找並追蹤你喜愛的網站和社群,並分享你的內容。
- 取得實用洞察報告和全面的統計資料,帶你見證流量成長。
- 統計資料和洞察報告
- Jetpack 讓你更充分發揮 WordPress 網站潛能。 切換完全免費,只要 1 分鐘就能完成。
- 透過 Jetpack 提升 WordPress 成效你可以隨時前往「我的網站」>「設定」>「撰寫網誌」控制網誌提示和提醒通知會包含可啟發靈感的字詞或短語前往「<b>網站設定</b>」以重新啟用
@@ -1067,15 +1055,6 @@ Language: zh_TW
顯示提示撰寫網誌請安裝 Google Play 商店以取得 Jetpack 應用程式
- 稍後進行
- 切換至 Jetpack
- WordPress 應用程式已移除「統計資料」、「閱讀器」、「通知」和其他 Jetpack 提供的功能。
- Jetpack 功能已經搬遷。
- %1$s 即將於 %2$s後搬遷
- %1$s 即將於 %2$s後搬遷
- %1$s 即將搬遷
- %1$s 即將搬遷
- 取得 Jetpack 應用程式檢視所有回應較先前 7 天低 %1$s較先前 7 天高 %1$s
@@ -1085,21 +1064,10 @@ Language: zh_TW
你在過去 7 天內的檢視數比更早之前 7 天的檢視數高 %1$s。更早之前 7 天過去 7 天
- %d 週
- 1 週來自 <b>Day One</b>稍後再提醒我
- 「統計資料」、「閱讀器」、「通知」及其他功能即將搬遷至 Jetpack 行動應用程式。切換至 Jetpack 應用程式
- 前往 jetpack.com 深入瞭解切換完全免費,只要 1 分鐘就能完成。
- WordPress 應用程式即將移除「統計資料」、「閱讀器」、「通知」和 Jetpack 提供的其他功能。
- WordPress 應用程式將於 %s 移除「統計資料」、「閱讀器」、「通知」和 Jetpack 提供的其他功能。
- Jetpack 功能即將搬遷了。
- 「通知」將轉移至 Jetpack 應用程式
- 「閱讀器」將轉移至 Jetpack 應用程式
- 你的統計資料將轉移至 Jetpack 應用程式
- 切換至全新 Jetpack 應用程式載入提示時發生錯誤。糟糕尚無提示
@@ -1125,12 +1093,6 @@ Language: zh_TW
繼續但不使用 Jetpack網頁連結URI 連結
- 切換至 Jetpack 應用程式,以便繼續 在你的裝置上接收即時通知。
- 切換至 Jetpack 應用程式,以便透過閱讀器搜尋、追蹤並按讚所有喜愛的網站及文章。
- 切換至 Jetpack 應用程式,以便透過統計資料和洞察報告,查看網站流量成長。
- 透過 Jetpack 應用程式接收通知
- 透過 Jetpack 應用程式追蹤任何網站
- 使用全新 Jetpack 應用程式取得統計資料無法停用在 Jetpack 中開啟連結無法啟用在 Jetpack 中開啟連結在 Jetpack 中開啟連結
@@ -1193,7 +1155,6 @@ Language: zh_TW
上週你有 %1$s 個瀏覽次數。上週你有 %1$s 個瀏覽次數、%2$s 個讚和 %3$s 個留言。⭐️ 你的最新文章 %1$s 已獲得 %2$s 個讚。
- 採用 Jetpack 技術圖片表示正在掃描登入碼圖片表示錯誤驗證失敗
diff --git a/WordPress/src/main/res/values/colors.xml b/WordPress/src/main/res/values/colors.xml
index d31f914ec9bc..498c2a175039 100644
--- a/WordPress/src/main/res/values/colors.xml
+++ b/WordPress/src/main/res/values/colors.xml
@@ -27,9 +27,6 @@
@color/gray_10
- @color/jetpack_green_0
- @color/gray_5
- @color/jetpack_green@color/white
diff --git a/WordPress/src/main/res/values/dimens.xml b/WordPress/src/main/res/values/dimens.xml
index d9148e2266d7..6574c615aaab 100644
--- a/WordPress/src/main/res/values/dimens.xml
+++ b/WordPress/src/main/res/values/dimens.xml
@@ -435,9 +435,6 @@
0dp16dp40dp
- 36dp
- 28dp
- 0dp20dp
@@ -692,9 +689,6 @@
32dp20dp
- 32dp
- 16dp
- 15sp40dp
diff --git a/WordPress/src/main/res/values/strings.xml b/WordPress/src/main/res/values/strings.xml
index 13c45c87d725..08d3d9cd7766 100644
--- a/WordPress/src/main/res/values/strings.xml
+++ b/WordPress/src/main/res/values/strings.xml
@@ -624,8 +624,6 @@
Newest first1 day%d days
- 1 week
- %d weekshttps:\/\/CloseSubmit
@@ -4197,18 +4195,6 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
Image indicating scan login code in process
-
- Jetpack powered
- Get the Jetpack app
-
- %1$s is moving soon
-
- %1$s are moving soon
-
- %1$s is moving in %2$s
-
- %1$s are moving in %2$s
-
WordPress is better with JetpackThe new Jetpack app has Stats, Reader, Notifications, and more that make your WordPress better.
@@ -4222,13 +4208,6 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
Continue to ReaderContinue to StatsContinue to Notifications
- Use WordPress with %s in the Jetpack\u00A0app.
- Use WordPress with %s in the Jetpack\u00A0app.
- Switch to the Jetpack app
- Learn more at Jetpack.com
- The Jetpack app has all the WordPress app’s functionality, and now exclusive access to Stats, Reader, Notifications and more.
- Switching is free and only takes a minute.
-
Welcome to Jetpack!It looks like you’re switching from the WordPress app.
@@ -4261,36 +4240,9 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
Unable to disable open links in Jetpack
- Get your stats using the new Jetpack app
- Follow any site with the Jetpack app
- Get your notifications with the Jetpack app
- Switch to the Jetpack app to watch your site’s traffic grow with stats and insights.
- Switch to the Jetpack app to find, follow, and like all your favorite sites and posts with Reader.
- Switch to the Jetpack app to keep receiving realtime notifications on your device.
- Switch to the new Jetpack app
- Your stats are moving to the Jetpack app
- Reader is moving to the Jetpack app
- Notifications are moving to Jetpack
- Jetpack features are moving soon.
- Jetpack features have moved.
- Stats, Reader, Notifications and other Jetpack powered features have been removed from the WordPress app.
- Stats, Reader, Notifications and other Jetpack powered features will be removed from the WordPress app on %s.
- Stats, Reader, Notifications and other Jetpack powered features will be removed from the WordPress app soon.Switching is free and only takes a minute.
- Learn more at jetpack.comSwitch to the Jetpack app@string/wp_jetpack_continue_without_jetpack
- @string/wp_jetpack_feature_removal_overlay_phase_two_and_three_description_without_deadline
- Switch to Jetpack
- Do this later
- Give WordPress a boost with Jetpack
- Jetpack lets you do more with your WordPress site. Switching is free and only takes a minute.
- Stats & Insights
- Watch your traffic grow with helpful insights and comprehensive stats.
- @string/reader
- Find and follow your favorite sites and communities, and share you content.
- @string/notifications_screen_title
- Get notifications for new comments, likes, views, and more.The Jetpack mobile app is designed to work in companion with the Jetpack plugin. Switch now to get access to stats, notifications, reader, and more.Your site has the Jetpack plugin
@@ -4307,7 +4259,6 @@ translators: %s: Select control option value e.g: "Auto, 25%". -->
Open links in WordPress
- Stats, Reader, Notifications and other features will soon move to the Jetpack mobile app.Unlock your site’s full potential. Get stats, notifications and more with Jetpack.@string/learn_moreRemind me later
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/debug/DebugSettingsViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/debug/DebugSettingsViewModelTest.kt
index a4ef171c153e..8762b5447185 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/debug/DebugSettingsViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/debug/DebugSettingsViewModelTest.kt
@@ -9,7 +9,7 @@ import org.mockito.kotlin.any
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.NotificationManagerWrapper
import org.wordpress.android.util.DebugUtils
import org.wordpress.android.util.config.FeatureFlagConfig
@@ -43,7 +43,7 @@ class DebugSettingsViewModelTest : BaseUnitTest() {
lateinit var remoteFieldConfigRepository: RemoteFieldConfigRepository
@Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private lateinit var viewModel: DebugSettingsViewModel
private val uiStates = mutableListOf()
@@ -60,7 +60,7 @@ class DebugSettingsViewModelTest : BaseUnitTest() {
weeklyRoundupNotifier,
notificationManager,
contextProvider,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
observeUIState()
}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverViewModelTest.kt
index 2e959fdb5410..59f0697c2589 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/DeepLinkingIntentReceiverViewModelTest.kt
@@ -21,7 +21,7 @@ import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.OpenI
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction.StartCreateSiteFlow
import org.wordpress.android.ui.deeplinks.handlers.DeepLinkHandlers
import org.wordpress.android.ui.deeplinks.handlers.ServerTrackingHandler
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.util.UriWrapper
import org.wordpress.android.util.analytics.AnalyticsUtilsWrapper
import org.wordpress.android.viewmodel.ContextProvider
@@ -56,7 +56,7 @@ class DeepLinkingIntentReceiverViewModelTest : BaseUnitTest() {
lateinit var openWebLinksWithJetpackHelper: DeepLinkOpenWebLinksWithJetpackHelper
@Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private lateinit var viewModel: DeepLinkingIntentReceiverViewModel
private var isFinished = false
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandlerTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandlerTest.kt
index 35fa892d67c7..3adf6e1c933b 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandlerTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/deeplinks/handlers/StatsLinkHandlerTest.kt
@@ -11,7 +11,6 @@ import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.ui.deeplinks.DeepLinkNavigator.NavigateAction
import org.wordpress.android.ui.deeplinks.DeepLinkUriUtils
import org.wordpress.android.ui.deeplinks.buildUri
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.stats.StatsTimeframe.DAY
import org.wordpress.android.ui.stats.StatsTimeframe.INSIGHTS
import org.wordpress.android.ui.stats.StatsTimeframe.MONTH
@@ -28,12 +27,9 @@ class StatsLinkHandlerTest {
lateinit var site: SiteModel
private lateinit var statsLinkHandler: StatsLinkHandler
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
@Before
fun setUp() {
- statsLinkHandler = StatsLinkHandler(deepLinkUriUtils, jetpackFeatureRemovalPhaseHelper)
+ statsLinkHandler = StatsLinkHandler(deepLinkUriUtils)
}
@Test
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilderTest.kt
index 6181b7a1b5bf..018ea7745a13 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilderTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayContentBuilderTest.kt
@@ -1,149 +1,66 @@
package org.wordpress.android.ui.jetpackoverlay
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import org.junit.Assert.assertEquals
-import org.junit.Before
-import org.junit.Rule
+import org.assertj.core.api.Assertions.assertThat
import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.whenever
import org.wordpress.android.R
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureOverlayScreenType.STATS
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.utils.HtmlMessageUtils
import org.wordpress.android.ui.utils.UiString.UiStringRes
-import org.wordpress.android.ui.utils.UiString.UiStringText
-import org.wordpress.android.util.DateTimeUtilsWrapper
-private const val PHASE_TWO_BLOG_POST_LINK = "www.jetpack.com"
-private const val JP_DEADLINE_MESSAGE = "Stats, Reader, Notifications and other Jetpack powered features will " +
- "be removed from the WordPress app on January 1, 2020 "
-
-@RunWith(MockitoJUnitRunner::class)
+/**
+ * The two overlay states used to be assembled per removal phase. They are now fixed, so these tests
+ * pin the content each one produces — in particular the component visibility, which is the only
+ * thing that still differs between them.
+ */
class JetpackFeatureOverlayContentBuilderTest {
- @Mock
- private lateinit var htmlMessageUtils: HtmlMessageUtils
-
- @Mock
- private lateinit var dateTimeUtilsWrapper: DateTimeUtilsWrapper
-
- @Rule
- @JvmField
- val rule = InstantTaskExecutorRule()
-
- private lateinit var jetpackFeatureOverlayContentBuilder: JetpackFeatureOverlayContentBuilder
-
- @Before
- fun setup() {
- jetpackFeatureOverlayContentBuilder = JetpackFeatureOverlayContentBuilder(
- htmlMessageUtils,
- dateTimeUtilsWrapper
- )
- }
+ private val builder = JetpackFeatureOverlayContentBuilder()
@Test
- fun `given phase one started, when content is built, should return phase one overlay content`() {
- val phaseOneStats = jetpackFeatureOverlayContentBuilder.build(
- JetpackFeatureOverlayContentBuilderParams(
- PhaseOne,
- false,
- STATS
- )
- )
+ fun `feature collection overlay cannot be dismissed with the close button`() {
+ val state = builder.buildFeatureCollectionOverlayState(isRtl = false)
- assertEquals(phaseOneStats.overlayContent, getPhaseOneStats())
+ assertThat(state.componentVisibility.closeButton).isFalse
+ assertThat(state.componentVisibility.secondaryButton).isTrue
+ assertThat(state.componentVisibility.migrationText).isTrue
}
- @Suppress("MaxLineLength")
@Test
- fun `given phase two without remote field post link, when content is built, should return phase two overlay content`() {
- val phaseTwoStats = jetpackFeatureOverlayContentBuilder.build(
- JetpackFeatureOverlayContentBuilderParams(
- PhaseTwo,
- false,
- STATS
- )
- )
-
- assertEquals(phaseTwoStats.overlayContent, getPhaseTwoStatsWithoutMigrationInfo())
+ fun `feature collection overlay shows the self-hosted content`() {
+ val state = builder.buildFeatureCollectionOverlayState(isRtl = false)
+
+ assertThat(state.overlayContent.title)
+ .isEqualTo(R.string.wp_jetpack_feature_removal_phase_self_hosted_users_title)
+ assertThat(state.overlayContent.caption)
+ .isEqualTo(UiStringRes(R.string.wp_jetpack_feature_removal_phase_self_hosted_users_description))
+ assertThat(state.overlayContent.migrationText)
+ .isEqualTo(R.string.wp_jetpack_feature_removal_overlay_migration_helper_text)
}
- @Suppress("MaxLineLength")
@Test
- fun `given phase two with remote field post link, when content is built, should return phase two overlay content`() {
- val phaseTwoStats = jetpackFeatureOverlayContentBuilder.build(
- JetpackFeatureOverlayContentBuilderParams(
- PhaseTwo,
- false,
- STATS,
- phaseTwoBlogPostLink = PHASE_TWO_BLOG_POST_LINK
- )
- )
- val actual = getPhaseTwoStatsWithoutMigrationInfo().copy(
- migrationInfoUrl = PHASE_TWO_BLOG_POST_LINK,
- migrationInfoText = R.string.wp_jetpack_feature_removal_overlay_learn_more_migration_text
- )
+ fun `deep link overlay keeps the close button and has no migration text`() {
+ val state = builder.buildDeepLinkOverlayState(isRtl = false)
- assertEquals(phaseTwoStats.overlayContent, actual)
+ assertThat(state.componentVisibility.closeButton).isTrue
+ assertThat(state.componentVisibility.migrationText).isFalse
+ assertThat(state.overlayContent.migrationText).isNull()
}
- @Suppress("MaxLineLength")
@Test
- fun `given phase two with deadline, when content is built, should return phase two overlay content`() {
- val jpDeadlineDateFromRemoteConfig = "2020-01-01"
- val jpDeadlineDateToBeShownOnOverlay = "January 1, 2020"
- val jpDeadlineDateToBeShownOnOverlayWithFormat = "January 1, 2020"
- whenever(
- htmlMessageUtils.getHtmlMessageFromStringFormatResId(
- R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_description_with_deadline,
- jpDeadlineDateToBeShownOnOverlayWithFormat
- )
- ).thenReturn(JP_DEADLINE_MESSAGE)
- whenever(
- dateTimeUtilsWrapper.convertDateFormat(
- jpDeadlineDateFromRemoteConfig,
- JETPACK_OVERLAY_ORIGINAL_DATE_FORMAT,
- JETPACK_OVERLAY_TARGET_DATE_FORMAT
- )
- ).thenReturn(jpDeadlineDateToBeShownOnOverlay)
-
- val actualOverlayUiState = jetpackFeatureOverlayContentBuilder.build(
- JetpackFeatureOverlayContentBuilderParams(
- PhaseTwo,
- false,
- STATS,
- jpDeadlineDate = jpDeadlineDateFromRemoteConfig
- )
- )
- val expectedOverlayContent = getPhaseTwoStatsWithoutMigrationInfo().copy(
- caption = UiStringText(JP_DEADLINE_MESSAGE)
- )
+ fun `deep link overlay offers both apps`() {
+ val state = builder.buildDeepLinkOverlayState(isRtl = false)
- assertEquals(expectedOverlayContent, actualOverlayUiState.overlayContent)
+ assertThat(state.overlayContent.title).isEqualTo(R.string.wp_jetpack_deep_link_overlay_title)
+ assertThat(state.overlayContent.primaryButtonText).isEqualTo(R.string.wp_jetpack_deep_link_open_in_jetpack)
+ assertThat(state.overlayContent.secondaryButtonText).isEqualTo(R.string.wp_jetpack_deep_link_open_in_wordpress)
}
- private fun getPhaseOneStats(): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = R.raw.jp_stats_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_one_title_stats,
- caption = UiStringRes(R.string.wp_jetpack_feature_removal_overlay_phase_one_description_stats),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_stats
- )
- }
-
- private fun getPhaseTwoStatsWithoutMigrationInfo(): JetpackFeatureOverlayContent {
- return JetpackFeatureOverlayContent(
- illustration = R.raw.jp_stats_left,
- title = R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_title_stats,
- caption = UiStringRes(
- R.string.wp_jetpack_feature_removal_overlay_phase_two_and_three_description_without_deadline
- ),
- primaryButtonText = R.string.wp_jetpack_feature_removal_overlay_switch_to_new_jetpack_app,
- secondaryButtonText = R.string.wp_jetpack_continue_to_stats
- )
+ @Test
+ fun `illustration follows the layout direction`() {
+ assertThat(builder.buildFeatureCollectionOverlayState(isRtl = true).overlayContent.illustration)
+ .isEqualTo(R.raw.wp2jp_rtl)
+ assertThat(builder.buildFeatureCollectionOverlayState(isRtl = false).overlayContent.illustration)
+ .isEqualTo(R.raw.wp2jp_left)
+ assertThat(builder.buildDeepLinkOverlayState(isRtl = true).overlayContent.illustration)
+ .isEqualTo(R.raw.wp2jp_rtl)
+ assertThat(builder.buildDeepLinkOverlayState(isRtl = false).overlayContent.illustration)
+ .isEqualTo(R.raw.wp2jp_left)
}
}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTrackerTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTrackerTest.kt
new file mode 100644
index 000000000000..06ee871801eb
--- /dev/null
+++ b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureOverlayShownTrackerTest.kt
@@ -0,0 +1,58 @@
+package org.wordpress.android.ui.jetpackoverlay
+
+import android.content.SharedPreferences
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.junit.MockitoJUnitRunner
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+/**
+ * These assertions deliberately hard-code the stored key. It is built from
+ * [JETPACK_REMOVAL_TRACKING_NAME], which reads like a vestigial phase name and is an easy thing to
+ * "tidy up" — but changing it re-shows the switch-to-Jetpack overlay to every user who has already
+ * dismissed it, silently and with no other test failing.
+ */
+@RunWith(MockitoJUnitRunner::class)
+class JetpackFeatureOverlayShownTrackerTest {
+ @Mock
+ private lateinit var sharedPrefs: SharedPreferences
+
+ @Mock
+ private lateinit var editor: SharedPreferences.Editor
+
+ private lateinit var tracker: JetpackFeatureOverlayShownTracker
+
+ @Before
+ fun setUp() {
+ tracker = JetpackFeatureOverlayShownTracker(sharedPrefs)
+ }
+
+ @Test
+ fun `the removal tracking name is part of stored keys and must not change`() {
+ assertThat(JETPACK_REMOVAL_TRACKING_NAME).isEqualTo("self_hosted")
+ }
+
+ @Test
+ fun `marking the overlay shown writes the phase-suffixed key`() {
+ whenever(sharedPrefs.edit()).thenReturn(editor)
+ whenever(editor.putBoolean(any(), any())).thenReturn(editor)
+
+ tracker.setFeatureCollectionOverlayShown()
+
+ verify(editor).putBoolean(eq("KEY_FEATURE_COLLECTION_OVERLAY_SHOWNself_hosted"), eq(true))
+ }
+
+ @Test
+ fun `reading whether the overlay was shown uses the phase-suffixed key`() {
+ whenever(sharedPrefs.getBoolean(eq("KEY_FEATURE_COLLECTION_OVERLAY_SHOWNself_hosted"), eq(false)))
+ .thenReturn(true)
+
+ assertThat(tracker.getFeatureCollectionOverlayShown()).isTrue
+ }
+}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtilTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtilTest.kt
deleted file mode 100644
index 52c3f5934c79..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalBrandingUtilTest.kt
+++ /dev/null
@@ -1,375 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import androidx.annotation.StringRes
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.Assert.assertFalse
-import org.junit.Assert.assertTrue
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.any
-import org.mockito.kotlin.eq
-import org.mockito.kotlin.mock
-import org.mockito.kotlin.times
-import org.mockito.kotlin.verify
-import org.mockito.kotlin.verifyNoInteractions
-import org.mockito.kotlin.whenever
-import org.wordpress.android.R
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Days
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Pluralisable
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Soon
-import org.wordpress.android.ui.jetpackoverlay.JetpackBrandingUiState.Weeks
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.utils.UiString
-import org.wordpress.android.ui.utils.UiString.UiStringPluralRes
-import org.wordpress.android.ui.utils.UiString.UiStringRes
-import org.wordpress.android.ui.utils.UiString.UiStringResWithParams
-import org.wordpress.android.util.DateTimeUtilsWrapper
-import org.wordpress.android.util.config.JPDeadlineConfigStub
-import java.time.ZoneId
-import java.util.Date
-
-@RunWith(MockitoJUnitRunner::class)
-class JetpackFeatureRemovalBrandingUtilTest {
- private val jpDeadlineConfig = JPDeadlineConfigStub()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
- private val dateTimeUtilsWrapper: DateTimeUtilsWrapper = mock()
-
- @Rule
- @JvmField
- val rule = InstantTaskExecutorRule()
-
- private lateinit var classToTest: JetpackFeatureRemovalBrandingUtil
-
- private val screensWithStaticText = JetpackPoweredScreen.WithStaticText.values().toList()
- private val screensWithDynamicText = JetpackPoweredScreen.WithDynamicText.values().toList()
- private val allJpScreens: List = screensWithStaticText + screensWithDynamicText
-
- @Before
- fun setup() {
- classToTest = JetpackFeatureRemovalBrandingUtil(
- jetpackFeatureRemovalPhaseHelper,
- jpDeadlineConfig.instance,
- dateTimeUtilsWrapper,
- )
- }
-
- // region Branding Visibility
- @Test
- fun `given phase one started, when phase one branding is checked, should return true`() {
- givenPhase(PhaseOne)
-
- val shouldShowBranding = classToTest.shouldShowPhaseOneBranding()
-
- assertTrue(shouldShowBranding)
- }
-
- @Test
- fun `given phase one not started, when phase one branding is checked, should return false`() {
- givenPhase(null)
- val shouldShowBranding = classToTest.shouldShowPhaseOneBranding()
-
- assertFalse(shouldShowBranding)
- }
-
- @Test
- fun `given phase one not started, when phase two branding is checked, should return false`() {
- givenPhase(null)
- val shouldShowBranding = classToTest.shouldShowPhaseTwoBranding()
-
- assertFalse(shouldShowBranding)
- }
-
- @Test
- fun `given phase one started, when phase two branding is checked, should return false`() {
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(PhaseOne)
- val shouldShowBranding = classToTest.shouldShowPhaseTwoBranding()
-
- assertFalse(shouldShowBranding)
- }
-
- @Test
- fun `given phase two started, when phase two branding is checked, should return true`() {
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(PhaseTwo)
- val shouldShowBranding = classToTest.shouldShowPhaseTwoBranding()
-
- assertTrue(shouldShowBranding)
- }
- // endregion
-
- // region Branding Text
-
- @Test
- fun `given phase 1 not started, all banners and badges should be Jetpack powered`() {
- givenPhase(null)
-
- val actual = allJpScreens.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- }
-
- @Test
- fun `given phase 1 started, all banners and badges should be Jetpack powered`() {
- givenPhase(PhaseOne)
-
- val actual = allJpScreens.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- }
-
- @Test
- fun `given phase 2 started, all banners and badges should be Get the Jetpack app`() {
- givenPhase(PhaseTwo)
-
- val actual = allJpScreens.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered_phase_2)
- }
-
- @Test
- fun `given phase 3 started, on screens without dynamic branding, some branding should be Jetpack powered`() {
- givenPhase(PhaseThree)
-
- val actual = screensWithStaticText.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- }
-
- @Test
- fun `given phase 3 started, when deadline unknown, all other branding should be {Feature} {is,are} moving soon`() {
- givenPhase(PhaseThree)
- whenJpDeadlineIs(null)
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Soon.RES_ARE_MOVING_SOON,
- expectedSingularRes = Soon.RES_IS_MOVING_SOON,
- expectedToHaveQuantity = false,
- )
- verifyNoInteractions(dateTimeUtilsWrapper)
- }
-
- @Test
- fun `given phase 3 started, when deadline 32 days, all other branding should be {Feature} {is,are} moving soon`() {
- givenPhase(PhaseThree)
- whenJpDeadlineIs(32)
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Soon.RES_ARE_MOVING_SOON,
- expectedSingularRes = Soon.RES_IS_MOVING_SOON,
- expectedToHaveQuantity = false,
- )
- verifyDaysUntilDeadlineCounted()
- }
-
- @Test
- fun `given phase 3, when deadline in 29 days, other branding should be {Feature} {is,are} moving in {n} weeks`() {
- givenPhase(PhaseThree)
- val expectedInterval = Weeks(4)
- whenJpDeadlineIs(29)
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Pluralisable.RES_ARE_MOVING_IN,
- expectedSingularRes = Pluralisable.RES_IS_MOVING_IN,
- expectedToHaveQuantity = true,
- )
- actual.assertQuantityTexts(expectedInterval)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Suppress("MaxLineLength")
- @Test
- fun `given phase 3 started, when deadline is in 1 week, all other branding should be {Feature} {is,are} moving in 1 week`() {
- givenPhase(PhaseThree)
- val expectedInterval = Weeks(1)
- whenJpDeadlineIs(13)
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Pluralisable.RES_ARE_MOVING_IN,
- expectedSingularRes = Pluralisable.RES_IS_MOVING_IN,
- expectedToHaveQuantity = true,
- )
- actual.assertQuantityTexts(expectedInterval)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Suppress("MaxLineLength")
- @Test
- fun `given phase 3 started, when deadline is in 6 days, all other branding should be {Feature} {is,are} moving in n days`() {
- givenPhase(PhaseThree)
- val expectedInterval = Days(6)
- whenJpDeadlineIs(expectedInterval.number.toInt())
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Pluralisable.RES_ARE_MOVING_IN,
- expectedSingularRes = Pluralisable.RES_IS_MOVING_IN,
- expectedToHaveQuantity = true,
- )
- actual.assertQuantityTexts(expectedInterval)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Suppress("MaxLineLength")
- @Test
- fun `given phase 3 started, when deadline is in 1 day, all other branding should be {Feature} {is,are} moving in 1 day`() {
- givenPhase(PhaseThree)
- val expectedInterval = Days(1)
- whenJpDeadlineIs(expectedInterval.number.toInt())
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Pluralisable.RES_ARE_MOVING_IN,
- expectedSingularRes = Pluralisable.RES_IS_MOVING_IN,
- expectedToHaveQuantity = true,
- )
- actual.assertQuantityTexts(expectedInterval)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Suppress("MaxLineLength")
- @Test
- fun `given phase 3 started, when deadline is in 0 days, all other branding should be {Feature} {is,are} moving in 1 day`() {
- givenPhase(PhaseThree)
- val expectedInterval = Days(1)
- whenJpDeadlineIs(0)
-
- val actual = screensWithDynamicText.map {
- classToTest.getBrandingTextByPhase(it) as UiStringResWithParams
- }
-
- actual.assertDynamicTexts(
- expectedPluralRes = Pluralisable.RES_ARE_MOVING_IN,
- expectedSingularRes = Pluralisable.RES_IS_MOVING_IN,
- expectedToHaveQuantity = true,
- )
- actual.assertQuantityTexts(expectedInterval)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Test
- fun `given phase 3 started, when deadline has passed, all other branding should be Jetpack powered`() {
- givenPhase(PhaseThree)
- whenJpDeadlineIs(-15)
-
- val actual = screensWithDynamicText.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- verifyDaysUntilDeadlineCounted()
- }
-
- @Test
- fun `given phase 4 started, all banners and badges should be Jetpack powered`() {
- givenPhase(PhaseFour)
-
- val actual = allJpScreens.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- verifyNoInteractions(dateTimeUtilsWrapper)
- }
-
- @Test
- fun `given static posters phase started, all banners and badges should be Jetpack powered`() {
- givenPhase(JetpackFeatureRemovalPhase.PhaseStaticPosters)
-
- val actual = allJpScreens.map(classToTest::getBrandingTextByPhase)
-
- actual.assertAllMatch(R.string.wp_jetpack_powered)
- verifyNoInteractions(dateTimeUtilsWrapper)
- }
-
- // endregion
-
- // region Helpers
-
- private fun givenPhase(phase: JetpackFeatureRemovalPhase?) {
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(phase)
- }
-
- private fun whenJpDeadlineIs(daysAway: Int?) {
- whenever(jpDeadlineConfig.appConfig.getRemoteFieldConfigValue(any())).thenReturn(daysAway?.toString() ?: "")
- daysAway?.toLong()?.let {
- val today = Date(System.currentTimeMillis())
- val deadline = Date.from(today.toInstant().atZone(ZoneId.systemDefault()).plusDays(it).toInstant())
- whenever(dateTimeUtilsWrapper.getTodaysDate()).thenReturn(today)
- whenever(dateTimeUtilsWrapper.parseDateString(any(), any())).thenReturn(deadline)
- }
- }
-
- private fun List.assertAllMatch(@StringRes expected: Int) {
- assertThat(this).allMatch { it == UiStringRes(expected) }
- }
-
- private fun List.assertDynamicTexts(
- @StringRes expectedPluralRes: Int,
- @StringRes expectedSingularRes: Int,
- expectedToHaveQuantity: Boolean,
- ) {
- val actualFeatureNames = map { it.params[0] }
- val expectedFeatureNames = screensWithDynamicText.map { it.featureName }
- assertThat(actualFeatureNames).isEqualTo(expectedFeatureNames)
-
- val actualStringRes = map { it.stringRes }
-
- // Assert plurals stringRes
- val actualPlurals = actualStringRes.filter { it == expectedPluralRes }
- assertThat(actualPlurals).containsOnly(expectedPluralRes)
- assertThat(actualPlurals).hasSameSizeAs(screensWithDynamicText.filter { it.isPlural })
-
- // Assert singulars stringRes
- val actualSingulars = actualStringRes.filter { it == expectedSingularRes }
- assertThat(actualSingulars).containsOnly(expectedSingularRes)
- assertThat(actualSingulars).hasSameSizeAs(screensWithDynamicText.filter { !it.isPlural })
-
- // Assert params
- val actualParams = map { it.params }
- assertThat(actualParams).allMatch { it.size == if (expectedToHaveQuantity) 2 else 1 }
- }
-
- private fun List.assertQuantityTexts(
- expected: Pluralisable,
- ) {
- val actualQuantity = map { it.params[1] as UiStringPluralRes }
- assertThat(actualQuantity.map { it.zeroRes }).containsOnly(expected.otherRes)
- assertThat(actualQuantity.map { it.oneRes }).containsOnly(expected.oneRes)
- assertThat(actualQuantity.map { it.otherRes }).containsOnly(expected.otherRes)
- assertThat(actualQuantity.map { it.count }).containsOnly(expected.number.toInt())
- }
-
- private fun verifyDaysUntilDeadlineCounted() {
- verify(dateTimeUtilsWrapper, times(screensWithDynamicText.size)).getTodaysDate()
- verify(dateTimeUtilsWrapper, times(screensWithDynamicText.size)).parseDateString(
- any(),
- eq(JETPACK_OVERLAY_ORIGINAL_DATE_FORMAT)
- )
- }
- // endregion
-}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelperTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelperTest.kt
new file mode 100644
index 000000000000..2a5182ca1e20
--- /dev/null
+++ b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalHelperTest.kt
@@ -0,0 +1,76 @@
+package org.wordpress.android.ui.jetpackoverlay
+
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.junit.MockitoJUnitRunner
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+import org.wordpress.android.analytics.AnalyticsTracker
+import org.wordpress.android.fluxc.model.SiteModel
+import org.wordpress.android.ui.main.WPMainNavigationView
+import org.wordpress.android.util.BuildConfigWrapper
+import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
+
+@RunWith(MockitoJUnitRunner::class)
+class JetpackFeatureRemovalHelperTest {
+ @Mock
+ private lateinit var buildConfigWrapper: BuildConfigWrapper
+
+ @Mock
+ private lateinit var analyticsTrackerWrapper: AnalyticsTrackerWrapper
+
+ private lateinit var helper: JetpackFeatureRemovalHelper
+
+ @Before
+ fun setUp() {
+ helper = JetpackFeatureRemovalHelper(buildConfigWrapper, analyticsTrackerWrapper)
+ }
+
+ // The removal is a build-flavor invariant: the WordPress app never has the Jetpack-powered
+ // features and the Jetpack app always does. Nothing about it is decided at runtime.
+ @Test
+ fun `given the WordPress app, then Jetpack features are removed`() {
+ whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
+
+ assertThat(helper.shouldRemoveJetpackFeatures()).isTrue
+ assertThat(helper.shouldShowNotifications()).isFalse
+ assertThat(helper.shouldShowJetpackPoweredEditorFeatures()).isFalse
+ assertThat(helper.shouldShowTemplateSelectionInPages()).isFalse
+ assertThat(helper.shouldShowPublishedPostStatsButton()).isFalse
+ assertThat(helper.shouldShowHelpAndSupportOnEditor()).isFalse
+ assertThat(helper.getDeepLinkTrackingName()).isEqualTo(JETPACK_DEEPLINK_TRACKING_NAME)
+ }
+
+ @Test
+ fun `given the Jetpack app, then Jetpack features are kept`() {
+ whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
+
+ assertThat(helper.shouldRemoveJetpackFeatures()).isFalse
+ assertThat(helper.shouldShowNotifications()).isTrue
+ assertThat(helper.shouldShowJetpackPoweredEditorFeatures()).isTrue
+ assertThat(helper.shouldShowTemplateSelectionInPages()).isTrue
+ assertThat(helper.shouldShowPublishedPostStatsButton()).isTrue
+ assertThat(helper.shouldShowHelpAndSupportOnEditor()).isTrue
+ assertThat(helper.getDeepLinkTrackingName()).isNull()
+ }
+
+ @Test
+ fun `when we track reader accessed event, then the proper event is tracked`() {
+ helper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.READER)
+
+ verify(analyticsTrackerWrapper, times(1)).track(AnalyticsTracker.Stat.READER_ACCESSED)
+ }
+
+ @Test
+ fun `when we track my site accessed event, then the proper event is tracked`() {
+ val site = SiteModel()
+
+ helper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.MY_SITE, site)
+
+ verify(analyticsTrackerWrapper, times(1)).track(AnalyticsTracker.Stat.MY_SITE_ACCESSED, site)
+ }
+}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtilTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtilTest.kt
index 5c097e27c904..a04d8a439642 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtilTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalOverlayUtilTest.kt
@@ -1,189 +1,80 @@
package org.wordpress.android.ui.jetpackoverlay
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.junit.Assert.assertFalse
-import org.junit.Assert.assertTrue
+import org.assertj.core.api.Assertions.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.any
+import org.mockito.kotlin.never
+import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayPhase.PHASE_ONE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayPhase.PHASE_THREE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.STATS
-import org.wordpress.android.ui.mysite.SelectedSiteRepository
-import org.wordpress.android.util.BuildConfigWrapper
-import org.wordpress.android.util.DateTimeUtilsWrapper
-import org.wordpress.android.util.SiteUtilsWrapper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil.JetpackFeatureCollectionOverlaySource
import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import java.util.Date
-private const val ONE_DAY_TIME_IN_MILLIS = 1000L * 60L * 60L * 24L
-
-@ExperimentalCoroutinesApi
@RunWith(MockitoJUnitRunner::class)
-class JetpackFeatureRemovalOverlayUtilTest : BaseUnitTest() {
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
- @Mock
- private lateinit var jetpackFeatureOverlayShownTracker: JetpackFeatureOverlayShownTracker
-
- @Mock
- private lateinit var selectedSiteRepository: SelectedSiteRepository
-
- @Mock
- private lateinit var siteUtilsWrapper: SiteUtilsWrapper
-
+class JetpackFeatureRemovalOverlayUtilTest {
@Mock
- private lateinit var buildConfigWrapper: BuildConfigWrapper
+ private lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Mock
- private lateinit var dateTimeUtilsWrapper: DateTimeUtilsWrapper
+ private lateinit var shownTracker: JetpackFeatureOverlayShownTracker
@Mock
private lateinit var analyticsTrackerWrapper: AnalyticsTrackerWrapper
- private lateinit var jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
-
- private val currentMockedDate = Date(System.currentTimeMillis())
+ private lateinit var overlayUtil: JetpackFeatureRemovalOverlayUtil
@Before
- fun setup() {
- jetpackFeatureRemovalOverlayUtil = JetpackFeatureRemovalOverlayUtil(
- jetpackFeatureRemovalPhaseHelper,
- jetpackFeatureOverlayShownTracker,
- selectedSiteRepository,
- siteUtilsWrapper,
- buildConfigWrapper,
- dateTimeUtilsWrapper,
+ fun setUp() {
+ overlayUtil = JetpackFeatureRemovalOverlayUtil(
+ jetpackFeatureRemovalHelper,
+ shownTracker,
analyticsTrackerWrapper
)
}
- // general phase tests
@Test
- fun `given jetpack app, shouldShowFeatureSpecificJetpackOverlay invoked, then return false`() {
- whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
-
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
+ fun `given the Jetpack app, when checking the feature collection overlay, then it is not shown`() {
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(false)
- assertFalse(shouldShowOverlay)
+ assertThat(overlayUtil.shouldShowFeatureCollectionJetpackOverlayForFirstTime()).isFalse
}
@Test
- fun `given non wpcomSite, shouldShowFeatureSpecificJetpackOverlay invoked, then return false`() {
- val fakeSiteModel = SiteModel()
- whenever(selectedSiteRepository.getSelectedSite()).thenReturn(fakeSiteModel)
- whenever(siteUtilsWrapper.isAccessedViaWPComRest(fakeSiteModel)).thenReturn(false)
-
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
+ fun `given the WordPress app and the overlay was never shown, then it is shown`() {
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
+ whenever(shownTracker.getFeatureCollectionOverlayShown()).thenReturn(false)
- assertFalse(shouldShowOverlay)
+ assertThat(overlayUtil.shouldShowFeatureCollectionJetpackOverlayForFirstTime()).isTrue
}
@Test
- @Suppress("MaxLineLength")
- fun `given feature removal not started, when shouldShowFeatureSpecificJetpackOverlay invoked, then return false`() {
- setupMockForWpComSite()
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(null)
+ fun `given the WordPress app and the overlay was already shown, then it is not shown again`() {
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
+ whenever(shownTracker.getFeatureCollectionOverlayShown()).thenReturn(true)
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
-
- assertFalse(shouldShowOverlay)
+ assertThat(overlayUtil.shouldShowFeatureCollectionJetpackOverlayForFirstTime()).isFalse
}
@Test
- @Suppress("MaxLineLength")
- fun `given feature removal in phase four, when shouldShowFeatureSpecificJetpackOverlay invoked, then return false`() {
- setupMockForWpComSite()
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(PhaseFour)
-
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
-
- assertFalse(shouldShowOverlay)
- }
+ fun `when the overlay is shown on app open, then it is recorded so it does not show again`() {
+ overlayUtil.onFeatureCollectionOverlayShown(JetpackFeatureCollectionOverlaySource.APP_OPEN)
- @Test
- @Suppress("MaxLineLength")
- fun `given feature is never accessed, when shouldShowFeatureSpecificJetpackOverlay invoked, then return true`() {
- setupMockForWpComSite()
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(PhaseThree)
- whenever(
- jetpackFeatureOverlayShownTracker.getFeatureOverlayShownTimeStamp(
- STATS,
- PHASE_THREE
- )
- ).thenReturn(null)
- whenever(
- jetpackFeatureOverlayShownTracker.getTheLastShownOverlayTimeStamp(
- PHASE_THREE
- )
- ).thenReturn(null)
-
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
-
- assertTrue(shouldShowOverlay)
+ verify(shownTracker).setFeatureCollectionOverlayShown()
}
@Test
- @Suppress("MaxLineLength")
- fun `given feature is accessed after feature specific frequency, when shouldShowFeatureSpecificJetpackOverlay invoked, then return true`() {
- setupMockForWpComSite()
- // The passed number should exceed the feature specific overlay frequency
- setUpMockForEarliestAccessedFeature(8)
-
- val shouldShowOverlay = jetpackFeatureRemovalOverlayUtil
- .shouldShowFeatureSpecificJetpackOverlay(STATS)
+ fun `when the overlay is opened from the feature card, then it is not recorded as the app-open showing`() {
+ overlayUtil.onFeatureCollectionOverlayShown(JetpackFeatureCollectionOverlaySource.FEATURE_CARD)
- assertTrue(shouldShowOverlay)
+ verify(shownTracker, never()).setFeatureCollectionOverlayShown()
}
- private fun setupMockForWpComSite() {
- val fakeSiteModel = SiteModel()
- whenever(selectedSiteRepository.getSelectedSite()).thenReturn(fakeSiteModel)
- whenever(siteUtilsWrapper.isAccessedViaWPComRest(fakeSiteModel)).thenReturn(true)
- }
-
- private fun setupMockForFeatureAccessed(
- noOfDaysPastFeatureAccessed: Long,
- ) {
- val featureAccessedMockedTimeinMillis = (System.currentTimeMillis() -
- (noOfDaysPastFeatureAccessed * ONE_DAY_TIME_IN_MILLIS))
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(PhaseOne)
- whenever(
- jetpackFeatureOverlayShownTracker.getFeatureOverlayShownTimeStamp(
- STATS,
- PHASE_ONE
- )
- ).thenReturn(featureAccessedMockedTimeinMillis)
- whenever(dateTimeUtilsWrapper.getTodaysDate()).thenReturn(currentMockedDate)
- whenever(
- dateTimeUtilsWrapper.daysBetween(
- any(), any()
- )
- ).thenReturn(noOfDaysPastFeatureAccessed.toInt())
- }
-
- private fun setUpMockForEarliestAccessedFeature(noOfDaysPastFeatureAccessed: Long) {
- val featureAccessedMockedTimeinMillis = (System.currentTimeMillis() -
- (noOfDaysPastFeatureAccessed * ONE_DAY_TIME_IN_MILLIS))
-
- whenever(jetpackFeatureOverlayShownTracker.getTheLastShownOverlayTimeStamp(PHASE_ONE))
- .thenReturn(featureAccessedMockedTimeinMillis)
+ @Test
+ fun `shouldHideJetpackFeatures follows the removal state`() {
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
- setupMockForFeatureAccessed(noOfDaysPastFeatureAccessed)
+ assertThat(overlayUtil.shouldHideJetpackFeatures()).isTrue
}
}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelperTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelperTest.kt
deleted file mode 100644
index d224fc09ed9b..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/jetpackoverlay/JetpackFeatureRemovalPhaseHelperTest.kt
+++ /dev/null
@@ -1,196 +0,0 @@
-package org.wordpress.android.ui.jetpackoverlay
-
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.junit.Assert.assertNull
-import org.junit.Assert.assertEquals
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.never
-import org.mockito.kotlin.times
-import org.mockito.kotlin.verify
-import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseFour
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseNewUsers
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseOne
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseThree
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseTwo
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase.PhaseSelfHostedUsers
-import org.wordpress.android.ui.main.WPMainNavigationView
-import org.wordpress.android.util.BuildConfigWrapper
-import org.wordpress.android.util.analytics.AnalyticsTrackerWrapper
-import org.wordpress.android.util.config.JetpackFeatureRemovalNewUsersConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseFourConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseOneConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseThreeConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalPhaseTwoConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalSelfHostedUsersConfig
-import org.wordpress.android.util.config.JetpackFeatureRemovalStaticPostersConfig
-import org.wordpress.android.util.config.PhaseFourOverlayFrequencyConfig
-
-@ExperimentalCoroutinesApi
-@RunWith(MockitoJUnitRunner::class)
-class JetpackFeatureRemovalPhaseHelperTest : BaseUnitTest() {
- @Mock
- private lateinit var buildConfigWrapper: BuildConfigWrapper
-
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseOneConfig: JetpackFeatureRemovalPhaseOneConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseTwoConfig: JetpackFeatureRemovalPhaseTwoConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseThreeConfig: JetpackFeatureRemovalPhaseThreeConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalPhaseFourConfig: JetpackFeatureRemovalPhaseFourConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalNewUsersConfig: JetpackFeatureRemovalNewUsersConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalSelfHostedUsersConfig: JetpackFeatureRemovalSelfHostedUsersConfig
-
- @Mock
- private lateinit var jetpackFeatureRemovalStaticPostersConfig: JetpackFeatureRemovalStaticPostersConfig
-
- @Mock
- private lateinit var phaseFourOverlayFrequencyConfig: PhaseFourOverlayFrequencyConfig
-
- @Mock
- private lateinit var analyticsTrackerWrapper: AnalyticsTrackerWrapper
-
- private lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
- @Before
- fun setup() {
- jetpackFeatureRemovalPhaseHelper = JetpackFeatureRemovalPhaseHelper(
- buildConfigWrapper,
- jetpackFeatureRemovalPhaseOneConfig,
- jetpackFeatureRemovalPhaseTwoConfig,
- jetpackFeatureRemovalPhaseThreeConfig,
- jetpackFeatureRemovalPhaseFourConfig,
- jetpackFeatureRemovalNewUsersConfig,
- jetpackFeatureRemovalSelfHostedUsersConfig,
- jetpackFeatureRemovalStaticPostersConfig,
- phaseFourOverlayFrequencyConfig,
- analyticsTrackerWrapper
- )
- }
-
- // general phase tests
- @Test
- fun `given jetpack app, when current phase is fetched, then return null`() {
- whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertNull(currentPhase)
- }
-
- @Test
- fun `given phase one config true, when current phase is fetched, then return phase one`() {
- whenever(jetpackFeatureRemovalPhaseOneConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseOne)
- }
-
- @Test
- fun `given phase two config true, when current phase is fetched, then return phase two`() {
- whenever(jetpackFeatureRemovalPhaseTwoConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseTwo)
- }
-
- @Test
- fun `given phase three config true, when current phase is fetched, then return phase three`() {
- whenever(jetpackFeatureRemovalPhaseThreeConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseThree)
- }
-
- @Test
- fun `given phase four config true, when current phase is fetched, then return phase four`() {
- whenever(jetpackFeatureRemovalPhaseFourConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseFour)
- }
-
- @Test
- fun `given phase new users config true, when current phase is fetched, then return phase new users`() {
- whenever(jetpackFeatureRemovalNewUsersConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseNewUsers)
- }
-
- @Test
- fun `given self hosted users config true, when current phase is fetched, then return self hosted users config`() {
- whenever(jetpackFeatureRemovalSelfHostedUsersConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, PhaseSelfHostedUsers)
- }
-
- @Test
- fun `given static posters config true, when current phase is fetched, then return static posters config`() {
- whenever(jetpackFeatureRemovalStaticPostersConfig.isEnabled()).thenReturn(true)
-
- val currentPhase = jetpackFeatureRemovalPhaseHelper.getCurrentPhase()
-
- assertEquals(currentPhase, JetpackFeatureRemovalPhase.PhaseStaticPosters)
- }
-
- @Test
- fun `given it is the Jetpack app, when we track reader accessed event, then the proper event is tracked`() {
- whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
-
- jetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.READER)
-
- verify(analyticsTrackerWrapper, times(1)).track(AnalyticsTracker.Stat.READER_ACCESSED)
- }
-
- @Test
- fun `given we do not show static posters, when we track reader accessed event, then the proper event is tracked`() {
- whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
- whenever(jetpackFeatureRemovalStaticPostersConfig.isEnabled()).thenReturn(false)
-
- jetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.READER)
-
- verify(analyticsTrackerWrapper, times(1)).track(AnalyticsTracker.Stat.READER_ACCESSED)
- }
-
- @Test
- fun `given we do show static posters, when we track reader accessed event, then the event is not tracked`() {
- whenever(jetpackFeatureRemovalStaticPostersConfig.isEnabled()).thenReturn(true)
-
- jetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.READER)
-
- verify(analyticsTrackerWrapper, never()).track(AnalyticsTracker.Stat.READER_ACCESSED)
- }
-
- @Test
- fun `given we show static posters, when we track my site accessed event, then the proper event is tracked`() {
- val site = SiteModel()
-
- jetpackFeatureRemovalPhaseHelper.trackPageAccessedEventIfNeeded(WPMainNavigationView.PageType.MY_SITE, site)
-
- verify(analyticsTrackerWrapper, times(1)).track(AnalyticsTracker.Stat.MY_SITE_ACCESSED, site)
- }
-}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/AccountDataViewModelSliceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/AccountDataViewModelSliceTest.kt
index bff42c114430..193d9883becb 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/AccountDataViewModelSliceTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/AccountDataViewModelSliceTest.kt
@@ -9,7 +9,7 @@ import org.mockito.kotlin.whenever
import org.wordpress.android.BaseUnitTest
import org.wordpress.android.fluxc.model.AccountModel
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.mysite.MySiteUiState.PartialState.AccountData
import org.wordpress.android.util.BuildConfigWrapper
import kotlin.test.assertEquals
@@ -23,7 +23,7 @@ class AccountDataViewModelSliceTest : BaseUnitTest() {
lateinit var buildConfigWrapper: BuildConfigWrapper
@Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private lateinit var viewModelSlice: AccountDataViewModelSlice
@@ -36,7 +36,7 @@ class AccountDataViewModelSliceTest : BaseUnitTest() {
viewModelSlice = AccountDataViewModelSlice(
accountStore,
buildConfigWrapper,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
viewModelSlice.initialize(testScope())
isRefreshing = mutableListOf()
@@ -59,7 +59,7 @@ class AccountDataViewModelSliceTest : BaseUnitTest() {
@Test
fun `given wp app, when in not correct phase, card is not built`() = test {
whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(false)
viewModelSlice.onResume()
@@ -69,7 +69,7 @@ class AccountDataViewModelSliceTest : BaseUnitTest() {
@Test
fun `given wp app, when in correct phase, card is built`() = test {
whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
val accountModel = getAccountData()
whenever(accountStore.account).thenReturn(accountModel)
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/DashboardItemsViewModelSliceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/DashboardItemsViewModelSliceTest.kt
index 3425fb5ff15b..8b9acd5580fa 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/DashboardItemsViewModelSliceTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/DashboardItemsViewModelSliceTest.kt
@@ -17,11 +17,8 @@ import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.wordpress.android.BaseUnitTest
import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.mysite.cards.jetpackfeature.JetpackFeatureCardHelper
import org.wordpress.android.ui.mysite.cards.sotw2023.WpSotw2023NudgeCardViewModelSlice
import org.wordpress.android.ui.mysite.items.DashboardItemsViewModelSlice
-import org.wordpress.android.ui.mysite.items.jetpackBadge.JetpackBadgeViewModelSlice
-import org.wordpress.android.ui.mysite.items.jetpackSwitchmenu.JetpackSwitchMenuViewModelSlice
import org.wordpress.android.ui.mysite.items.jetpackfeaturecard.JetpackFeatureCardViewModelSlice
import org.wordpress.android.ui.mysite.items.listitem.SiteItemsViewModelSlice
import org.wordpress.android.ui.pages.SnackbarMessageHolder
@@ -33,21 +30,12 @@ class DashboardItemsViewModelSliceTest: BaseUnitTest() {
@Mock
lateinit var jetpackFeatureCardViewModelSlice: JetpackFeatureCardViewModelSlice
- @Mock
- lateinit var jetpackSwitchMenuViewModelSlice: JetpackSwitchMenuViewModelSlice
-
- @Mock
- lateinit var jetpackBadgeViewModelSlice: JetpackBadgeViewModelSlice
-
@Mock
lateinit var siteItemsViewModelSlice: SiteItemsViewModelSlice
@Mock
lateinit var sotw2023NudgeCardViewModelSlice: WpSotw2023NudgeCardViewModelSlice
- @Mock
- lateinit var jetpackFeatureCardHelper: JetpackFeatureCardHelper
-
@Mock
lateinit var selectedSiteRepository: SelectedSiteRepository
@@ -63,19 +51,14 @@ class DashboardItemsViewModelSliceTest: BaseUnitTest() {
@Before
fun setup() {
whenever(jetpackFeatureCardViewModelSlice.uiModel).thenReturn(MutableLiveData())
- whenever(jetpackSwitchMenuViewModelSlice.uiModel).thenReturn(MutableLiveData())
- whenever(jetpackBadgeViewModelSlice.uiModel).thenReturn(MutableLiveData())
whenever(siteItemsViewModelSlice.uiModel).thenReturn(MutableLiveData())
whenever(sotw2023NudgeCardViewModelSlice.uiModel).thenReturn(MutableLiveData())
dashboardItemsViewModelSlice = DashboardItemsViewModelSlice(
testDispatcher(),
jetpackFeatureCardViewModelSlice,
- jetpackSwitchMenuViewModelSlice,
- jetpackBadgeViewModelSlice,
siteItemsViewModelSlice,
- sotw2023NudgeCardViewModelSlice,
- jetpackFeatureCardHelper
+ sotw2023NudgeCardViewModelSlice
)
navigationActions = mutableListOf()
@@ -112,8 +95,6 @@ class DashboardItemsViewModelSliceTest: BaseUnitTest() {
verify(siteItemsViewModelSlice, atLeastOnce()).buildSiteItems(any())
verify(jetpackFeatureCardViewModelSlice, atMost(1)).buildJetpackFeatureCard()
- verify(jetpackSwitchMenuViewModelSlice, atMost(1)).buildJetpackSwitchMenu()
- verify(jetpackBadgeViewModelSlice, atMost(1)).buildJetpackBadge()
verify(siteItemsViewModelSlice, atMost(1)).buildSiteItems(mockSite)
verify(sotw2023NudgeCardViewModelSlice, atMost(1)).buildCard()
}
@@ -125,8 +106,6 @@ class DashboardItemsViewModelSliceTest: BaseUnitTest() {
verify(siteItemsViewModelSlice).clearValue()
verify(jetpackFeatureCardViewModelSlice).clearValue()
- verify(jetpackSwitchMenuViewModelSlice).clearValue()
- verify(jetpackBadgeViewModelSlice).clearValue()
verify(sotw2023NudgeCardViewModelSlice).clearValue()
}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandlerTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandlerTest.kt
index c0e924236278..8753966eb02e 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandlerTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/ListItemActionHandlerTest.kt
@@ -13,7 +13,6 @@ import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.ui.blaze.BlazeFeatureUtils
import org.wordpress.android.ui.blaze.BlazeFlowSource
import org.wordpress.android.ui.blaze.blazecampaigns.campaignlisting.CampaignListingPageSource
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.mysite.SiteNavigationAction
import org.wordpress.android.ui.mysite.items.listitem.ListItemAction
import org.wordpress.android.ui.newstats.NewStatsRouting
@@ -25,9 +24,6 @@ class ListItemActionHandlerTest: BaseUnitTest() {
@Mock
lateinit var accountStore: AccountStore
- @Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
@Mock
lateinit var blazeFeatureUtils: BlazeFeatureUtils
@@ -42,7 +38,6 @@ class ListItemActionHandlerTest: BaseUnitTest() {
fun setup() {
listItemActionHandler = ListItemActionHandler(
accountStore,
- jetpackFeatureRemovalPhaseHelper,
blazeFeatureUtils,
newStatsRouting
)
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSliceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSliceTest.kt
index e2a03a5365f6..14f145a68ade 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSliceTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/dashboard/todaysstats/TodaysStatsViewModelSliceTest.kt
@@ -12,7 +12,6 @@ import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.wordpress.android.BaseUnitTest
import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.mysite.MySiteCardAndItem
import org.wordpress.android.ui.mysite.SelectedSiteRepository
import org.wordpress.android.ui.mysite.SiteNavigationAction
@@ -29,9 +28,6 @@ class TodaysStatsViewModelSliceTest : BaseUnitTest() {
@Mock
lateinit var selectedSiteRepository: SelectedSiteRepository
- @Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
@Mock
lateinit var appPrefsWrapper: AppPrefsWrapper
@@ -54,7 +50,6 @@ class TodaysStatsViewModelSliceTest : BaseUnitTest() {
todaysStatsViewModelSlice = TodaysStatsViewModelSlice(
cardsTracker,
selectedSiteRepository,
- jetpackFeatureRemovalPhaseHelper,
appPrefsWrapper,
todaysStatsCardBuilder,
newStatsRouting
@@ -114,18 +109,6 @@ class TodaysStatsViewModelSliceTest : BaseUnitTest() {
assertThat(navigationActions).containsOnly(SiteNavigationAction.OpenNewStatsForToday)
}
- @Test
- fun `given static posters phase, when card item is clicked, then static posters view is shown`() =
- test {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowStaticPage()).thenReturn(true)
-
- val params = todaysStatsViewModelSlice.getTodaysStatsBuilderParams(null)
-
- params.onTodaysStatsCardClick()
-
- assertThat(navigationActions).containsOnly(SiteNavigationAction.ShowJetpackRemovalStaticPostersView)
- }
-
@Test
fun `given today's stat card, when get more views url is clicked, then external link is opened`() =
test {
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelperTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelperTest.kt
index 4a03f04aaf9e..9db6bb377c86 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelperTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/cards/jetpackfeature/JetpackFeatureCardHelperTest.kt
@@ -8,8 +8,6 @@ import org.mockito.Mock
import org.mockito.junit.MockitoJUnitRunner
import org.mockito.kotlin.any
import org.mockito.kotlin.whenever
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhase
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.util.BuildConfigWrapper
import org.wordpress.android.util.DateTimeUtils
@@ -32,9 +30,6 @@ class JetpackFeatureCardHelperTest {
@Mock
lateinit var dateTimeUtilsWrapper: DateTimeUtilsWrapper
- @Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
-
@Mock
lateinit var phaseThreeBlogPostLinkConfig: PhaseThreeBlogPostLinkConfig
@@ -47,7 +42,6 @@ class JetpackFeatureCardHelperTest {
appPrefsWrapper,
buildConfigWrapper,
dateTimeUtilsWrapper,
- jetpackFeatureRemovalPhaseHelper,
phaseThreeBlogPostLinkConfig
)
}
@@ -61,24 +55,6 @@ class JetpackFeatureCardHelperTest {
assertThat(result).isFalse
}
- @Test
- fun `when not third phase, then jetpack feature card should not show`() {
- setTest(phase = JetpackFeatureRemovalPhase.PhaseTwo)
-
- val result = helper.shouldShowJetpackFeatureCard()
-
- assertThat(result).isFalse
- }
-
- @Test
- fun `when phase three, then jetpack feature card should show`() {
- setTest(phase = JetpackFeatureRemovalPhase.PhaseThree)
-
- val result = helper.shouldShowJetpackFeatureCard()
-
- assertThat(result).isTrue
- }
-
@Test
fun `when hide card has been set, then jetpack feature card should not shown`() {
setTest(isCardHiddenByUser = true)
@@ -107,33 +83,28 @@ class JetpackFeatureCardHelperTest {
}
private fun setTest(
- phase: JetpackFeatureRemovalPhase = JetpackFeatureRemovalPhase.PhaseThree,
isJetpackApp: Boolean = false,
isCardHiddenByUser: Boolean = false,
lastShownTimestamp: Long = 0L
) {
- setPhase(phase)
setIsJetpackApp(isJetpackApp)
- setIsCardHiddenByUser(phase, isCardHiddenByUser)
- setLastShownTimestamp(phase, lastShownTimestamp)
+ setIsCardHiddenByUser(isCardHiddenByUser)
+ setLastShownTimestamp(lastShownTimestamp)
setDaysBetween(lastShownTimestamp)
}
// Helpers
- private fun setPhase(value: JetpackFeatureRemovalPhase) {
- whenever(jetpackFeatureRemovalPhaseHelper.getCurrentPhase()).thenReturn(value)
- }
private fun setIsJetpackApp(value: Boolean) {
whenever(buildConfigWrapper.isJetpackApp).thenReturn(value)
}
- private fun setIsCardHiddenByUser(phase: JetpackFeatureRemovalPhase, value: Boolean) {
- whenever(appPrefsWrapper.getShouldHideJetpackFeatureCard(phase)).thenReturn(value)
+ private fun setIsCardHiddenByUser(value: Boolean) {
+ whenever(appPrefsWrapper.getShouldHideJetpackFeatureCard()).thenReturn(value)
}
- private fun setLastShownTimestamp(phase: JetpackFeatureRemovalPhase, value: Long) {
- whenever(appPrefsWrapper.getJetpackFeatureCardLastShownTimestamp(phase)).thenReturn(value)
+ private fun setLastShownTimestamp(value: Long) {
+ whenever(appPrefsWrapper.getJetpackFeatureCardLastShownTimestamp()).thenReturn(value)
}
private fun setDaysBetween(lastShownTimestamp: Long) {
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSliceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSliceTest.kt
deleted file mode 100644
index e08bb1e68125..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackBadge/JetpackBadgeViewModelSliceTest.kt
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.wordpress.android.ui.mysite.items.jetpackBadge
-
-import junit.framework.TestCase.assertEquals
-import junit.framework.TestCase.assertNull
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.models.JetpackPoweredScreen
-import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.SiteNavigationAction
-import org.wordpress.android.ui.utils.UiString
-import org.wordpress.android.util.JetpackBrandingUtils
-
-@ExperimentalCoroutinesApi
-@RunWith(MockitoJUnitRunner::class)
-class JetpackBadgeViewModelSliceTest : BaseUnitTest() {
- @Mock
- lateinit var jetpackBrandingUtils: JetpackBrandingUtils
-
- private lateinit var viewModelSlice: JetpackBadgeViewModelSlice
-
- private lateinit var uiModels: MutableList
-
- private lateinit var navigationEvents: MutableList
-
- @Before
- fun setUp() {
- viewModelSlice = JetpackBadgeViewModelSlice(jetpackBrandingUtils)
-
- uiModels = mutableListOf()
- viewModelSlice.uiModel.observeForever {
- uiModels.add(it)
- }
-
- navigationEvents = mutableListOf()
- viewModelSlice.onNavigation.observeForever {
- it?.let { navigationEvents.add(it.peekContent()) }
- }
- }
-
- @Test
- fun `given jetpack branding should not be shown, ui model is null`() = test {
- // given
- whenever(jetpackBrandingUtils.shouldShowJetpackBrandingInDashboard()).thenReturn(false)
-
- // when
- viewModelSlice.buildJetpackBadge()
- advanceUntilIdle()
-
- // then
- assertNull(uiModels[0])
- }
-
- @Test
- fun `given jetpack branding should be shown, ui model is not null`() = test {
- // given
- val brandingText = UiString.UiStringText("Jetpack")
- whenever(jetpackBrandingUtils.shouldShowJetpackBrandingInDashboard()).thenReturn(true)
- whenever(jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()).thenReturn(true)
- whenever(jetpackBrandingUtils.getBrandingTextForScreen(JetpackPoweredScreen.WithStaticText.HOME))
- .thenReturn(brandingText)
-
- // when
- viewModelSlice.buildJetpackBadge()
-
- // then
- assertEquals(1, uiModels.size)
- assertEquals(brandingText, uiModels[0]?.text)
- }
-
- @Test
- fun `given jetpack branding should be shown, when badge is clicked, then navigation event is emitted`() = test {
- // given
- val brandingText = UiString.UiStringText("Jetpack")
- whenever(jetpackBrandingUtils.shouldShowJetpackBrandingInDashboard()).thenReturn(true)
- whenever(jetpackBrandingUtils.shouldShowJetpackPoweredBottomSheet()).thenReturn(true)
- whenever(jetpackBrandingUtils.getBrandingTextForScreen(JetpackPoweredScreen.WithStaticText.HOME))
- .thenReturn(brandingText)
-
- // when
- viewModelSlice.buildJetpackBadge()
- uiModels[0]?.onClick?.click()
-
- // then
- assertEquals(1, navigationEvents.size)
- assertEquals(SiteNavigationAction.OpenJetpackPoweredBottomSheet, navigationEvents[0])
- }
-}
-
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSliceTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSliceTest.kt
deleted file mode 100644
index 275744d2dfcf..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/jetpackSwitchmenu/JetpackSwitchMenuViewModelSliceTest.kt
+++ /dev/null
@@ -1,144 +0,0 @@
-package org.wordpress.android.ui.mysite.items.jetpackSwitchmenu
-
-import junit.framework.TestCase.assertNull
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import org.assertj.core.api.Assertions.assertThat
-import org.junit.Before
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnitRunner
-import org.mockito.kotlin.any
-import org.mockito.kotlin.verify
-import org.mockito.kotlin.whenever
-import org.wordpress.android.BaseUnitTest
-import org.wordpress.android.analytics.AnalyticsTracker
-import org.wordpress.android.ui.mysite.MySiteCardAndItem
-import org.wordpress.android.ui.mysite.SiteNavigationAction
-import org.wordpress.android.ui.mysite.cards.jetpackfeature.JetpackFeatureCardHelper
-import org.wordpress.android.ui.prefs.AppPrefsWrapper
-import kotlin.test.Test
-import kotlin.test.assertNotNull
-
-@ExperimentalCoroutinesApi
-@RunWith(MockitoJUnitRunner::class)
-class JetpackSwitchMenuViewModelSliceTest: BaseUnitTest(){
- @Mock
- lateinit var appPrefsWrapper: AppPrefsWrapper
-
- @Mock
- lateinit var jetpackFeatureCardHelper: JetpackFeatureCardHelper
-
- private lateinit var viewModelSlice: JetpackSwitchMenuViewModelSlice
-
- private lateinit var uiModels: MutableList
-
- private lateinit var navigationEvents: MutableList
-
- @Before
- fun setUp() {
- viewModelSlice = JetpackSwitchMenuViewModelSlice(
- jetpackFeatureCardHelper,
- appPrefsWrapper
- )
-
- uiModels = mutableListOf()
- viewModelSlice.uiModel.observeForever {
- uiModels.add(it)
- }
-
- navigationEvents = mutableListOf()
- viewModelSlice.onNavigation.observeForever {
- it?.let { navigationEvents.add(it.peekContent()) }
- }
- }
-
- @Test
-fun `given jetpack feature card should not be shown, ui model is null`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(false)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
-
- // then
- assertNull(uiModels[0])
- }
-
- @Test
- fun `given jetpack feature card should be shown, ui model is not null`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(true)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
-
- // then
- assertNotNull(uiModels[0])
- }
-
- @Test
- fun `given card shown, when clicked, then navigation event is emitted`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(true)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
- uiModels[0]?.onClick?.click()
- advanceUntilIdle()
-
- // then
- verify(jetpackFeatureCardHelper).track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_TAPPED)
- assertThat(navigationEvents[0]).isInstanceOf(SiteNavigationAction.OpenJetpackFeatureOverlay::class.java)
- }
-
- @Test
- fun `given card shown, when remind me later clicked, then ui model is null`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(true)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
- uiModels[0]?.onRemindMeLaterItemClick?.click()
- advanceUntilIdle()
-
- // then
- verify(jetpackFeatureCardHelper).track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_REMIND_LATER_TAPPED)
- verify(appPrefsWrapper).setSwitchToJetpackMenuCardLastShownTimestamp(any())
- assertNull(uiModels[1])
- }
-
- @Test
- fun `given card shown, when hide menu item clicked, then ui model is null`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(true)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
- uiModels[0]?.onHideMenuItemClick?.click()
- advanceUntilIdle()
-
- // then
- verify(jetpackFeatureCardHelper).hideSwitchToJetpackMenuCard()
- assertNull(uiModels[1])
- }
-
- @Test
- fun `given card shown, when more menu clicked, then analytics is tracked`() = test {
- // given
- whenever(jetpackFeatureCardHelper.shouldShowSwitchToJetpackMenuCard()).thenReturn(true)
-
- // when
- viewModelSlice.buildJetpackSwitchMenu()
- advanceUntilIdle()
- uiModels[0]?.onMoreMenuClick?.click()
- advanceUntilIdle()
-
- // then
- verify(jetpackFeatureCardHelper).track(AnalyticsTracker.Stat.REMOVE_FEATURE_CARD_MENU_ACCESSED)
- }
-}
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilderTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilderTest.kt
index 4b557a9d8090..f9a5186d29fc 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilderTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/mysite/items/listitem/SiteListItemBuilderTest.kt
@@ -10,7 +10,7 @@ import org.mockito.kotlin.whenever
import org.wordpress.android.fluxc.model.AccountModel
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.store.AccountStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.mysite.items.ACTIVITY_ITEM
import org.wordpress.android.ui.mysite.items.ADMIN_ITEM
import org.wordpress.android.ui.mysite.items.BACKUP_ITEM
@@ -51,7 +51,7 @@ class SiteListItemBuilderTest {
lateinit var siteModel: SiteModel
@Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Mock
lateinit var siteMonitoringFeatureConfig: SiteMonitoringFeatureConfig
@@ -72,7 +72,7 @@ class SiteListItemBuilderTest {
siteUtilsWrapper,
buildConfigWrapper,
themeBrowserUtils,
- jetpackFeatureRemovalPhaseHelper,
+ jetpackFeatureRemovalHelper,
siteMonitoringFeatureConfig,
selfHostedUsersFeatureConfig,
siteCapabilityChecker
@@ -342,7 +342,7 @@ class SiteListItemBuilderTest {
// for every site regardless of capabilities.
@Test
fun `me item built when jetpack features are removed, regardless of site capabilities`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(true)
val item = siteListItemBuilder.buildMeItemIfAvailable(SITE_ITEM_ACTION)
@@ -351,7 +351,7 @@ class SiteListItemBuilderTest {
@Test
fun `me item not built when jetpack features are not removed`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldRemoveJetpackFeatures()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldRemoveJetpackFeatures()).thenReturn(false)
val item = siteListItemBuilder.buildMeItemIfAvailable(SITE_ITEM_ACTION)
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/notifications/NotificationsListViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/notifications/NotificationsListViewModelTest.kt
index 316d94a0f9aa..adb69b285695 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/notifications/NotificationsListViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/notifications/NotificationsListViewModelTest.kt
@@ -26,7 +26,6 @@ import org.wordpress.android.fluxc.utils.AppLogWrapper
import org.wordpress.android.models.Note
import org.wordpress.android.models.ReaderPost
import org.wordpress.android.push.GCMMessageHandler
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
import org.wordpress.android.ui.notifications.utils.NotificationsActionsWrapper
import org.wordpress.android.ui.notifications.utils.NotificationsUtilsWrapper
import org.wordpress.android.ui.prefs.AppPrefsWrapper
@@ -44,9 +43,6 @@ class NotificationsListViewModelTest : BaseUnitTest() {
@Mock
private lateinit var appPrefsWrapper: AppPrefsWrapper
- @Mock
- private lateinit var jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
-
@Mock
private lateinit var gcmMessageHandler: GCMMessageHandler
@@ -100,7 +96,6 @@ class NotificationsListViewModelTest : BaseUnitTest() {
testDispatcher(),
testDispatcher(),
appPrefsWrapper,
- jetpackFeatureRemovalOverlayUtil,
gcmMessageHandler,
networkUtilsWrapper,
toastUtilsWrapper,
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/posts/PostListMainViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/posts/PostListMainViewModelTest.kt
index d3dd0494ea51..8d6aee6a694d 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/posts/PostListMainViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/posts/PostListMainViewModelTest.kt
@@ -17,7 +17,7 @@ import org.wordpress.android.fluxc.Dispatcher
import org.wordpress.android.fluxc.model.LocalOrRemoteId.LocalId
import org.wordpress.android.fluxc.model.PostModel
import org.wordpress.android.fluxc.model.SiteModel
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.uploads.UploadStarter
import org.wordpress.android.viewmodel.Event
@@ -41,7 +41,7 @@ class PostListMainViewModelTest : BaseUnitTest() {
lateinit var savePostToDbUseCase: SavePostToDbUseCase
@Mock
- lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
private lateinit var viewModel: PostListMainViewModel
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModelTest.kt
index bcda10450de5..2a8fafa527e2 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/reader/viewmodels/ReaderViewModelTest.kt
@@ -11,7 +11,6 @@ import org.mockito.kotlin.whenever
import org.wordpress.android.BaseUnitTest
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.models.ReaderTagList
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.reader.tracker.ReaderTracker
import org.wordpress.android.ui.reader.usecases.LoadReaderItemsUseCase
@@ -47,9 +46,6 @@ class ReaderViewModelTest : BaseUnitTest() {
@Mock
lateinit var jetpackBrandingUtils: JetpackBrandingUtils
- @Mock
- lateinit var jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
-
@Mock
lateinit var readerTagsFeedFeatureConfig: ReaderTagsFeedFeatureConfig
@@ -66,7 +62,6 @@ class ReaderViewModelTest : BaseUnitTest() {
readerTracker,
accountStore,
jetpackBrandingUtils,
- jetpackFeatureRemovalOverlayUtil,
ReaderTopBarMenuHelper(readerTagsFeedFeatureConfig),
urlUtilsWrapper,
readerTagsFeedFeatureConfig,
diff --git a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/StatsViewModelTest.kt b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/StatsViewModelTest.kt
index 77904a2751f1..88d78d38c258 100644
--- a/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/StatsViewModelTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/ui/stats/refresh/StatsViewModelTest.kt
@@ -23,8 +23,6 @@ import org.wordpress.android.analytics.AnalyticsTracker.Stat.STATS_PERIOD_YEARS_
import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.network.utils.StatsGranularity
import org.wordpress.android.fluxc.store.StatsStore
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalOverlayUtil
-import org.wordpress.android.ui.jetpackoverlay.JetpackOverlayConnectedFeature.STATS
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.ui.pages.SnackbarMessageHolder
import org.wordpress.android.ui.stats.refresh.StatsViewModel.StatsModuleUiModel
@@ -95,9 +93,6 @@ class StatsViewModelTest : BaseUnitTest() {
@Mock
lateinit var jetpackBrandingUtils: JetpackBrandingUtils
- @Mock
- lateinit var jetpackFeatureRemovalOverlayUtil: JetpackFeatureRemovalOverlayUtil
-
@Mock
lateinit var trafficSubscribersTabFeatureConfig: StatsTrafficSubscribersTabsFeatureConfig
private lateinit var viewModel: StatsViewModel
@@ -126,7 +121,6 @@ class StatsViewModelTest : BaseUnitTest() {
statsModuleActivateUseCase,
notificationsTracker,
jetpackBrandingUtils,
- jetpackFeatureRemovalOverlayUtil,
trafficSubscribersTabFeatureConfig
)
@@ -311,32 +305,6 @@ class StatsViewModelTest : BaseUnitTest() {
assertThat(showJetpackPoweredBottomSheetEvent.last().peekContent()).isFalse
}
- @Test
- fun `given wp app, when jetpack overlay feature is false, then jp fullscreen overlay is not shown`() {
- val showJetpackOverlayEvent = mutableListOf>(Event(false))
- viewModel.showJetpackOverlay.observeForever {
- showJetpackOverlayEvent.add(it)
- }
- whenever(jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(STATS)).thenReturn(false)
-
- startViewModel()
-
- assertThat(showJetpackOverlayEvent.last().peekContent()).isFalse
- }
-
- @Test
- fun `given wp app, when jetpack overlay feature is true, then jp fullscreen overlay is shown`() {
- val showJetpackOverlayEvent = mutableListOf>(Event(false))
- viewModel.showJetpackOverlay.observeForever {
- showJetpackOverlayEvent.add(it)
- }
- whenever(jetpackFeatureRemovalOverlayUtil.shouldShowFeatureSpecificJetpackOverlay(STATS)).thenReturn(true)
-
- startViewModel()
-
- assertThat(showJetpackOverlayEvent.last().peekContent()).isTrue()
- }
-
private fun initObservers(): Observers {
val uiModelChangeObserver = mutableListOf()
viewModel.statsModuleUiModel.observeForever { uiModelChangeObserver.add(it.peekContent()) }
diff --git a/WordPress/src/test/java/org/wordpress/android/util/analytics/AnalyticsTrackerNosaraTest.kt b/WordPress/src/test/java/org/wordpress/android/util/analytics/AnalyticsTrackerNosaraTest.kt
index 31c05444bd36..9d257171410c 100644
--- a/WordPress/src/test/java/org/wordpress/android/util/analytics/AnalyticsTrackerNosaraTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/util/analytics/AnalyticsTrackerNosaraTest.kt
@@ -237,10 +237,8 @@ class AnalyticsTrackerNosaraTest {
Stat.BLOGGING_PROMPTS_INTRODUCTION_GOT_IT_CLICKED to "blogging_prompts_introduction_modal_got_it_tapped",
Stat.BLOGGING_PROMPTS_LIST_SCREEN_VIEWED to "blogging_prompts_prompts_list_viewed",
Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISPLAYED to "remove_feature_overlay_displayed",
- Stat.JETPACK_REMOVE_FEATURE_OVERLAY_LINK_TAPPED to "remove_feature_overlay_link_tapped",
Stat.JETPACK_REMOVE_FEATURE_OVERLAY_BUTTON_GET_JETPACK_APP_TAPPED to "remove_feature_overlay_button_tapped",
Stat.JETPACK_REMOVE_FEATURE_OVERLAY_DISMISSED to "remove_feature_overlay_dismissed",
- Stat.JETPACK_REMOVE_FEATURE_OVERLAY_LEARN_MORE_TAPPED to "remove_feature_overlay_link_tapped",
Stat.JETPACK_INSTALL_FULL_PLUGIN_CARD_VIEWED to "jp_install_full_plugin_card_viewed",
Stat.JETPACK_INSTALL_FULL_PLUGIN_CARD_TAPPED to "jp_install_full_plugin_card_tapped",
Stat.JETPACK_INSTALL_FULL_PLUGIN_CARD_DISMISSED to "jp_install_full_plugin_card_dismissed",
diff --git a/WordPress/src/test/java/org/wordpress/android/util/config/JPDeadlineConfigStub.kt b/WordPress/src/test/java/org/wordpress/android/util/config/JPDeadlineConfigStub.kt
deleted file mode 100644
index 1c2d8020f27b..000000000000
--- a/WordPress/src/test/java/org/wordpress/android/util/config/JPDeadlineConfigStub.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.wordpress.android.util.config
-
-import org.mockito.kotlin.mock
-
-class JPDeadlineConfigStub(
- val appConfig: AppConfig = mock(),
- val instance: JPDeadlineConfig = JPDeadlineConfig(appConfig),
-)
diff --git a/WordPress/src/test/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelperTest.kt b/WordPress/src/test/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelperTest.kt
index 48fc79197b3a..7fa955b4d190 100644
--- a/WordPress/src/test/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelperTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/viewmodel/posts/PostListItemUiStateHelperTest.kt
@@ -19,7 +19,7 @@ import org.wordpress.android.fluxc.store.PostStore.PostError
import org.wordpress.android.fluxc.store.PostStore.PostErrorType
import org.wordpress.android.fluxc.store.UploadStore.UploadError
import org.wordpress.android.ui.blaze.BlazeFeatureUtils
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.posts.AuthorFilterSelection
import org.wordpress.android.ui.posts.PostModelUploadStatusTracker
import org.wordpress.android.ui.prefs.AppPrefsWrapper
@@ -62,7 +62,7 @@ class PostListItemUiStateHelperTest {
private lateinit var labelColorUseCase: PostPageListLabelColorUseCase
@Mock
- private lateinit var jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper
+ private lateinit var jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper
@Mock
private lateinit var blazeFeatureUtils: BlazeFeatureUtils
@@ -78,7 +78,7 @@ class PostListItemUiStateHelperTest {
appPrefsWrapper,
uploadUiStateUseCase,
labelColorUseCase,
- jetpackFeatureRemovalPhaseHelper,
+ jetpackFeatureRemovalHelper,
blazeFeatureUtils,
buildConfigWrapper
)
@@ -254,7 +254,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given wordpress app, verify published post actions`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
@@ -273,7 +273,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given jetpack app, verify published post actions`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
@@ -330,7 +330,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given wordpress app, published post with stats access when jetpack removal phase then stats is in menu`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
@@ -349,7 +349,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given jetpack app, published post with stats access when jetpack removal phase then stats is in menu`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(true)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
@@ -369,7 +369,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given wordpress, published post with stats access when not jetpack removal phase then stats is not in menu`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(false)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(false)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
@@ -387,7 +387,7 @@ class PostListItemUiStateHelperTest {
@Test
fun `given jetpack, published post with stats access when not jetpack removal phase then stats is not in menu`() {
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowPublishedPostStatsButton()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldShowPublishedPostStatsButton()).thenReturn(false)
whenever(buildConfigWrapper.isJetpackApp).thenReturn(true)
val state = createPostListItemUiState(
post = createPostModel(status = POST_STATE_PUBLISH)
diff --git a/WordPress/src/test/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandlerTest.kt b/WordPress/src/test/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandlerTest.kt
index bf23269cf6e1..dd9af8db0f01 100644
--- a/WordPress/src/test/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandlerTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/workers/notification/bloggingprompts/BloggingPromptsOnboardingNotificationHandlerTest.kt
@@ -7,7 +7,7 @@ import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.push.NotificationType.BLOGGING_PROMPTS_ONBOARDING
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
class BloggingPromptsOnboardingNotificationHandlerTest {
@@ -15,18 +15,18 @@ class BloggingPromptsOnboardingNotificationHandlerTest {
private val systemNotificationsTracker: SystemNotificationsTracker = mock()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper = mock()
private val classToTest = BloggingPromptsOnboardingNotificationHandler(
accountStore,
systemNotificationsTracker,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
@Test
fun `Should show notification if user has access token`() {
whenever(accountStore.hasAccessToken()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(true)
val actual = classToTest.shouldShowNotification()
val expected = true
diff --git a/WordPress/src/test/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandlerTest.kt b/WordPress/src/test/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandlerTest.kt
index a734ae4abc0f..c292496466ff 100644
--- a/WordPress/src/test/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandlerTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/workers/notification/createsite/CreateSiteNotificationHandlerTest.kt
@@ -13,7 +13,7 @@ import org.wordpress.android.R
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.push.NotificationType.CREATE_SITE
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.viewmodel.ResourceProvider
@@ -26,7 +26,7 @@ class CreateSiteNotificationHandlerTest {
private val accountStore: AccountStore = mock()
private val siteStore: SiteStore = mock()
private val notificationsTracker: SystemNotificationsTracker = mock()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper = mock()
@Before
fun setUp() {
@@ -38,7 +38,7 @@ class CreateSiteNotificationHandlerTest {
accountStore,
siteStore,
notificationsTracker,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
}
@@ -92,7 +92,7 @@ class CreateSiteNotificationHandlerTest {
)
).thenReturn(true)
whenever(accountStore.hasAccessToken()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(true)
assertThat(createSiteNotificationHandler.shouldShowNotification()).isTrue
}
@@ -107,7 +107,7 @@ class CreateSiteNotificationHandlerTest {
).thenReturn(true)
whenever(accountStore.hasAccessToken()).thenReturn(true)
whenever(siteStore.hasSite()).thenReturn(false)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(true)
assertThat(createSiteNotificationHandler.shouldShowNotification()).isTrue
}
diff --git a/WordPress/src/test/java/org/wordpress/android/workers/reminder/PromptReminderNotifierTest.kt b/WordPress/src/test/java/org/wordpress/android/workers/reminder/PromptReminderNotifierTest.kt
index aeff06240b17..a7fa4ef51a7e 100644
--- a/WordPress/src/test/java/org/wordpress/android/workers/reminder/PromptReminderNotifierTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/workers/reminder/PromptReminderNotifierTest.kt
@@ -17,7 +17,7 @@ import org.wordpress.android.fluxc.store.BloggingRemindersStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.fluxc.store.bloggingprompts.BloggingPromptsStore
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersAnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.util.HtmlCompatWrapper
import org.wordpress.android.util.config.BloggingPromptsFeature
import org.wordpress.android.viewmodel.ContextProvider
@@ -37,7 +37,7 @@ class PromptReminderNotifierTest : BaseUnitTest() {
private val bloggingRemindersStore: BloggingRemindersStore = mock()
private val bloggingReminder: BloggingRemindersModel = mock()
private val htmlCompatWrapper: HtmlCompatWrapper = mock()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper = mock()
private val classToTest = PromptReminderNotifier(
@@ -51,7 +51,7 @@ class PromptReminderNotifierTest : BaseUnitTest() {
bloggingRemindersAnalyticsTracker = bloggingRemindersAnalyticsTracker,
htmlCompatWrapper = htmlCompatWrapper,
bloggingRemindersStore = bloggingRemindersStore,
- jetpackFeatureRemovalPhaseHelper = jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper = jetpackFeatureRemovalHelper
)
@Before
@@ -107,7 +107,7 @@ class PromptReminderNotifierTest : BaseUnitTest() {
)
whenever(bloggingPromptsFeature.isEnabled()).thenReturn(true)
whenever(accountStore.hasAccessToken()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(false)
whenever(siteStore.getSiteByLocalId(siteId)).thenReturn(siteModel)
assertFalse(classToTest.shouldNotify(123))
}
@@ -125,7 +125,7 @@ class PromptReminderNotifierTest : BaseUnitTest() {
)
whenever(bloggingPromptsFeature.isEnabled()).thenReturn(true)
whenever(accountStore.hasAccessToken()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(true)
whenever(siteStore.getSiteByLocalId(siteId)).thenReturn(siteModel)
assertTrue(classToTest.shouldNotify(siteId))
}
diff --git a/WordPress/src/test/java/org/wordpress/android/workers/reminder/ReminderNotifierTest.kt b/WordPress/src/test/java/org/wordpress/android/workers/reminder/ReminderNotifierTest.kt
index 727179ba284d..d3bdf483d44d 100644
--- a/WordPress/src/test/java/org/wordpress/android/workers/reminder/ReminderNotifierTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/workers/reminder/ReminderNotifierTest.kt
@@ -12,7 +12,7 @@ import org.wordpress.android.fluxc.model.SiteModel
import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.ui.bloggingreminders.BloggingRemindersAnalyticsTracker
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.viewmodel.ContextProvider
import org.wordpress.android.viewmodel.ResourceProvider
@@ -31,7 +31,7 @@ class ReminderNotifierTest {
private val accountStore: AccountStore = mock()
private val notificationManager: ReminderNotificationManager = mock()
private val analyticsTracker: BloggingRemindersAnalyticsTracker = mock()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper = mock()
@Before
fun setUp() {
@@ -42,7 +42,7 @@ class ReminderNotifierTest {
accountStore,
notificationManager,
analyticsTracker,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
}
diff --git a/WordPress/src/test/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifierTest.kt b/WordPress/src/test/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifierTest.kt
index 34c6d9c9ac5e..403b8d082318 100644
--- a/WordPress/src/test/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifierTest.kt
+++ b/WordPress/src/test/java/org/wordpress/android/workers/weeklyroundup/WeeklyRoundupNotifierTest.kt
@@ -21,7 +21,7 @@ import org.wordpress.android.fluxc.store.AccountStore
import org.wordpress.android.fluxc.store.SiteStore
import org.wordpress.android.push.NotificationPushIds.WEEKLY_ROUNDUP_NOTIFICATION_ID
import org.wordpress.android.push.NotificationType.WEEKLY_ROUNDUP
-import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalPhaseHelper
+import org.wordpress.android.ui.jetpackoverlay.JetpackFeatureRemovalHelper
import org.wordpress.android.ui.notifications.SystemNotificationsTracker
import org.wordpress.android.ui.prefs.AppPrefsWrapper
import org.wordpress.android.ui.stats.refresh.utils.StatsUtils
@@ -66,7 +66,7 @@ class WeeklyRoundupNotifierTest : BaseUnitTest() {
}
private val statsUtils: StatsUtils = mock()
- private val jetpackFeatureRemovalPhaseHelper: JetpackFeatureRemovalPhaseHelper = mock()
+ private val jetpackFeatureRemovalHelper: JetpackFeatureRemovalHelper = mock()
@Before
fun setUp() {
@@ -81,7 +81,7 @@ class WeeklyRoundupNotifierTest : BaseUnitTest() {
weeklyRoundupRepository,
appPrefs,
statsUtils,
- jetpackFeatureRemovalPhaseHelper
+ jetpackFeatureRemovalHelper
)
}
@@ -104,7 +104,7 @@ class WeeklyRoundupNotifierTest : BaseUnitTest() {
fun `should show notification when the user is logged in and has sites`() {
whenever(accountStore.hasAccessToken()).thenReturn(true)
whenever(siteStore.hasSitesAccessedViaWPComRest()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(true)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(true)
assertThat(weeklyRoundupNotifier.shouldShowNotifications()).isTrue
}
@@ -113,7 +113,7 @@ class WeeklyRoundupNotifierTest : BaseUnitTest() {
fun `should not show notification when the user is in jetpack feature removal phase`() {
whenever(accountStore.hasAccessToken()).thenReturn(true)
whenever(siteStore.hasSitesAccessedViaWPComRest()).thenReturn(true)
- whenever(jetpackFeatureRemovalPhaseHelper.shouldShowNotifications()).thenReturn(false)
+ whenever(jetpackFeatureRemovalHelper.shouldShowNotifications()).thenReturn(false)
assertThat(weeklyRoundupNotifier.shouldShowNotifications()).isFalse()
}
diff --git a/docs/test_instructions_per_dependency_update.md b/docs/test_instructions_per_dependency_update.md
index bc6f3def4097..bb0f5b2d3acb 100644
--- a/docs/test_instructions_per_dependency_update.md
+++ b/docs/test_instructions_per_dependency_update.md
@@ -577,15 +577,6 @@ all sites have this option.
-
- 1. [WP] Jetpack Static Poster [JetpackStaticPoster.kt]
-
-- TODO
-- TODO
-- TODO
-
-
-
1. [JP] Notifications Screen [NotificationsDetailListFragment.kt]
diff --git a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
index 6e895d6e3dc2..e5b3a3f333f9 100644
--- a/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
+++ b/libs/analytics/src/main/java/org/wordpress/android/analytics/AnalyticsTracker.java
@@ -921,11 +921,6 @@ public enum Stat {
QRLOGIN_VERIFY_DISMISS,
QRLOGIN_VERIFY_FAILED,
QRLOGIN_VERIFY_SCAN_AGAIN,
- JETPACK_POWERED_BANNER_TAPPED,
- JETPACK_POWERED_BADGE_TAPPED,
- REMOVE_STATIC_POSTER_DISPLAYED,
- REMOVE_STATIC_POSTER_GET_JETPACK_TAPPED,
- REMOVE_STATIC_POSTER_LINK_TAPPED,
JETPACK_POWERED_BOTTOM_SHEET_GET_JETPACK_APP_TAPPED,
JETPACK_POWERED_BOTTOM_SHEET_CONTINUE_TAPPED,
SHARED_LOGIN_START,
@@ -958,10 +953,8 @@ public enum Stat {
DEEPLINK_CUSTOM_INTENT_RECEIVED,
APP_SETTINGS_OPEN_WEB_LINKS_WITH_JETPACK_CHANGED,
JETPACK_REMOVE_FEATURE_OVERLAY_DISPLAYED("remove_feature_overlay_displayed"),
- JETPACK_REMOVE_FEATURE_OVERLAY_LINK_TAPPED("remove_feature_overlay_link_tapped"),
JETPACK_REMOVE_FEATURE_OVERLAY_BUTTON_GET_JETPACK_APP_TAPPED("remove_feature_overlay_button_tapped"),
JETPACK_REMOVE_FEATURE_OVERLAY_DISMISSED("remove_feature_overlay_dismissed"),
- JETPACK_REMOVE_FEATURE_OVERLAY_LEARN_MORE_TAPPED("remove_feature_overlay_link_tapped"),
JETPACK_DEEP_LINK_OVERLAY_DISPLAYED,
JETPACK_DEEP_LINK_OVERLAY_BUTTON_OPEN_IN_JETPACK_APP_TAPPED,
JETPACK_DEEP_LINK_OVERLAY_DISMISSED,