Skip to content

Commit

Permalink
Update Settings: Update sub-screens (#5334)
Browse files Browse the repository at this point in the history
Task/Issue URL:
https://app.asana.com/0/1207908166761516/1208785622935234/f
### Description

Makes design changes to all the settings sub-screens, including:

- Copy changes
- Padding/Margin changes
- Adding/Updating new header images
- Rearranging items (Data clearing screen only)

### Steps to test this PR

Prerequisites: `newSettings` flag is on

Designs: 

### _Private Search_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10537&m=dev)
- [x] Open Private Search screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and "Always On"
- [x] Check copy has been updated
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/adab34f4-e03f-4b81-a066-2b1b5b80fbd6"
alt="Alt Text" width="300">|<img
src="https://github.com/user-attachments/assets/355bc950-c7d0-4a90-9289-2f05182c66c2"
alt="Alt Text" width="300">

### _Web Tracking Protection_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10580&m=dev)
- [x] Open Web Tracking Protection screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and "Always On"
- [x] Check copy has been updated
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/7550238e-cc4e-429f-9d6f-12360f6c77b7"
alt="Alt Text" width="300">|<img
src="https://github.com/user-attachments/assets/6b0ec787-f8f3-477e-bed3-c7e6deb27291"
alt="Alt Text" width="300">

### _Cookie Pop-Up Protection_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=13010-29805&m=dev)
- [x] Open Cookie Pop-Up Protection screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check new header image is visible
- [x] Check Status Indicator is visible and is "On" or "Off" depending
on the toggle
- [x] Turn toggle on/off
- [x] Check header image changes to either on/off version
- [x] Check Status Indicator turns to on/off
- [x] Check copy 
- [x] Press "Learn More"
- [x] Tracking Protections website should open
- [x] Press back
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/3cb8424e-c1a7-4f93-a494-01f5d5b2852e"
width="300">|<img
src="https://github.com/user-attachments/assets/104f2f29-d3dd-4646-a429-89f1efaa4131"
width="300">

### _App Tracking Protection_
- [x] Open App Tracking Protection screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Email Protection_
- [x] Open Email Protection screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _General_
- [x] Open General screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Sync & Backup_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=13280-39196&m=dev)
- [x] Open Sync & Backup screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check "Single Device Setup" heading is now "Other Options"
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/cb5a57b3-0355-4da4-bc48-6daf9d6a767e"
width="300">|<img
src="https://github.com/user-attachments/assets/5f742629-3b64-4b92-8b1f-6769bcc29f85"
width="300">

### _Appearance_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12441-20931&m=dev)
- [x] Open Appearance screen
- [x] Screen should default to device transition and no longer crossfade
- [x] The App Icon should now be aligned to the right of the screen

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/c005bc33-ebc2-47a4-9fff-7dfe086b055a"
width="300">|<img
src="https://github.com/user-attachments/assets/10b1593b-3b3a-411d-939f-af4165497b3f"
width="300">

### _Passwords & Autofill_
- [x] Open Passwords & Autofill screen
- [x] Screen should default to device transition and no longer crossfade
- [x] The toolbar title should be "Passwords & Autofill"

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/6d8ca108-529a-478d-96ca-83be998ca296"
width="300">|<img
src="https://github.com/user-attachments/assets/ebbc844d-99a9-4b47-bffa-c626a6d7ff5a"
width="300">

### _Accessibility_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=11073-14078&m=dev)
- [x] Open Accessibility screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Check screen top padding has been increased

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/40d78b41-35dc-4e04-9634-cf239943a077"
width="300">|<img
src="https://github.com/user-attachments/assets/d42670de-a6e2-4829-a777-3898fd1772d8"
width="300">

### _Permissions_
- [x] Open Permissions screen
- [x] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _Data Clearing_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-12784&m=dev)
- [x] Open Data Clearing screen
- [x] Screen should default to device transition and no longer crossfade
- [x] Order of items should be 1. "Fire Button Animation" 2. Divider 3.
"Fireproof Sites" 4. "Automatically Clear Data..." 5. "Clear On..."
- [x] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/c0e6fd1e-a221-48c8-bc51-39cc22ce475b"
width="300">|<img
src="https://github.com/user-attachments/assets/59ac1832-4ab9-4e77-a6af-15ddfba843e4"
width="300">

