Matthew Finkel pushed to branch tor-browser-91.2.0-10.5-2 at The Tor Project / Applications / fenix

Commits:

20 changed files:

Changes:

  • LICENSE
    ... ... @@ -371,3 +371,102 @@ Exhibit B - "Incompatible With Secondary Licenses" Notice
    371 371
     
    
    372 372
       This Source Code Form is "Incompatible With Secondary Licenses", as
    
    373 373
       defined by the Mozilla Public License, v. 2.0.
    
    374
    +
    
    375
    +===============================================================================
    
    376
    +
    
    377
    +"Corben" font.
    
    378
    +
    
    379
    +Copyright (c) 2010, 2011 by vernon adams (vern@newtypography.co.uk),
    
    380
    +with Reserved Font Name Corben.
    
    381
    +
    
    382
    +This Font Software is licensed under the SIL Open Font License, Version 1.1.
    
    383
    +This license is copied below, and is also available with a FAQ at:
    
    384
    +http://scripts.sil.org/OFL
    
    385
    +
    
    386
    +
    
    387
    +-----------------------------------------------------------
    
    388
    +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
    
    389
    +-----------------------------------------------------------
    
    390
    +
    
    391
    +PREAMBLE
    
    392
    +The goals of the Open Font License (OFL) are to stimulate worldwide
    
    393
    +development of collaborative font projects, to support the font creation
    
    394
    +efforts of academic and linguistic communities, and to provide a free and
    
    395
    +open framework in which fonts may be shared and improved in partnership
    
    396
    +with others.
    
    397
    +
    
    398
    +The OFL allows the licensed fonts to be used, studied, modified and
    
    399
    +redistributed freely as long as they are not sold by themselves. The
    
    400
    +fonts, including any derivative works, can be bundled, embedded,
    
    401
    +redistributed and/or sold with any software provided that any reserved
    
    402
    +names are not used by derivative works. The fonts and derivatives,
    
    403
    +however, cannot be released under any other type of license. The
    
    404
    +requirement for fonts to remain under this license does not apply
    
    405
    +to any document created using the fonts or their derivatives.
    
    406
    +
    
    407
    +DEFINITIONS
    
    408
    +"Font Software" refers to the set of files released by the Copyright
    
    409
    +Holder(s) under this license and clearly marked as such. This may
    
    410
    +include source files, build scripts and documentation.
    
    411
    +
    
    412
    +"Reserved Font Name" refers to any names specified as such after the
    
    413
    +copyright statement(s).
    
    414
    +
    
    415
    +"Original Version" refers to the collection of Font Software components as
    
    416
    +distributed by the Copyright Holder(s).
    
    417
    +
    
    418
    +"Modified Version" refers to any derivative made by adding to, deleting,
    
    419
    +or substituting -- in part or in whole -- any of the components of the
    
    420
    +Original Version, by changing formats or by porting the Font Software to a
    
    421
    +new environment.
    
    422
    +
    
    423
    +"Author" refers to any designer, engineer, programmer, technical
    
    424
    +writer or other person who contributed to the Font Software.
    
    425
    +
    
    426
    +PERMISSION & CONDITIONS
    
    427
    +Permission is hereby granted, free of charge, to any person obtaining
    
    428
    +a copy of the Font Software, to use, study, copy, merge, embed, modify,
    
    429
    +redistribute, and sell modified and unmodified copies of the Font
    
    430
    +Software, subject to the following conditions:
    
    431
    +
    
    432
    +1) Neither the Font Software nor any of its individual components,
    
    433
    +in Original or Modified Versions, may be sold by itself.
    
    434
    +
    
    435
    +2) Original or Modified Versions of the Font Software may be bundled,
    
    436
    +redistributed and/or sold with any software, provided that each copy
    
    437
    +contains the above copyright notice and this license. These can be
    
    438
    +included either as stand-alone text files, human-readable headers or
    
    439
    +in the appropriate machine-readable metadata fields within text or
    
    440
    +binary files as long as those fields can be easily viewed by the user.
    
    441
    +
    
    442
    +3) No Modified Version of the Font Software may use the Reserved Font
    
    443
    +Name(s) unless explicit written permission is granted by the corresponding
    
    444
    +Copyright Holder. This restriction only applies to the primary font name as
    
    445
    +presented to the users.
    
    446
    +
    
    447
    +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
    
    448
    +Software shall not be used to promote, endorse or advertise any
    
    449
    +Modified Version, except to acknowledge the contribution(s) of the
    
    450
    +Copyright Holder(s) and the Author(s) or with their explicit written
    
    451
    +permission.
    
    452
    +
    
    453
    +5) The Font Software, modified or unmodified, in part or in whole,
    
    454
    +must be distributed entirely under this license, and must not be
    
    455
    +distributed under any other license. The requirement for fonts to
    
    456
    +remain under this license does not apply to any document created
    
    457
    +using the Font Software.
    
    458
    +
    
    459
    +TERMINATION
    
    460
    +This license becomes null and void if any of the above conditions are
    
    461
    +not met.
    
    462
    +
    
    463
    +DISCLAIMER
    
    464
    +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    
    465
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
    
    466
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
    
    467
    +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
    
    468
    +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    
    469
    +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
    
    470
    +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    
    471
    +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
    
    472
    +OTHER DEALINGS IN THE FONT SOFTWARE.

  • app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
    ... ... @@ -50,6 +50,7 @@ import com.google.android.material.snackbar.Snackbar
    50 50
     import kotlinx.android.synthetic.main.fragment_home.*
    
    51 51
     import kotlinx.android.synthetic.main.fragment_home.view.bottomBarShadow
    
    52 52
     import kotlinx.android.synthetic.main.fragment_home.view.bottom_bar
    
    53
    +import kotlinx.android.synthetic.main.fragment_home.view.donate_now_button
    
    53 54
     import kotlinx.android.synthetic.main.fragment_home.view.exploreprivately
    
    54 55
     import kotlinx.android.synthetic.main.fragment_home.view.homeAppBar
    
    55 56
     import kotlinx.android.synthetic.main.fragment_home.view.menuButton
    
    ... ... @@ -59,6 +60,7 @@ import kotlinx.android.synthetic.main.fragment_home.view.tab_button
    59 60
     import kotlinx.android.synthetic.main.fragment_home.view.toolbar
    
    60 61
     import kotlinx.android.synthetic.main.fragment_home.view.toolbarLayout
    
    61 62
     import kotlinx.android.synthetic.main.fragment_home.view.toolbar_wrapper
    
    63
    +import kotlinx.android.synthetic.main.fragment_home.view.yec_activist_image
    
    62 64
     import kotlinx.android.synthetic.main.no_collections_message.view.add_tabs_to_collections_button
    
    63 65
     import kotlinx.coroutines.Dispatchers.IO
    
    64 66
     import kotlinx.coroutines.Dispatchers.Main
    
    ... ... @@ -88,6 +90,7 @@ import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
    88 90
     import mozilla.components.support.ktx.android.content.res.resolveAttribute
    
    89 91
     import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged
    
    90 92
     import mozilla.components.ui.tabcounter.TabCounterMenu
    
    93
    +import mozilla.components.support.locale.LocaleManager
    
    91 94
     import org.mozilla.fenix.BrowserDirection
    
    92 95
     import org.mozilla.fenix.BuildConfig
    
    93 96
     import org.mozilla.fenix.Config
    
    ... ... @@ -127,6 +130,7 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
    127 130
     import org.mozilla.fenix.home.sessioncontrol.viewholders.topsites.DefaultTopSitesView
    
    128 131
     import org.mozilla.fenix.onboarding.FenixOnboarding
    
    129 132
     import org.mozilla.fenix.settings.SupportUtils
    
    133
    +import org.mozilla.fenix.settings.advanced.getSelectedLocale
    
    130 134
     import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit
    
    131 135
     import org.mozilla.fenix.tor.bootstrap.TorQuickStart
    
    132 136
     import org.mozilla.fenix.theme.ThemeManager
    
    ... ... @@ -333,6 +337,20 @@ class HomeFragment : Fragment() {
    333 337
             activity.themeManager.applyStatusBarTheme(activity)
    
    334 338
             adjustHomeFragmentView(currentMode.getCurrentMode(), view)
    
    335 339
             showSessionControlView(view)
    
    340
    +
    
    341
    +        view?.donate_now_button?.setOnClickListener {
    
    342
    +            val country = LocaleManager.getSelectedLocale(requireContext()).country
    
    343
    +            var locale = LocaleManager.getSelectedLocale(requireContext()).language
    
    344
    +            if (country != "") {
    
    345
    +                locale = "${locale}-${country}"
    
    346
    +            }
    
    347
    +            val localeUrl = "https://www.torproject.org/donate/donate-phr-bp1-mobile-${locale}"
    
    348
    +            activity.openToBrowserAndLoad(
    
    349
    +                searchTermOrURL = localeUrl,
    
    350
    +                newTab = true,
    
    351
    +                from = BrowserDirection.FromHome
    
    352
    +            )
    
    353
    +        }
    
    336 354
             view
    
    337 355
         }
    
    338 356
     
    
    ... ... @@ -340,6 +358,28 @@ class HomeFragment : Fragment() {
    340 358
             super.onConfigurationChanged(newConfig)
    
    341 359
     
    
    342 360
             getMenuButton()?.dismissMenu()
    
    361
    +
    
    362
    +        //view.donationmatch.setOnClickListener {
    
    363
    +        //    activity.openToBrowserAndLoad(
    
    364
    +        //        searchTermOrURL = "https://blog.torproject.org/friends-of-tor-match-2020",
    
    365
    +        //        newTab = true,
    
    366
    +        //        from = BrowserDirection.FromHome
    
    367
    +        //    )
    
    368
    +        //}
    
    369
    +
    
    370
    +        view?.donate_now_button?.setOnClickListener {
    
    371
    +            val country = LocaleManager.getSelectedLocale(requireContext()).country
    
    372
    +            var locale = LocaleManager.getSelectedLocale(requireContext()).language
    
    373
    +            if (country != "") {
    
    374
    +                locale = "${locale}-${country}"
    
    375
    +            }
    
    376
    +            val localeUrl = "https://www.torproject.org/donate/donate-phr-bp1-mobile-${locale}"
    
    377
    +            (activity as HomeActivity).openToBrowserAndLoad(
    
    378
    +                searchTermOrURL = localeUrl,
    
    379
    +                newTab = true,
    
    380
    +                from = BrowserDirection.FromHome
    
    381
    +            )
    
    382
    +        }
    
    343 383
         }
    
    344 384
     
    
    345 385
         private fun dismissTip(tip: Tip) {
    
    ... ... @@ -474,6 +514,14 @@ class HomeFragment : Fragment() {
    474 514
                                     toolbarLayoutHeight - SESSION_CONTROL_VIEW_PADDING
    
    475 515
                                 )
    
    476 516
                             }
    
    517
    +                        view.donate_now_button?.apply {
    
    518
    +                            (layoutParams as ViewGroup.MarginLayoutParams).setMargins(
    
    519
    +                                0,
    
    520
    +                                0,
    
    521
    +                                0,
    
    522
    +                                toolbarLayoutHeight - SESSION_CONTROL_VIEW_PADDING
    
    523
    +                            )
    
    524
    +                        }
    
    477 525
                         }
    
    478 526
                     } else {
    
    479 527
                         view.sessionControlRecyclerView?.apply {
    
    ... ... @@ -484,16 +532,41 @@ class HomeFragment : Fragment() {
    484 532
                                 height - SESSION_CONTROL_VIEW_PADDING
    
    485 533
                             )
    
    486 534
                         }
    
    535
    +                    view.donate_now_button?.apply {
    
    536
    +                        (layoutParams as ViewGroup.MarginLayoutParams).setMargins(
    
    537
    +                            0,
    
    538
    +                            0,
    
    539
    +                            0,
    
    540
    +                            height - SESSION_CONTROL_VIEW_PADDING
    
    541
    +                        )
    
    542
    +                    }
    
    487 543
                     }
    
    488 544
                 }
    
    489
    -            // Hide the onion pattern during Onboarding, too.
    
    490
    -            view?.onion_pattern_image?.apply {
    
    545
    +
    
    546
    +            // Hide the EOY image during Onboarding, too.
    
    547
    +            view?.yec_activist_image?.apply {
    
    548
    +                visibility = if (onboarding.userHasBeenOnboarded()) {
    
    549
    +                    View.VISIBLE
    
    550
    +                } else {
    
    551
    +                    View.GONE
    
    552
    +                }
    
    553
    +            }
    
    554
    +            // Hide the EOY donate button during Onboarding, too.
    
    555
    +            view?.donate_now_button?.apply {
    
    491 556
                     visibility = if (onboarding.userHasBeenOnboarded()) {
    
    492 557
                         View.VISIBLE
    
    493 558
                     } else {
    
    494 559
                         View.GONE
    
    495 560
                     }
    
    496 561
                 }
    
    562
    +            // Hide the onion pattern during Onboarding, too.
    
    563
    +            //view?.onion_pattern_image?.apply {
    
    564
    +             //   visibility = if (onboarding.userHasBeenOnboarded()) {
    
    565
    +             //       View.VISIBLE
    
    566
    +             //   } else {
    
    567
    +             //       View.GONE
    
    568
    +             //   }
    
    569
    +            //}
    
    497 570
                 view?.homeAppBar?.apply {
    
    498 571
                     visibility = View.VISIBLE
    
    499 572
     
    

  • app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
    ... ... @@ -25,7 +25,6 @@ import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
    25 25
     import org.mozilla.fenix.home.sessioncontrol.viewholders.NoCollectionsMessageViewHolder
    
    26 26
     import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder
    
    27 27
     import org.mozilla.fenix.home.sessioncontrol.viewholders.TorBootstrapPagerViewHolder
    
    28
    -import org.mozilla.fenix.home.sessioncontrol.viewholders.TorInfoBannerViewHolder
    
    29 28
     import org.mozilla.fenix.home.sessioncontrol.viewholders.TabInCollectionViewHolder
    
    30 29
     import org.mozilla.fenix.home.sessioncontrol.viewholders.TopSitePagerViewHolder
    
    31 30
     import org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding.ExperimentDefaultBrowserCardViewHolder
    
    ... ... @@ -91,7 +90,6 @@ sealed class AdapterItem(@LayoutRes val viewType: Int) {
    91 90
         }
    
    92 91
     
    
    93 92
         object PrivateBrowsingDescription : AdapterItem(PrivateBrowsingDescriptionViewHolder.LAYOUT_ID)
    
    94
    -    object TorInfoBanner : AdapterItem(TorInfoBannerViewHolder.LAYOUT_ID)
    
    95 93
         object NoCollectionsMessage : AdapterItem(NoCollectionsMessageViewHolder.LAYOUT_ID)
    
    96 94
     
    
    97 95
         object TorBootstrap : AdapterItem(TorBootstrapPagerViewHolder.LAYOUT_ID)
    
    ... ... @@ -231,10 +229,6 @@ class SessionControlAdapter(
    231 229
                     view,
    
    232 230
                     interactor
    
    233 231
                 )
    
    234
    -            TorInfoBannerViewHolder.LAYOUT_ID -> TorInfoBannerViewHolder(
    
    235
    -                view,
    
    236
    -                interactor
    
    237
    -            )
    
    238 232
                 TorBootstrapPagerViewHolder.LAYOUT_ID -> TorBootstrapPagerViewHolder(
    
    239 233
                     view,
    
    240 234
                     components,
    

  • app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
    ... ... @@ -94,11 +94,6 @@ interface SessionControlController {
    94 94
          */
    
    95 95
         fun handlePrivateBrowsingLearnMoreClicked()
    
    96 96
     
    
    97
    -    /**
    
    98
    -     * @see [TabSessionInteractor.onTorInfoBannerLaunchClicked]
    
    99
    -     */
    
    100
    -    fun handleTorInfoBannerLaunchClicked()
    
    101
    -
    
    102 97
         /**
    
    103 98
          * @see [TopSiteInteractor.onRenameTopSiteClicked]
    
    104 99
          */
    
    ... ... @@ -652,12 +647,4 @@ class DefaultSessionControlController(
    652 647
         override fun handleTorNetworkSettingsClicked() {
    
    653 648
             openTorNetworkSettings()
    
    654 649
         }
    
    655
    -
    
    656
    -    override fun handleTorInfoBannerLaunchClicked() {
    
    657
    -        activity.openToBrowserAndLoad(
    
    658
    -            searchTermOrURL = SupportUtils.TOR_INFO_BANNER_URL,
    
    659
    -            newTab = true,
    
    660
    -            from = BrowserDirection.FromHome
    
    661
    -        )
    
    662
    -    }
    
    663 650
     }

  • app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
    ... ... @@ -23,12 +23,6 @@ interface TabSessionInteractor {
    23 23
          * "Common myths about private browsing" link in private mode.
    
    24 24
          */
    
    25 25
         fun onPrivateBrowsingLearnMoreClicked()
    
    26
    -
    
    27
    -    /**
    
    28
    -     * Shows the Info Banner web page in a new tab. Called when a user clicks on the
    
    29
    -     * "Learn More" button.
    
    30
    -     */
    
    31
    -    fun onTorInfoBannerLaunchClicked()
    
    32 26
     }
    
    33 27
     
    
    34 28
     /**
    
    ... ... @@ -418,8 +412,4 @@ class SessionControlInteractor(
    418 412
         override fun onTorBootstrapNetworkSettingsClicked() {
    
    419 413
             controller.handleTorNetworkSettingsClicked()
    
    420 414
         }
    
    421
    -
    
    422
    -    override fun onTorInfoBannerLaunchClicked() {
    
    423
    -        controller.handleTorInfoBannerLaunchClicked()
    
    424
    -    }
    
    425 415
     }

  • app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
    ... ... @@ -92,7 +92,7 @@ private fun showCollections(
    92 92
         }
    
    93 93
     }
    
    94 94
     
    
    95
    -private fun privateModeAdapterItems() = listOf(AdapterItem.TorInfoBanner)
    
    95
    +private fun privateModeAdapterItems() = listOf(AdapterItem.PrivateBrowsingDescription)
    
    96 96
     
    
    97 97
     private fun bootstrapAdapterItems() = listOf(AdapterItem.TorBootstrap)
    
    98 98
     
    

  • app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt deleted
    1
    -/* This Source Code Form is subject to the terms of the Mozilla Public
    
    2
    - * License, v. 2.0. If a copy of the MPL was not distributed with this
    
    3
    - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    
    4
    -
    
    5
    -package org.mozilla.fenix.home.sessioncontrol.viewholders
    
    6
    -
    
    7
    -import android.graphics.Typeface
    
    8
    -import android.text.SpannableString
    
    9
    -import android.text.Spanned
    
    10
    -import android.text.style.StyleSpan
    
    11
    -import android.view.View
    
    12
    -import androidx.recyclerview.widget.RecyclerView
    
    13
    -import kotlinx.android.synthetic.main.tor_info_banner.view.*
    
    14
    -import org.mozilla.fenix.R
    
    15
    -import org.mozilla.fenix.home.sessioncontrol.TabSessionInteractor
    
    16
    -
    
    17
    -class TorInfoBannerViewHolder(
    
    18
    -    view: View,
    
    19
    -    private val interactor: TabSessionInteractor
    
    20
    -) : RecyclerView.ViewHolder(view) {
    
    21
    -
    
    22
    -    init {
    
    23
    -        with(view.info_banner_launch_button) {
    
    24
    -            setOnClickListener {
    
    25
    -                interactor.onTorInfoBannerLaunchClicked()
    
    26
    -            }
    
    27
    -        }
    
    28
    -    }
    
    29
    -
    
    30
    -    companion object {
    
    31
    -        const val LAYOUT_ID = R.layout.tor_info_banner
    
    32
    -    }
    
    33
    -}

  • app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
    ... ... @@ -40,7 +40,6 @@ object SupportUtils {
    40 40
         const val DONATE_URL = "https://donate.torproject.org/"
    
    41 41
         const val TB_MANUAL_URL = "https://tb-manual.torproject.org/mobile-tor"
    
    42 42
         const val TOR_RELEASES = "https://www.torproject.org/releases/"
    
    43
    -    const val TOR_INFO_BANNER_URL = "http://eh5esdnd6fkbkapfc6nuyvkjgbtnzq2is72lmpwbdbxepd2z7zbgzsqd.onion/index.php/664393"
    
    44 43
     
    
    45 44
         enum class SumoTopic(internal val topicStr: String) {
    
    46 45
             FENIX_MOVING("sync-delist"),
    

  • app/src/main/java/org/mozilla/fenix/theme/ThemeManager.kt
    ... ... @@ -32,7 +32,7 @@ abstract class ThemeManager {
    32 32
         @get:StyleRes
    
    33 33
         val currentThemeResource get() = when (currentTheme) {
    
    34 34
             BrowsingMode.Normal -> R.style.NormalTheme
    
    35
    -        BrowsingMode.Private -> R.style.PrivateTheme
    
    35
    +        BrowsingMode.Private -> R.style.PrivateEOYTheme
    
    36 36
         }
    
    37 37
     
    
    38 38
         /**
    

  • app/src/main/res/drawable/ic_yec_activist_android.png
    No preview for this file type
  • app/src/main/res/drawable/info_banner_padded_background.xml deleted
    1
    -<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public
    
    2
    -   - License, v. 2.0. If a copy of the MPL was not distributed with this
    
    3
    -   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    
    4
    -<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    
    5
    -    android:color="@color/info_banner_padded_background_color">
    
    6
    -    <item
    
    7
    -        android:bottom="6dp"
    
    8
    -        android:top="6dp">
    
    9
    -        <shape android:shape="rectangle">
    
    10
    -            <corners android:radius="4dp" />
    
    11
    -        </shape>
    
    12
    -    </item>
    
    13
    -</ripple>

  • app/src/main/res/drawable/tor_yec_donate_rounded_corners.xml
    1
    +<?xml version="1.0" encoding="utf-8"?>
    
    2
    +<!-- This Source Code Form is subject to the terms of the Mozilla Public
    
    3
    +   - License, v. 2.0. If a copy of the MPL was not distributed with this
    
    4
    +   - file, You can obtain one at http://mozilla.org/MPL/2.0/.  -->
    
    5
    +
    
    6
    +<!-- Used for rounding the corners of a button -->
    
    7
    +<shape xmlns:android="http://schemas.android.com/apk/res/android"
    
    8
    +       android:shape="rectangle">
    
    9
    +    <solid android:color="#EFB149" />
    
    10
    +    <corners android:radius="10dp" />
    
    11
    +</shape>

  • app/src/main/res/drawable/vpn_survey_icon.png deleted
    No preview for this file type
  • app/src/main/res/font/corben_bold.ttf
    No preview for this file type
  • app/src/main/res/font/corben_regular.ttf
    No preview for this file type
  • app/src/main/res/layout/fragment_home.xml
    ... ... @@ -81,21 +81,79 @@
    81 81
     
    
    82 82
             <TextView
    
    83 83
                 android:id="@+id/exploreprivately"
    
    84
    -            android:layout_width="wrap_content"
    
    84
    +            android:layout_width="match_parent"
    
    85 85
                 android:layout_height="wrap_content"
    
    86
    -            android:layout_gravity="center|center_vertical"
    
    87
    -            android:gravity="center_horizontal"
    
    86
    +            android:layout_gravity="center_horizontal|center_vertical"
    
    88 87
                 android:clickable="false"
    
    89
    -            android:ellipsize="end"
    
    90 88
                 android:focusable="false"
    
    89
    +            android:fontFamily="@font/corben_bold"
    
    90
    +            android:gravity="center"
    
    91 91
                 android:importantForAccessibility="no"
    
    92
    -            android:text="@string/tor_explore_privately"
    
    93
    -            android:fontFamily="Roboto-Medium"
    
    94
    -            android:textColor="#DEFFFFFF"
    
    95
    -            android:textSize="40sp"
    
    96
    -            android:lineSpacingMultiplier="1.1"
    
    97
    -            app:layout_scrollFlags="scroll"
    
    98
    -            android:visibility="gone" />
    
    92
    +            android:paddingStart="35dp"
    
    93
    +            android:paddingTop="20dp"
    
    94
    +            android:paddingEnd="35dp"
    
    95
    +            android:text="@string/tor_privacy_human_right"
    
    96
    +            android:textColor="#FAF5DF"
    
    97
    +            android:textSize="30sp"
    
    98
    +            app:layout_scrollFlags="scroll" />
    
    99
    +
    
    100
    +        <LinearLayout
    
    101
    +            android:layout_width="match_parent"
    
    102
    +            android:layout_height="wrap_content"
    
    103
    +            android:layout_weight="1"
    
    104
    +            android:orientation="vertical">
    
    105
    +
    
    106
    +            <ImageView
    
    107
    +                android:id="@+id/yec_activist_image"
    
    108
    +                android:layout_width="wrap_content"
    
    109
    +                android:layout_height="200dp"
    
    110
    +                android:layout_weight="1"
    
    111
    +                android:paddingStart="35dp"
    
    112
    +                android:paddingEnd="35dp"
    
    113
    +                app:layout_scrollFlags="scroll"
    
    114
    +                app:srcCompat="@drawable/ic_yec_activist_android"
    
    115
    +                tools:ignore="ContentDescription" />
    
    116
    +
    
    117
    +            <Button
    
    118
    +                android:id="@+id/donate_now_button"
    
    119
    +                style="@style/TorDonateYecButton"
    
    120
    +                android:layout_width="match_parent"
    
    121
    +                android:layout_height="wrap_content"
    
    122
    +                android:layout_gravity="center"
    
    123
    +                android:layout_marginStart="35dp"
    
    124
    +                android:layout_marginEnd="35dp"
    
    125
    +                android:background="@drawable/tor_yec_donate_rounded_corners"
    
    126
    +                android:fontFamily="Roboto-Medium"
    
    127
    +                android:gravity="center"
    
    128
    +                android:text="@string/tor_onboarding_donate_button"
    
    129
    +                android:textAllCaps="false"
    
    130
    +                android:textColor="#000000"
    
    131
    +                android:textSize="18sp"
    
    132
    +                android:textStyle="bold"
    
    133
    +                android:visibility="visible"
    
    134
    +                tools:ignore="ButtonStyleXmlDetector" />
    
    135
    +
    
    136
    +            <TextView
    
    137
    +                android:id="@+id/donationmatch"
    
    138
    +                android:layout_width="match_parent"
    
    139
    +                android:layout_height="wrap_content"
    
    140
    +                android:layout_gravity="center_vertical"
    
    141
    +                android:clickable="false"
    
    142
    +                android:focusable="false"
    
    143
    +                android:fontFamily="@font/corben_regular"
    
    144
    +                android:gravity="center"
    
    145
    +                android:importantForAccessibility="no"
    
    146
    +                android:lineSpacingMultiplier="1.1"
    
    147
    +                android:paddingStart="35dp"
    
    148
    +                android:paddingTop="10dp"
    
    149
    +                android:paddingEnd="35dp"
    
    150
    +                android:paddingBottom="20dp"
    
    151
    +                android:text="@string/tor_donationmatch_202110"
    
    152
    +                android:textColor="#FAF5DF"
    
    153
    +                android:textSize="18sp"
    
    154
    +                android:visibility="visible"
    
    155
    +                app:layout_scrollFlags="scroll" />
    
    156
    +        </LinearLayout>
    
    99 157
     
    
    100 158
         </com.google.android.material.appbar.AppBarLayout>
    
    101 159
     
    
    ... ... @@ -121,11 +179,12 @@
    121 179
             android:layout_width="match_parent"
    
    122 180
             android:layout_height="wrap_content"
    
    123 181
             android:layout_gravity="bottom"
    
    124
    -        app:srcCompat="@drawable/ic_onion_pattern"
    
    125
    -        tools:ignore="ContentDescription"
    
    182
    +        android:visibility="gone"
    
    126 183
             app:layout_constraintBottom_toTopOf="@id/toolbarLayout"
    
    127 184
             app:layout_constraintEnd_toEndOf="parent"
    
    128
    -        app:layout_constraintStart_toStartOf="parent" />
    
    185
    +        app:layout_constraintStart_toStartOf="parent"
    
    186
    +        app:srcCompat="@drawable/ic_onion_pattern"
    
    187
    +        tools:ignore="ContentDescription" />
    
    129 188
     
    
    130 189
         <androidx.constraintlayout.widget.ConstraintLayout
    
    131 190
             android:id="@+id/toolbarLayout"
    

  • app/src/main/res/layout/tor_info_banner.xml deleted
    1
    -<?xml version="1.0" encoding="utf-8"?>
    
    2
    -<!-- This Source Code Form is subject to the terms of the Mozilla Public
    
    3
    -   - License, v. 2.0. If a copy of the MPL was not distributed with this
    
    4
    -   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
    
    5
    -<androidx.constraintlayout.widget.ConstraintLayout
    
    6
    -    xmlns:android="http://schemas.android.com/apk/res/android"
    
    7
    -    xmlns:app="http://schemas.android.com/apk/res-auto"
    
    8
    -    android:id="@+id/info_banner_wrapper"
    
    9
    -    style="@style/OnboardingCardLightWithPadding"
    
    10
    -    android:layout_width="match_parent"
    
    11
    -    android:layout_height="wrap_content"
    
    12
    -    android:clipChildren="false"
    
    13
    -    android:clipToPadding="false">
    
    14
    -
    
    15
    -    <LinearLayout
    
    16
    -        android:id="@+id/info_banner_header_wrapper"
    
    17
    -        android:layout_width="match_parent"
    
    18
    -        android:layout_height="wrap_content"
    
    19
    -        app:layout_constraintStart_toStartOf="parent"
    
    20
    -        app:layout_constraintTop_toTopOf="parent"
    
    21
    -        android:importantForAccessibility="no">
    
    22
    -
    
    23
    -        <ImageView
    
    24
    -            android:id="@+id/tor_info_banner_icon"
    
    25
    -            android:layout_width="wrap_content"
    
    26
    -            android:layout_height="32dp"
    
    27
    -            android:layout_marginEnd="10dp"
    
    28
    -            android:adjustViewBounds="true"
    
    29
    -            android:clickable="false"
    
    30
    -            android:focusable="false"
    
    31
    -            android:importantForAccessibility="no"
    
    32
    -            app:srcCompat="@drawable/vpn_survey_icon"/>
    
    33
    -
    
    34
    -        <TextView
    
    35
    -            android:id="@+id/info_banner_header"
    
    36
    -            android:layout_width="match_parent"
    
    37
    -            android:layout_height="wrap_content"
    
    38
    -            android:ellipsize="none"
    
    39
    -            android:lineSpacingExtra="6dp"
    
    40
    -            android:paddingHorizontal="4dp"
    
    41
    -            android:paddingTop="4dp"
    
    42
    -            android:scrollHorizontally="false"
    
    43
    -            android:textAlignment="viewStart"
    
    44
    -            android:textColor="?primaryText"
    
    45
    -            android:textSize="20sp"
    
    46
    -            android:text="Do you use a VPN?" />
    
    47
    -    </LinearLayout>
    
    48
    -
    
    49
    -    <TextView
    
    50
    -        android:id="@+id/info_banner_description"
    
    51
    -        android:layout_width="match_parent"
    
    52
    -        android:layout_height="wrap_content"
    
    53
    -        android:ellipsize="none"
    
    54
    -        android:lineSpacingExtra="6dp"
    
    55
    -        android:paddingHorizontal="4dp"
    
    56
    -        android:paddingTop="4dp"
    
    57
    -        app:layout_constraintEnd_toEndOf="parent"
    
    58
    -        app:layout_constraintStart_toStartOf="parent"
    
    59
    -        app:layout_constraintTop_toBottomOf="@id/info_banner_header_wrapper"
    
    60
    -        android:scrollHorizontally="false"
    
    61
    -        android:textAlignment="viewStart"
    
    62
    -        android:textColor="?primaryText"
    
    63
    -        android:textSize="16sp"
    
    64
    -        android:text="We’d like to learn more about how and why our users use VPNs. Complete this short ten-minute survey to tell us about your experience:" />
    
    65
    -
    
    66
    -    <Button
    
    67
    -        style="@style/PositiveButton"
    
    68
    -        android:id="@+id/info_banner_launch_button"
    
    69
    -        android:text="Learn More"
    
    70
    -        android:layout_marginTop="16dp"
    
    71
    -        android:textSize="18dp"
    
    72
    -        android:textColor="@android:color/black"
    
    73
    -        android:background="@drawable/info_banner_padded_background"
    
    74
    -        android:fontFamily="Roboto-Medium"
    
    75
    -        app:layout_constraintEnd_toEndOf="parent"
    
    76
    -        app:layout_constraintStart_toStartOf="parent"
    
    77
    -        app:layout_constraintTop_toBottomOf="@id/info_banner_description" />
    
    78
    -
    
    79
    -</androidx.constraintlayout.widget.ConstraintLayout>

  • app/src/main/res/values/colors.xml
    ... ... @@ -191,6 +191,8 @@
    191 191
         <color name="mozac_widget_favicon_background_private_theme">@color/photonInk50</color>
    
    192 192
         <color name="mozac_widget_favicon_border_private_theme">@color/photonInk50</color>
    
    193 193
     
    
    194
    +    <color name="tor_yec_home_background">#2A1B51</color>
    
    195
    +
    
    194 196
         <!-- Tab Tray -->
    
    195 197
         <color name="tab_tray_item_text_private_theme">@color/photonLightGrey05</color>
    
    196 198
         <color name="tab_tray_item_url_private_theme">@color/photonLightGrey60</color>
    
    ... ... @@ -424,7 +426,4 @@
    424 426
     
    
    425 427
         <!-- Toolbar menu icon colors -->
    
    426 428
         <color name="toolbar_menu_transparent">@android:color/transparent</color>
    
    427
    -
    
    428
    -    <!-- Tor -->
    
    429
    -    <color name="info_banner_padded_background_color">#A76FFA</color>
    
    430 429
     </resources>

  • app/src/main/res/values/styles.xml
    ... ... @@ -284,6 +284,10 @@
    284 284
     
    
    285 285
         <style name="PrivateTheme" parent="PrivateThemeBase" />
    
    286 286
     
    
    287
    +    <style name="PrivateEOYTheme" parent="PrivateThemeBase" >
    
    288
    +        <item name="homeBackground">@color/tor_yec_home_background</item>
    
    289
    +    </style>
    
    290
    +
    
    287 291
         <!-- Fade animation for theme switching -->
    
    288 292
         <style name="WindowAnimationTransition">
    
    289 293
             <item name="android:windowEnterAnimation">@anim/fade_in</item>
    
    ... ... @@ -322,6 +326,12 @@
    322 326
             <item name="android:textColor">#000000</item>
    
    323 327
         </style>
    
    324 328
     
    
    329
    +    <style name="TorDonateYecButton" parent="NeutralButton">
    
    330
    +        <item name="android:background">@drawable/tor_yec_donate_rounded_corners</item>
    
    331
    +        <item name="backgroundTint">#EFB149</item>
    
    332
    +        <item name="android:textColor">#000000</item>
    
    333
    +    </style>
    
    334
    +
    
    325 335
         <style name="DestructiveButton" parent="NeutralButton">
    
    326 336
             <item name="iconTint">@color/destructive_button_text_color</item>
    
    327 337
             <item name="android:textColor">@color/destructive_button_text_color</item>
    

  • app/src/main/res/values/torbrowser_strings.xml
    ... ... @@ -72,4 +72,7 @@
    72 72
     
    
    73 73
         <!-- Spoof locale to English -->
    
    74 74
         <string name="tor_spoof_english">Request English versions of web pages for enhanced privacy</string>
    
    75
    +
    
    76
    +    <string name="tor_privacy_human_right">Privacy is a human right</string>
    
    77
    +    <string name="tor_donationmatch_202110">Your donation will be matched by Friends of Tor, up to $150,000.</string>
    
    75 78
     </resources>