diff --git a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorImpl.kt index b3c27c024c..f8825df60d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorImpl.kt @@ -1,6 +1,7 @@ package com.x8bit.bitwarden.data.autofill.fido2.processor import android.content.Context +import android.graphics.drawable.Icon import android.os.Build import android.os.CancellationSignal import android.os.OutcomeReceiver @@ -266,6 +267,13 @@ class Fido2ProviderProcessorImpl( ), beginGetPublicKeyCredentialOption = option, ) + .setIcon( + Icon + .createWithResource( + context, + R.drawable.ic_bw_passkey, + ), + ) .build() } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerImpl.kt b/app/src/main/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerImpl.kt index 85962dce09..4f4a5d7646 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerImpl.kt @@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.autofill.fido2.manager import android.app.Activity import android.content.Intent +import android.graphics.drawable.Icon import android.os.Build import androidx.annotation.RequiresApi import androidx.credentials.CreatePublicKeyCredentialResponse @@ -117,6 +118,13 @@ class Fido2CompletionManagerImpl( pendingIntent = pendingIntent, beginGetPublicKeyCredentialOption = result.options, ) + .setIcon( + Icon + .createWithResource( + activity, + R.drawable.ic_bw_passkey, + ), + ) .build() } PendingIntentHandler diff --git a/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorTest.kt index 6f7f529c42..8db74ca29b 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/autofill/fido2/processor/Fido2ProviderProcessorTest.kt @@ -2,6 +2,7 @@ package com.x8bit.bitwarden.data.autofill.fido2.processor import android.app.PendingIntent import android.content.Context +import android.graphics.drawable.Icon import android.os.Bundle import android.os.CancellationSignal import android.os.OutcomeReceiver @@ -46,12 +47,15 @@ import io.mockk.every import io.mockk.just import io.mockk.mockk import io.mockk.mockkConstructor +import io.mockk.mockkStatic import io.mockk.runs import io.mockk.slot import io.mockk.unmockkConstructor +import io.mockk.unmockkStatic import io.mockk.verify import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.serialization.encodeToString +import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -99,6 +103,13 @@ class Fido2ProviderProcessorTest { clock, dispatcherManager, ) + + mockkStatic(Icon::class) + } + + @AfterEach + fun tearDown() { + unmockkStatic(Icon::class) } @Test @@ -477,6 +488,7 @@ class Fido2ProviderProcessorTest { every { anyConstructed().build() } returns mockPublicKeyCredentialEntry + every { Icon.createWithResource(context, any()) } returns mockk() fido2Processor.processGetCredentialRequest(request, cancellationSignal, callback) diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerTest.kt index 3cb0387356..0e5008b25c 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/autofill/fido2/manager/Fido2CompletionManagerTest.kt @@ -3,6 +3,7 @@ package com.x8bit.bitwarden.ui.autofill.fido2.manager import android.app.Activity import android.app.PendingIntent import android.content.Intent +import android.graphics.drawable.Icon import androidx.credentials.provider.BeginGetCredentialResponse import androidx.credentials.provider.PendingIntentHandler import androidx.credentials.provider.PublicKeyCredentialEntry @@ -92,6 +93,7 @@ class Fido2CompletionManagerTest { fido2CompletionManager = Fido2CompletionManagerImpl(mockActivity, mockIntentManager) mockkConstructor(Intent::class) mockkObject(PendingIntentHandler.Companion) + mockkStatic(Icon::class) every { PendingIntentHandler.setCreateCredentialException(any(), any()) } just runs @@ -105,6 +107,7 @@ class Fido2CompletionManagerTest { unmockkConstructor(Intent::class, PublicKeyCredentialEntry.Builder::class) unmockkObject(PendingIntentHandler.Companion) unmockkStatic(PendingIntent::class) + unmockkStatic(Icon::class) } @Suppress("MaxLineLength") @@ -206,6 +209,7 @@ class Fido2CompletionManagerTest { ) } returns mockk() every { mockActivity.getString(any()) } returns "No username" + every { Icon.createWithResource(mockActivity, any()) } returns mockk() fido2CompletionManager .completeFido2GetCredentialRequest( @@ -256,6 +260,7 @@ class Fido2CompletionManagerTest { ) } returns mockk() every { mockActivity.getString(any()) } returns "No Username" + every { Icon.createWithResource(mockActivity, any()) } returns mockk() fido2CompletionManager .completeFido2GetCredentialRequest(