### _Duck Player_
- [ ] Open Duck Player screen
- [ ] Screen should default to device transition and no longer crossfade
- No other changes made to this screen

### _About_
-
[Designs](https://www.figma.com/design/BOHDESHODUXK7wSRNBOHdu/%F0%9F%A4%96-Android-Components?node-id=12993-10920&m=dev)
- [ ] Open About screen
- [ ] Screen should default to device transition and no longer crossfade
- [ ] Title in toolbar should be "About"
- [ ] Check about copy matches designs
- [ ] Check against designs

#### UI changes
| Before | After |
| - | - |
<img
src="https://github.com/user-attachments/assets/367f4768-4e9e-4395-b44f-e7c082bab1b8"
width="300">|<img
src="https://github.com/user-attachments/assets/434ccb4f-ab8a-4f56-a9fa-8d5d1ff557fc"
width="300">

_LegacySettings Screen_

Prerequisites: `newSettings` flag is off

- [ ] Smoke test, run through each item an ensure there are no major
visual changes e.g. two header images instead of 1

## Demo


https://github.com/user-attachments/assets/8c256538-816c-4ef5-a01b-d31260f6cb41
  • Loading branch information
mikescamell authored Dec 12, 2024
1 parent 15ab4b7 commit 4023cbe
Show file tree
Hide file tree
Showing 36 changed files with 808 additions and 198 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import android.text.style.ForegroundColorSpan
import android.text.style.UnderlineSpan
import android.view.View
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
Expand Down Expand Up @@ -80,7 +81,13 @@ class AboutDuckDuckGoActivity : DuckDuckGoActivity() {
setContentView(binding.root)
setupToolbar(binding.includeToolbar.toolbar)

binding.includeContent.aboutProvideFeedback.isGone = settingsFeature.self().isEnabled()
if (settingsFeature.self().isEnabled()) {
supportActionBar?.setTitle(R.string.aboutActivityTitleNew)
binding.includeContent.aboutTextNew.isVisible = true

binding.includeContent.aboutText.isGone = true
binding.includeContent.aboutProvideFeedback.isGone = true
}

configureUiEventHandlers()
observeViewModel()
Expand All @@ -93,14 +100,27 @@ class AboutDuckDuckGoActivity : DuckDuckGoActivity() {
}

private fun configureClickableLinks() {
with(binding.includeContent.aboutText) {
text = addClickableLinks()
movementMethod = LinkMovementMethod.getInstance()
if (settingsFeature.self().isEnabled()) {
with(binding.includeContent.aboutTextNew) {
text = addClickableLinks()
movementMethod = LinkMovementMethod.getInstance()
}
} else {
with(binding.includeContent.aboutText) {
text = addClickableLinks()
movementMethod = LinkMovementMethod.getInstance()
}
}
}

private fun addClickableLinks(): SpannableString {
val fullText = getText(R.string.aboutDescription) as SpannedString
val fullText = getText(
if (settingsFeature.self().isEnabled()) {
R.string.aboutDescriptionNew
} else {
R.string.aboutDescription
},
) as SpannedString
val spannableString = SpannableString(fullText)
val annotations = fullText.getSpans(0, fullText.length, Annotation::class.java)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import androidx.lifecycle.lifecycleScope
import com.duckduckgo.anvil.annotations.ContributeToActivityStarter
import com.duckduckgo.anvil.annotations.InjectWith
import com.duckduckgo.app.browser.R
import com.duckduckgo.app.browser.databinding.ActivityDataClearingBinding
import com.duckduckgo.app.browser.databinding.ActivityFireButtonBinding
import com.duckduckgo.app.fire.fireproofwebsite.ui.FireproofWebsitesActivity
import com.duckduckgo.app.firebutton.FireButtonViewModel.AutomaticallyClearData
Expand All @@ -43,6 +44,7 @@ import com.duckduckgo.common.ui.DuckDuckGoActivity
import com.duckduckgo.common.ui.view.dialog.RadioListAlertDialogBuilder
import com.duckduckgo.common.ui.viewbinding.viewBinding
import com.duckduckgo.di.scopes.ActivityScope
import com.duckduckgo.settings.api.NewSettingsFeature
import javax.inject.Inject
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
Expand All @@ -58,20 +60,35 @@ class FireButtonActivity : DuckDuckGoActivity() {
@Inject
lateinit var appBuildConfig: AppBuildConfig

@Inject
lateinit var newSettingsFeature: NewSettingsFeature

private val viewModel: FireButtonViewModel by bindViewModel()
private val binding: ActivityFireButtonBinding by viewBinding()
private val legacyBinding: ActivityFireButtonBinding by viewBinding() // TODO remove
private val binding: ActivityDataClearingBinding by viewBinding()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(binding.root)
setupToolbar(binding.includeToolbar.toolbar)
if (newSettingsFeature.self().isEnabled()) {
setContentView(binding.root)
setupToolbar(binding.includeToolbar.toolbar)
supportActionBar?.setTitle(R.string.dataClearingActivityTitle)
} else {
setContentView(legacyBinding.root)
setupToolbar(legacyBinding.includeToolbar.toolbar)
}

configureUiEventHandlers()
observeViewModel()
}

private fun configureUiEventHandlers() {
legacyBinding.fireproofWebsites.setClickListener { viewModel.onFireproofWebsitesClicked() }
legacyBinding.automaticallyClearWhatSetting.setClickListener { viewModel.onAutomaticallyClearWhatClicked() }
legacyBinding.automaticallyClearWhenSetting.setClickListener { viewModel.onAutomaticallyClearWhenClicked() }
legacyBinding.selectedFireAnimationSetting.setClickListener { viewModel.userRequestedToChangeFireAnimation() }

binding.fireproofWebsites.setClickListener { viewModel.onFireproofWebsitesClicked() }
binding.automaticallyClearWhatSetting.setClickListener { viewModel.onAutomaticallyClearWhatClicked() }
binding.automaticallyClearWhenSetting.setClickListener { viewModel.onAutomaticallyClearWhenClicked() }
Expand All @@ -96,17 +113,21 @@ class FireButtonActivity : DuckDuckGoActivity() {

private fun updateAutomaticClearDataOptions(automaticallyClearData: AutomaticallyClearData) {
val clearWhatSubtitle = getString(automaticallyClearData.clearWhatOption.nameStringResourceId())
legacyBinding.automaticallyClearWhatSetting.setSecondaryText(clearWhatSubtitle)
binding.automaticallyClearWhatSetting.setSecondaryText(clearWhatSubtitle)

val clearWhenSubtitle = getString(automaticallyClearData.clearWhenOption.nameStringResourceId())
legacyBinding.automaticallyClearWhenSetting.setSecondaryText(clearWhenSubtitle)
binding.automaticallyClearWhenSetting.setSecondaryText(clearWhenSubtitle)

val whenOptionEnabled = automaticallyClearData.clearWhenOptionEnabled
legacyBinding.automaticallyClearWhenSetting.isEnabled = whenOptionEnabled
binding.automaticallyClearWhenSetting.isEnabled = whenOptionEnabled
}

private fun updateSelectedFireAnimation(fireAnimation: FireAnimation) {
val subtitle = getString(fireAnimation.nameResId)
legacyBinding.selectedFireAnimationSetting.setSecondaryText(subtitle)
binding.selectedFireAnimationSetting.setSecondaryText(subtitle)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package com.duckduckgo.app.privatesearch

import android.os.Bundle
import android.widget.CompoundButton
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.flowWithLifecycle
Expand All @@ -32,6 +33,7 @@ import com.duckduckgo.common.ui.DuckDuckGoActivity
import com.duckduckgo.common.ui.viewbinding.viewBinding
import com.duckduckgo.di.scopes.ActivityScope
import com.duckduckgo.navigation.api.GlobalActivityStarter
import com.duckduckgo.settings.api.NewSettingsFeature
import javax.inject.Inject
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
Expand All @@ -43,6 +45,9 @@ class PrivateSearchActivity : DuckDuckGoActivity() {
@Inject
lateinit var globalActivityStarter: GlobalActivityStarter

@Inject
lateinit var newSettingsFeature: NewSettingsFeature

private val viewModel: PrivateSearchViewModel by bindViewModel()
private val binding: ActivityPrivateSearchBinding by viewBinding()

Expand All @@ -60,6 +65,20 @@ class PrivateSearchActivity : DuckDuckGoActivity() {
setContentView(binding.root)
setupToolbar(binding.includeToolbar.toolbar)

if (newSettingsFeature.self().isEnabled()) {
with(binding) {
privateSearchHeaderImage.isGone = true
privateSearchTitle.isGone = true
privateSearchDescription.isGone = true
privateSearchHeadingSearchSettings.isGone = true

privateSearchHeaderImageNew.isVisible = true
privateSearchTitleNew.isVisible = true
statusIndicator.isVisible = true
privateSearchDescriptionNew.isVisible = true
}
}

configureUiEventHandlers()
observeViewModel()
}
Expand Down
128 changes: 26 additions & 102 deletions app/src/main/java/com/duckduckgo/app/settings/NewSettingsActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package com.duckduckgo.app.settings

import android.app.ActivityOptions
import android.content.Context
import android.content.Intent
import android.os.Bundle
Expand Down Expand Up @@ -81,6 +80,7 @@ import com.duckduckgo.internal.features.api.InternalFeaturePlugin
import com.duckduckgo.mobile.android.app.tracking.ui.AppTrackingProtectionScreens.AppTrackerActivityWithEmptyParams
import com.duckduckgo.mobile.android.app.tracking.ui.AppTrackingProtectionScreens.AppTrackerOnboardingActivityWithEmptyParamsParams
import com.duckduckgo.navigation.api.GlobalActivityStarter
import com.duckduckgo.navigation.api.GlobalActivityStarter.ActivityParams
import com.duckduckgo.settings.api.DuckPlayerSettingsPlugin
import com.duckduckgo.settings.api.ProSettingsPlugin
import com.duckduckgo.subscriptions.api.PrivacyProFeedbackScreens.GeneralPrivacyProFeedbackScreenNoParams
Expand Down Expand Up @@ -305,29 +305,28 @@ class NewSettingsActivity : DuckDuckGoActivity() {
viewsPrivacy.cookiePopupProtectionSetting.setStatus(isOn = enabled)
}

private fun processCommand(it: Command?) {
private fun processCommand(it: Command) {
when (it) {
is LaunchDefaultBrowser -> launchDefaultAppScreen()
is LaunchAutofillSettings -> launchAutofillSettings()
is LaunchAccessibilitySettings -> launchAccessibilitySettings()
is LaunchAppTPTrackersScreen -> launchAppTPTrackersScreen()
is LaunchAppTPOnboarding -> launchAppTPOnboardingScreen()
is LaunchEmailProtection -> launchEmailProtectionScreen(it.url)
is LaunchEmailProtectionNotSupported -> launchEmailProtectionNotSupported()
is LaunchAutofillSettings -> launchScreen(AutofillSettingsScreen(source = AutofillSettingsLaunchSource.SettingsActivity))
is LaunchAccessibilitySettings -> launchScreen(AccessibilityScreens.Default)
is LaunchAppTPTrackersScreen -> launchScreen(AppTrackerActivityWithEmptyParams)
is LaunchAppTPOnboarding -> launchScreen(AppTrackerOnboardingActivityWithEmptyParamsParams)
is LaunchEmailProtection -> launchActivityAndFinish(BrowserActivity.intent(this, it.url, interstitialScreen = true))
is LaunchEmailProtectionNotSupported -> launchScreen(EmailProtectionUnsupportedScreenNoParams)
is LaunchAddHomeScreenWidget -> launchAddHomeScreenWidget()
is LaunchSyncSettings -> launchSyncSettings()
is LaunchPrivateSearchWebPage -> launchPrivateSearchScreen()
is LaunchWebTrackingProtectionScreen -> launchWebTrackingProtectionScreen()
is LaunchCookiePopupProtectionScreen -> launchCookiePopupProtectionScreen()
is LaunchFireButtonScreen -> launchFireButtonScreen()
is LaunchPermissionsScreen -> launchPermissionsScreen()
is LaunchAppearanceScreen -> launchAppearanceScreen()
is LaunchAboutScreen -> launchAboutScreen()
is LaunchGeneralSettingsScreen -> launchGeneralSettingsScreen()
is LaunchSyncSettings -> launchScreen(SyncActivityWithEmptyParams)
is LaunchPrivateSearchWebPage -> launchScreen(PrivateSearchScreenNoParams)
is LaunchWebTrackingProtectionScreen -> launchScreen(WebTrackingProtectionScreenNoParams)
is LaunchCookiePopupProtectionScreen -> launchActivity(AutoconsentSettingsActivity.intent(this))
is LaunchFireButtonScreen -> launchScreen(FireButtonScreenNoParams)
is LaunchPermissionsScreen -> launchScreen(PermissionsScreenNoParams)
is LaunchAppearanceScreen -> launchScreen(AppearanceScreen.Default)
is LaunchAboutScreen -> launchScreen(AboutScreenNoParams)
is LaunchGeneralSettingsScreen -> launchScreen(GeneralSettingsScreenNoParams)
is LaunchFeedback -> launchFeedback()
is LaunchPproUnifiedFeedback -> launchPproUnifiedFeedback()
is LaunchOtherPlatforms -> launchOtherPlatforms()
null -> TODO()
is LaunchPproUnifiedFeedback -> launchScreen(GeneralPrivacyProFeedbackScreenNoParams)
is LaunchOtherPlatforms -> launchActivityAndFinish(BrowserActivity.intent(context = this, queryExtra = OTHER_PLATFORMS_URL))
}
}

Expand All @@ -350,103 +349,28 @@ class NewSettingsActivity : DuckDuckGoActivity() {
launchDefaultAppActivity()
}

private fun launchAutofillSettings() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AutofillSettingsScreen(source = AutofillSettingsLaunchSource.SettingsActivity), options)
private fun launchScreen(activityParams: ActivityParams) {
globalActivityStarter.start(this, activityParams)
}

private fun launchAccessibilitySettings() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AccessibilityScreens.Default, options)
private fun launchActivity(intent: Intent) {
startActivity(intent)
}

private fun launchEmailProtectionScreen(url: String) {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
startActivity(BrowserActivity.intent(this, url, interstitialScreen = true), options)
this.finish()
}

private fun launchEmailProtectionNotSupported() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, EmailProtectionUnsupportedScreenNoParams, options)
}

private fun launchSyncSettings() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, SyncActivityWithEmptyParams, options)
}

private fun launchAppTPTrackersScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AppTrackerActivityWithEmptyParams, options)
}

private fun launchAppTPOnboardingScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AppTrackerOnboardingActivityWithEmptyParamsParams, options)
private fun launchActivityAndFinish(intent: Intent) {
launchActivity(intent)
finish()
}

