From 98b218d96416ef49997f194752af92b021161527 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Tue, 21 Sep 2021 13:37:35 -0400 Subject: [PATCH] For #21413 - Remove unused OnboardingPrivateBrowsingViewHolder and OnboardingWhatsNewViewHolder --- app/lint-baseline.xml | 11 --- app/metrics.yaml | 17 ---- .../mozilla/fenix/components/metrics/Event.kt | 1 - .../components/metrics/GleanMetricsService.kt | 3 - .../sessioncontrol/SessionControlAdapter.kt | 10 -- .../SessionControlController.kt | 23 ----- .../SessionControlInteractor.kt | 18 ---- .../OnboardingPrivateBrowsingViewHolder.kt | 95 ------------------- .../OnboardingWhatsNewViewHolder.kt | 35 ------- .../ic_onboarding_private_browsing.xml | 27 ------ .../drawable/ic_whats_new_notification.xml | 19 ---- .../layout/onboarding_private_browsing.xml | 58 ----------- .../main/res/layout/onboarding_whats_new.xml | 55 ----------- app/src/main/res/values/strings.xml | 14 +-- .../DefaultSessionControlControllerTest.kt | 24 ----- ...OnboardingPrivacyBrowsingViewHolderTest.kt | 40 -------- .../OnboardingWhatsNewViewHolderTest.kt | 72 -------------- 17 files changed, 7 insertions(+), 515 deletions(-) delete mode 100644 app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingPrivateBrowsingViewHolder.kt delete mode 100644 app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingWhatsNewViewHolder.kt delete mode 100644 app/src/main/res/drawable/ic_onboarding_private_browsing.xml delete mode 100644 app/src/main/res/drawable/ic_whats_new_notification.xml delete mode 100644 app/src/main/res/layout/onboarding_private_browsing.xml delete mode 100644 app/src/main/res/layout/onboarding_whats_new.xml delete mode 100644 app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingPrivacyBrowsingViewHolderTest.kt delete mode 100644 app/src/test/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingWhatsNewViewHolderTest.kt diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml index fd364452b..34621d0f3 100644 --- a/app/lint-baseline.xml +++ b/app/lint-baseline.xml @@ -7422,17 +7422,6 @@ column="1"/> - - - - ? { Events.tabCounterMenuAction.record(it) }, { Events.tabCounterMenuActionKeys.valueOf(it) } ) - is Event.OnboardingPrivateBrowsing -> EventWrapper( - { Onboarding.prefToggledPrivateBrowsing.record(it) } - ) is Event.OnboardingPrivacyNotice -> EventWrapper( { Onboarding.privacyNotice.record(it) } ) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt index fe80afd48..32a44512c 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt @@ -42,12 +42,10 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingFi import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingHeaderViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingManualSignInViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingPrivacyNoticeViewHolder -import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingPrivateBrowsingViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingSectionHeaderViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingThemePickerViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingToolbarPositionPickerViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingTrackingProtectionViewHolder -import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.OnboardingWhatsNewViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.pocket.PocketStoriesViewHolder import org.mozilla.fenix.home.tips.ButtonTipViewHolder import mozilla.components.feature.tab.collections.Tab as ComponentTab @@ -156,14 +154,11 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) { object OnboardingTrackingProtection : AdapterItem(OnboardingTrackingProtectionViewHolder.LAYOUT_ID) - object OnboardingPrivateBrowsing : AdapterItem(OnboardingPrivateBrowsingViewHolder.LAYOUT_ID) object OnboardingPrivacyNotice : AdapterItem(OnboardingPrivacyNoticeViewHolder.LAYOUT_ID) object OnboardingFinish : AdapterItem(OnboardingFinishViewHolder.LAYOUT_ID) object OnboardingToolbarPositionPicker : AdapterItem(OnboardingToolbarPositionPickerViewHolder.LAYOUT_ID) - object OnboardingWhatsNew : AdapterItem(OnboardingWhatsNewViewHolder.LAYOUT_ID) - object CustomizeHomeButton : AdapterItem(CustomizeHomeButtonViewHolder.LAYOUT_ID) object RecentTabsHeader : AdapterItem(RecentTabsHeaderViewHolder.LAYOUT_ID) @@ -299,17 +294,12 @@ class SessionControlAdapter( OnboardingTrackingProtectionViewHolder.LAYOUT_ID -> OnboardingTrackingProtectionViewHolder( view ) - OnboardingPrivateBrowsingViewHolder.LAYOUT_ID -> OnboardingPrivateBrowsingViewHolder( - view, - interactor - ) OnboardingPrivacyNoticeViewHolder.LAYOUT_ID -> OnboardingPrivacyNoticeViewHolder( view, interactor ) CustomizeHomeButtonViewHolder.LAYOUT_ID -> CustomizeHomeButtonViewHolder(view, interactor) OnboardingFinishViewHolder.LAYOUT_ID -> OnboardingFinishViewHolder(view, interactor) - OnboardingWhatsNewViewHolder.LAYOUT_ID -> OnboardingWhatsNewViewHolder(view, interactor) OnboardingToolbarPositionPickerViewHolder.LAYOUT_ID -> OnboardingToolbarPositionPickerViewHolder( view ) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt index fd60713eb..5b90133e6 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt @@ -123,16 +123,6 @@ interface SessionControlController { */ fun handleStartBrowsingClicked() - /** - * @see [OnboardingInteractor.onOpenSettingsClicked] - */ - fun handleOpenSettingsClicked() - - /** - * @see [OnboardingInteractor.onWhatsNewGetAnswersClicked] - */ - fun handleWhatsNewGetAnswersClicked() - /** * @see [OnboardingInteractor.onReadPrivacyNoticeClicked] */ @@ -452,25 +442,12 @@ class DefaultSessionControlController( hideOnboarding() } - override fun handleOpenSettingsClicked() { - val directions = HomeFragmentDirections.actionGlobalPrivateBrowsingFragment() - navController.nav(R.id.homeFragment, directions) - } - override fun handleCustomizeHomeTapped() { val directions = HomeFragmentDirections.actionGlobalCustomizationFragment() navController.nav(R.id.homeFragment, directions) metrics.track(Event.HomeScreenCustomizedHomeClicked) } - override fun handleWhatsNewGetAnswersClicked() { - activity.openToBrowserAndLoad( - searchTermOrURL = SupportUtils.getWhatsNewUrl(activity), - newTab = true, - from = BrowserDirection.FromHome - ) - } - override fun handleReadPrivacyNoticeClicked() { activity.openToBrowserAndLoad( searchTermOrURL = SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.PRIVATE_NOTICE), diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt index c01ec0725..d2545ce41 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt @@ -142,16 +142,6 @@ interface OnboardingInteractor { */ fun onStartBrowsingClicked() - /** - * Hides the onboarding and navigates to Settings. Called when a user clicks on the "Open settings" button. - */ - fun onOpenSettingsClicked() - - /** - * Opens a custom tab to what's new url. Called when a user clicks on the "Get answers here" link. - */ - fun onWhatsNewGetAnswersClicked() - /** * Opens a custom tab to privacy notice url. Called when a user clicks on the "read our privacy notice" button. */ @@ -295,14 +285,6 @@ class SessionControlInteractor( controller.handleStartBrowsingClicked() } - override fun onOpenSettingsClicked() { - controller.handleOpenSettingsClicked() - } - - override fun onWhatsNewGetAnswersClicked() { - controller.handleWhatsNewGetAnswersClicked() - } - override fun onReadPrivacyNoticeClicked() { controller.handleReadPrivacyNoticeClicked() } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingPrivateBrowsingViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingPrivateBrowsingViewHolder.kt deleted file mode 100644 index b87f68330..000000000 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingPrivateBrowsingViewHolder.kt +++ /dev/null @@ -1,95 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding - -import android.content.Context -import android.graphics.Canvas -import android.graphics.Paint -import android.text.SpannableString -import android.text.Spanned -import android.text.style.ImageSpan -import android.view.View -import androidx.annotation.ColorInt -import androidx.annotation.DrawableRes -import androidx.recyclerview.widget.RecyclerView -import mozilla.components.support.ktx.android.content.getColorFromAttr -import mozilla.components.support.ktx.android.content.getDrawableWithTint -import org.mozilla.fenix.R -import org.mozilla.fenix.components.metrics.Event -import org.mozilla.fenix.databinding.OnboardingPrivateBrowsingBinding -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.setBounds -import org.mozilla.fenix.home.sessioncontrol.OnboardingInteractor - -class OnboardingPrivateBrowsingViewHolder( - view: View, - private val interactor: OnboardingInteractor -) : RecyclerView.ViewHolder(view) { - - init { - val binding = OnboardingPrivateBrowsingBinding.bind(view) - binding.headerText.setOnboardingIcon(R.drawable.ic_onboarding_private_browsing) - - // Display a private browsing icon as a character inside the description text. - val inlineIcon = PrivateBrowsingImageSpan( - view.context, - R.drawable.ic_private_browsing, - tint = view.context.getColorFromAttr(R.attr.primaryText), - size = binding.descriptionTextOnce.lineHeight - ) - - val text = SpannableString(view.context.getString(R.string.onboarding_private_browsing_description1)).apply { - val spanStartIndex = indexOf(IMAGE_PLACEHOLDER) - setSpan( - inlineIcon, - spanStartIndex, - spanStartIndex + IMAGE_PLACEHOLDER.length, - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE - ) - } - - binding.descriptionTextOnce.text = text - binding.descriptionTextOnce.contentDescription = String.format(text.toString(), binding.headerText.text) - binding.openSettingsButton.setOnClickListener { - it.context.components.analytics.metrics.track(Event.OnboardingPrivateBrowsing) - interactor.onOpenSettingsClicked() - } - } - - class PrivateBrowsingImageSpan( - context: Context, - @DrawableRes drawableId: Int, - @ColorInt tint: Int, - size: Int - ) : ImageSpan( - context.getDrawableWithTint(drawableId, tint)!!.apply { setBounds(size) } - ) { - override fun draw( - canvas: Canvas, - text: CharSequence?, - start: Int, - end: Int, - x: Float, - top: Int, - y: Int, - bottom: Int, - paint: Paint - ) { - canvas.save() - val fmPaint = paint.fontMetricsInt - val fontHeight = fmPaint.descent - fmPaint.ascent - val centerY = y + fmPaint.descent - fontHeight / 2 - val transY = (centerY - (drawable.bounds.bottom - drawable.bounds.top) / 2).toFloat() - canvas.translate(x, transY) - drawable.draw(canvas) - canvas.restore() - } - } - - companion object { - const val IMAGE_PLACEHOLDER = "%s" - const val LAYOUT_ID = R.layout.onboarding_private_browsing - } -} diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingWhatsNewViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingWhatsNewViewHolder.kt deleted file mode 100644 index efa4dd4f2..000000000 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingWhatsNewViewHolder.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding - -import android.view.View -import androidx.recyclerview.widget.RecyclerView -import org.mozilla.fenix.R -import org.mozilla.fenix.databinding.OnboardingWhatsNewBinding -import org.mozilla.fenix.ext.addUnderline -import org.mozilla.fenix.home.sessioncontrol.OnboardingInteractor - -class OnboardingWhatsNewViewHolder( - view: View, - private val interactor: OnboardingInteractor -) : RecyclerView.ViewHolder(view) { - - init { - val binding = OnboardingWhatsNewBinding.bind(view) - binding.headerText.setOnboardingIcon(R.drawable.ic_whats_new) - - val appName = view.context.getString(R.string.app_name) - binding.descriptionText.text = view.context.getString(R.string.onboarding_whats_new_description, appName) - - binding.getAnswers.addUnderline() - binding.getAnswers.setOnClickListener { - interactor.onWhatsNewGetAnswersClicked() - } - } - - companion object { - const val LAYOUT_ID = R.layout.onboarding_whats_new - } -} diff --git a/app/src/main/res/drawable/ic_onboarding_private_browsing.xml b/app/src/main/res/drawable/ic_onboarding_private_browsing.xml deleted file mode 100644 index 8a0376e96..000000000 --- a/app/src/main/res/drawable/ic_onboarding_private_browsing.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_whats_new_notification.xml b/app/src/main/res/drawable/ic_whats_new_notification.xml deleted file mode 100644 index 363fc588d..000000000 --- a/app/src/main/res/drawable/ic_whats_new_notification.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/layout/onboarding_private_browsing.xml b/app/src/main/res/layout/onboarding_private_browsing.xml deleted file mode 100644 index 6adfa146e..000000000 --- a/app/src/main/res/layout/onboarding_private_browsing.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - -