Skip to content

Commit 7120eef

Browse files
PM-28056: Consolidate IntentManager extensions (#6156)
1 parent 5eb56ca commit 7120eef

File tree

18 files changed

+108
-139
lines changed

18 files changed

+108
-139
lines changed

app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch
4444
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
4545
import com.bitwarden.ui.platform.composition.LocalIntentManager
4646
import com.bitwarden.ui.platform.manager.IntentManager
47+
import com.bitwarden.ui.platform.manager.util.startSystemAutofillSettingsActivity
4748
import com.bitwarden.ui.platform.model.WindowSize
4849
import com.bitwarden.ui.platform.resource.BitwardenDrawable
4950
import com.bitwarden.ui.platform.resource.BitwardenString
5051
import com.bitwarden.ui.platform.theme.BitwardenTheme
5152
import com.bitwarden.ui.platform.util.rememberWindowSize
5253
import com.x8bit.bitwarden.ui.auth.feature.accountsetup.handlers.rememberSetupAutoFillHandler
53-
import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity
5454

5555
/**
5656
* Top level composable for the Auto-fill setup screen.

app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ import com.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
4040
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
4141
import com.bitwarden.ui.platform.composition.LocalIntentManager
4242
import com.bitwarden.ui.platform.manager.IntentManager
43+
import com.bitwarden.ui.platform.manager.util.startDefaultEmailApplication
4344
import com.bitwarden.ui.platform.resource.BitwardenDrawable
4445
import com.bitwarden.ui.platform.resource.BitwardenString
4546
import com.bitwarden.ui.platform.theme.BitwardenTheme
4647
import com.x8bit.bitwarden.ui.auth.feature.checkemail.handlers.rememberCheckEmailHandler
47-
import com.x8bit.bitwarden.ui.platform.manager.utils.startDefaultEmailApplication
4848

4949
/**
5050
* Top level composable for the check email screen.

app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch
5555
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
5656
import com.bitwarden.ui.platform.composition.LocalIntentManager
5757
import com.bitwarden.ui.platform.manager.IntentManager
58+
import com.bitwarden.ui.platform.manager.util.startAppSettingsActivity
5859
import com.bitwarden.ui.platform.resource.BitwardenDrawable
5960
import com.bitwarden.ui.platform.resource.BitwardenString
6061
import com.bitwarden.ui.platform.theme.BitwardenTheme
@@ -67,7 +68,6 @@ import com.x8bit.bitwarden.ui.platform.components.toggle.BitwardenUnlockWithPinS
6768
import com.x8bit.bitwarden.ui.platform.composition.LocalBiometricsManager
6869
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricSupportStatus
6970
import com.x8bit.bitwarden.ui.platform.manager.biometrics.BiometricsManager
70-
import com.x8bit.bitwarden.ui.platform.manager.utils.startApplicationDetailsSettingsActivity
7171
import com.x8bit.bitwarden.ui.platform.util.displayLabel
7272
import com.x8bit.bitwarden.ui.platform.util.minutes
7373
import kotlinx.collections.immutable.ImmutableList
@@ -103,7 +103,7 @@ fun AccountSecurityScreen(
103103
AccountSecurityEvent.NavigateBack -> onNavigateBack()
104104

105105
AccountSecurityEvent.NavigateToApplicationDataSettings -> {
106-
intentManager.startApplicationDetailsSettingsActivity()
106+
intentManager.startAppSettingsActivity()
107107
}
108108

109109
AccountSecurityEvent.NavigateToDeleteAccount -> onNavigateToDeleteAccount()

app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/settings/autofill/AutoFillScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ import com.bitwarden.ui.platform.components.toggle.BitwardenSwitch
6060
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
6161
import com.bitwarden.ui.platform.composition.LocalIntentManager
6262
import com.bitwarden.ui.platform.manager.IntentManager
63+
import com.bitwarden.ui.platform.manager.util.startSystemAccessibilitySettingsActivity
64+
import com.bitwarden.ui.platform.manager.util.startSystemAutofillSettingsActivity
6365
import com.bitwarden.ui.platform.resource.BitwardenDrawable
6466
import com.bitwarden.ui.platform.resource.BitwardenString
6567
import com.bitwarden.ui.platform.theme.BitwardenTheme
@@ -69,8 +71,6 @@ import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.handlers.AutoFi
6971
import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.displayLabel
7072
import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.util.isAdvancedMatching
7173
import com.x8bit.bitwarden.ui.platform.manager.utils.startBrowserAutofillSettingsActivity
72-
import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAccessibilitySettingsActivity
73-
import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity
7474
import kotlinx.collections.immutable.toImmutableList
7575

7676
/**
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
@file:OmitFromCoverage
2+
3+
package com.x8bit.bitwarden.ui.platform.manager.utils
4+
5+
import android.content.Intent
6+
import com.bitwarden.annotation.OmitFromCoverage
7+
import com.bitwarden.ui.platform.manager.IntentManager
8+
import com.x8bit.bitwarden.data.autofill.model.browser.BrowserPackage
9+
10+
/**
11+
* Starts the browser autofill settings activity for the provided [browserPackage].
12+
*/
13+
fun IntentManager.startBrowserAutofillSettingsActivity(
14+
browserPackage: BrowserPackage,
15+
): Boolean {
16+
val intent = Intent(Intent.ACTION_APPLICATION_PREFERENCES)
17+
.apply {
18+
addCategory(Intent.CATEGORY_DEFAULT)
19+
addCategory(Intent.CATEGORY_APP_BROWSER)
20+
addCategory(Intent.CATEGORY_PREFERENCE)
21+
setPackage(browserPackage.packageName)
22+
}
23+
return startActivity(intent)
24+
}

app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/manager/utils/IntentManagerUtils.kt

Lines changed: 0 additions & 63 deletions
This file was deleted.

app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/manualcodeentry/ManualCodeEntryScreen.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.x8bit.bitwarden.ui.vault.feature.manualcodeentry
22

33
import android.Manifest
4-
import android.content.Intent
5-
import android.net.Uri
6-
import android.provider.Settings
74
import androidx.compose.foundation.layout.Column
85
import androidx.compose.foundation.layout.Spacer
96
import androidx.compose.foundation.layout.fillMaxSize
@@ -24,7 +21,6 @@ import androidx.compose.runtime.saveable.rememberSaveable
2421
import androidx.compose.runtime.setValue
2522
import androidx.compose.ui.Modifier
2623
import androidx.compose.ui.input.nestedscroll.nestedScroll
27-
import androidx.compose.ui.platform.LocalContext
2824
import androidx.compose.ui.platform.testTag
2925
import androidx.compose.ui.res.stringResource
3026
import androidx.compose.ui.text.style.TextAlign
@@ -44,6 +40,7 @@ import com.bitwarden.ui.platform.components.text.BitwardenHyperTextLink
4440
import com.bitwarden.ui.platform.components.util.rememberVectorPainter
4541
import com.bitwarden.ui.platform.composition.LocalIntentManager
4642
import com.bitwarden.ui.platform.manager.IntentManager
43+
import com.bitwarden.ui.platform.manager.util.startAppSettingsActivity
4744
import com.bitwarden.ui.platform.resource.BitwardenDrawable
4845
import com.bitwarden.ui.platform.resource.BitwardenString
4946
import com.bitwarden.ui.platform.theme.BitwardenTheme
@@ -74,15 +71,10 @@ fun ManualCodeEntryScreen(
7471
}
7572
}
7673

