/
rgd045
/
crypt-file
Обзор
Документация
Войти
/
rgd045
/
crypt-file
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/main/java/org/cryptomator/common/keychain/KeychainModule.java
36 строк
1 KB
Ralph Plawetzki
Beautify the code
20 сен 2022, 21:12
Не верифицирован
20 сен 2022, 21:12
1101a75
Код
Авторство
О чём код?
package org.cryptomator.common.keychain; import dagger.Module; import dagger.Provides; import org.cryptomator.common.settings.Settings; import org.cryptomator.integrations.keychain.KeychainAccessProvider; import javax.inject.Singleton; import javafx.beans.binding.Bindings; import javafx.beans.binding.ObjectExpression; import java.util.List; @Module public class KeychainModule { @Provides @Singleton static List<KeychainAccessProvider> provideSupportedKeychainAccessProviders() { return KeychainAccessProvider.get().toList(); } @Provides @Singleton static ObjectExpression<KeychainAccessProvider> provideKeychainAccessProvider(Settings settings, List<KeychainAccessProvider> providers) { return Bindings.createObjectBinding(() -> { if (!settings.useKeychain().get()) { return null; } var selectedProviderClass = settings.keychainProvider().get(); var selectedProvider = providers.stream().filter(provider -> provider.getClass().getName().equals(selectedProviderClass)).findAny(); var fallbackProvider = providers.stream().findFirst().orElse(null); return selectedProvider.orElse(fallbackProvider); }, settings.keychainProvider(), settings.useKeychain()); } }