aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/dev/msfjarvis/aps/injection
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2021-07-11 22:52:26 +0530
committerGitHub <noreply@github.com>2021-07-11 17:22:26 +0000
commit6e4ffe290265ef8b3cd82f5ab6a7eb8c0157bf6a (patch)
tree13739c1079e5cd4ce609cdbb4501450b2eabecb4 /app/src/main/java/dev/msfjarvis/aps/injection
parent9c388e49748084bdac3fb277ea507b80b9c7c33a (diff)
downloadHardenedPass-6e4ffe290265ef8b3cd82f5ab6a7eb8c0157bf6a.tar.gz
HardenedPass-6e4ffe290265ef8b3cd82f5ab6a7eb8c0157bf6a.zip
Add initial implementation of Gopenpgp-backed PGP (#1441)
Diffstat (limited to 'app/src/main/java/dev/msfjarvis/aps/injection')
-rw-r--r--app/src/main/java/dev/msfjarvis/aps/injection/crypto/CryptoHandlerModule.kt31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/src/main/java/dev/msfjarvis/aps/injection/crypto/CryptoHandlerModule.kt b/app/src/main/java/dev/msfjarvis/aps/injection/crypto/CryptoHandlerModule.kt
new file mode 100644
index 00000000..fdd37bf3
--- /dev/null
+++ b/app/src/main/java/dev/msfjarvis/aps/injection/crypto/CryptoHandlerModule.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+package dev.msfjarvis.aps.injection.crypto
+
+import dagger.Module
+import dagger.Provides
+import dagger.hilt.InstallIn
+import dagger.hilt.components.SingletonComponent
+import dagger.multibindings.IntoSet
+import dev.msfjarvis.aps.data.crypto.CryptoHandler
+import dev.msfjarvis.aps.data.crypto.GopenpgpCryptoHandler
+
+/**
+ * This module adds all [CryptoHandler] implementations into a Set which makes it easier to build
+ * generic UIs which are not tied to a specific implementation because of injection.
+ */
+@Module
+@InstallIn(SingletonComponent::class)
+object CryptoHandlerModule {
+ @Provides
+ @IntoSet
+ fun providePgpCryptoHandler(): CryptoHandler {
+ return GopenpgpCryptoHandler()
+ }
+}
+
+/** Typealias for a [Set] of [CryptoHandler] instances injected by Dagger. */
+typealias CryptoSet = Set<@JvmSuppressWildcards CryptoHandler>