Skip to content

Commit 4234008

Browse files
authored
[PM-11139] Setting icon on passkeys (#4409)
1 parent 7b7c2da commit 4234008

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorImpl.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.x8bit.bitwarden.data.autofill.fido2.processor
22

33
import android.content.Context
4+
import android.graphics.drawable.Icon
45
import android.os.Build
56
import android.os.CancellationSignal
67
import android.os.OutcomeReceiver
@@ -266,6 +267,13 @@ class Fido2ProviderProcessorImpl(
266267
),
267268
beginGetPublicKeyCredentialOption = option,
268269
)
270+
.setIcon(
271+
Icon
272+
.createWithResource(
273+
context,
274+
R.drawable.ic_bw_passkey,
275+
),
276+
)
269277
.build()
270278
}
271279

app/src/main/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerImpl.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.autofill.fido2.manager
22

33
import android.app.Activity
44
import android.content.Intent
5+
import android.graphics.drawable.Icon
56
import android.os.Build
67
import androidx.annotation.RequiresApi
78
import androidx.credentials.CreatePublicKeyCredentialResponse
@@ -117,6 +118,13 @@ class Fido2CompletionManagerImpl(
117118
pendingIntent = pendingIntent,
118119
beginGetPublicKeyCredentialOption = result.options,
119120
)
121+
.setIcon(
122+
Icon
123+
.createWithResource(
124+
activity,
125+
R.drawable.ic_bw_passkey,
126+
),
127+
)
120128
.build()
121129
}
122130
PendingIntentHandler

app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorTest.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.x8bit.bitwarden.data.autofill.fido2.processor
22

33
import android.app.PendingIntent
44
import android.content.Context
5+
import android.graphics.drawable.Icon
56
import android.os.Bundle
67
import android.os.CancellationSignal
78
import android.os.OutcomeReceiver
@@ -46,12 +47,15 @@ import io.mockk.every
4647
import io.mockk.just
4748
import io.mockk.mockk
4849
import io.mockk.mockkConstructor
50+
import io.mockk.mockkStatic
4951
import io.mockk.runs
5052
import io.mockk.slot
5153
import io.mockk.unmockkConstructor
54+
import io.mockk.unmockkStatic
5255
import io.mockk.verify
5356
import kotlinx.coroutines.flow.MutableStateFlow
5457
import kotlinx.serialization.encodeToString
58+
import org.junit.jupiter.api.AfterEach
5559
import org.junit.jupiter.api.Assertions.assertEquals
5660
import org.junit.jupiter.api.BeforeEach
5761
import org.junit.jupiter.api.Test
@@ -99,6 +103,13 @@ class Fido2ProviderProcessorTest {
99103
clock,
100104
dispatcherManager,
101105
)
106+
107+
mockkStatic(Icon::class)
108+
}
109+
110+
@AfterEach
111+
fun tearDown() {
112+
unmockkStatic(Icon::class)
102113
}
103114

104115
@Test
@@ -477,6 +488,7 @@ class Fido2ProviderProcessorTest {
477488
every {
478489
anyConstructed<PublicKeyCredentialEntry.Builder>().build()
479490
} returns mockPublicKeyCredentialEntry
491+
every { Icon.createWithResource(context, any()) } returns mockk<Icon>()
480492

481493
fido2Processor.processGetCredentialRequest(request, cancellationSignal, callback)
482494

app/src/test/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerTest.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.x8bit.bitwarden.ui.autofill.fido2.manager
33
import android.app.Activity
44
import android.app.PendingIntent
55
import android.content.Intent
6+
import android.graphics.drawable.Icon
67
import androidx.credentials.provider.BeginGetCredentialResponse
78
import androidx.credentials.provider.PendingIntentHandler
89
import androidx.credentials.provider.PublicKeyCredentialEntry
@@ -92,6 +93,7 @@ class Fido2CompletionManagerTest {
9293
fido2CompletionManager = Fido2CompletionManagerImpl(mockActivity, mockIntentManager)
9394
mockkConstructor(Intent::class)
9495
mockkObject(PendingIntentHandler.Companion)
96+
mockkStatic(Icon::class)
9597
every {
9698
PendingIntentHandler.setCreateCredentialException(any(), any())
9799
} just runs
@@ -105,6 +107,7 @@ class Fido2CompletionManagerTest {
105107
unmockkConstructor(Intent::class, PublicKeyCredentialEntry.Builder::class)
106108
unmockkObject(PendingIntentHandler.Companion)
107109
unmockkStatic(PendingIntent::class)
110+
unmockkStatic(Icon::class)
108111
}
109112

110113
@Suppress("MaxLineLength")
@@ -206,6 +209,7 @@ class Fido2CompletionManagerTest {
206209
)
207210
} returns mockk()
208211
every { mockActivity.getString(any()) } returns "No username"
212+
every { Icon.createWithResource(mockActivity, any()) } returns mockk<Icon>()
209213

210214
fido2CompletionManager
211215
.completeFido2GetCredentialRequest(
@@ -256,6 +260,7 @@ class Fido2CompletionManagerTest {
256260
)
257261
} returns mockk()
258262
every { mockActivity.getString(any()) } returns "No Username"
263+
every { Icon.createWithResource(mockActivity, any()) } returns mockk<Icon>()
259264

260265
fido2CompletionManager
261266
.completeFido2GetCredentialRequest(

0 commit comments

Comments
 (0)