Matthew Finkel pushed to branch tor-browser-91.0.0b5-11.0-1 at The Tor Project / Applications / fenix
Commits:
-
42cb015c
by Matthew Finkel at 2021-08-03T16:43:39+00:00
-
f16690cd
by Matthew Finkel at 2021-08-03T16:43:40+00:00
-
cdd226e6
by Matthew Finkel at 2021-08-03T16:43:42+00:00
13 changed files:
- app/src/main/java/org/mozilla/fenix/components/Analytics.kt
- app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlController.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlInteractor.kt
- app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt
- − app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TorInfoBannerViewHolder.kt
- app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt
- − app/src/main/res/drawable/info_banner_padded_background.xml
- − app/src/main/res/drawable/tor_banner_warning_icon.png
- app/src/main/res/layout/fragment_home.xml
- − app/src/main/res/layout/tor_info_banner.xml
- app/src/main/res/values/colors.xml
Changes:
... | ... | @@ -14,6 +14,7 @@ import mozilla.components.lib.crash.service.GleanCrashReporterService |
14 | 14 |
import mozilla.components.lib.crash.service.MozillaSocorroService
|
15 | 15 |
import mozilla.components.lib.crash.service.SentryService
|
16 | 16 |
import mozilla.components.service.nimbus.NimbusApi
|
17 |
+import mozilla.components.service.nimbus.NimbusDisabled
|
|
17 | 18 |
import org.mozilla.fenix.BuildConfig
|
18 | 19 |
import org.mozilla.fenix.Config
|
19 | 20 |
import org.mozilla.fenix.HomeActivity
|
... | ... | @@ -101,7 +102,11 @@ class Analytics( |
101 | 102 |
}
|
102 | 103 |
|
103 | 104 |
val experiments: NimbusApi by lazyMonitored {
|
104 |
- createNimbus(context, BuildConfig.NIMBUS_ENDPOINT)
|
|
105 |
+ if (BuildConfig.DATA_COLLECTION_DISABLED) {
|
|
106 |
+ NimbusDisabled()
|
|
107 |
+ } else {
|
|
108 |
+ createNimbus(context, BuildConfig.NIMBUS_ENDPOINT)
|
|
109 |
+ }
|
|
105 | 110 |
}
|
106 | 111 |
}
|
107 | 112 |
|
... | ... | @@ -835,6 +835,15 @@ class HomeFragment : Fragment() { |
835 | 835 |
activity?.window?.setBackgroundDrawableResource(R.drawable.private_home_background_gradient)
|
836 | 836 |
}
|
837 | 837 |
|
838 |
+ // fenix#40176: Ensure the Home fragment is rendered correctly when we resume.
|
|
839 |
+ val localView = view
|
|
840 |
+ if (localView != null) {
|
|
841 |
+ val mode = currentMode.getCurrentMode()
|
|
842 |
+ adjustHomeFragmentView(mode, localView)
|
|
843 |
+ updateSessionControlView(localView)
|
|
844 |
+ showSessionControlView(localView)
|
|
845 |
+ }
|
|
846 |
+ |
|
838 | 847 |
hideToolbar()
|
839 | 848 |
}
|
840 | 849 |
|
... | ... | @@ -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,
|
... | ... | @@ -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 |
}
|
... | ... | @@ -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 |
}
|
... | ... | @@ -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 |
|
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 |
- with(view.info_banner_description) {
|
|
30 |
- val spannedString: SpannableString = SpannableString(text)
|
|
31 |
- spannedString.setSpan(StyleSpan(Typeface.BOLD), 120, 138,
|
|
32 |
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
|
33 |
- setText(spannedString)
|
|
34 |
- }
|
|
35 |
- }
|
|
36 |
- |
|
37 |
- companion object {
|
|
38 |
- const val LAYOUT_ID = R.layout.tor_info_banner
|
|
39 |
- }
|
|
40 |
-}
|
... | ... | @@ -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 = "https://support.torproject.org/onionservices/#v2-deprecation"
|
|
44 | 43 |
|
45 | 44 |
enum class SumoTopic(internal val topicStr: String) {
|
46 | 45 |
FENIX_MOVING("sync-delist"),
|
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>
|
No preview for this file type
... | ... | @@ -94,8 +94,7 @@ |
94 | 94 |
android:textColor="#DEFFFFFF"
|
95 | 95 |
android:textSize="40sp"
|
96 | 96 |
android:lineSpacingMultiplier="1.1"
|
97 |
- app:layout_scrollFlags="scroll"
|
|
98 |
- android:visibility="gone" />
|
|
97 |
+ app:layout_scrollFlags="scroll" />
|
|
99 | 98 |
|
100 | 99 |
</com.google.android.material.appbar.AppBarLayout>
|
101 | 100 |
|
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/tor_banner_warning_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="" />
|
|
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="Tor is ending its support for version 2 (v2) Onion Services, and v2 onion sites have since been deprecated. If you're a site administrator, upgrade to a v3 onion service immediately." />
|
|
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>
|
... | ... | @@ -424,7 +424,4 @@ |
424 | 424 |
|
425 | 425 |
<!-- Toolbar menu icon colors -->
|
426 | 426 |
<color name="toolbar_menu_transparent">@android:color/transparent</color>
|
427 |
- |
|
428 |
- <!-- Tor -->
|
|
429 |
- <color name="info_banner_padded_background_color">#A76FFA</color>
|
|
430 | 427 |
</resources>
|