private fun launchAddHomeScreenWidget() {
pixel.fire(AppPixelName.SETTINGS_ADD_HOME_SCREEN_WIDGET_CLICKED)
addWidgetLauncher.launchAddWidget(this)
}

private fun launchPrivateSearchScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, PrivateSearchScreenNoParams, options)
}

private fun launchWebTrackingProtectionScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, WebTrackingProtectionScreenNoParams, options)
}

private fun launchCookiePopupProtectionScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
startActivity(AutoconsentSettingsActivity.intent(this), options)
}

private fun launchFireButtonScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, FireButtonScreenNoParams, options)
}

private fun launchPermissionsScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, PermissionsScreenNoParams, options)
}

private fun launchAppearanceScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AppearanceScreen.Default, options)
}

private fun launchAboutScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, AboutScreenNoParams, options)
}

private fun launchGeneralSettingsScreen() {
val options = ActivityOptions.makeSceneTransitionAnimation(this).toBundle()
globalActivityStarter.start(this, GeneralSettingsScreenNoParams, options)
}

private fun launchFeedback() {
feedbackFlow.launch(null)
}

private fun launchPproUnifiedFeedback() {
globalActivityStarter.start(
this,
GeneralPrivacyProFeedbackScreenNoParams,
)
}

private fun launchOtherPlatforms() {
startActivity(BrowserActivity.intent(context = this, queryExtra = OTHER_PLATFORMS_URL))
finish()
}

companion object {
const val LAUNCH_FROM_NOTIFICATION_PIXEL_NAME = "LAUNCH_FROM_NOTIFICATION_PIXEL_NAME"

Expand Down
Loading

0 comments on commit 4023cbe

Please sign in to comment.