Unverified Commit a39fcc21 authored by Matthew Finkel's avatar Matthew Finkel Committed by boklm
Browse files

Bug 40165: Announce v2 onion service deprecation on about:tor

parent cedfec81
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TorInfoBannerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSitePagerViewHolder
import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.ExperimentDefaultBrowserCardViewHolder
@@ -81,6 +82,7 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
    }

    object PrivateBrowsingDescription : AdapterItem(PrivateBrowsingDescriptionViewHolder.LAYOUT_ID)
    object TorInfoBanner : AdapterItem(TorInfoBannerViewHolder.LAYOUT_ID)
    object NoCollectionsMessage : AdapterItem(NoCollectionsMessageViewHolder.LAYOUT_ID)

    object TorBootstrap : AdapterItem(TorBootstrapPagerViewHolder.LAYOUT_ID)
@@ -182,6 +184,10 @@ class SessionControlAdapter(
                view,
                interactor
            )
            TorInfoBannerViewHolder.LAYOUT_ID -> TorInfoBannerViewHolder(
                view,
                interactor
            )
            TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder(
                view,
                components,
+13 −0
Original line number Diff line number Diff line
@@ -94,6 +94,11 @@ interface SessionControlController {
     */
    fun handlePrivateBrowsingLearnMoreClicked()

    /**
     * @see [TabSessionInteractor.onTorInfoBannerLaunchClicked]
     */
    fun handleTorInfoBannerLaunchClicked()

    /**
     * @see [TopSiteInteractor.onRenameTopSiteClicked]
     */
@@ -648,4 +653,12 @@ class DefaultSessionControlController(
    override fun handleTorNetworkSettingsClicked() {
        openTorNetworkSettings()
    }

    override fun handleTorInfoBannerLaunchClicked() {
        activity.openToBrowserAndLoad(
            searchTermOrURL = SupportUtils.TOR_INFO_BANNER_URL,
            newTab = true,
            from = BrowserDirection.FromHome
        )
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -18,6 +18,12 @@ interface TabSessionInteractor {
     * "Common myths about private browsing" link in private mode.
     */
    fun onPrivateBrowsingLearnMoreClicked()

    /**
     * Shows the Info Banner web page in a new tab. Called when a user clicks on the
     * "Learn More" button.
     */
    fun onTorInfoBannerLaunchClicked()
}

/**
@@ -381,4 +387,8 @@ class SessionControlInteractor(
    override fun onTorBootstrapNetworkSettingsClicked() {
        controller.handleTorNetworkSettingsClicked()
    }

    override fun onTorInfoBannerLaunchClicked() {
        controller.handleTorInfoBannerLaunchClicked()
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ private fun showCollections(
    }
}

private fun privateModeAdapterItems() = listOf(AdapterItem.PrivateBrowsingDescription)
private fun privateModeAdapterItems() = listOf(AdapterItem.TorInfoBanner)

private fun bootstrapAdapterItems() = listOf(AdapterItem.TorBootstrap)

+40 −0
Original line number Diff line number Diff line
/* 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

import android.graphics.Typeface
import android.text.SpannableString
import android.text.Spanned
import android.text.style.StyleSpan
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.tor_info_banner.view.*
import org.mozilla.fenix.R
import org.mozilla.fenix.home.sessioncontrol.TabSessionInteractor

class TorInfoBannerViewHolder(
    view: View,
    private val interactor: TabSessionInteractor
) : RecyclerView.ViewHolder(view) {

    init {
        with(view.info_banner_launch_button) {
            setOnClickListener {
                interactor.onTorInfoBannerLaunchClicked()
            }
        }

        with(view.info_banner_description) {
            val spannedString: SpannableString = SpannableString(text)
            spannedString.setSpan(StyleSpan(Typeface.BOLD), 120, 138,
                                  Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
            setText(spannedString)
        }
    }

    companion object {
        const val LAYOUT_ID = R.layout.tor_info_banner
    }
}
Loading