Dan Ballard pushed to branch tor-browser-147.0a1-16.0-2 at The Tor Project / Applications / Tor Browser Commits: c7867cc3 by clairehurst at 2026-01-26T08:13:43-08:00 fixup! TB 42655 [android]: Implement "New circuit for this site" on Android Bug 44523: New circuit seems to have disappeared from 147 on Android - - - - - 5 changed files: - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MainMenu.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMenuController.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt - mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt Changes: ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/MenuDialogFragment.kt ===================================== @@ -117,6 +117,9 @@ import org.mozilla.fenix.webcompat.middleware.DefaultWebCompatReporterRetrievalS import org.mozilla.fenix.webcompat.middleware.WebCompatInfoDeserializer import com.google.android.material.R as materialR +import mozilla.components.browser.engine.gecko.GeckoEngineSession +import android.util.Log + // EXPANDED_MIN_RATIO is used for BottomSheetBehavior.halfExpandedRatio(). // That value needs to be less than the PEEK_HEIGHT. // If EXPANDED_MIN_RATIO is greater than the PEEK_HEIGHT, then there will be @@ -785,6 +788,13 @@ class MenuDialogFragment : BottomSheetDialogFragment() { }, ) }, + onNewCircuitButtonClick = { + components.core.store.state.selectedTab?.let { + (it.engineState.engineSession as GeckoEngineSession).newTorCircuit() + components.useCases.sessionUseCases.reload.invoke(it.id) + dismiss() + } ?: Log.e("MenuDialogFragment", "selectedTab was null, tab and tor circuit not refreshed") + }, ) } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MainMenu.kt ===================================== @@ -169,6 +169,7 @@ fun MainMenu( extensionsMenuItemDescription: String?, moreSettingsSubmenu: @Composable () -> Unit, extensionSubmenu: @Composable () -> Unit, + onNewCircuitButtonClick: () -> Unit, ) { MenuFrame( contentModifier = Modifier @@ -290,6 +291,7 @@ fun MainMenu( extensionsMenuItemDescription = extensionsMenuItemDescription, moreSettingsSubmenu = moreSettingsSubmenu, extensionSubmenu = extensionSubmenu, + onNewCircuitButtonClick = onNewCircuitButtonClick, ) } @@ -363,6 +365,7 @@ private fun ToolsAndActionsMenuGroup( extensionsMenuItemDescription: String?, moreSettingsSubmenu: @Composable () -> Unit, extensionSubmenu: @Composable () -> Unit, + onNewCircuitButtonClick: (() -> Unit)?, ) { MenuGroup { val labelId = R.string.browser_menu_desktop_site @@ -380,6 +383,12 @@ private fun ToolsAndActionsMenuGroup( menuItemState = if (isPdf) MenuItemState.DISABLED else MenuItemState.ENABLED } + MenuItem( + label = stringResource(R.string.library_new_circuit), + beforeIconPainter = painterResource(R.drawable.new_circuit), + onClick = onNewCircuitButtonClick, + ) + if (isBookmarked) { MenuItem( label = stringResource(id = R.string.browser_menu_edit_bookmark), @@ -764,6 +773,7 @@ private fun MenuDialogPreview() { onShareButtonClick = {}, moreSettingsSubmenu = {}, extensionSubmenu = {}, + onNewCircuitButtonClick = {}, ) } } @@ -853,6 +863,7 @@ private fun MenuDialogPrivatePreview( onWebExtensionMenuItemClick = {}, ) }, + onNewCircuitButtonClick = {}, ) } } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarMenuController.kt ===================================== @@ -453,6 +453,7 @@ class DefaultBrowserToolbarMenuController( navController.navigateSafe(R.id.browserFragment, directions) } + // Remove once moz deletes this old UI (Toolbar Menu is being replaced by MainMenu) ToolbarMenu.Item.NewTorCircuit -> { currentSession?.let { sessionUseCases.reload.invoke(it.id) @@ -612,6 +613,7 @@ class DefaultBrowserToolbarMenuController( ), ) + // Remove once moz deletes this old UI (Toolbar Menu is being replaced by MainMenu) ToolbarMenu.Item.NewTorCircuit -> { /* Tor doesn't use telemetry and therefore this doesn't need to be implemented */ } ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt ===================================== @@ -228,6 +228,7 @@ open class DefaultToolbarMenu( onItemTapped.invoke(ToolbarMenu.Item.NewTab) } + // Remove once moz deletes this old UI (Toolbar Menu is being replaced by MainMenu) private val newCircuitItem = BrowserMenuImageText( context.getString(R.string.library_new_circuit), R.drawable.new_circuit, @@ -409,6 +410,7 @@ open class DefaultToolbarMenu( listOfNotNull( if (shouldUseBottomToolbar) null else menuToolbar, newTabItem, + // Remove once moz deletes this old UI (Toolbar Menu is being replaced by MainMenu) BrowserMenuDivider(), newCircuitItem, BrowserMenuDivider(), ===================================== mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarMenu.kt ===================================== @@ -70,6 +70,7 @@ interface ToolbarMenu { object Passwords : Item() object Downloads : Item() object NewTab : Item() + // Remove once moz deletes this old UI (Toolbar Menu is being replaced by MainMenu) object NewTorCircuit : Item() } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c7867cc3... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/c7867cc3... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
Dan Ballard (@dan)