77-
val context = LocalContext.current
78-
7974
EventsEffect(viewModel = viewModel) { event ->
8075
when (event) {
8176
is ManualCodeEntryEvent.NavigateToAppSettings -> {
82-
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
83-
intent.data = Uri.parse("package:" + context.packageName)
84-
85-
intentManager.startActivity(intent = intent)
77+
intentManager.startAppSettingsActivity()
8678
}
8779

8880
is ManualCodeEntryEvent.NavigateToQrCodeScreen -> {

app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupAutofillScreenTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import androidx.compose.ui.test.performClick
1313
import androidx.compose.ui.test.performScrollTo
1414
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
1515
import com.bitwarden.ui.platform.manager.IntentManager
16+
import com.bitwarden.ui.platform.manager.util.startSystemAutofillSettingsActivity
1617
import com.bitwarden.ui.util.assertNoDialogExists
1718
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
18-
import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity
1919
import io.mockk.every
2020
import io.mockk.mockk
2121
import io.mockk.mockkStatic

app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/accountsetup/SetupBrowserAutofillScreenTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import com.x8bit.bitwarden.data.autofill.model.browser.BrowserPackage
1717
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
1818
import com.x8bit.bitwarden.ui.platform.feature.settings.autofill.browser.model.BrowserAutofillSettingsOption
1919
import com.x8bit.bitwarden.ui.platform.manager.utils.startBrowserAutofillSettingsActivity
20-
import com.x8bit.bitwarden.ui.platform.manager.utils.startSystemAutofillSettingsActivity
2120
import io.mockk.every
2221
import io.mockk.just
2322
import io.mockk.mockk
@@ -49,7 +48,7 @@ class SetupBrowserAutofillScreenTest : BitwardenComposeTest() {
4948

5049
@Before
5150
fun setup() {
52-
mockkStatic(IntentManager::startSystemAutofillSettingsActivity)
51+
mockkStatic(IntentManager::startBrowserAutofillSettingsActivity)
5352
setContent(
5453
intentManager = intentManager,
5554
) {
@@ -62,7 +61,7 @@ class SetupBrowserAutofillScreenTest : BitwardenComposeTest() {
6261

6362
@After
6463
fun tearDown() {
65-
unmockkStatic(IntentManager::startSystemAutofillSettingsActivity)
64+
unmockkStatic(IntentManager::startBrowserAutofillSettingsActivity)
6665
}
6766

6867
@Test

app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/checkemail/CheckEmailScreenTest.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@ import androidx.compose.ui.test.performClick
66
import androidx.compose.ui.test.performScrollTo
77
import com.bitwarden.core.data.repository.util.bufferedMutableSharedFlow
88
import com.bitwarden.ui.platform.manager.IntentManager
9+
import com.bitwarden.ui.platform.manager.util.startDefaultEmailApplication
910
import com.x8bit.bitwarden.ui.platform.base.BitwardenComposeTest
10-
import com.x8bit.bitwarden.ui.platform.manager.utils.startDefaultEmailApplication
1111
import io.mockk.every
12-
import io.mockk.just
1312
import io.mockk.mockk
1413
import io.mockk.mockkStatic
15-
import io.mockk.runs
1614
import io.mockk.verify
1715
import kotlinx.coroutines.flow.MutableStateFlow
1816
import org.junit.Assert.assertTrue
@@ -73,7 +71,7 @@ class CheckEmailScreenTest : BitwardenComposeTest() {
7371
@Test
7472
fun `NavigateToEmailApp should call openEmailApp`() {
7573
mockkStatic(IntentManager::startDefaultEmailApplication) {
76-
every { intentManager.startDefaultEmailApplication() } just runs
74+
every { intentManager.startDefaultEmailApplication() } returns true
7775
mutableEventFlow.tryEmit(CheckEmailEvent.NavigateToEmailApp)
7876
verify {
7977
intentManager.startDefaultEmailApplication()

0 commit comments

Comments
 (0)