
clairehurst pushed to branch tor-browser-140.3.0esr-15.0-1 at The Tor Project / Applications / Tor Browser Commits: eae57191 by clairehurst at 2025-10-07T14:09:43-06:00 fixup! [android] Modify UI/UX - - - - - 087dca19 by clairehurst at 2025-10-07T16:20:15-06:00 fixup! TB 44031 [android]: 2025 YEC - - - - - 0e2ad060 by clairehurst at 2025-10-07T16:20:15-06:00 fixup! TB 44031 [android]: 2025 YEC preview - - - - - 5 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/CampaignCompose.kt - + mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorCampaignViewModel.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorHomePage.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorHomePagePreview.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -161,9 +161,9 @@ import org.mozilla.fenix.wallpapers.Wallpaper import org.mozilla.fenix.GleanMetrics.TabStrip as TabStripMetrics import org.mozilla.fenix.components.toolbar.ToolbarPosition +import org.mozilla.fenix.tor.TorCampaignViewModel import org.mozilla.fenix.tor.TorHomePage import org.mozilla.fenix.tor.UrlQuickLoadViewModel -import org.mozilla.fenix.tor.shouldInitiallyShowPromo import java.util.Locale @Suppress("TooManyFunctions", "LargeClass") @@ -179,6 +179,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { internal val binding get() = _binding!! private val snackbarBinding = ViewBoundFeatureWrapper<SnackbarBinding>() + private val torCampaignViewModel: TorCampaignViewModel by activityViewModels() private val homeViewModel: HomeScreenViewModel by activityViewModels() private val urlQuickLoadViewModel: UrlQuickLoadViewModel by activityViewModels() @@ -558,9 +559,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { listenForMicrosurveyMessage(requireContext()) } - binding.torHomepageView.setContent { - initComposeTorHomePageView() - } + initComposeTorHomePageView() disableAppBarDragging() @@ -978,7 +977,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { TorHomePage( - shouldInitiallyShowPromo(), + torCampaignViewModel.shouldInitiallyShowPromo, onClicked = { val baseUrl = "https://www.torproject.org/donate" val locale = Locale.getDefault().getLanguage() ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/CampaignCompose.kt ===================================== @@ -272,22 +272,3 @@ private fun DonateButton(onDonateButtonClicked: () -> Unit) { ) } } - - - -fun shouldInitiallyShowPromo(): Boolean { -// return true // uncomment to test - - val dateFormat = SimpleDateFormat("yyyy-MM-dd-hh-zzz") - val startDate = dateFormat.parse("2025-10-14-15-UTC") // from https://gitlab.torproject.org/tpo/web/team/-/issues/66 - val endDate = dateFormat.parse("2026-01-02-00-UTC") // from https://gitlab.torproject.org/tpo/web/team/-/issues/66#note_3257224 - val currentDate = Date() - - if (currentDate.before(startDate) || currentDate.after(endDate)) { - return false - } - if (BuildConfig.BUILD_TYPE == "release") { - return true - } - return false -} ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorCampaignViewModel.kt ===================================== @@ -0,0 +1,34 @@ +package org.mozilla.fenix.tor + +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.lifecycle.ViewModel +import java.text.SimpleDateFormat +import java.util.Date +import kotlin.getValue +import org.mozilla.geckoview.BuildConfig + +class TorCampaignViewModel : ViewModel() { + val shouldInitiallyShowPromo: MutableState<Boolean> by lazy { + mutableStateOf(shouldInitiallyShowPromo()) + } + + fun shouldInitiallyShowPromo(): Boolean { +// return true // uncomment to test + + val dateFormat = SimpleDateFormat("yyyy-MM-dd-hh-zzz") + val startDate = + dateFormat.parse("2025-10-14-15-UTC") // from https://gitlab.torproject.org/tpo/web/team/-/issues/66 + val endDate = + dateFormat.parse("2026-01-02-00-UTC") // from https://gitlab.torproject.org/tpo/web/team/-/issues/66#note_3257224 + val currentDate = Date() + + if (currentDate.before(startDate) || currentDate.after(endDate)) { + return false + } + if (BuildConfig.BUILD_TYPE == "release") { + return true + } + return false + } +} ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorHomePage.kt ===================================== @@ -12,6 +12,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment @@ -36,19 +37,19 @@ import org.mozilla.fenix.R @Composable @FlexibleWindowLightDarkPreview fun TorHomePage( - shouldInitiallyShowPromo: Boolean = false, + shouldInitiallyShowPromo: MutableState<Boolean> = mutableStateOf(false), onClicked: () -> Unit = {}, toolBarAtTop: Boolean = true, ) { val shouldShowPromo = rememberSaveable { - mutableStateOf(shouldInitiallyShowPromo) + shouldInitiallyShowPromo } Column( modifier = Modifier .fillMaxSize() .padding( - top = if (toolBarAtTop) dimensionResource(R.dimen.tab_strip_height) else 0.dp, - bottom = if (!toolBarAtTop) dimensionResource(R.dimen.tab_strip_height) else 0.dp, + top = if (toolBarAtTop) dimensionResource(R.dimen.browser_navbar_height) else 0.dp, + bottom = if (!toolBarAtTop) dimensionResource(R.dimen.browser_navbar_height) else 0.dp, ) .paint( BrushPainter( ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorHomePagePreview.kt ===================================== @@ -1,8 +1,10 @@ package org.mozilla.fenix.tor +import android.annotation.SuppressLint import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.PreviewParameter @@ -10,6 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import mozilla.components.compose.base.annotation.FlexibleWindowPreviewPortraitLandscapeEnglishArabicGerman import org.mozilla.fenix.home.ui.SearchBarPreview +@SuppressLint("UnrememberedMutableState") @FlexibleWindowPreviewPortraitLandscapeEnglishArabicGerman @Composable /** @@ -26,7 +29,7 @@ private fun TorHomePagePreview( SearchBarPreview() // unrestricted vertically so will follow contentAlignment TorHomePage( // restricted vertically so will not follow contentAlignment - shouldInitiallyShowPromo = booleanMatrix.first, + shouldInitiallyShowPromo = mutableStateOf(booleanMatrix.first), toolBarAtTop = toolbarAtTop, ) } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/18f6af8... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/18f6af8... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
clairehurst (@clairehurst)