Commit 94fd1e73 authored by Alex Catarineu's avatar Alex Catarineu Committed by Matthew Finkel
Browse files

Modify UI/UX

Bug 40015: Modify Home menu

Bug 40016: Hide unwanted Settings

Bug 40016: Modify Default toolbar menu

Bug 40016: Add Donate settings button

Bug 40016: Move Allow Screenshots under Advanced

Bug 40016: Don't install WebCompat webext

Bug 40016: Don't onboard Search Suggestions

Bug 40094: Do not use MasterPasswordTipProvider in HomeFragment

Bug 40095: Hide "Sign in to sync" in bookmarks

Bug 40031: Hide Mozilla-specific items on About page

Bug 40032: Set usesCleartextTraffic as false

Bug 40063: Do not sort search engines alphabetically

Bug 34378: Port external helper app prompting

With the corresponding android-components patch, this allows all `startActivity`
that may open external apps to be replaced by `TorUtils.startActivityPrompt`.

Bug 34403: Disable Normal mode by default

Bug 40087: Implement a switch for english locale spoofing

Bug 40141: Hide EME site permission
parent 6ee8ee7c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/NormalTheme"
        android:usesCleartextTraffic="true"
        android:usesCleartextTraffic="false"
        tools:ignore="UnusedAttribute">

        <!--
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ object FeatureFlags {
     *
     * Tracking issue: https://github.com/mozilla-mobile/fenix/issues/13892
     */
    val syncedTabsInTabsTray = Config.channel.isNightlyOrDebug
    const val syncedTabsInTabsTray = false

    /**
     * Enables the Nimbus experiments library, especially the settings toggle to opt-out of
+54 −2
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@

package org.mozilla.fenix

import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.content.res.Configuration
@@ -47,6 +48,8 @@ import mozilla.components.concept.engine.EngineSession
import mozilla.components.concept.engine.EngineView
import mozilla.components.concept.storage.BookmarkNode
import mozilla.components.concept.storage.BookmarkNodeType
import mozilla.components.feature.app.links.RedirectDialogFragment
import mozilla.components.feature.app.links.SimpleRedirectDialogFragment
import mozilla.components.feature.contextmenu.DefaultSelectionActionDelegate
import mozilla.components.feature.privatemode.notification.PrivateNotificationFeature
import mozilla.components.feature.search.BrowserStoreSearchAdapter
@@ -61,6 +64,7 @@ import mozilla.components.support.ktx.kotlin.isUrl
import mozilla.components.support.ktx.kotlin.toNormalizedUrl
import mozilla.components.support.locale.LocaleAwareAppCompatActivity
import mozilla.components.support.utils.SafeIntent
import mozilla.components.support.utils.TorUtils
import mozilla.components.support.utils.toSafeIntent
import mozilla.components.support.webextensions.WebExtensionPopupFeature
import org.mozilla.fenix.GleanMetrics.Metrics
@@ -163,6 +167,8 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {

    private lateinit var navigationToolbar: Toolbar

    private var dialog: RedirectDialogFragment? = null

    final override fun onCreate(savedInstanceState: Bundle?) {
        components.strictMode.attachListenerToDisablePenaltyDeath(supportFragmentManager)

@@ -448,6 +454,26 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
        super.recreate()
    }

    // Copied from mozac AppLinksFeature.kt
    internal fun getOrCreateDialog(): RedirectDialogFragment {
        val existingDialog = dialog
        if (existingDialog != null) {
            return existingDialog
        }

        SimpleRedirectDialogFragment.newInstance().also {
            dialog = it
            return it
        }
    }
    private fun isAlreadyADialogCreated(): Boolean {
        return findPreviousDialogFragment() != null
    }

    private fun findPreviousDialogFragment(): RedirectDialogFragment? {
        return supportFragmentManager.findFragmentByTag(RedirectDialogFragment.FRAGMENT_TAG) as? RedirectDialogFragment
    }

    /**
     * Handles intents received when the activity is open.
     */
@@ -459,6 +485,26 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
    }

    open fun handleNewIntent(intent: Intent) {
        val startIntent = intent.getParcelableExtra<PendingIntent>(TorUtils.TORBROWSER_START_ACTIVITY_PROMPT)
        if (startIntent != null) {
            if (startIntent.creatorPackage == applicationContext.packageName) {
                val dialog = getOrCreateDialog()
                dialog.onConfirmRedirect = {
                    @Suppress("EmptyCatchBlock")
                    try {
                        startIntent.send()
                    } catch (error: PendingIntent.CanceledException) {
                    }
                }
                dialog.onCancelRedirect = {}

                if (!isAlreadyADialogCreated()) {
                    dialog.showNow(supportFragmentManager, RedirectDialogFragment.FRAGMENT_TAG)
                }
            }
            return
        }

        // Diagnostic breadcrumb for "Display already aquired" crash:
        // https://github.com/mozilla-mobile/android-components/issues/7960
        breadcrumb(
@@ -639,11 +685,17 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
    internal fun getModeFromIntentOrLastKnown(intent: Intent?): BrowsingMode {
        intent?.toSafeIntent()?.let {
            if (it.hasExtra(PRIVATE_BROWSING_MODE)) {
                val startPrivateMode = it.getBooleanExtra(PRIVATE_BROWSING_MODE, false)
                val startPrivateMode = settings().shouldDisableNormalMode ||
                    it.getBooleanExtra(PRIVATE_BROWSING_MODE, settings().openLinksInAPrivateTab)

                return BrowsingMode.fromBoolean(isPrivate = startPrivateMode)
            }
        }
        return settings().lastKnownMode
        return when {
            settings().shouldDisableNormalMode -> BrowsingMode.Private
            settings().openLinksInAPrivateTab -> BrowsingMode.Private
            else -> settings().lastKnownMode
        }
    }

    /**
+8 −0
Original line number Diff line number Diff line
@@ -951,6 +951,14 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler,
        hideToolbar()

        components.core.store.state.findTabOrCustomTabOrSelectedTab(customTabSessionId)?.let {
            // If the most-recent session was a tab in Normal mode, and now Normal mode is disabled,
            // then load the Private Mode home screen, instead.
            if (!it.content.private && requireContext().settings().shouldDisableNormalMode) {
                findNavController().nav(
                    R.id.browserFragment,
                    BrowserFragmentDirections.actionGlobalHomeFragment()
                )
            }
            updateThemeForSession(it)
        }
    }
+4 −3
Original line number Diff line number Diff line
@@ -111,7 +111,8 @@ class Core(
            clearColor = ContextCompat.getColor(
                context,
                R.color.foundation_normal_theme
            )
            ),
            spoofEnglish = context.settings().spoofEnglish
        )

        GeckoEngine(
@@ -123,7 +124,6 @@ class Core(
                trackingProtectionPolicyFactory.createTrackingProtectionPolicy()
            )
        ).also {
            WebCompatFeature.install(it)

            /**
             * There are some issues around localization to be resolved, as well as questions around
@@ -131,7 +131,8 @@ class Core(
             * disabled in Fenix Release builds for now.
             * This is consistent with both Fennec and Firefox Desktop.
             */
            if (Config.channel.isNightlyOrDebug || Config.channel.isBeta) {
            if (false && (Config.channel.isNightlyOrDebug || Config.channel.isBeta)) {
                WebCompatFeature.install(it)
                WebCompatReporterFeature.install(it, "fenix")
            }
        }
Loading