From 8ef9443b1e9af9fbc77aa1b9bca74dfdbe48dcdc Mon Sep 17 00:00:00 2001 From: Federico Maccaroni Date: Fri, 29 Sep 2023 11:02:19 -0300 Subject: [PATCH] PM-3349 PM-3350 MAUI Migration Initial --- bitwarden-mobile.sln | 522 +++----------- .../android/argon2}/arm64-v8a/libargon2.so | Bin .../android/argon2}/armeabi-v7a/libargon2.so | Bin .../android/argon2}/x86_64/libargon2.so | Bin src/Android/Android.csproj | 327 --------- src/Android/Effects/FabShadowEffect.cs | 30 - src/Android/Effects/FixedSizeEffect.cs | 23 - .../Effects/RemoveFontPaddingEffect.cs | 23 - src/Android/Effects/TabBarEffect.cs | 30 - src/Android/Properties/AssemblyInfo.cs | 28 - src/Android/Renderers/CustomEditorRenderer.cs | 69 -- src/Android/Renderers/CustomEntryRenderer.cs | 107 --- src/Android/Renderers/CustomLabelRenderer.cs | 43 -- src/Android/Renderers/CustomPageRenderer.cs | 31 - src/Android/Renderers/CustomPickerRenderer.cs | 57 -- .../Renderers/CustomSearchBarRenderer.cs | 33 - src/Android/Renderers/CustomSwitchRenderer.cs | 67 -- src/Android/Renderers/CustomTabbedRenderer.cs | 66 -- .../Renderers/ExtendedDatePickerRenderer.cs | 50 -- src/Android/Renderers/ExtendedGridRenderer.cs | 23 - .../Renderers/ExtendedSliderRenderer.cs | 56 -- .../Renderers/ExtendedStackLayoutRenderer.cs | 23 - .../Renderers/ExtendedStepperRenderer.cs | 72 -- .../Renderers/ExtendedTimePickerRenderer.cs | 50 -- .../Renderers/HybridWebViewRenderer.cs | 98 --- .../Renderers/SelectableLabelRenderer.cs | 25 - src/Android/lib/x86/libargon2.so | Bin 46700 -> 0 bytes src/App/App.csproj | 638 ++++++------------ src/App/Controls/ExtendedCollectionView.cs | 20 - src/App/Controls/ExtendedSearchBar.cs | 19 - src/App/Effects/FabShadowEffect.cs | 33 +- src/App/Effects/FixedSizeEffect.cs | 11 - src/App/Effects/NoEmojiKeyboardEffect.cs | 12 - src/App/Effects/RemoveFontPaddingEffect.cs | 13 - ...iewContentInsetAdjustmentBehaviorEffect.cs | 33 - src/App/Effects/TabBarEffect.cs | 11 - src/App/MauiProgram.cs | 47 ++ .../Platforms}/Android/8bit.keystore.enc | Bin .../Accessibility/AccessibilityActivity.cs | 2 +- .../Accessibility/AccessibilityHelpers.cs | 9 +- .../Accessibility/AccessibilityService.cs | 3 +- .../Android/Accessibility/Browser.cs | 0 .../Android/Accessibility/Credentials.cs | 0 .../Accessibility/KnownUsernameField.cs | 0 .../Android/Accessibility/NodeList.cs | 0 .../Platforms/Android}/AndroidManifest.xml | 0 .../Android/Autofill/AutofillConstants.cs | 0 .../AutofillExternalSelectionActivity.cs | 4 +- .../Android/Autofill/AutofillHelpers.cs | 6 +- .../Android/Autofill/AutofillService.cs | 0 .../Platforms}/Android/Autofill/Field.cs | 1 + .../Android/Autofill/FieldCollection.cs | 1 + .../Platforms}/Android/Autofill/FilledItem.cs | 1 + .../Platforms}/Android/Autofill/Parser.cs | 0 .../Platforms}/Android/Autofill/SavedItem.cs | 0 src/{ => App/Platforms}/Android/Constants.cs | 0 .../Android/Handlers/ButtonHandlerMappings.cs | 14 + .../Handlers/DatePickerHandlerMappings.cs | 39 ++ .../Android/Handlers/EditorHandlerMappings.cs | 24 + .../Android/Handlers/EntryHandlerMappings.cs | 63 ++ .../Android/Handlers/LabelHandlerMappings.cs | 31 + .../Android/Handlers/PickerHandlerMappings.cs | 21 + .../Handlers/SearchBarHandlerMappings.cs | 26 + .../Android/Handlers/SliderHandlerMappings.cs | 32 + .../Handlers/StepperHandlerMappings.cs | 45 ++ .../Android/Handlers/SwitchHandlerMappings.cs | 42 ++ .../Handlers/TimePickerHandlerMappings.cs | 39 ++ .../Platforms}/Android/MainActivity.cs | 26 +- .../Platforms}/Android/MainApplication.cs | 37 +- .../Android/Push/FirebaseMessagingService.cs | 1 - .../Receivers/ClearClipboardAlarmReceiver.cs | 0 .../Android/Receivers/EventUploadReceiver.cs | 0 .../Receivers/NotificationDismissReceiver.cs | 0 .../Receivers/PackageReplacedReceiver.cs | 0 .../Receivers/RestrictionsChangedReceiver.cs | 2 +- .../Resources/drawable-hdpi/logo_legacy.png | Bin .../drawable-hdpi/logo_white_legacy.png | Bin .../Resources/drawable-hdpi/yubikey.png | Bin .../splash_screen_round.xml | 0 .../Resources/drawable-v23/splash_screen.xml | 0 .../drawable-v23/splash_screen_dark.xml | 0 .../drawable-v26/splash_screen_round.xml | 0 .../Resources/drawable-xhdpi/logo_legacy.png | Bin .../drawable-xhdpi/logo_white_legacy.png | Bin .../Resources/drawable-xhdpi/yubikey.png | Bin .../Resources/drawable-xxhdpi/logo_legacy.png | Bin .../drawable-xxhdpi/logo_white_legacy.png | Bin .../Resources/drawable-xxhdpi/yubikey.png | Bin .../Android/Resources/drawable/card.xml | 0 .../Resources/drawable/cog_environment.xml | 0 .../Resources/drawable/cog_settings.xml | 0 .../drawable/empty_login_requests.xml | 0 .../drawable/empty_login_requests_dark.xml | 0 .../drawable/empty_uris_placeholder.xml | 0 .../drawable/empty_uris_placeholder_dark.xml | 0 .../Android/Resources/drawable/generate.xml | 0 .../drawable/ic_launcher_foreground.xml | 0 .../drawable/ic_launcher_monochrome.xml | 0 .../Resources/drawable/ic_notification.xml | 0 .../Android/Resources/drawable/ic_warning.xml | 0 .../Android/Resources/drawable/icon.xml | 0 .../Android/Resources/drawable/id.xml | 0 .../Android/Resources/drawable/info.xml | 0 .../Resources/drawable/list_item_bg.xml | 0 .../Android/Resources/drawable/lock.xml | 0 .../Android/Resources/drawable/login.xml | 0 .../Android/Resources/drawable/logo.xml | 0 .../Resources/drawable/logo_rounded.xml | 0 .../Android/Resources/drawable/logo_white.xml | 0 .../Android/Resources/drawable/pencil.xml | 0 .../Android/Resources/drawable/plus.xml | 0 .../Android/Resources/drawable/search.xml | 0 .../Android/Resources/drawable/send.xml | 0 .../Android/Resources/drawable/shield.xml | 0 .../Resources/drawable/slider_thumb.xml | 0 .../Resources/drawable/splash_screen.xml | 0 .../Resources/drawable/splash_screen_dark.xml | 0 .../Resources/drawable/switch_thumb.xml | 0 .../Android/Resources/layout/Tabbar.axml | 0 .../Android/Resources/layout/Toolbar.axml | 0 .../Resources/layout/autofill_listitem.xml | 0 .../layout/progress_dialog_layout.xml | 0 .../validatable_input_dialog_layout.xml | 0 .../mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../Resources/mipmap-hdpi/ic_launcher.png | Bin .../mipmap-hdpi/ic_launcher_round.png | Bin .../Resources/mipmap-mdpi/ic_launcher.png | Bin .../mipmap-mdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xhdpi/ic_launcher.png | Bin .../mipmap-xhdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xxhdpi/ic_launcher.png | Bin .../mipmap-xxhdpi/ic_launcher_round.png | Bin .../Resources/mipmap-xxxhdpi/ic_launcher.png | Bin .../mipmap-xxxhdpi/ic_launcher_round.png | Bin .../Android/Resources/values-night/styles.xml | 0 .../Android/Resources/values-v30/manifest.xml | 0 .../Android/Resources/values/attrs.xml | 6 + .../Android/Resources/values/colors.xml | 0 .../Android/Resources/values/dimens.xml | 0 .../values/ic_launcher_background.xml | 0 .../Android/Resources/values/manifest.xml | 0 .../Android/Resources/values/strings.xml | 0 .../Android/Resources/values/styles.xml | 2 +- .../Resources/xml/accessibilityservice.xml | 0 .../Resources/xml/app_restrictions.xml | 0 .../Android/Resources/xml/autofillservice.xml | 0 .../Android/Resources/xml/filepaths.xml | 0 .../Resources/xml/network_security_config.xml | 0 .../Android/Services/AndroidLogService.cs | 0 .../AndroidPushNotificationService.cs | 6 +- .../Android/Services/AutofillHandler.cs | 5 +- .../Android/Services/BiometricService.cs | 0 .../Android/Services/ClipboardService.cs | 4 +- .../Services/CryptoPrimitiveService.cs | 0 .../Android/Services/DeviceActionService.cs | 14 +- .../Android/Services/FileService.cs | 3 +- .../Android/Services/LocalizeService.cs | 0 .../Android/Services/WatchDeviceService.cs | 0 .../Android/Tiles/AutofillTileService.cs | 2 +- .../Android/Tiles/GeneratorTileService.cs | 0 .../Android/Tiles/MyVaultTileService.cs | 0 .../Android/Utilities/AndroidHelpers.cs | 6 +- .../Android/Utilities/IntentExtensions.cs | 3 +- .../Android/Utilities/ThemeHelpers.cs | 22 +- .../Android/WebAuthCallbackActivity.cs | 4 +- .../Android/fdroid-keystore.jks.enc | Bin .../Platforms}/Android/google-services.json | 0 .../Android/google-services.json.enc | Bin .../Android/upload-keystore.jks.enc | Bin src/App/Platforms/iOS/AppDelegate.cs | 424 ++++++++++++ src/App/Platforms/iOS/Entitlements.plist | 31 + src/App/Platforms/iOS/Info.plist | 141 ++++ src/App/Platforms/iOS/LaunchScreen.storyboard | 91 +++ src/App/Platforms/iOS/Program.cs | 12 + .../AppIcons.appiconset/Contents.json | 117 ++++ .../AppIcons.appiconset/Icon-1024.png | Bin 0 -> 30793 bytes .../AppIcons.appiconset/Icon-120.png | Bin 0 -> 2796 bytes .../AppIcons.appiconset/Icon-152.png | Bin 0 -> 3521 bytes .../AppIcons.appiconset/Icon-167.png | Bin 0 -> 3926 bytes .../AppIcons.appiconset/Icon-180.png | Bin 0 -> 4187 bytes .../AppIcons.appiconset/Icon-20.png | Bin 0 -> 738 bytes .../AppIcons.appiconset/Icon-29.png | Bin 0 -> 899 bytes .../AppIcons.appiconset/Icon-40.png | Bin 0 -> 1106 bytes .../AppIcons.appiconset/Icon-58.png | Bin 0 -> 1473 bytes .../AppIcons.appiconset/Icon-60.png | Bin 0 -> 1486 bytes .../AppIcons.appiconset/Icon-76.png | Bin 0 -> 1840 bytes .../AppIcons.appiconset/Icon-80.png | Bin 0 -> 1843 bytes .../AppIcons.appiconset/Icon-87.png | Bin 0 -> 2055 bytes .../Resources/Assets.xcassets/Contents.json | 6 + .../LaunchScreen.imageset/Contents.json | 68 ++ .../LaunchScreen.imageset/logo.png | Bin 0 -> 2593 bytes .../LaunchScreen.imageset/logo@2x.png | Bin 0 -> 5449 bytes .../LaunchScreen.imageset/logo@3x.png | Bin 0 -> 8426 bytes .../LaunchScreen.imageset/logo_white.png | Bin 0 -> 2512 bytes .../LaunchScreen.imageset/logo_white@2x.png | Bin 0 -> 11659 bytes .../LaunchScreen.imageset/logo_white@3x.png | Bin 0 -> 8402 bytes .../empty_items_state.imageset/Contents.json | 25 + .../Empty-items-state-dark.pdf | Bin 0 -> 1891 bytes .../Empty-items-state.pdf | Bin 0 -> 1875 bytes .../Contents.json | 25 + .../empty_login_requests.pdf | Bin 0 -> 1821 bytes .../empty_login_requests_dark.pdf | Bin 0 -> 1814 bytes .../ic_warning.imageset/Contents.json | 608 +++++++++++++++++ .../ic_warning.imageset/ic_warning-1.pdf | 119 ++++ .../Services/iOSPushNotificationHandler.cs | 127 ++++ .../Services/iOSPushNotificationService.cs | 116 ++++ src/App/Resources/AppIcon/appicon.svg | 5 + src/App/Resources/AppIcon/appiconfg.svg | 8 + src/App/Resources/AppResources.cs.Designer.cs | 0 src/App/Resources/AppResources.da.Designer.cs | 0 src/App/Resources/AppResources.de.Designer.cs | 0 src/App/Resources/AppResources.es.Designer.cs | 0 src/App/Resources/AppResources.fi.Designer.cs | 0 src/App/Resources/AppResources.fr.Designer.cs | 0 src/App/Resources/AppResources.hi.Designer.cs | 0 src/App/Resources/AppResources.hr.Designer.cs | 0 src/App/Resources/AppResources.hu.Designer.cs | 0 src/App/Resources/AppResources.id.Designer.cs | 0 src/App/Resources/AppResources.it.Designer.cs | 0 src/App/Resources/AppResources.ja.Designer.cs | 0 src/App/Resources/AppResources.nl.Designer.cs | 0 src/App/Resources/AppResources.pl.Designer.cs | 0 .../Resources/AppResources.pt-BR.Designer.cs | 0 .../Resources/AppResources.pt-PT.Designer.cs | 0 src/App/Resources/AppResources.ro.Designer.cs | 0 src/App/Resources/AppResources.ru.Designer.cs | 0 src/App/Resources/AppResources.sk.Designer.cs | 0 src/App/Resources/AppResources.sv.Designer.cs | 0 src/App/Resources/AppResources.th.Designer.cs | 0 src/App/Resources/AppResources.tr.Designer.cs | 0 src/App/Resources/AppResources.uk.Designer.cs | 0 src/App/Resources/AppResources.vi.Designer.cs | 0 .../AppResources.zh-Hans.Designer.cs | 0 .../AppResources.zh-Hant.Designer.cs | 0 src/App/Resources/Splash/splash.svg | 9 + src/App/Resources/cog_settings.svg | 3 + src/App/Resources/ext_act.png | Bin 0 -> 72971 bytes src/App/Resources/ext_more.png | Bin 0 -> 71822 bytes src/App/Resources/ext_use.png | Bin 0 -> 74989 bytes src/App/Resources/generate.svg | 3 + src/App/Resources/info.svg | 10 + src/App/Resources/lock.svg | 10 + src/App/Resources/login.svg | 10 + src/App/Resources/logo.png | Bin 0 -> 8426 bytes src/App/Resources/logo_white.png | Bin 0 -> 8402 bytes src/App/Resources/more.svg | 3 + src/App/Resources/more_vert.svg | 3 + src/App/Resources/plus.svg | 10 + src/App/Resources/search.svg | 3 + src/App/Resources/send.svg | 10 + src/App/Resources/yubikey.png | Bin 0 -> 427125 bytes .../Abstractions/IAccountsManager.cs | 0 .../Abstractions/IAccountsManagerHost.cs | 0 src/Core/Abstractions/IApiService.cs | 1 + src/Core/Abstractions/ICollectionService.cs | 1 + .../Abstractions/IDeepLinkContext.cs | 0 .../Abstractions/IDeviceActionService.cs | 2 +- .../Abstractions/ILocalizeService.cs | 0 .../Abstractions/IPasswordRepromptService.cs | 0 .../Abstractions/IPlatformUtilsService.cs | 2 +- .../IPushNotificationListenerService.cs | 0 .../Abstractions/IPushNotificationService.cs | 0 src/{App => Core}/App.xaml | 4 +- src/{App => Core}/App.xaml.cs | 22 +- ...entAutoBottomScrollingOnFocusedBehavior.cs | 5 +- .../AccountSwitchingOverlayView.xaml | 17 +- .../AccountSwitchingOverlayView.xaml.cs | 8 +- .../AccountSwitchingOverlayViewModel.cs | 4 +- .../AccountViewCell/AccountViewCell.xaml | 29 +- .../AccountViewCell/AccountViewCell.xaml.cs | 3 +- .../AccountViewCellViewModel.cs | 0 .../AuthenticatorViewCell.xaml | 10 +- .../AuthenticatorViewCell.xaml.cs | 3 +- .../Controls/AvatarImageSource.cs | 14 +- .../Controls/AvatarImageSourcePool.cs | 0 .../CipherViewCell/CipherViewCell.xaml | 12 +- .../CipherViewCell/CipherViewCell.xaml.cs | 3 +- .../CipherViewCell/CipherViewCellViewModel.cs | 0 .../Controls/CircularProgressbarView.cs | 15 +- src/{App => Core}/Controls/CustomLabel.cs | 3 +- .../Controls/DateTime/DateTimePicker.xaml | 4 +- .../Controls/DateTime/DateTimePicker.xaml.cs | 10 +- .../Controls/DateTime/DateTimeViewModel.cs | 0 src/Core/Controls/ExtendedCollectionView.cs | 20 + .../Controls/ExtendedDatePicker.cs | 3 +- src/{App => Core}/Controls/ExtendedGrid.cs | 3 +- src/Core/Controls/ExtendedSearchBar.cs | 22 + src/{App => Core}/Controls/ExtendedSlider.cs | 5 +- .../Controls/ExtendedStackLayout.cs | 3 +- src/{App => Core}/Controls/ExtendedStepper.cs | 8 +- .../Controls/ExtendedTimePicker.cs | 3 +- .../Controls/ExtendedToolbarItem.cs | 3 +- .../Controls/ExternalLinkItemView.xaml | 8 +- .../Controls/ExternalLinkItemView.xaml.cs | 3 +- src/{App => Core}/Controls/HybridWebView.cs | 3 +- src/{App => Core}/Controls/IconButton.cs | 4 +- src/{App => Core}/Controls/IconLabel.cs | 4 +- .../IconLabelButton/IconLabelButton.xaml | 4 +- .../IconLabelButton/IconLabelButton.xaml.cs | 12 +- src/{App => Core}/Controls/MiButton.cs | 4 +- src/{App => Core}/Controls/MiLabel.cs | 4 +- src/{App => Core}/Controls/MonoEntry.cs | 4 +- src/{App => Core}/Controls/MonoLabel.cs | 4 +- .../IPasswordStrengthable.cs | 0 .../PasswordStrengthCategory.cs | 0 .../PasswordStrengthProgressBar.xaml | 4 +- .../PasswordStrengthProgressBar.xaml.cs | 6 +- .../PasswordStrengthViewModel.cs | 3 +- src/{App => Core}/Controls/RepeaterView.cs | 3 +- src/{App => Core}/Controls/SelectableLabel.cs | 3 +- .../Controls/SendViewCell/SendViewCell.xaml | 18 +- .../SendViewCell/SendViewCell.xaml.cs | 3 +- .../SendViewCell/SendViewCellViewModel.cs | 0 .../Settings/BaseSettingControlView.cs | 3 +- .../Settings/SettingChooserItemView.xaml | 4 +- .../Settings/SettingChooserItemView.xaml.cs | 3 +- .../Controls/Settings/SwitchItemView.xaml | 4 +- .../Controls/Settings/SwitchItemView.xaml.cs | 3 +- src/Core/Core.csproj | 196 +++++- src/Core/Effects/FabShadowEffect.cs | 6 + src/Core/Effects/FixedSizeEffect.cs | 31 + .../Effects/NoEmojiKeyboardEffect.cs | 24 +- src/Core/Effects/RemoveFontPaddingEffect.cs | 32 + .../Effects/ScrollEnabledEffect.cs | 26 +- ...iewContentInsetAdjustmentBehaviorEffect.cs | 70 ++ src/Core/Effects/TabBarEffect.cs | 34 + .../CustomFieldItemTemplateSelector.cs | 3 +- .../BooleanCustomFieldItemLayout.xaml | 8 +- .../BooleanCustomFieldItemLayout.xaml.cs | 3 +- .../HiddenCustomFieldItemLayout.xaml | 14 +- .../HiddenCustomFieldItemLayout.xaml.cs | 3 +- .../LinkedCustomFieldItemLayout.xaml | 8 +- .../LinkedCustomFieldItemLayout.xaml.cs | 3 +- .../TextCustomFieldItemLayout.xaml | 12 +- .../TextCustomFieldItemLayout.xaml.cs | 3 +- .../BaseCustomFieldItemViewModel.cs | 3 +- .../BooleanCustomFieldItemViewModel.cs | 0 .../CustomFields/CustomFieldItemFactory.cs | 0 .../HiddenCustomFieldItemViewModel.cs | 12 +- .../CustomFields/ICustomFieldItemViewModel.cs | 0 .../LinkedCustomFieldItemViewModel.cs | 0 .../TextCustomFieldItemViewModel.cs | 3 +- src/Core/MauiProgram.cs | 50 ++ src/{App => Core}/Models/AppOptions.cs | 0 src/{App => Core}/Models/DialogDetails.cs | 0 src/Core/Models/Domain/Collection.cs | 1 + src/Core/Models/Domain/Organization.cs | 1 + src/Core/Models/Export/Collection.cs | 1 + src/Core/Models/Export/CollectionWithId.cs | 1 + src/{App => Core}/Models/NotificationData.cs | 0 src/{App => Core}/Models/PlatformCulture.cs | 0 src/Core/Models/Request/DeviceRequest.cs | 2 +- src/Core/Models/Response/DeviceResponse.cs | 2 +- .../Response/ProfileOrganizationResponse.cs | 1 + .../Accounts/BaseChangePasswordViewModel.cs | 4 +- .../Pages/Accounts/DeleteAccountPage.xaml | 4 +- .../Pages/Accounts/DeleteAccountPage.xaml.cs | 3 +- .../Pages/Accounts/DeleteAccountViewModel.cs | 4 +- .../Pages/Accounts/EnvironmentPage.xaml | 4 +- .../Pages/Accounts/EnvironmentPage.xaml.cs | 6 +- .../Accounts/EnvironmentPageViewModel.cs | 4 +- .../Pages/Accounts/HintPage.xaml | 4 +- .../Pages/Accounts/HintPage.xaml.cs | 4 +- .../Pages/Accounts/HintPageViewModel.cs | 6 +- .../Pages/Accounts/HomePage.xaml | 27 +- .../Pages/Accounts/HomePage.xaml.cs | 27 +- .../Pages/Accounts/HomePageViewModel.cs | 11 +- .../Pages/Accounts/LockPage.xaml | 13 +- .../Pages/Accounts/LockPage.xaml.cs | 6 +- .../Pages/Accounts/LockPageViewModel.cs | 9 +- .../Accounts/LoginApproveDevicePage.xaml | 4 +- .../Accounts/LoginApproveDevicePage.xaml.cs | 3 +- .../Accounts/LoginApproveDeviceViewModel.cs | 9 +- .../Pages/Accounts/LoginPage.xaml | 12 +- .../Pages/Accounts/LoginPage.xaml.cs | 7 +- .../Pages/Accounts/LoginPageViewModel.cs | 9 +- .../Pages/Accounts/LoginPasswordlessPage.xaml | 4 +- .../Accounts/LoginPasswordlessPage.xaml.cs | 3 +- .../LoginPasswordlessRequestPage.xaml | 4 +- .../LoginPasswordlessRequestPage.xaml.cs | 3 +- .../LoginPasswordlessRequestViewModel.cs | 8 +- .../Accounts/LoginPasswordlessViewModel.cs | 7 +- .../Pages/Accounts/LoginSsoPage.xaml | 4 +- .../Pages/Accounts/LoginSsoPage.xaml.cs | 4 +- .../Pages/Accounts/LoginSsoPageViewModel.cs | 9 +- .../Pages/Accounts/RegisterPage.xaml | 8 +- .../Pages/Accounts/RegisterPage.xaml.cs | 4 +- .../Pages/Accounts/RegisterPageViewModel.cs | 7 +- .../Accounts/RemoveMasterPasswordPage.xaml | 4 +- .../Accounts/RemoveMasterPasswordPage.xaml.cs | 5 +- .../RemoveMasterPasswordPageViewModel.cs | 2 +- .../Pages/Accounts/SetPasswordPage.xaml | 8 +- .../Pages/Accounts/SetPasswordPage.xaml.cs | 4 +- .../Accounts/SetPasswordPageViewModel.cs | 7 +- .../Pages/Accounts/TwoFactorPage.xaml | 6 +- .../Pages/Accounts/TwoFactorPage.xaml.cs | 5 +- .../Pages/Accounts/TwoFactorPageViewModel.cs | 21 +- .../Accounts/UpdateTempPasswordPage.xaml | 10 +- .../Accounts/UpdateTempPasswordPage.xaml.cs | 5 +- .../UpdateTempPasswordPageViewModel.cs | 8 +- .../Pages/Accounts/VerificationCodePage.xaml | 6 +- .../Accounts/VerificationCodePage.xaml.cs | 0 .../Accounts/VerificationCodeViewModel.cs | 11 +- src/{App => Core}/Pages/BaseContentPage.cs | 10 +- .../Pages/BaseModalContentPage.cs | 0 src/{App => Core}/Pages/BaseViewModel.cs | 14 +- .../Pages/CaptchaProtectedViewModel.cs | 4 +- .../Pages/CollectionViewModel.cs | 0 .../Pages/Generator/GeneratorHistoryPage.xaml | 12 +- .../Generator/GeneratorHistoryPage.xaml.cs | 6 +- .../GeneratorHistoryPageViewModel.cs | 5 +- .../Pages/Generator/GeneratorPage.xaml | 38 +- .../Pages/Generator/GeneratorPage.xaml.cs | 25 +- .../Pages/Generator/GeneratorPageViewModel.cs | 7 +- src/{App => Core}/Pages/PickerViewModel.cs | 9 +- .../Pages/Send/SendAddEditPage.xaml | 38 +- .../Pages/Send/SendAddEditPage.xaml.cs | 16 +- .../Pages/Send/SendAddEditPageViewModel.cs | 10 +- .../Pages/Send/SendAddOnlyOptionsView.xaml | 12 +- .../Pages/Send/SendAddOnlyOptionsView.xaml.cs | 10 +- .../Pages/Send/SendAddOnlyPage.xaml | 8 +- .../Pages/Send/SendAddOnlyPage.xaml.cs | 3 +- .../ISendGroupingsPageListItem.cs | 0 .../SendGroupingsPage/SendGroupingsPage.xaml | 18 +- .../SendGroupingsPage.xaml.cs | 4 +- .../SendGroupingsPageHeaderListItem.cs | 0 .../SendGroupingsPageListGroup.cs | 0 .../SendGroupingsPageListItem.cs | 2 +- .../SendGroupingsPageListItemSelector.cs | 3 +- .../SendGroupingsPageViewModel.cs | 14 +- src/{App => Core}/Pages/Send/SendsPage.xaml | 6 +- .../Pages/Send/SendsPage.xaml.cs | 6 +- .../Pages/Send/SendsPageViewModel.cs | 3 +- .../Pages/Settings/AboutSettingsPage.xaml | 8 +- .../Pages/Settings/AboutSettingsPage.xaml.cs | 2 +- .../Settings/AboutSettingsPageViewModel.cs | 6 +- .../Settings/AppearanceSettingsPage.xaml | 4 +- .../Settings/AppearanceSettingsPage.xaml.cs | 2 +- .../AppearanceSettingsPageViewModel.cs | 16 +- .../Pages/Settings/AutofillPage.xaml | 4 +- .../Pages/Settings/AutofillPage.xaml.cs | 0 .../Pages/Settings/AutofillSettingsPage.xaml | 4 +- .../Settings/AutofillSettingsPage.xaml.cs | 2 +- .../AutofillSettingsPageViewModel.android.cs | 25 +- .../Settings/AutofillSettingsPageViewModel.cs | 10 +- .../AutofillSettingsPageViewModel.ios.cs | 6 +- .../Pages/Settings/BlockAutofillUrisPage.xaml | 12 +- .../Settings/BlockAutofillUrisPage.xaml.cs | 5 +- .../BlockAutofillUrisPageViewModel.cs | 10 +- .../Pages/Settings/ExportVaultPage.xaml | 6 +- .../Pages/Settings/ExportVaultPage.xaml.cs | 3 +- .../Settings/ExportVaultPageViewModel.cs | 5 +- .../Pages/Settings/ExtensionPage.xaml | 4 +- .../Pages/Settings/ExtensionPage.xaml.cs | 0 .../Pages/Settings/ExtensionPageViewModel.cs | 2 +- .../Pages/Settings/FolderAddEditPage.xaml | 6 +- .../Pages/Settings/FolderAddEditPage.xaml.cs | 8 +- .../Settings/FolderAddEditPageViewModel.cs | 9 +- .../Pages/Settings/FoldersPage.xaml | 14 +- .../Pages/Settings/FoldersPage.xaml.cs | 4 +- .../Pages/Settings/FoldersPageViewModel.cs | 2 +- .../LoginPasswordlessRequestsListPage.xaml | 11 +- .../LoginPasswordlessRequestsListPage.xaml.cs | 6 +- .../LoginPasswordlessRequestsListViewModel.cs | 10 +- .../Pages/Settings/OtherSettingsPage.xaml | 4 +- .../Pages/Settings/OtherSettingsPage.xaml.cs | 2 +- .../Settings/OtherSettingsPageViewModel.cs | 19 +- .../Pages/Settings/SecuritySettingsPage.xaml | 8 +- .../Settings/SecuritySettingsPage.xaml.cs | 2 +- .../Settings/SecuritySettingsPageViewModel.cs | 24 +- .../Settings/SettingsPage/SettingsPage.xaml | 4 +- .../SettingsPage/SettingsPage.xaml.cs | 4 +- .../SettingsPage/SettingsPageListItem.cs | 2 +- .../SettingsPage/SettingsPageViewModel.cs | 9 +- .../Pages/Settings/VaultSettingsPage.xaml | 4 +- .../Pages/Settings/VaultSettingsPage.xaml.cs | 0 .../Settings/VaultSettingsPageViewModel.cs | 9 +- src/{App => Core}/Pages/TabsPage.cs | 14 +- .../Pages/Vault/AttachmentsPage.xaml | 8 +- .../Pages/Vault/AttachmentsPage.xaml.cs | 5 +- .../Pages/Vault/AttachmentsPageViewModel.cs | 14 +- .../Vault/AutofillCiphersPageViewModel.cs | 7 +- .../Pages/Vault/BaseCipherViewModel.cs | 4 +- .../Pages/Vault/CipherAddEditPage.xaml | 82 +-- .../Pages/Vault/CipherAddEditPage.xaml.cs | 32 +- .../Pages/Vault/CipherAddEditPageViewModel.cs | 12 +- .../Pages/Vault/CipherDetailsPage.xaml | 38 +- .../Pages/Vault/CipherDetailsPage.xaml.cs | 7 +- .../Pages/Vault/CipherDetailsPageViewModel.cs | 15 +- .../Pages/Vault/CipherSelectionPage.xaml | 12 +- .../Pages/Vault/CipherSelectionPage.xaml.cs | 5 +- .../Vault/CipherSelectionPageViewModel.cs | 10 +- .../Pages/Vault/CiphersPage.xaml | 12 +- .../Pages/Vault/CiphersPage.xaml.cs | 6 +- .../Pages/Vault/CiphersPageViewModel.cs | 10 +- .../Pages/Vault/CollectionsPage.xaml | 4 +- .../Pages/Vault/CollectionsPage.xaml.cs | 4 +- .../Pages/Vault/CollectionsPageViewModel.cs | 4 +- .../Vault/GroupingsPage/GroupingsPage.xaml | 24 +- .../Vault/GroupingsPage/GroupingsPage.xaml.cs | 8 +- .../GroupingsPageHeaderListItem.cs | 0 .../GroupingsPage/GroupingsPageListGroup.cs | 0 .../GroupingsPage/GroupingsPageListItem.cs | 3 +- .../GroupingsPageListItemSelector.cs | 3 +- .../GroupingsPageTOTPListItem.cs | 9 +- .../GroupingsPage/GroupingsPageViewModel.cs | 14 +- .../GroupingsPage/IGroupingsPageListItem.cs | 0 .../Vault/OTPCipherSelectionPageViewModel.cs | 5 +- .../Pages/Vault/PasswordHistoryPage.xaml | 10 +- .../Pages/Vault/PasswordHistoryPage.xaml.cs | 4 +- .../Vault/PasswordHistoryPageViewModel.cs | 5 +- src/{App => Core}/Pages/Vault/ScanPage.xaml | 21 +- .../Pages/Vault/ScanPage.xaml.cs | 58 +- .../Pages/Vault/ScanPageViewModel.cs | 11 +- src/{App => Core}/Pages/Vault/SharePage.xaml | 4 +- .../Pages/Vault/SharePage.xaml.cs | 8 +- .../Pages/Vault/SharePageViewModel.cs | 6 +- .../Pages/VaultFilterViewModel.cs | 4 +- .../Fonts}/MaterialIcons_Regular.ttf | Bin .../Resources/Fonts}/RobotoMono_Regular.ttf | Bin .../Resources/Fonts}/bwi-font.ttf | Bin src/Core/Resources/Images/dotnet_bot.svg | 95 +++ .../Localization}/AppResources.Designer.cs | 4 +- .../Localization}/AppResources.af.resx | 0 .../Localization}/AppResources.ar.resx | 0 .../Localization}/AppResources.az.resx | 0 .../Localization}/AppResources.be.resx | 0 .../Localization}/AppResources.bg.resx | 0 .../Localization}/AppResources.bn.resx | 0 .../Localization}/AppResources.bs.resx | 0 .../Localization}/AppResources.ca.resx | 0 .../Localization}/AppResources.cs.resx | 0 .../Localization}/AppResources.cy.resx | 0 .../Localization}/AppResources.da.resx | 0 .../Localization}/AppResources.de.resx | 0 .../Localization}/AppResources.el.resx | 0 .../Localization}/AppResources.en-GB.resx | 0 .../Localization}/AppResources.en-IN.resx | 0 .../Localization}/AppResources.es.resx | 0 .../Localization}/AppResources.et.resx | 0 .../Localization}/AppResources.eu.resx | 0 .../Localization}/AppResources.fa.resx | 0 .../Localization}/AppResources.fi.resx | 0 .../Localization}/AppResources.fil.resx | 0 .../Localization}/AppResources.fr.resx | 0 .../Localization}/AppResources.gl.resx | 0 .../Localization}/AppResources.he.resx | 0 .../Localization}/AppResources.hi.resx | 0 .../Localization}/AppResources.hr.resx | 0 .../Localization}/AppResources.hu.resx | 0 .../Localization}/AppResources.id.resx | 0 .../Localization}/AppResources.it.resx | 0 .../Localization}/AppResources.ja.resx | 0 .../Localization}/AppResources.ka.resx | 0 .../Localization}/AppResources.kn.resx | 0 .../Localization}/AppResources.ko.resx | 0 .../Localization}/AppResources.lt.resx | 0 .../Localization}/AppResources.lv.resx | 0 .../Localization}/AppResources.ml.resx | 0 .../Localization}/AppResources.mr.resx | 0 .../Localization}/AppResources.my.resx | 0 .../Localization}/AppResources.nb.resx | 0 .../Localization}/AppResources.ne.resx | 0 .../Localization}/AppResources.nl.resx | 0 .../Localization}/AppResources.nn.resx | 0 .../Localization}/AppResources.or.resx | 0 .../Localization}/AppResources.pl.resx | 0 .../Localization}/AppResources.pt-BR.resx | 0 .../Localization}/AppResources.pt-PT.resx | 0 .../Resources/Localization}/AppResources.resx | 0 .../Localization}/AppResources.ro.resx | 0 .../Localization}/AppResources.ru.resx | 0 .../Localization}/AppResources.si.resx | 0 .../Localization}/AppResources.sk.resx | 0 .../Localization}/AppResources.sl.resx | 0 .../Localization}/AppResources.sr.resx | 0 .../Localization}/AppResources.sv.resx | 0 .../Localization}/AppResources.ta.resx | 0 .../Localization}/AppResources.te.resx | 0 .../Localization}/AppResources.th.resx | 0 .../Localization}/AppResources.tr.resx | 0 .../Localization}/AppResources.uk.resx | 0 .../Localization}/AppResources.vi.resx | 0 .../Localization}/AppResources.zh-Hans.resx | 0 .../Localization}/AppResources.zh-Hant.resx | 0 .../Resources}/Styles/Android.xaml | 4 +- .../Resources}/Styles/Android.xaml.cs | 3 +- src/{App => Core/Resources}/Styles/Base.xaml | 7 +- .../Resources}/Styles/Base.xaml.cs | 3 +- src/{App => Core/Resources}/Styles/Black.xaml | 4 +- .../Resources}/Styles/Black.xaml.cs | 3 +- .../Resources}/Styles/ControlTemplates.xaml | 4 +- .../Styles/ControlTemplates.xaml.cs | 3 +- src/{App => Core/Resources}/Styles/Dark.xaml | 4 +- .../Resources}/Styles/Dark.xaml.cs | 3 +- .../Resources}/Styles/IThemeDirtablePage.cs | 0 .../Styles/IThemeResourceDictionary.cs | 0 src/{App => Core/Resources}/Styles/Light.xaml | 7 +- .../Resources}/Styles/Light.xaml.cs | 3 +- src/{App => Core/Resources}/Styles/Nord.xaml | 4 +- .../Resources}/Styles/Nord.xaml.cs | 3 +- .../Resources}/Styles/SolarizedDark.xaml | 4 +- .../Resources}/Styles/SolarizedDark.xaml.cs | 3 +- .../Resources}/Styles/Variables.xaml | 4 +- .../Resources}/Styles/Variables.xaml.cs | 3 +- src/{App => Core/Resources}/Styles/iOS.xaml | 4 +- .../Resources}/Styles/iOS.xaml.cs | 3 +- src/Core/Services/ApiService.cs | 1 + .../Services/BaseBiometricService.cs | 0 .../Services/BaseWatchDeviceService.cs | 0 src/Core/Services/CipherService.cs | 1 + src/Core/Services/CollectionService.cs | 1 + src/{App => Core}/Services/DeepLinkContext.cs | 0 src/Core/Services/Logging/Logger.cs | 83 +-- src/Core/Services/Logging/LoggerHelper.cs | 3 +- .../MobileBroadcasterMessagingService.cs | 0 .../Services/MobileI18nService.cs | 4 +- .../Services/MobilePasswordRepromptService.cs | 2 +- .../Services/MobilePlatformUtilsService.cs | 10 +- .../Services/MobileStorageService.cs | 0 .../NoopPushNotificationListenerService.cs | 0 .../Services/NoopPushNotificationService.cs | 0 .../Services/PreferencesStorageService.cs | 34 +- .../PushNotificationListenerService.cs | 5 +- .../Services/SecureStorageService.cs | 8 +- src/Core/Services/StateMigrationService.cs | 1 + src/{App => Core}/Services/UserPinService.cs | 0 src/{App => Core}/Utilities/A11yExtensions.cs | 2 +- .../AccountManagement/AccountsManager.cs | 6 +- .../AccountManagement/LockNavigationParams.cs | 0 .../LoginNavigationParams.cs | 0 src/{App => Core}/Utilities/AppHelpers.cs | 8 +- src/{App => Core}/Utilities/AppSetup.cs | 0 src/Core/Utilities/AsyncCommand.cs | 70 ++ .../Automation/AutomationIdsHelper.cs | 0 .../Utilities/Automation/SuffixType.cs | 0 .../BoxRowVsBoxRowInputPaddingConverter.cs | 3 +- .../Utilities/ColoredPasswordConverter.cs | 3 +- src/Core/Utilities/CoreHelpers.cs | 3 +- .../Utilities/DateTimeConverter.cs | 3 +- src/{App => Core}/Utilities/EnumHelper.cs | 4 +- .../Utilities/GeneratedValueFormatter.cs | 9 +- src/{App => Core}/Utilities/I18nExtension.cs | 5 +- .../Utilities/IPasswordPromptable.cs | 0 .../Utilities/IconGlyphConverter.cs | 3 +- .../Utilities/IconGlyphExtensions.cs | 0 .../Utilities/IconImageConverter.cs | 3 +- .../Utilities/InverseBoolConverter.cs | 3 +- .../Utilities/IsNotNullConverter.cs | 3 +- .../Utilities/IsNullConverter.cs | 3 +- .../Utilities/LocalizableEnumConverter.cs | 3 +- .../Utilities/ObservableRangeCollection.cs | 168 +++++ src/{App => Core}/Utilities/PageExtensions.cs | 3 +- .../Utilities/PermissionManager.cs | 4 +- .../Utilities/ProgressBarExtensions.cs | 6 +- .../Prompts/ValidatablePromptConfig.cs | 0 .../Utilities/SendIconGlyphConverter.cs | 3 +- .../Utilities/StringHasValueConverter.cs | 3 +- src/{App => Core}/Utilities/ThemeManager.cs | 11 +- src/{App => Core}/Utilities/TimerTask.cs | 3 +- src/{App => Core}/Utilities/TotpHelper.cs | 0 .../Utilities/UpperCaseConverter.cs | 3 +- .../VerificationActionsFlowHelper.cs | 3 +- .../BaseLockPasswordViewController.cs | 5 +- .../Controllers/LoginAddViewController.cs | 4 +- .../PasswordGeneratorViewController.cs | 2 +- src/iOS.Core/Effects/NoEmojiKeyboardEffect.cs | 7 +- src/iOS.Core/Effects/ScrollEnabledEffect.cs | 48 +- ...iewContentInsetAdjustmentBehaviorEffect.cs | 72 +- .../Handlers/ButtonHandlerMappings.cs | 21 + .../Handlers/DatePickerHandlerMappings.cs | 39 ++ .../Handlers/EditorHandlerMappings.cs | 34 + src/iOS.Core/Handlers/EntryHandlerMappings.cs | 35 + src/iOS.Core/Handlers/LabelHandlerMappings.cs | 83 +++ .../Handlers/PickerHandlerMappings.cs | 24 + .../Handlers/SearchBarHandlerMappings.cs | 20 + .../Handlers/StepperHandlerMappings.cs | 31 + .../Handlers/TimePickerHandlerMappings.cs | 55 ++ src/iOS.Core/Properties/AssemblyInfo.cs | 35 - .../CollectionView/CollectionException.cs | 16 - .../ExtendedCollectionViewRenderer.cs | 16 - .../ExtendedGroupableItemsViewController.cs | 45 -- .../ExtendedGroupableItemsViewDelegator.cs | 43 -- .../Renderers/CustomButtonRenderer.cs | 40 -- .../Renderers/CustomContentPageRenderer.cs | 63 -- .../Renderers/CustomEditorRenderer.cs | 49 -- src/iOS.Core/Renderers/CustomEntryRenderer.cs | 70 -- src/iOS.Core/Renderers/CustomLabelRenderer.cs | 65 -- .../Renderers/CustomNavigationRenderer.cs | 87 --- .../Renderers/CustomPickerRenderer.cs | 32 - .../Renderers/CustomSearchBarRenderer.cs | 28 - .../Renderers/CustomTabbedRenderer.cs | 91 --- .../Renderers/CustomViewCellRenderer.cs | 29 - .../Renderers/ExtendedDatePickerRenderer.cs | 46 -- .../Renderers/ExtendedStepperRenderer.cs | 45 -- .../Renderers/ExtendedTimePickerRenderer.cs | 59 -- .../Renderers/HybridWebViewRenderer.cs | 64 -- .../Renderers/SelectableLabelRenderer.cs | 72 -- src/iOS.Core/Services/ClipboardService.cs | 1 - .../Services/CryptoPrimitiveService.cs | 14 +- src/iOS.Core/Services/DeviceActionService.cs | 10 +- src/iOS.Core/Services/FileService.cs | 2 +- .../AccountSwitchingOverlayHelper.cs | 29 +- .../Utilities/FontElementExtensions.cs | 18 +- .../Utilities/ImageSourceExtensions.cs | 5 +- src/iOS.Core/Utilities/ThemeHelpers.cs | 6 +- src/iOS.Core/Utilities/iOSCoreHelpers.cs | 7 +- src/iOS.Core/Utilities/iOSHelpers.cs | 3 +- src/iOS.Core/Views/ExtensionTableSource.cs | 2 +- src/iOS.Core/Views/FormEntryTableViewCell.cs | 2 +- src/iOS.Core/Views/Toast.cs | 3 +- src/iOS.Core/iOS.Core.csproj | 247 +------ store/google/Publisher/Publisher.csproj | 2 +- test/Common/Common.csproj | 2 +- test/Core.Test/Core.Test.csproj | 2 +- test/Playground/Playground.csproj | 2 +- 717 files changed, 5367 insertions(+), 4702 deletions(-) rename {src/Android/lib => lib/android/argon2}/arm64-v8a/libargon2.so (100%) rename {src/Android/lib => lib/android/argon2}/armeabi-v7a/libargon2.so (100%) rename {src/Android/lib => lib/android/argon2}/x86_64/libargon2.so (100%) delete mode 100644 src/Android/Android.csproj delete mode 100644 src/Android/Effects/FabShadowEffect.cs delete mode 100644 src/Android/Effects/FixedSizeEffect.cs delete mode 100644 src/Android/Effects/RemoveFontPaddingEffect.cs delete mode 100644 src/Android/Effects/TabBarEffect.cs delete mode 100644 src/Android/Properties/AssemblyInfo.cs delete mode 100644 src/Android/Renderers/CustomEditorRenderer.cs delete mode 100644 src/Android/Renderers/CustomEntryRenderer.cs delete mode 100644 src/Android/Renderers/CustomLabelRenderer.cs delete mode 100644 src/Android/Renderers/CustomPageRenderer.cs delete mode 100644 src/Android/Renderers/CustomPickerRenderer.cs delete mode 100644 src/Android/Renderers/CustomSearchBarRenderer.cs delete mode 100644 src/Android/Renderers/CustomSwitchRenderer.cs delete mode 100644 src/Android/Renderers/CustomTabbedRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedDatePickerRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedGridRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedSliderRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedStackLayoutRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedStepperRenderer.cs delete mode 100644 src/Android/Renderers/ExtendedTimePickerRenderer.cs delete mode 100644 src/Android/Renderers/HybridWebViewRenderer.cs delete mode 100644 src/Android/Renderers/SelectableLabelRenderer.cs delete mode 100755 src/Android/lib/x86/libargon2.so delete mode 100644 src/App/Controls/ExtendedCollectionView.cs delete mode 100644 src/App/Controls/ExtendedSearchBar.cs delete mode 100644 src/App/Effects/FixedSizeEffect.cs delete mode 100644 src/App/Effects/NoEmojiKeyboardEffect.cs delete mode 100644 src/App/Effects/RemoveFontPaddingEffect.cs delete mode 100644 src/App/Effects/ScrollViewContentInsetAdjustmentBehaviorEffect.cs delete mode 100644 src/App/Effects/TabBarEffect.cs create mode 100644 src/App/MauiProgram.cs rename src/{ => App/Platforms}/Android/8bit.keystore.enc (100%) rename src/{ => App/Platforms}/Android/Accessibility/AccessibilityActivity.cs (99%) rename src/{ => App/Platforms}/Android/Accessibility/AccessibilityHelpers.cs (99%) rename src/{ => App/Platforms}/Android/Accessibility/AccessibilityService.cs (99%) rename src/{ => App/Platforms}/Android/Accessibility/Browser.cs (100%) rename src/{ => App/Platforms}/Android/Accessibility/Credentials.cs (100%) rename src/{ => App/Platforms}/Android/Accessibility/KnownUsernameField.cs (100%) rename src/{ => App/Platforms}/Android/Accessibility/NodeList.cs (100%) rename src/{Android/Properties => App/Platforms/Android}/AndroidManifest.xml (100%) rename src/{ => App/Platforms}/Android/Autofill/AutofillConstants.cs (100%) rename src/{ => App/Platforms}/Android/Autofill/AutofillExternalSelectionActivity.cs (89%) rename src/{ => App/Platforms}/Android/Autofill/AutofillHelpers.cs (99%) rename src/{ => App/Platforms}/Android/Autofill/AutofillService.cs (100%) rename src/{ => App/Platforms}/Android/Autofill/Field.cs (99%) rename src/{ => App/Platforms}/Android/Autofill/FieldCollection.cs (99%) rename src/{ => App/Platforms}/Android/Autofill/FilledItem.cs (99%) rename src/{ => App/Platforms}/Android/Autofill/Parser.cs (100%) rename src/{ => App/Platforms}/Android/Autofill/SavedItem.cs (100%) rename src/{ => App/Platforms}/Android/Constants.cs (100%) create mode 100644 src/App/Platforms/Android/Handlers/ButtonHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/DatePickerHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/EditorHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/EntryHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/LabelHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/PickerHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/SearchBarHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/SliderHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/StepperHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/SwitchHandlerMappings.cs create mode 100644 src/App/Platforms/Android/Handlers/TimePickerHandlerMappings.cs rename src/{ => App/Platforms}/Android/MainActivity.cs (94%) rename src/{ => App/Platforms}/Android/MainApplication.cs (89%) rename src/{ => App/Platforms}/Android/Push/FirebaseMessagingService.cs (98%) rename src/{ => App/Platforms}/Android/Receivers/ClearClipboardAlarmReceiver.cs (100%) rename src/{ => App/Platforms}/Android/Receivers/EventUploadReceiver.cs (100%) rename src/{ => App/Platforms}/Android/Receivers/NotificationDismissReceiver.cs (100%) rename src/{ => App/Platforms}/Android/Receivers/PackageReplacedReceiver.cs (100%) rename src/{ => App/Platforms}/Android/Receivers/RestrictionsChangedReceiver.cs (95%) rename src/{ => App/Platforms}/Android/Resources/drawable-hdpi/logo_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-hdpi/logo_white_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-hdpi/yubikey.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-night-v26/splash_screen_round.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-v23/splash_screen.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-v23/splash_screen_dark.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-v26/splash_screen_round.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xhdpi/logo_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xhdpi/logo_white_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xhdpi/yubikey.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xxhdpi/logo_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xxhdpi/logo_white_legacy.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable-xxhdpi/yubikey.png (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/card.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/cog_environment.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/cog_settings.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/empty_login_requests.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/empty_login_requests_dark.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/empty_uris_placeholder.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/empty_uris_placeholder_dark.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/generate.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/ic_launcher_foreground.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/ic_launcher_monochrome.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/ic_notification.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/ic_warning.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/icon.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/id.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/info.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/list_item_bg.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/lock.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/login.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/logo.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/logo_rounded.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/logo_white.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/pencil.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/plus.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/search.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/send.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/shield.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/slider_thumb.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/splash_screen.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/splash_screen_dark.xml (100%) rename src/{ => App/Platforms}/Android/Resources/drawable/switch_thumb.xml (100%) rename src/{ => App/Platforms}/Android/Resources/layout/Tabbar.axml (100%) rename src/{ => App/Platforms}/Android/Resources/layout/Toolbar.axml (100%) rename src/{ => App/Platforms}/Android/Resources/layout/autofill_listitem.xml (100%) rename src/{ => App/Platforms}/Android/Resources/layout/progress_dialog_layout.xml (100%) rename src/{ => App/Platforms}/Android/Resources/layout/validatable_input_dialog_layout.xml (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-anydpi-v26/ic_launcher.xml (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-hdpi/ic_launcher.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-hdpi/ic_launcher_round.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-mdpi/ic_launcher.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-mdpi/ic_launcher_round.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xhdpi/ic_launcher.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xhdpi/ic_launcher_round.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xxhdpi/ic_launcher.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xxhdpi/ic_launcher_round.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xxxhdpi/ic_launcher.png (100%) rename src/{ => App/Platforms}/Android/Resources/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename src/{ => App/Platforms}/Android/Resources/values-night/styles.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values-v30/manifest.xml (100%) create mode 100644 src/App/Platforms/Android/Resources/values/attrs.xml rename src/{ => App/Platforms}/Android/Resources/values/colors.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values/dimens.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values/ic_launcher_background.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values/manifest.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values/strings.xml (100%) rename src/{ => App/Platforms}/Android/Resources/values/styles.xml (94%) rename src/{ => App/Platforms}/Android/Resources/xml/accessibilityservice.xml (100%) rename src/{ => App/Platforms}/Android/Resources/xml/app_restrictions.xml (100%) rename src/{ => App/Platforms}/Android/Resources/xml/autofillservice.xml (100%) rename src/{ => App/Platforms}/Android/Resources/xml/filepaths.xml (100%) rename src/{ => App/Platforms}/Android/Resources/xml/network_security_config.xml (100%) rename src/{ => App/Platforms}/Android/Services/AndroidLogService.cs (100%) rename src/{ => App/Platforms}/Android/Services/AndroidPushNotificationService.cs (96%) rename src/{ => App/Platforms}/Android/Services/AutofillHandler.cs (98%) rename src/{ => App/Platforms}/Android/Services/BiometricService.cs (100%) rename src/{ => App/Platforms}/Android/Services/ClipboardService.cs (97%) rename src/{ => App/Platforms}/Android/Services/CryptoPrimitiveService.cs (100%) rename src/{ => App/Platforms}/Android/Services/DeviceActionService.cs (98%) rename src/{ => App/Platforms}/Android/Services/FileService.cs (99%) rename src/{ => App/Platforms}/Android/Services/LocalizeService.cs (100%) rename src/{ => App/Platforms}/Android/Services/WatchDeviceService.cs (100%) rename src/{ => App/Platforms}/Android/Tiles/AutofillTileService.cs (98%) rename src/{ => App/Platforms}/Android/Tiles/GeneratorTileService.cs (100%) rename src/{ => App/Platforms}/Android/Tiles/MyVaultTileService.cs (100%) rename src/{ => App/Platforms}/Android/Utilities/AndroidHelpers.cs (95%) rename src/{ => App/Platforms}/Android/Utilities/IntentExtensions.cs (92%) rename src/{ => App/Platforms}/Android/Utilities/ThemeHelpers.cs (77%) rename src/{ => App/Platforms}/Android/WebAuthCallbackActivity.cs (82%) rename src/{ => App/Platforms}/Android/fdroid-keystore.jks.enc (100%) rename src/{ => App/Platforms}/Android/google-services.json (100%) rename src/{ => App/Platforms}/Android/google-services.json.enc (100%) rename src/{ => App/Platforms}/Android/upload-keystore.jks.enc (100%) create mode 100644 src/App/Platforms/iOS/AppDelegate.cs create mode 100644 src/App/Platforms/iOS/Entitlements.plist create mode 100644 src/App/Platforms/iOS/Info.plist create mode 100644 src/App/Platforms/iOS/LaunchScreen.storyboard create mode 100644 src/App/Platforms/iOS/Program.cs create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Contents.json create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-1024.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-120.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-152.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-167.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-180.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-20.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-29.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-40.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-58.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-60.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-76.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-80.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/AppIcons.appiconset/Icon-87.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/Contents.json create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/Contents.json create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo@2x.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo@3x.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo_white.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo_white@2x.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/LaunchScreen.imageset/logo_white@3x.png create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_items_state.imageset/Contents.json create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_items_state.imageset/Empty-items-state-dark.pdf create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_items_state.imageset/Empty-items-state.pdf create mode 100644 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_login_requests.imageset/Contents.json create mode 100644 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_login_requests.imageset/empty_login_requests.pdf create mode 100644 src/App/Platforms/iOS/Resources/Assets.xcassets/empty_login_requests.imageset/empty_login_requests_dark.pdf create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/ic_warning.imageset/Contents.json create mode 100755 src/App/Platforms/iOS/Resources/Assets.xcassets/ic_warning.imageset/ic_warning-1.pdf create mode 100644 src/App/Platforms/iOS/Services/iOSPushNotificationHandler.cs create mode 100644 src/App/Platforms/iOS/Services/iOSPushNotificationService.cs create mode 100644 src/App/Resources/AppIcon/appicon.svg create mode 100755 src/App/Resources/AppIcon/appiconfg.svg delete mode 100644 src/App/Resources/AppResources.cs.Designer.cs delete mode 100644 src/App/Resources/AppResources.da.Designer.cs delete mode 100644 src/App/Resources/AppResources.de.Designer.cs delete mode 100644 src/App/Resources/AppResources.es.Designer.cs delete mode 100644 src/App/Resources/AppResources.fi.Designer.cs delete mode 100644 src/App/Resources/AppResources.fr.Designer.cs delete mode 100644 src/App/Resources/AppResources.hi.Designer.cs delete mode 100644 src/App/Resources/AppResources.hr.Designer.cs delete mode 100644 src/App/Resources/AppResources.hu.Designer.cs delete mode 100644 src/App/Resources/AppResources.id.Designer.cs delete mode 100644 src/App/Resources/AppResources.it.Designer.cs delete mode 100644 src/App/Resources/AppResources.ja.Designer.cs delete mode 100644 src/App/Resources/AppResources.nl.Designer.cs delete mode 100644 src/App/Resources/AppResources.pl.Designer.cs delete mode 100644 src/App/Resources/AppResources.pt-BR.Designer.cs delete mode 100644 src/App/Resources/AppResources.pt-PT.Designer.cs delete mode 100644 src/App/Resources/AppResources.ro.Designer.cs delete mode 100644 src/App/Resources/AppResources.ru.Designer.cs delete mode 100644 src/App/Resources/AppResources.sk.Designer.cs delete mode 100644 src/App/Resources/AppResources.sv.Designer.cs delete mode 100644 src/App/Resources/AppResources.th.Designer.cs delete mode 100644 src/App/Resources/AppResources.tr.Designer.cs delete mode 100644 src/App/Resources/AppResources.uk.Designer.cs delete mode 100644 src/App/Resources/AppResources.vi.Designer.cs delete mode 100644 src/App/Resources/AppResources.zh-Hans.Designer.cs delete mode 100644 src/App/Resources/AppResources.zh-Hant.Designer.cs create mode 100755 src/App/Resources/Splash/splash.svg create mode 100644 src/App/Resources/cog_settings.svg create mode 100755 src/App/Resources/ext_act.png create mode 100755 src/App/Resources/ext_more.png create mode 100755 src/App/Resources/ext_use.png create mode 100644 src/App/Resources/generate.svg create mode 100644 src/App/Resources/info.svg create mode 100644 src/App/Resources/lock.svg create mode 100644 src/App/Resources/login.svg create mode 100755 src/App/Resources/logo.png create mode 100755 src/App/Resources/logo_white.png create mode 100644 src/App/Resources/more.svg create mode 100644 src/App/Resources/more_vert.svg create mode 100644 src/App/Resources/plus.svg create mode 100644 src/App/Resources/search.svg create mode 100644 src/App/Resources/send.svg create mode 100755 src/App/Resources/yubikey.png rename src/{App => Core}/Abstractions/IAccountsManager.cs (100%) rename src/{App => Core}/Abstractions/IAccountsManagerHost.cs (100%) rename src/{App => Core}/Abstractions/IDeepLinkContext.cs (100%) rename src/{App => Core}/Abstractions/IDeviceActionService.cs (97%) rename src/{App => Core}/Abstractions/ILocalizeService.cs (100%) rename src/{App => Core}/Abstractions/IPasswordRepromptService.cs (100%) rename src/{App => Core}/Abstractions/IPushNotificationListenerService.cs (100%) rename src/{App => Core}/Abstractions/IPushNotificationService.cs (100%) rename src/{App => Core}/App.xaml (62%) rename src/{App => Core}/App.xaml.cs (91%) rename src/{App => Core}/Behaviors/EditorPreventAutoBottomScrollingOnFocusedBehavior.cs (94%) rename src/{App => Core}/Controls/AccountSwitchingOverlay/AccountSwitchingOverlayView.xaml (85%) rename src/{App => Core}/Controls/AccountSwitchingOverlay/AccountSwitchingOverlayView.xaml.cs (93%) rename src/{App => Core}/Controls/AccountSwitchingOverlay/AccountSwitchingOverlayViewModel.cs (98%) rename src/{App => Core}/Controls/AccountViewCell/AccountViewCell.xaml (87%) rename src/{App => Core}/Controls/AccountViewCell/AccountViewCell.xaml.cs (97%) rename src/{App => Core}/Controls/AccountViewCell/AccountViewCellViewModel.cs (100%) rename src/{App => Core}/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml (92%) rename src/{App => Core}/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml.cs (97%) rename src/{App => Core}/Controls/AvatarImageSource.cs (92%) rename src/{App => Core}/Controls/AvatarImageSourcePool.cs (100%) rename src/{App => Core}/Controls/CipherViewCell/CipherViewCell.xaml (92%) rename src/{App => Core}/Controls/CipherViewCell/CipherViewCell.xaml.cs (98%) rename src/{App => Core}/Controls/CipherViewCell/CipherViewCellViewModel.cs (100%) rename src/{App => Core}/Controls/CircularProgressbarView.cs (94%) rename src/{App => Core}/Controls/CustomLabel.cs (75%) rename src/{App => Core}/Controls/DateTime/DateTimePicker.xaml (86%) rename src/{App => Core}/Controls/DateTime/DateTimePicker.xaml.cs (78%) rename src/{App => Core}/Controls/DateTime/DateTimeViewModel.cs (100%) create mode 100644 src/Core/Controls/ExtendedCollectionView.cs rename src/{App => Core}/Controls/ExtendedDatePicker.cs (97%) rename src/{App => Core}/Controls/ExtendedGrid.cs (59%) create mode 100644 src/Core/Controls/ExtendedSearchBar.cs rename src/{App => Core}/Controls/ExtendedSlider.cs (81%) rename src/{App => Core}/Controls/ExtendedStackLayout.cs (62%) rename src/{App => Core}/Controls/ExtendedStepper.cs (84%) rename src/{App => Core}/Controls/ExtendedTimePicker.cs (97%) rename src/{App => Core}/Controls/ExtendedToolbarItem.cs (95%) rename src/{App => Core}/Controls/ExternalLinkItemView.xaml (78%) rename src/{App => Core}/Controls/ExternalLinkItemView.xaml.cs (94%) rename src/{App => Core}/Controls/HybridWebView.cs (93%) rename src/{App => Core}/Controls/IconButton.cs (64%) rename src/{App => Core}/Controls/IconLabel.cs (66%) rename src/{App => Core}/Controls/IconLabelButton/IconLabelButton.xaml (94%) rename src/{App => Core}/Controls/IconLabelButton/IconLabelButton.xaml.cs (91%) rename src/{App => Core}/Controls/MiButton.cs (61%) rename src/{App => Core}/Controls/MiLabel.cs (59%) rename src/{App => Core}/Controls/MonoEntry.cs (59%) rename src/{App => Core}/Controls/MonoLabel.cs (59%) rename src/{App => Core}/Controls/PasswordStrengthProgressBar/IPasswordStrengthable.cs (100%) rename src/{App => Core}/Controls/PasswordStrengthProgressBar/PasswordStrengthCategory.cs (100%) rename src/{App => Core}/Controls/PasswordStrengthProgressBar/PasswordStrengthProgressBar.xaml (89%) rename src/{App => Core}/Controls/PasswordStrengthProgressBar/PasswordStrengthProgressBar.xaml.cs (96%) rename src/{App => Core}/Controls/PasswordStrengthProgressBar/PasswordStrengthViewModel.cs (97%) rename src/{App => Core}/Controls/RepeaterView.cs (98%) rename src/{App => Core}/Controls/SelectableLabel.cs (66%) rename src/{App => Core}/Controls/SendViewCell/SendViewCell.xaml (90%) rename src/{App => Core}/Controls/SendViewCell/SendViewCell.xaml.cs (97%) rename src/{App => Core}/Controls/SendViewCell/SendViewCellViewModel.cs (100%) rename src/{App => Core}/Controls/Settings/BaseSettingControlView.cs (93%) rename src/{App => Core}/Controls/Settings/SettingChooserItemView.xaml (88%) rename src/{App => Core}/Controls/Settings/SettingChooserItemView.xaml.cs (94%) rename src/{App => Core}/Controls/Settings/SwitchItemView.xaml (88%) rename src/{App => Core}/Controls/Settings/SwitchItemView.xaml.cs (96%) create mode 100755 src/Core/Effects/FabShadowEffect.cs create mode 100755 src/Core/Effects/FixedSizeEffect.cs rename src/{Android => Core}/Effects/NoEmojiKeyboardEffect.cs (54%) mode change 100644 => 100755 create mode 100755 src/Core/Effects/RemoveFontPaddingEffect.cs rename src/{App => Core}/Effects/ScrollEnabledEffect.cs (52%) mode change 100644 => 100755 create mode 100755 src/Core/Effects/ScrollViewContentInsetAdjustmentBehaviorEffect.cs create mode 100755 src/Core/Effects/TabBarEffect.cs rename src/{App => Core}/Lists/DataTemplateSelectors/CustomFieldItemTemplateSelector.cs (94%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/BooleanCustomFieldItemLayout.xaml (93%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/BooleanCustomFieldItemLayout.xaml.cs (80%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/HiddenCustomFieldItemLayout.xaml (91%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/HiddenCustomFieldItemLayout.xaml.cs (80%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/LinkedCustomFieldItemLayout.xaml (92%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/LinkedCustomFieldItemLayout.xaml.cs (80%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/TextCustomFieldItemLayout.xaml (89%) rename src/{App => Core}/Lists/ItemLayouts/CustomFields/TextCustomFieldItemLayout.xaml.cs (80%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/BaseCustomFieldItemViewModel.cs (96%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/BooleanCustomFieldItemViewModel.cs (100%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/CustomFieldItemFactory.cs (100%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/HiddenCustomFieldItemViewModel.cs (92%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/ICustomFieldItemViewModel.cs (100%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/LinkedCustomFieldItemViewModel.cs (100%) rename src/{App => Core}/Lists/ItemViewModels/CustomFields/TextCustomFieldItemViewModel.cs (92%) create mode 100644 src/Core/MauiProgram.cs rename src/{App => Core}/Models/AppOptions.cs (100%) rename src/{App => Core}/Models/DialogDetails.cs (100%) rename src/{App => Core}/Models/NotificationData.cs (100%) rename src/{App => Core}/Models/PlatformCulture.cs (100%) rename src/{App => Core}/Pages/Accounts/BaseChangePasswordViewModel.cs (99%) rename src/{App => Core}/Pages/Accounts/DeleteAccountPage.xaml (96%) rename src/{App => Core}/Pages/Accounts/DeleteAccountPage.xaml.cs (93%) rename src/{App => Core}/Pages/Accounts/DeleteAccountViewModel.cs (96%) rename src/{App => Core}/Pages/Accounts/EnvironmentPage.xaml (97%) rename src/{App => Core}/Pages/Accounts/EnvironmentPage.xaml.cs (84%) rename src/{App => Core}/Pages/Accounts/EnvironmentPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/HintPage.xaml (93%) rename src/{App => Core}/Pages/Accounts/HintPage.xaml.cs (72%) rename src/{App => Core}/Pages/Accounts/HintPageViewModel.cs (94%) rename src/{App => Core}/Pages/Accounts/HomePage.xaml (92%) rename src/{App => Core}/Pages/Accounts/HomePage.xaml.cs (86%) rename src/{App => Core}/Pages/Accounts/HomePageViewModel.cs (97%) rename src/{App => Core}/Pages/Accounts/LockPage.xaml (94%) rename src/{App => Core}/Pages/Accounts/LockPage.xaml.cs (94%) rename src/{App => Core}/Pages/Accounts/LockPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/LoginApproveDevicePage.xaml (96%) rename src/{App => Core}/Pages/Accounts/LoginApproveDevicePage.xaml.cs (97%) rename src/{App => Core}/Pages/Accounts/LoginApproveDeviceViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/LoginPage.xaml (95%) rename src/{App => Core}/Pages/Accounts/LoginPage.xaml.cs (92%) rename src/{App => Core}/Pages/Accounts/LoginPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessPage.xaml (97%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessPage.xaml.cs (94%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessRequestPage.xaml (96%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessRequestPage.xaml.cs (97%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessRequestViewModel.cs (99%) rename src/{App => Core}/Pages/Accounts/LoginPasswordlessViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/LoginSsoPage.xaml (94%) rename src/{App => Core}/Pages/Accounts/LoginSsoPage.xaml.cs (93%) rename src/{App => Core}/Pages/Accounts/LoginSsoPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/RegisterPage.xaml (97%) rename src/{App => Core}/Pages/Accounts/RegisterPage.xaml.cs (88%) rename src/{App => Core}/Pages/Accounts/RegisterPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/RemoveMasterPasswordPage.xaml (92%) rename src/{App => Core}/Pages/Accounts/RemoveMasterPasswordPage.xaml.cs (94%) rename src/{App => Core}/Pages/Accounts/RemoveMasterPasswordPageViewModel.cs (97%) rename src/{App => Core}/Pages/Accounts/SetPasswordPage.xaml (96%) rename src/{App => Core}/Pages/Accounts/SetPasswordPage.xaml.cs (89%) rename src/{App => Core}/Pages/Accounts/SetPasswordPageViewModel.cs (99%) rename src/{App => Core}/Pages/Accounts/TwoFactorPage.xaml (97%) rename src/{App => Core}/Pages/Accounts/TwoFactorPage.xaml.cs (93%) rename src/{App => Core}/Pages/Accounts/TwoFactorPageViewModel.cs (94%) rename src/{App => Core}/Pages/Accounts/UpdateTempPasswordPage.xaml (96%) rename src/{App => Core}/Pages/Accounts/UpdateTempPasswordPage.xaml.cs (96%) rename src/{App => Core}/Pages/Accounts/UpdateTempPasswordPageViewModel.cs (98%) rename src/{App => Core}/Pages/Accounts/VerificationCodePage.xaml (95%) rename src/{App => Core}/Pages/Accounts/VerificationCodePage.xaml.cs (100%) rename src/{App => Core}/Pages/Accounts/VerificationCodeViewModel.cs (94%) rename src/{App => Core}/Pages/BaseContentPage.cs (87%) rename src/{App => Core}/Pages/BaseModalContentPage.cs (100%) rename src/{App => Core}/Pages/BaseViewModel.cs (88%) rename src/{App => Core}/Pages/CaptchaProtectedViewModel.cs (97%) rename src/{App => Core}/Pages/CollectionViewModel.cs (100%) rename src/{App => Core}/Pages/Generator/GeneratorHistoryPage.xaml (92%) rename src/{App => Core}/Pages/Generator/GeneratorHistoryPage.xaml.cs (85%) rename src/{App => Core}/Pages/Generator/GeneratorHistoryPageViewModel.cs (96%) rename src/{App => Core}/Pages/Generator/GeneratorPage.xaml (95%) rename src/{App => Core}/Pages/Generator/GeneratorPage.xaml.cs (74%) rename src/{App => Core}/Pages/Generator/GeneratorPageViewModel.cs (99%) rename src/{App => Core}/Pages/PickerViewModel.cs (96%) rename src/{App => Core}/Pages/Send/SendAddEditPage.xaml (94%) rename src/{App => Core}/Pages/Send/SendAddEditPage.xaml.cs (89%) rename src/{App => Core}/Pages/Send/SendAddEditPageViewModel.cs (96%) rename src/{App => Core}/Pages/Send/SendAddOnlyOptionsView.xaml (94%) rename src/{App => Core}/Pages/Send/SendAddOnlyOptionsView.xaml.cs (91%) rename src/{App => Core}/Pages/Send/SendAddOnlyPage.xaml (97%) rename src/{App => Core}/Pages/Send/SendAddOnlyPage.xaml.cs (98%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/ISendGroupingsPageListItem.cs (100%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPage.xaml (93%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPage.xaml.cs (95%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPageHeaderListItem.cs (100%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPageListGroup.cs (100%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPageListItem.cs (98%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPageListItemSelector.cs (92%) rename src/{App => Core}/Pages/Send/SendGroupingsPage/SendGroupingsPageViewModel.cs (94%) rename src/{App => Core}/Pages/Send/SendsPage.xaml (95%) rename src/{App => Core}/Pages/Send/SendsPage.xaml.cs (90%) rename src/{App => Core}/Pages/Send/SendsPageViewModel.cs (98%) rename src/{App => Core}/Pages/Settings/AboutSettingsPage.xaml (93%) rename src/{App => Core}/Pages/Settings/AboutSettingsPage.xaml.cs (95%) rename src/{App => Core}/Pages/Settings/AboutSettingsPageViewModel.cs (98%) rename src/{App => Core}/Pages/Settings/AppearanceSettingsPage.xaml (96%) rename src/{App => Core}/Pages/Settings/AppearanceSettingsPage.xaml.cs (96%) rename src/{App => Core}/Pages/Settings/AppearanceSettingsPageViewModel.cs (96%) rename src/{App => Core}/Pages/Settings/AutofillPage.xaml (95%) rename src/{App => Core}/Pages/Settings/AutofillPage.xaml.cs (100%) rename src/{App => Core}/Pages/Settings/AutofillSettingsPage.xaml (98%) rename src/{App => Core}/Pages/Settings/AutofillSettingsPage.xaml.cs (95%) rename src/{App => Core}/Pages/Settings/AutofillSettingsPageViewModel.android.cs (85%) rename src/{App => Core}/Pages/Settings/AutofillSettingsPageViewModel.cs (95%) rename src/{App => Core}/Pages/Settings/AutofillSettingsPageViewModel.ios.cs (59%) rename src/{App => Core}/Pages/Settings/BlockAutofillUrisPage.xaml (90%) rename src/{App => Core}/Pages/Settings/BlockAutofillUrisPage.xaml.cs (92%) rename src/{App => Core}/Pages/Settings/BlockAutofillUrisPageViewModel.cs (97%) rename src/{App => Core}/Pages/Settings/ExportVaultPage.xaml (97%) rename src/{App => Core}/Pages/Settings/ExportVaultPage.xaml.cs (97%) rename src/{App => Core}/Pages/Settings/ExportVaultPageViewModel.cs (99%) rename src/{App => Core}/Pages/Settings/ExtensionPage.xaml (97%) rename src/{App => Core}/Pages/Settings/ExtensionPage.xaml.cs (100%) rename src/{App => Core}/Pages/Settings/ExtensionPageViewModel.cs (97%) rename src/{App => Core}/Pages/Settings/FolderAddEditPage.xaml (89%) rename src/{App => Core}/Pages/Settings/FolderAddEditPage.xaml.cs (74%) rename src/{App => Core}/Pages/Settings/FolderAddEditPageViewModel.cs (93%) rename src/{App => Core}/Pages/Settings/FoldersPage.xaml (89%) rename src/{App => Core}/Pages/Settings/FoldersPage.xaml.cs (86%) rename src/{App => Core}/Pages/Settings/FoldersPageViewModel.cs (96%) rename src/{App => Core}/Pages/Settings/LoginPasswordlessRequestsListPage.xaml (93%) rename src/{App => Core}/Pages/Settings/LoginPasswordlessRequestsListPage.xaml.cs (82%) rename src/{App => Core}/Pages/Settings/LoginPasswordlessRequestsListViewModel.cs (97%) rename src/{App => Core}/Pages/Settings/OtherSettingsPage.xaml (96%) rename src/{App => Core}/Pages/Settings/OtherSettingsPage.xaml.cs (96%) rename src/{App => Core}/Pages/Settings/OtherSettingsPageViewModel.cs (93%) rename src/{App => Core}/Pages/Settings/SecuritySettingsPage.xaml (96%) rename src/{App => Core}/Pages/Settings/SecuritySettingsPage.xaml.cs (95%) rename src/{App => Core}/Pages/Settings/SecuritySettingsPageViewModel.cs (95%) rename src/{App => Core}/Pages/Settings/SettingsPage/SettingsPage.xaml (92%) rename src/{App => Core}/Pages/Settings/SettingsPage/SettingsPage.xaml.cs (69%) rename src/{App => Core}/Pages/Settings/SettingsPage/SettingsPageListItem.cs (95%) rename src/{App => Core}/Pages/Settings/SettingsPage/SettingsPageViewModel.cs (85%) rename src/{App => Core}/Pages/Settings/VaultSettingsPage.xaml (94%) rename src/{App => Core}/Pages/Settings/VaultSettingsPage.xaml.cs (100%) rename src/{App => Core}/Pages/Settings/VaultSettingsPageViewModel.cs (94%) rename src/{App => Core}/Pages/TabsPage.cs (87%) rename src/{App => Core}/Pages/Vault/AttachmentsPage.xaml (95%) rename src/{App => Core}/Pages/Vault/AttachmentsPage.xaml.cs (79%) rename src/{App => Core}/Pages/Vault/AttachmentsPageViewModel.cs (92%) rename src/{App => Core}/Pages/Vault/AutofillCiphersPageViewModel.cs (96%) rename src/{App => Core}/Pages/Vault/BaseCipherViewModel.cs (97%) rename src/{App => Core}/Pages/Vault/CipherAddEditPage.xaml (93%) rename src/{App => Core}/Pages/Vault/CipherAddEditPage.xaml.cs (88%) rename src/{App => Core}/Pages/Vault/CipherAddEditPageViewModel.cs (99%) rename src/{App => Core}/Pages/Vault/CipherDetailsPage.xaml (96%) rename src/{App => Core}/Pages/Vault/CipherDetailsPage.xaml.cs (94%) rename src/{App => Core}/Pages/Vault/CipherDetailsPageViewModel.cs (96%) rename src/{App => Core}/Pages/Vault/CipherSelectionPage.xaml (94%) rename src/{App => Core}/Pages/Vault/CipherSelectionPage.xaml.cs (91%) rename src/{App => Core}/Pages/Vault/CipherSelectionPageViewModel.cs (93%) rename src/{App => Core}/Pages/Vault/CiphersPage.xaml (92%) rename src/{App => Core}/Pages/Vault/CiphersPage.xaml.cs (91%) rename src/{App => Core}/Pages/Vault/CiphersPageViewModel.cs (97%) rename src/{App => Core}/Pages/Vault/CollectionsPage.xaml (96%) rename src/{App => Core}/Pages/Vault/CollectionsPage.xaml.cs (80%) rename src/{App => Core}/Pages/Vault/CollectionsPageViewModel.cs (96%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPage.xaml (92%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPage.xaml.cs (93%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageHeaderListItem.cs (100%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageListGroup.cs (100%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageListItem.cs (97%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageListItemSelector.cs (94%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs (96%) rename src/{App => Core}/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs (96%) rename src/{App => Core}/Pages/Vault/GroupingsPage/IGroupingsPageListItem.cs (100%) rename src/{App => Core}/Pages/Vault/OTPCipherSelectionPageViewModel.cs (96%) rename src/{App => Core}/Pages/Vault/PasswordHistoryPage.xaml (92%) rename src/{App => Core}/Pages/Vault/PasswordHistoryPage.xaml.cs (77%) rename src/{App => Core}/Pages/Vault/PasswordHistoryPageViewModel.cs (95%) rename src/{App => Core}/Pages/Vault/ScanPage.xaml (88%) rename src/{App => Core}/Pages/Vault/ScanPage.xaml.cs (85%) rename src/{App => Core}/Pages/Vault/ScanPageViewModel.cs (95%) rename src/{App => Core}/Pages/Vault/SharePage.xaml (97%) rename src/{App => Core}/Pages/Vault/SharePage.xaml.cs (72%) rename src/{App => Core}/Pages/Vault/SharePageViewModel.cs (97%) rename src/{App => Core}/Pages/VaultFilterViewModel.cs (98%) rename src/{Android/Assets => Core/Resources/Fonts}/MaterialIcons_Regular.ttf (100%) rename src/{Android/Assets => Core/Resources/Fonts}/RobotoMono_Regular.ttf (100%) rename src/{Android/Assets => Core/Resources/Fonts}/bwi-font.ttf (100%) create mode 100755 src/Core/Resources/Images/dotnet_bot.svg rename src/{App/Resources => Core/Resources/Localization}/AppResources.Designer.cs (99%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.af.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ar.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.az.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.be.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.bg.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.bn.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.bs.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ca.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.cs.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.cy.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.da.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.de.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.el.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.en-GB.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.en-IN.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.es.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.et.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.eu.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.fa.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.fi.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.fil.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.fr.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.gl.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.he.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.hi.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.hr.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.hu.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.id.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.it.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ja.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ka.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.kn.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ko.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.lt.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.lv.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ml.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.mr.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.my.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.nb.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ne.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.nl.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.nn.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.or.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.pl.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.pt-BR.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.pt-PT.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ro.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ru.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.si.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.sk.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.sl.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.sr.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.sv.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.ta.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.te.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.th.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.tr.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.uk.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.vi.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.zh-Hans.resx (100%) rename src/{App/Resources => Core/Resources/Localization}/AppResources.zh-Hant.resx (100%) rename src/{App => Core/Resources}/Styles/Android.xaml (99%) rename src/{App => Core/Resources}/Styles/Android.xaml.cs (75%) rename src/{App => Core/Resources}/Styles/Base.xaml (99%) rename src/{App => Core/Resources}/Styles/Base.xaml.cs (75%) rename src/{App => Core/Resources}/Styles/Black.xaml (96%) rename src/{App => Core/Resources}/Styles/Black.xaml.cs (77%) rename src/{App => Core/Resources}/Styles/ControlTemplates.xaml (93%) rename src/{App => Core/Resources}/Styles/ControlTemplates.xaml.cs (77%) rename src/{App => Core/Resources}/Styles/Dark.xaml (96%) rename src/{App => Core/Resources}/Styles/Dark.xaml.cs (77%) rename src/{App => Core/Resources}/Styles/IThemeDirtablePage.cs (100%) rename src/{App => Core/Resources}/Styles/IThemeResourceDictionary.cs (100%) rename src/{App => Core/Resources}/Styles/Light.xaml (94%) rename src/{App => Core/Resources}/Styles/Light.xaml.cs (77%) rename src/{App => Core/Resources}/Styles/Nord.xaml (96%) rename src/{App => Core/Resources}/Styles/Nord.xaml.cs (77%) rename src/{App => Core/Resources}/Styles/SolarizedDark.xaml (96%) rename src/{App => Core/Resources}/Styles/SolarizedDark.xaml.cs (79%) rename src/{App => Core/Resources}/Styles/Variables.xaml (57%) rename src/{App => Core/Resources}/Styles/Variables.xaml.cs (76%) rename src/{App => Core/Resources}/Styles/iOS.xaml (99%) rename src/{App => Core/Resources}/Styles/iOS.xaml.cs (75%) rename src/{App => Core}/Services/BaseBiometricService.cs (100%) rename src/{App => Core}/Services/BaseWatchDeviceService.cs (100%) rename src/{App => Core}/Services/DeepLinkContext.cs (100%) rename src/{App => Core}/Services/MobileBroadcasterMessagingService.cs (100%) rename src/{App => Core}/Services/MobileI18nService.cs (97%) rename src/{App => Core}/Services/MobilePasswordRepromptService.cs (98%) rename src/{App => Core}/Services/MobilePlatformUtilsService.cs (95%) rename src/{App => Core}/Services/MobileStorageService.cs (100%) rename src/{App => Core}/Services/NoopPushNotificationListenerService.cs (100%) rename src/{App => Core}/Services/NoopPushNotificationService.cs (100%) rename src/{App => Core}/Services/PreferencesStorageService.cs (68%) rename src/{App => Core}/Services/PushNotificationListenerService.cs (99%) rename src/{App => Core}/Services/SecureStorageService.cs (81%) rename src/{App => Core}/Services/UserPinService.cs (100%) rename src/{App => Core}/Utilities/A11yExtensions.cs (96%) rename src/{App => Core}/Utilities/AccountManagement/AccountsManager.cs (97%) rename src/{App => Core}/Utilities/AccountManagement/LockNavigationParams.cs (100%) rename src/{App => Core}/Utilities/AccountManagement/LoginNavigationParams.cs (100%) rename src/{App => Core}/Utilities/AppHelpers.cs (99%) rename src/{App => Core}/Utilities/AppSetup.cs (100%) create mode 100644 src/Core/Utilities/AsyncCommand.cs rename src/{App => Core}/Utilities/Automation/AutomationIdsHelper.cs (100%) rename src/{App => Core}/Utilities/Automation/SuffixType.cs (100%) rename src/{App => Core}/Utilities/BoxRowVsBoxRowInputPaddingConverter.cs (93%) rename src/{App => Core}/Utilities/ColoredPasswordConverter.cs (93%) rename src/{App => Core}/Utilities/DateTimeConverter.cs (95%) rename src/{App => Core}/Utilities/EnumHelper.cs (91%) rename src/{App => Core}/Utilities/GeneratedValueFormatter.cs (85%) rename src/{App => Core}/Utilities/I18nExtension.cs (90%) rename src/{App => Core}/Utilities/IPasswordPromptable.cs (100%) rename src/{App => Core}/Utilities/IconGlyphConverter.cs (94%) rename src/{App => Core}/Utilities/IconGlyphExtensions.cs (100%) rename src/{App => Core}/Utilities/IconImageConverter.cs (98%) rename src/{App => Core}/Utilities/InverseBoolConverter.cs (92%) rename src/{App => Core}/Utilities/IsNotNullConverter.cs (92%) rename src/{App => Core}/Utilities/IsNullConverter.cs (92%) rename src/{App => Core}/Utilities/LocalizableEnumConverter.cs (92%) create mode 100644 src/Core/Utilities/ObservableRangeCollection.cs rename src/{App => Core}/Utilities/PageExtensions.cs (97%) rename src/{App => Core}/Utilities/PermissionManager.cs (83%) rename src/{App => Core}/Utilities/ProgressBarExtensions.cs (88%) rename src/{App => Core}/Utilities/Prompts/ValidatablePromptConfig.cs (100%) rename src/{App => Core}/Utilities/SendIconGlyphConverter.cs (94%) rename src/{App => Core}/Utilities/StringHasValueConverter.cs (94%) rename src/{App => Core}/Utilities/ThemeManager.cs (93%) rename src/{App => Core}/Utilities/TimerTask.cs (98%) rename src/{App => Core}/Utilities/TotpHelper.cs (100%) rename src/{App => Core}/Utilities/UpperCaseConverter.cs (93%) rename src/{App => Core}/Utilities/VerificationActionsFlowHelper.cs (99%) create mode 100644 src/iOS.Core/Handlers/ButtonHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/DatePickerHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/EditorHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/EntryHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/LabelHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/PickerHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/SearchBarHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/StepperHandlerMappings.cs create mode 100644 src/iOS.Core/Handlers/TimePickerHandlerMappings.cs delete mode 100644 src/iOS.Core/Properties/AssemblyInfo.cs delete mode 100644 src/iOS.Core/Renderers/CollectionView/CollectionException.cs delete mode 100644 src/iOS.Core/Renderers/CollectionView/ExtendedCollectionViewRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CollectionView/ExtendedGroupableItemsViewController.cs delete mode 100644 src/iOS.Core/Renderers/CollectionView/ExtendedGroupableItemsViewDelegator.cs delete mode 100644 src/iOS.Core/Renderers/CustomButtonRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomContentPageRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomEditorRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomEntryRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomLabelRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomNavigationRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomPickerRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomSearchBarRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomTabbedRenderer.cs delete mode 100644 src/iOS.Core/Renderers/CustomViewCellRenderer.cs delete mode 100644 src/iOS.Core/Renderers/ExtendedDatePickerRenderer.cs delete mode 100644 src/iOS.Core/Renderers/ExtendedStepperRenderer.cs delete mode 100644 src/iOS.Core/Renderers/ExtendedTimePickerRenderer.cs delete mode 100644 src/iOS.Core/Renderers/HybridWebViewRenderer.cs delete mode 100644 src/iOS.Core/Renderers/SelectableLabelRenderer.cs diff --git a/bitwarden-mobile.sln b/bitwarden-mobile.sln index 07434b50a..9c3f4df03 100644 --- a/bitwarden-mobile.sln +++ b/bitwarden-mobile.sln @@ -1,471 +1,107 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 -VisualStudioVersion = 16.0.29009.5 +VisualStudioVersion = 25.0.1706.4 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Android", "src\Android\Android.csproj", "{304400AF-F0ED-40FA-B102-EA3C3EC43E4F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "App", "src\App\App.csproj", "{971FDF07-E288-4239-B47A-E9E7E912193B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "src\App\App.csproj", "{EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core", "src\Core\Core.csproj", "{4B8A8C41-9820-4341-974C-41E65B7F4366}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Playground", "test\Playground\Playground.csproj", "{9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D10CA4A9-F866-40E1-B658-F69051236C71}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{8904C536-C67D-420F-9971-51B26574C3AA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "store", "store", "{92470CBD-9047-4C3C-8EA3-D972D6622D84}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "google", "google", "{2E399654-26A2-46F6-B9CA-1B496A3F370A}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{76690DFB-B7F4-4781-83E4-113FDC450AFE}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - .gitignore = .gitignore - .github\workflows\build.yml = .github\workflows\build.yml - CONTRIBUTING.md = CONTRIBUTING.md - crowdin.yml = crowdin.yml - README.md = README.md - SECURITY.md = SECURITY.md - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Publisher", "store\google\Publisher\Publisher.csproj", "{256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "src\Core\Core.csproj", "{11DBC05E-F8B4-49ED-AAC9-96D92336D21C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS.Core", "src\iOS.Core\iOS.Core.csproj", "{E71F3053-056C-4381-9638-048ED73BDFF6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS", "src\iOS\iOS.csproj", "{599E0201-420A-4C3E-A7BA-5349F72E0B15}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS.Extension", "src\iOS.Extension\iOS.Extension.csproj", "{324BE76C-38FA-4F11-8BB1-95C7B3B1B545}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "test\Common\Common.csproj", "{4085B0A5-12A9-4993-B8B8-4ACE72E62E39}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Test", "test\Core.Test\Core.Test.csproj", "{8AE548D9-A567-4E97-995E-93EC7DB0FDE0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS.ShareExtension", "src\iOS.ShareExtension\iOS.ShareExtension.csproj", "{F8C3F648-EA5A-4719-8005-85D1690B1655}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "iOS.Autofill", "src\iOS.Autofill\iOS.Autofill.csproj", "{8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Ad-Hoc|Any CPU = Ad-Hoc|Any CPU - Ad-Hoc|iPhone = Ad-Hoc|iPhone - Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + FDroid|Any CPU = FDroid|Any CPU + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|iPhoneSimulator = Release|iPhoneSimulator AppStore|Any CPU = AppStore|Any CPU AppStore|iPhone = AppStore|iPhone AppStore|iPhoneSimulator = AppStore|iPhoneSimulator - Debug|Any CPU = Debug|Any CPU - Debug|iPhone = Debug|iPhone - Debug|iPhoneSimulator = Debug|iPhoneSimulator - FDroid|Any CPU = FDroid|Any CPU - FDroid|iPhone = FDroid|iPhone - FDroid|iPhoneSimulator = FDroid|iPhoneSimulator - Release|Any CPU = Release|Any CPU - Release|iPhone = Release|iPhone - Release|iPhoneSimulator = Release|iPhoneSimulator + Ad-Hoc|Any CPU = Ad-Hoc|Any CPU + Ad-Hoc|iPhone = Ad-Hoc|iPhone + Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|Any CPU.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|Any CPU.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhone.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhone.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhone.Build.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|Any CPU.Deploy.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhone.Deploy.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.FDroid|iPhoneSimulator.Deploy.0 = FDroid|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|Any CPU.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|Any CPU.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhone.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhone.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhone.Deploy.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhone.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|Any CPU.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|Any CPU.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhone.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhone.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.AppStore|iPhoneSimulator.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhone.Build.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|Any CPU.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|Any CPU.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhone.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhone.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhone.Deploy.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|Any CPU.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|iPhone.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|iPhone.Build.0 = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|Any CPU.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|iPhone.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|iPhone.Build.0 = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4B8A8C41-9820-4341-974C-41E65B7F4366}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|iPhone.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|iPhone.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|Any CPU.Build.0 = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|iPhone.ActiveCfg = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|iPhone.Build.0 = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|iPhone.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|iPhone.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|Any CPU.Build.0 = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|iPhone.ActiveCfg = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|iPhone.Build.0 = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Release|Any CPU.Build.0 = Release|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.FDroid|Any CPU.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.FDroid|Any CPU.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|iPhone.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|iPhone.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {971FDF07-E288-4239-B47A-E9E7E912193B}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Release|Any CPU.Build.0 = Release|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.FDroid|Any CPU.Build.0 = FDroid|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|iPhone.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|iPhone.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {11DBC05E-F8B4-49ED-AAC9-96D92336D21C}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|Any CPU.Build.0 = Release|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|Any CPU.Build.0 = FDroid|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhone.ActiveCfg = Debug|iPhone + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhone.Build.0 = Debug|iPhone + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|Any CPU.ActiveCfg = AppStore|Any CPU {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|Any CPU.Build.0 = AppStore|Any CPU {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|iPhone.ActiveCfg = AppStore|iPhone {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|iPhone.Build.0 = AppStore|iPhone {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator {E71F3053-056C-4381-9638-048ED73BDFF6}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhone.ActiveCfg = Debug|iPhone - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhone.Build.0 = Debug|iPhone - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {E71F3053-056C-4381-9638-048ED73BDFF6}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|Any CPU.ActiveCfg = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|Any CPU.Build.0 = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|iPhone.ActiveCfg = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|iPhone.Build.0 = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.FDroid|iPhoneSimulator.Build.0 = FDroid|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|Any CPU.Build.0 = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhone.ActiveCfg = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhone.Build.0 = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {E71F3053-056C-4381-9638-048ED73BDFF6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.AppStore|iPhone.Build.0 = AppStore|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|Any CPU.ActiveCfg = Debug|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|iPhone.ActiveCfg = Debug|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|iPhone.Build.0 = Debug|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|iPhone.Deploy.0 = Debug|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.FDroid|Any CPU.ActiveCfg = FDroid|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.FDroid|iPhone.ActiveCfg = FDroid|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.FDroid|iPhone.Build.0 = FDroid|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.FDroid|iPhoneSimulator.ActiveCfg = FDroid|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.FDroid|iPhoneSimulator.Build.0 = FDroid|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Release|Any CPU.ActiveCfg = Release|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Release|iPhone.ActiveCfg = Release|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Release|iPhone.Build.0 = Release|iPhone - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {599E0201-420A-4C3E-A7BA-5349F72E0B15}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|Any CPU.Build.0 = AppStore|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|iPhone.Build.0 = AppStore|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|Any CPU.ActiveCfg = Debug|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|iPhone.ActiveCfg = Debug|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|iPhone.Build.0 = Debug|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|iPhone.Deploy.0 = Debug|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|Any CPU.ActiveCfg = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|Any CPU.Build.0 = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|iPhone.ActiveCfg = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|iPhone.Build.0 = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.FDroid|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Release|Any CPU.ActiveCfg = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Release|iPhone.ActiveCfg = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Release|iPhone.Build.0 = Release|iPhone - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|Any CPU.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|iPhone.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|iPhone.Build.0 = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|Any CPU.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|Any CPU.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|iPhone.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|iPhone.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.FDroid|iPhoneSimulator.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|Any CPU.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|iPhone.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|iPhone.Build.0 = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|Any CPU.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|iPhone.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|iPhone.Build.0 = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|Any CPU.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|Any CPU.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|iPhone.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|iPhone.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|iPhoneSimulator.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.FDroid|iPhoneSimulator.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|Any CPU.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|iPhone.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|iPhone.Build.0 = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|Any CPU.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|Any CPU.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|iPhone.ActiveCfg = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|iPhone.Build.0 = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|Any CPU.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|Any CPU.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|iPhone.ActiveCfg = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|iPhone.Build.0 = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.AppStore|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|iPhone.ActiveCfg = Debug|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|iPhone.Build.0 = Debug|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|Any CPU.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|Any CPU.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|iPhone.ActiveCfg = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|iPhone.Build.0 = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.FDroid|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|Any CPU.ActiveCfg = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|Any CPU.Build.0 = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|iPhone.ActiveCfg = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|iPhone.Build.0 = Release|iPhone - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {F8C3F648-EA5A-4719-8005-85D1690B1655}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|Any CPU.ActiveCfg = AppStore|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|Any CPU.Build.0 = AppStore|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|iPhone.Build.0 = AppStore|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|Any CPU.ActiveCfg = Debug|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|iPhone.ActiveCfg = Debug|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|iPhone.Build.0 = Debug|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|iPhone.Deploy.0 = Debug|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|Any CPU.ActiveCfg = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|Any CPU.Build.0 = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|iPhone.ActiveCfg = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|iPhone.Build.0 = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.FDroid|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Release|Any CPU.ActiveCfg = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Release|iPhone.ActiveCfg = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Release|iPhone.Build.0 = Release|iPhone - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|Any CPU + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator + {E71F3053-056C-4381-9638-048ED73BDFF6}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {4B8A8C41-9820-4341-974C-41E65B7F4366} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {9C8DA5A8-904D-466F-B9B0-1A4AB5A9AFC3} = {8904C536-C67D-420F-9971-51B26574C3AA} - {2E399654-26A2-46F6-B9CA-1B496A3F370A} = {92470CBD-9047-4C3C-8EA3-D972D6622D84} - {256F9E44-0AF5-4D97-A2F9-DA26080C0A5D} = {2E399654-26A2-46F6-B9CA-1B496A3F370A} - {E71F3053-056C-4381-9638-048ED73BDFF6} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {599E0201-420A-4C3E-A7BA-5349F72E0B15} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {324BE76C-38FA-4F11-8BB1-95C7B3B1B545} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {4085B0A5-12A9-4993-B8B8-4ACE72E62E39} = {8904C536-C67D-420F-9971-51B26574C3AA} - {8AE548D9-A567-4E97-995E-93EC7DB0FDE0} = {8904C536-C67D-420F-9971-51B26574C3AA} - {F8C3F648-EA5A-4719-8005-85D1690B1655} = {D10CA4A9-F866-40E1-B658-F69051236C71} - {8A3ECD75-3EC8-4CB3-B3A2-A73A724C279A} = {D10CA4A9-F866-40E1-B658-F69051236C71} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7D436EA3-8B7E-45D2-8D14-0730BD2E0410} + SolutionGuid = {4368352B-5E2E-4F0B-949A-208A3E79E713} EndGlobalSection EndGlobal diff --git a/src/Android/lib/arm64-v8a/libargon2.so b/lib/android/argon2/arm64-v8a/libargon2.so similarity index 100% rename from src/Android/lib/arm64-v8a/libargon2.so rename to lib/android/argon2/arm64-v8a/libargon2.so diff --git a/src/Android/lib/armeabi-v7a/libargon2.so b/lib/android/argon2/armeabi-v7a/libargon2.so similarity index 100% rename from src/Android/lib/armeabi-v7a/libargon2.so rename to lib/android/argon2/armeabi-v7a/libargon2.so diff --git a/src/Android/lib/x86_64/libargon2.so b/lib/android/argon2/x86_64/libargon2.so similarity index 100% rename from src/Android/lib/x86_64/libargon2.so rename to lib/android/argon2/x86_64/libargon2.so diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj deleted file mode 100644 index 3997e036b..000000000 --- a/src/Android/Android.csproj +++ /dev/null @@ -1,327 +0,0 @@ - - - - Debug - AnyCPU - {304400AF-F0ED-40FA-B102-EA3C3EC43E4F} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - {c9e5eea5-ca05-42a1-839b-61506e0a37df} - Library - Bit.Droid - BitwardenAndroid - True - Resources\Resource.designer.cs - Resource - Properties\AndroidManifest.xml - Resources - Assets - v13.0 - Xamarin.Android.Net.AndroidClientHandler - - - - - true - portable - false - bin\Debug - DEBUG; - prompt - 3 - - 1G - - - false - pdbonly - true - bin\Release - prompt - 4 - true - false - armeabi-v7a;x86;x86_64;arm64-v8a - 1G - true - true - - - false - bin\FDroid\ - true - pdbonly - AnyCPU - Off - prompt - MinimumRecommendedRules.ruleset - FDROID - armeabi-v7a;x86;x86_64;arm64-v8a - 1G - false - true - true - - - - - - - - - - - - - 2.1.0.4 - - - 1.9.0 - - - - - - - - 1.8.0 - - - 123.1.2.2 - - - - - 118.0.1.5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {EE44C6A1-2A85-45FE-8D9B-BF1D5F88809C} - App - - - {4b8a8c41-9820-4341-974c-41e65b7f4366} - Core - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MSBuild:UpdateGeneratedFiles - Designer - - - - - MSBuild:UpdateGeneratedFiles - Designer - - - - - MSBuild:UpdateGeneratedFiles - Designer - - - - - - - - - \ No newline at end of file diff --git a/src/Android/Effects/FabShadowEffect.cs b/src/Android/Effects/FabShadowEffect.cs deleted file mode 100644 index 9901a51ba..000000000 --- a/src/Android/Effects/FabShadowEffect.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Android.Graphics.Drawables; -using Bit.Droid.Effects; -using Bit.Droid.Utilities; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportEffect(typeof(FabShadowEffect), "FabShadowEffect")] -namespace Bit.Droid.Effects -{ - public class FabShadowEffect : PlatformEffect - { - protected override void OnAttached () - { - if (Control is Android.Widget.Button button) - { - var gd = new GradientDrawable(); - gd.SetColor(ThemeHelpers.FabColor); - gd.SetCornerRadius(100); - - button.SetBackground(gd); - button.Elevation = 6; - button.TranslationZ = 20; - } - } - - protected override void OnDetached () - { - } - } -} diff --git a/src/Android/Effects/FixedSizeEffect.cs b/src/Android/Effects/FixedSizeEffect.cs deleted file mode 100644 index 98c997e18..000000000 --- a/src/Android/Effects/FixedSizeEffect.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Android.Widget; -using Bit.Droid.Effects; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportEffect(typeof(FixedSizeEffect), "FixedSizeEffect")] -namespace Bit.Droid.Effects -{ - public class FixedSizeEffect : PlatformEffect - { - protected override void OnAttached() - { - if (Element is Label label && Control is TextView textView) - { - textView.SetTextSize(Android.Util.ComplexUnitType.Pt, (float)label.FontSize); - } - } - - protected override void OnDetached() - { - } - } -} diff --git a/src/Android/Effects/RemoveFontPaddingEffect.cs b/src/Android/Effects/RemoveFontPaddingEffect.cs deleted file mode 100644 index 1f7cf1297..000000000 --- a/src/Android/Effects/RemoveFontPaddingEffect.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Android.Widget; -using Bit.Droid.Effects; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportEffect(typeof(RemoveFontPaddingEffect), nameof(RemoveFontPaddingEffect))] -namespace Bit.Droid.Effects -{ - public class RemoveFontPaddingEffect : PlatformEffect - { - protected override void OnAttached() - { - if (Control is TextView textView) - { - textView.SetIncludeFontPadding(false); - } - } - - protected override void OnDetached() - { - } - } -} \ No newline at end of file diff --git a/src/Android/Effects/TabBarEffect.cs b/src/Android/Effects/TabBarEffect.cs deleted file mode 100644 index e684ef452..000000000 --- a/src/Android/Effects/TabBarEffect.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Android.Views; -using Bit.Droid.Effects; -using Google.Android.Material.BottomNavigation; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ResolutionGroupName("Bitwarden")] -[assembly: ExportEffect(typeof(TabBarEffect), "TabBarEffect")] -namespace Bit.Droid.Effects -{ - public class TabBarEffect : PlatformEffect - { - protected override void OnAttached() - { - if (!(Container.GetChildAt(0) is ViewGroup layout)) - { - return; - } - if (!(layout.GetChildAt(1) is BottomNavigationView bottomNavigationView)) - { - return; - } - bottomNavigationView.LabelVisibilityMode = LabelVisibilityMode.LabelVisibilityLabeled; - } - - protected override void OnDetached() - { - } - } -} diff --git a/src/Android/Properties/AssemblyInfo.cs b/src/Android/Properties/AssemblyInfo.cs deleted file mode 100644 index 7a135b7b7..000000000 --- a/src/Android/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BitwardenAndroid")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Bitwarden Inc.")] -[assembly: AssemblyProduct("Bitwarden")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Android/Renderers/CustomEditorRenderer.cs b/src/Android/Renderers/CustomEditorRenderer.cs deleted file mode 100644 index 035c2f3eb..000000000 --- a/src/Android/Renderers/CustomEditorRenderer.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.ComponentModel; -using Android.Content; -using Android.Content.Res; -using Android.Views.InputMethods; -using Bit.Droid.Renderers; -using Bit.Droid.Utilities; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportRenderer(typeof(Editor), typeof(CustomEditorRenderer))] -namespace Bit.Droid.Renderers -{ - public class CustomEditorRenderer : EditorRenderer - { - public CustomEditorRenderer(Context context) - : base(context) - { } - - // Workaround for issue described here: - // https://github.com/xamarin/Xamarin.Forms/issues/8291#issuecomment-617456651 - protected override void OnAttachedToWindow() - { - base.OnAttachedToWindow(); - EditText.Enabled = false; - EditText.Enabled = true; - } - - protected override void OnElementChanged(ElementChangedEventArgs e) - { - base.OnElementChanged(e); - UpdateBorderColor(); - if (Control != null && e.NewElement != null) - { - Control.SetPadding(Control.PaddingLeft, Control.PaddingTop - 10, Control.PaddingRight, - Control.PaddingBottom + 20); - Control.ImeOptions = Control.ImeOptions | (ImeAction)ImeFlags.NoPersonalizedLearning | - (ImeAction)ImeFlags.NoExtractUi; - } - } - - protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) - { - base.OnElementPropertyChanged(sender, e); - - if (e.PropertyName == Entry.TextColorProperty.PropertyName) - { - UpdateBorderColor(); - } - } - - private void UpdateBorderColor() - { - if (Control != null) - { - var states = new[] - { - new[] { Android.Resource.Attribute.StateFocused }, // focused - new[] { -Android.Resource.Attribute.StateFocused }, // unfocused - }; - var colors = new int[] - { - ThemeHelpers.PrimaryColor, - ThemeHelpers.MutedColor - }; - Control.BackgroundTintList = new ColorStateList(states, colors); - } - } - } -} diff --git a/src/Android/Renderers/CustomEntryRenderer.cs b/src/Android/Renderers/CustomEntryRenderer.cs deleted file mode 100644 index fd1eb03b3..000000000 --- a/src/Android/Renderers/CustomEntryRenderer.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System.ComponentModel; -using Android.Content; -using Android.Content.Res; -using Android.Graphics; -using Android.Text; -using Android.Views.InputMethods; -using Android.Widget; -using Bit.Droid.Renderers; -using Bit.Droid.Utilities; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportRenderer(typeof(Entry), typeof(CustomEntryRenderer))] -namespace Bit.Droid.Renderers -{ - public class CustomEntryRenderer : EntryRenderer - { - public CustomEntryRenderer(Context context) - : base(context) - { } - - protected override void OnElementChanged(ElementChangedEventArgs e) - { - base.OnElementChanged(e); - UpdateBorderColor(); - if (Control != null && e.NewElement != null) - { - Control.SetPadding(Control.PaddingLeft, Control.PaddingTop - 10, Control.PaddingRight, - Control.PaddingBottom + 20); - Control.ImeOptions = Control.ImeOptions | (ImeAction)ImeFlags.NoPersonalizedLearning | - (ImeAction)ImeFlags.NoExtractUi; - } - } - - // Workaround for bug preventing long-press -> copy/paste on Android 11 - // See https://issuetracker.google.com/issues/37095917 - protected override void OnAttachedToWindow() - { - base.OnAttachedToWindow(); - Control.Enabled = false; - Control.Enabled = true; - } - - // Workaround for failure to disable text prediction on non-password fields - // see https://github.com/xamarin/Xamarin.Forms/issues/10857 - protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) - { - base.OnElementPropertyChanged(sender, e); - - // Check if changed property is "IsPassword", otherwise ignore - if (e.PropertyName == Entry.IsPasswordProperty.PropertyName) - { - // Check if field type is text, otherwise ignore (numeric passwords, etc.) - EditText.InputType = Element.Keyboard.ToInputType(); - bool isText = (EditText.InputType & InputTypes.ClassText) == InputTypes.ClassText, - isNumber = (EditText.InputType & InputTypes.ClassNumber) == InputTypes.ClassNumber; - if (isText || isNumber) - { - if (Element.IsPassword) - { - // Element is a password field, set inputType to TextVariationPassword which disables - // predictive text by default - EditText.InputType = EditText.InputType | - (isText ? InputTypes.TextVariationPassword : InputTypes.NumberVariationPassword); - } - else - { - // Element is not a password field, set inputType to TextVariationVisiblePassword to - // disable predictive text while still displaying the content. - EditText.InputType = EditText.InputType | - (isText ? InputTypes.TextVariationVisiblePassword : InputTypes.NumberVariationNormal); - } - - // The workaround above forces a reset of the style properties, so we need to re-apply the font. - // see https://xamarin.github.io/bugzilla-archives/33/33666/bug.html - var typeface = Typeface.CreateFromAsset(Context.Assets, "RobotoMono_Regular.ttf"); - if (Control is TextView label) - { - label.Typeface = typeface; - } - } - } - else if (e.PropertyName == Entry.TextColorProperty.PropertyName) - { - UpdateBorderColor(); - } - } - - private void UpdateBorderColor() - { - if (Control != null) - { - var states = new[] - { - new[] { Android.Resource.Attribute.StateFocused }, // focused - new[] { -Android.Resource.Attribute.StateFocused }, // unfocused - }; - var colors = new int[] - { - ThemeHelpers.PrimaryColor, - ThemeHelpers.MutedColor - }; - Control.BackgroundTintList = new ColorStateList(states, colors); - } - } - } -} diff --git a/src/Android/Renderers/CustomLabelRenderer.cs b/src/Android/Renderers/CustomLabelRenderer.cs deleted file mode 100644 index 838b9b967..000000000 --- a/src/Android/Renderers/CustomLabelRenderer.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.ComponentModel; -using Android.Content; -using Android.OS; -using Bit.App.Controls; -using Bit.Droid.Renderers; -using Xamarin.Forms; -using Xamarin.Forms.Platform.Android; - -[assembly: ExportRenderer(typeof(CustomLabel), typeof(CustomLabelRenderer))] -namespace Bit.Droid.Renderers -{ - public class CustomLabelRenderer : LabelRenderer - { - public CustomLabelRenderer(Context context) - : base(context) - { } - - protected override void OnElementChanged(ElementChangedEventArgs