├── .gitlab-ci.yml ├── LICENSE.md ├── README.md └── dashlane-project ├── Dashlane └── src │ ├── debug │ └── AndroidManifest.xml │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ ├── android │ │ │ └── view │ │ │ │ └── accessibility │ │ │ │ └── AccessibilityEventExt.kt │ │ └── com │ │ │ └── dashlane │ │ │ ├── DashlaneApplication.kt │ │ │ ├── DashlaneApplicationObserver.kt │ │ │ ├── DashlaneFcmService.kt │ │ │ ├── accountrecoverykey │ │ │ └── AccountRecoveryKeyActivity.kt │ │ │ ├── accountstatus │ │ │ └── AccountStatusPostUpdateManagerImpl.kt │ │ │ ├── analytics │ │ │ ├── ActivityLogService.kt │ │ │ └── install │ │ │ │ └── InstallTrackingManager.kt │ │ │ ├── applinkfetcher │ │ │ └── AuthentifiantAppLinkDownloader.kt │ │ │ ├── async │ │ │ └── broadcasts │ │ │ │ ├── BrazeBroadcastReceiver.kt │ │ │ │ ├── GCMAlarmReceiver.java │ │ │ │ └── InstallReceiver.kt │ │ │ ├── attachment │ │ │ ├── AttachmentListContract.kt │ │ │ ├── AttachmentListDataProvider.kt │ │ │ ├── AttachmentListResult.kt │ │ │ ├── dagger │ │ │ │ └── SecureFileBindingModule.kt │ │ │ ├── extensions │ │ │ │ └── SecureFileInfoExtension.kt │ │ │ └── ui │ │ │ │ ├── AttachmentAdapter.kt │ │ │ │ ├── AttachmentItem.kt │ │ │ │ ├── AttachmentListActivity.kt │ │ │ │ ├── AttachmentListPresenter.kt │ │ │ │ ├── AttachmentListViewProxy.kt │ │ │ │ ├── AttachmentViewHolder.kt │ │ │ │ ├── DownloadAttachmentsPresenter.kt │ │ │ │ ├── DownloadAttachmentsViewProxy.kt │ │ │ │ ├── OpenDocumentResultContract.kt │ │ │ │ ├── UploadAttachmentsPresenter.kt │ │ │ │ └── UploadAttachmentsViewProxy.kt │ │ │ ├── authenticator │ │ │ ├── AuthenticatorDashboardFragment.kt │ │ │ └── AuthenticatorSuggestionsFragment.kt │ │ │ ├── autofill │ │ │ ├── api │ │ │ │ ├── ApplicationFormSourceDeviceStatusFromContext.kt │ │ │ │ ├── AuthentifiantSearchViewTypeProviderFactoryImpl.kt │ │ │ │ ├── AutofillCreateAccountServiceImpl.kt │ │ │ │ ├── AutofillEmptyWebsiteWarningServiceImpl.kt │ │ │ │ ├── AutofillFormSourcesStringsFromContext.kt │ │ │ │ ├── AutofillGeneratePasswordServiceImpl.kt │ │ │ │ ├── AutofillNavigationServiceImpl.kt │ │ │ │ ├── AutofillSearchUsingLoader.kt │ │ │ │ ├── AutofillUpdateAccountServiceImpl.kt │ │ │ │ ├── KeyboardAutofillServiceImpl.kt │ │ │ │ ├── PreferencesPausedFormSourcesRepository.kt │ │ │ │ ├── changepause │ │ │ │ │ ├── ChangePauseHolder.kt │ │ │ │ │ └── ChangePauseViewTypeProviderFactoryImpl.kt │ │ │ │ ├── dagger │ │ │ │ │ ├── AutofillApiActionsSourcesComponentModule.kt │ │ │ │ │ ├── AutofillApiChangePauseComponentModule.kt │ │ │ │ │ ├── AutofillApiComponentBindModule.kt │ │ │ │ │ ├── AutofillApiComponentModule.kt │ │ │ │ │ ├── AutofillApiPauseComponentModule.kt │ │ │ │ │ ├── AutofillApiRememberAccountComponentModule.kt │ │ │ │ │ ├── AutofillApiTotpModule.kt │ │ │ │ │ └── AutofillApiViewAllAccountsComponentModule.kt │ │ │ │ ├── followup │ │ │ │ │ ├── FollowUpNotificationComponentExternalModule.kt │ │ │ │ │ ├── FollowUpNotificationLockManagerImpl.kt │ │ │ │ │ ├── FollowUpNotificationLoggerImpl.kt │ │ │ │ │ ├── FollowUpNotificationPermissionManagerImpl.kt │ │ │ │ │ └── FollowUpNotificationSettingsServiceImpl.kt │ │ │ │ ├── rememberaccount │ │ │ │ │ ├── ApplicationFormSourceAuthentifiantPreferencesLinker.kt │ │ │ │ │ ├── AutofillApiRememberAccountToasterImpl.kt │ │ │ │ │ ├── FormSourceAuthentifiantPreferencesLinker.kt │ │ │ │ │ ├── WebDomainFormSourceAuthentifiantPreferencesLinker.kt │ │ │ │ │ └── linkedservices │ │ │ │ │ │ ├── ApplicationFormSourceAuthentifiantLinker.kt │ │ │ │ │ │ └── WebDomainFormSourceAuthentifiantLinker.kt │ │ │ │ └── securitywarnings │ │ │ │ │ └── UserPreferencesRememberSecurityWarningsJsonRepository.kt │ │ │ ├── core │ │ │ │ ├── AutoFillDataBaseAccess.kt │ │ │ │ ├── AutofillChangePasswordLoggerImpl.kt │ │ │ │ ├── AutofillCreateAccountLoggerImpl.kt │ │ │ │ ├── AutofillGeneratePasswordLoggerImpl.kt │ │ │ │ ├── AutofillLinkServiceLoggerImpl.kt │ │ │ │ ├── AutofillPhishingLoggerImpl.kt │ │ │ │ ├── AutofillSaveRequestLoggerImpl.kt │ │ │ │ ├── AutofillSecurityWarningsLoggerImpl.kt │ │ │ │ ├── AutofillUsageLog.kt │ │ │ │ ├── AutofillViewAllAccountsLoggerImpl.kt │ │ │ │ └── domain │ │ │ │ │ └── AutofillSecurityApplication.kt │ │ │ └── onboarding │ │ │ │ ├── OnboardingInAppLoginActivity.kt │ │ │ │ ├── OnboardingInAppLoginDone.kt │ │ │ │ ├── OnboardingInAppLoginFragmentStatePagerAdapter.kt │ │ │ │ ├── OnboardingInAppLoginViewModel.kt │ │ │ │ └── OnboardingStep.kt │ │ │ ├── backup │ │ │ └── DashlaneBackupAgent.kt │ │ │ ├── biometricrecovery │ │ │ ├── BiometricRecovery.kt │ │ │ ├── BiometricRecoveryIntroActivity.kt │ │ │ ├── MasterPasswordResetIntroActivity.kt │ │ │ └── MasterPasswordResetIntroDialogActivity.kt │ │ │ ├── breach │ │ │ ├── BreachManager.kt │ │ │ └── BreachManagerActivityListener.kt │ │ │ ├── callbacks │ │ │ └── AdjustActivityCallback.java │ │ │ ├── collections │ │ │ ├── CollectionLoading.kt │ │ │ ├── DeleteConfirmationDialog.kt │ │ │ ├── RevokeToDeleteDialog.kt │ │ │ ├── SearchableTopAppBarTitle.kt │ │ │ ├── SpaceData.kt │ │ │ ├── details │ │ │ │ ├── CollectionDetailsFragment.kt │ │ │ │ ├── CollectionDetailsScreen.kt │ │ │ │ ├── CollectionDetailsViewModel.kt │ │ │ │ ├── CollectionLimiter.kt │ │ │ │ └── ViewState.kt │ │ │ ├── edit │ │ │ │ ├── CollectionEditFragment.kt │ │ │ │ ├── CollectionsEditViewModel.kt │ │ │ │ ├── SpacePicker.kt │ │ │ │ └── ViewState.kt │ │ │ ├── list │ │ │ │ ├── CollectionsListFragment.kt │ │ │ │ ├── CollectionsListViewModel.kt │ │ │ │ └── ViewState.kt │ │ │ └── sharing │ │ │ │ ├── CollectionSharingListTitle.kt │ │ │ │ ├── CollectionSharingResultActivityListener.kt │ │ │ │ ├── CollectionSharingTopAppBar.kt │ │ │ │ ├── CollectionSharingViewState.kt │ │ │ │ ├── access │ │ │ │ ├── CollectionSharedAccessActivity.kt │ │ │ │ ├── CollectionSharedAccessScreen.kt │ │ │ │ └── CollectionSharedAccessViewModel.kt │ │ │ │ ├── item │ │ │ │ └── CollectionSharingItemDataProvider.kt │ │ │ │ └── share │ │ │ │ ├── CollectionNewShareActivity.kt │ │ │ │ ├── CollectionNewShareScreen.kt │ │ │ │ └── CollectionsNewShareViewModel.kt │ │ │ ├── core │ │ │ ├── DataSyncFlowUtils.kt │ │ │ ├── DataSyncImpl.kt │ │ │ ├── DataSyncNotification.kt │ │ │ ├── HashForLog.kt │ │ │ ├── domain │ │ │ │ ├── AccountStorageImpl.kt │ │ │ │ ├── State.kt │ │ │ │ └── sharing │ │ │ │ │ └── SharingPermission.kt │ │ │ ├── history │ │ │ │ ├── AbstractHistoryGenerator.kt │ │ │ │ └── AuthentifiantHistoryGenerator.kt │ │ │ ├── legacypremium │ │ │ │ └── ConflictingBillingPlatformProviderImpl.kt │ │ │ ├── sharing │ │ │ │ ├── AutoAcceptItemGroup.kt │ │ │ │ ├── SharedItemAccessor.kt │ │ │ │ ├── SharedVaultItemLite.kt │ │ │ │ ├── SharingCollectionInvitePublicKeyUser.kt │ │ │ │ ├── SharingDao.kt │ │ │ │ ├── SharingDaoImplRaclette.kt │ │ │ │ ├── SharingDaoMemoryDataAccess.kt │ │ │ │ ├── SharingDaoMemoryDataAccessImpl.kt │ │ │ │ ├── SharingDaoMemoryDataAccessProvider.kt │ │ │ │ ├── SharingDaoMemoryDataAccessProviderImpl.kt │ │ │ │ ├── SharingDaoMemoryDataAccessRacletteImpl.kt │ │ │ │ ├── SharingGetProvider.kt │ │ │ │ ├── SharingInvitePublicKeyUser.kt │ │ │ │ ├── SharingItemGroupInvitePublicKeyUser.kt │ │ │ │ ├── SharingItemUpdater.kt │ │ │ │ ├── SharingItemUpdaterListenerWrapped.kt │ │ │ │ ├── SharingItemUpdaterRequest.kt │ │ │ │ ├── SharingItemUpdaterRequestCallback.kt │ │ │ │ ├── SharingItemUpdaterUtils.kt │ │ │ │ ├── SharingSyncImpl.kt │ │ │ │ └── SharingUserGroupInvitePublicKeyUser.kt │ │ │ ├── sync │ │ │ │ └── PaymentPaypalMigrationHelper.kt │ │ │ └── xmlconverter │ │ │ │ ├── DataIdentifierSharingXmlConverter.kt │ │ │ │ └── DataIdentifierSharingXmlConverterImpl.kt │ │ │ ├── crashreport │ │ │ ├── CrashReporterLogger.kt │ │ │ ├── CrashReporterManager.kt │ │ │ └── reporter │ │ │ │ └── SentryCrashReporter.kt │ │ │ ├── createaccount │ │ │ ├── AccountCreationSetup.kt │ │ │ ├── AccountCreatorImpl.kt │ │ │ ├── CreateAccountActivity.kt │ │ │ ├── CreateAccountAuthModule.kt │ │ │ ├── CreateAccountContract.kt │ │ │ ├── CreateAccountDataProvider.kt │ │ │ ├── CreateAccountLogger.kt │ │ │ ├── CreateAccountPresenter.kt │ │ │ ├── CreateAccountSuccessIntentFactory.kt │ │ │ ├── CreateAccountViewProxy.kt │ │ │ ├── LoginEmailAnimator.kt │ │ │ ├── dagger │ │ │ │ └── CreateAccountBindingModule.kt │ │ │ ├── pages │ │ │ │ ├── CreateAccountBaseContract.kt │ │ │ │ ├── CreateAccountBasePresenter.kt │ │ │ │ ├── choosepassword │ │ │ │ │ ├── CreateAccountChoosePasswordContract.kt │ │ │ │ │ ├── CreateAccountChoosePasswordDataProvider.kt │ │ │ │ │ ├── CreateAccountChoosePasswordPresenter.kt │ │ │ │ │ ├── CreateAccountChoosePasswordViewProxy.kt │ │ │ │ │ └── validator │ │ │ │ │ │ ├── PasswordValidationResultViewProxy.kt │ │ │ │ │ │ └── zxcvbn │ │ │ │ │ │ └── PasswordValidationResultByZxcvbnViewProxy.kt │ │ │ │ ├── confirmpassword │ │ │ │ │ ├── CreateAccountConfirmPasswordContract.kt │ │ │ │ │ ├── CreateAccountConfirmPasswordDataProvider.kt │ │ │ │ │ ├── CreateAccountConfirmPasswordPresenter.kt │ │ │ │ │ └── CreateAccountConfirmPasswordViewProxy.kt │ │ │ │ ├── email │ │ │ │ │ ├── CreateAccountEmailContract.kt │ │ │ │ │ ├── CreateAccountEmailDataProvider.kt │ │ │ │ │ ├── CreateAccountEmailLogger.kt │ │ │ │ │ ├── CreateAccountEmailLoggerImpl.kt │ │ │ │ │ ├── CreateAccountEmailPresenter.kt │ │ │ │ │ └── CreateAccountEmailViewProxy.kt │ │ │ │ ├── settings │ │ │ │ │ ├── CreateAccountSettingsContract.kt │ │ │ │ │ ├── CreateAccountSettingsPresenter.kt │ │ │ │ │ └── CreateAccountSettingsViewProxy.kt │ │ │ │ └── tos │ │ │ │ │ ├── AgreedTosEvent.kt │ │ │ │ │ └── CreateAccountTosBottomSheetDialogFragment.kt │ │ │ └── passwordless │ │ │ │ ├── MplessAccountCreationActivity.kt │ │ │ │ ├── MplessAccountCreationNavigation.kt │ │ │ │ ├── MplessAccountCreationViewModel.kt │ │ │ │ ├── MplessDestination.kt │ │ │ │ ├── UserData.kt │ │ │ │ ├── biometrics │ │ │ │ ├── BiometricSetupState.kt │ │ │ │ ├── BiometricsSetupScreen.kt │ │ │ │ └── BiometricsSetupViewModel.kt │ │ │ │ ├── confirmation │ │ │ │ ├── ConfirmationScreen.kt │ │ │ │ ├── ConfirmationScreenViewModel.kt │ │ │ │ └── ConfirmationState.kt │ │ │ │ ├── info │ │ │ │ └── InfoScreen.kt │ │ │ │ └── termsandconditions │ │ │ │ └── TermsAndConditionsScreen.kt │ │ │ ├── credentialmanager │ │ │ ├── CredentialManagerDAOImpl.kt │ │ │ ├── CredentialManagerIntentImpl.kt │ │ │ └── CredentialManagerLockerImpl.kt │ │ │ ├── dagger │ │ │ ├── ActivityBindingModule.kt │ │ │ ├── ActivityLifecycleListenerModule.kt │ │ │ ├── ActivityModule.kt │ │ │ ├── ApplicationObserverModule.kt │ │ │ ├── ClipboardCopyModule.kt │ │ │ ├── DateModule.kt │ │ │ ├── FragmentBindingModule.kt │ │ │ ├── FragmentModule.kt │ │ │ ├── LockModule.kt │ │ │ ├── NotificatorModule.kt │ │ │ ├── ViewModelModule.kt │ │ │ └── singleton │ │ │ │ ├── AccountRecoveryModule.kt │ │ │ │ ├── ApplicationContextModule.kt │ │ │ │ ├── BinderModule.kt │ │ │ │ ├── BreachModule.kt │ │ │ │ ├── DaDaDaModule.kt │ │ │ │ ├── DomainCategoryModule.kt │ │ │ │ ├── FeatureCheckerModule.kt │ │ │ │ ├── HttpAppModule.kt │ │ │ │ ├── InAppLoginModule.kt │ │ │ │ ├── JsonModule.kt │ │ │ │ ├── KnownApplicationEntryPoint.kt │ │ │ │ ├── KnownApplicationModule.kt │ │ │ │ ├── NewDataStorageModule.kt │ │ │ │ ├── PasswordModule.kt │ │ │ │ ├── RemoteConfigurationModule.kt │ │ │ │ ├── SessionCoroutineScopeModule.kt │ │ │ │ ├── SessionManagerModule.kt │ │ │ │ ├── SharingModule.kt │ │ │ │ ├── SingletonAbstractModule.kt │ │ │ │ ├── SingletonAggregateModule.kt │ │ │ │ ├── SingletonModule.kt │ │ │ │ ├── TrackingModule.kt │ │ │ │ ├── UserAgentProviderImpl.kt │ │ │ │ └── WindowConfigurationModule.kt │ │ │ ├── device │ │ │ ├── DeviceInformation.kt │ │ │ ├── DeviceInformationGenerator.kt │ │ │ └── DeviceUpdateManager.kt │ │ │ ├── endoflife │ │ │ ├── EndOfLifeModule.kt │ │ │ └── EndOfLifeObserver.kt │ │ │ ├── events │ │ │ ├── BreachStatusChangedEvent.kt │ │ │ ├── BreachesRefreshedEvent.kt │ │ │ ├── DarkWebSetupCompleteEvent.kt │ │ │ ├── DataIdentifierDeletedEvent.kt │ │ │ ├── DataIdentifierReplacedEvent.kt │ │ │ └── PasswordChangedEvent.kt │ │ │ ├── inapplogin │ │ │ ├── AutoFillApiManager.kt │ │ │ └── InAppLoginManager.kt │ │ │ ├── invites │ │ │ └── InviteFriendsIntentHelper.kt │ │ │ ├── item │ │ │ ├── BaseUiUpdateListener.kt │ │ │ ├── ItemEditViewActivity.kt │ │ │ ├── ItemEditViewContract.kt │ │ │ ├── ItemEditViewDataProvider.kt │ │ │ ├── ItemEditViewPresenter.kt │ │ │ ├── ItemEditViewSetupOptions.kt │ │ │ ├── ItemEditViewViewProxy.kt │ │ │ ├── ScreenConfiguration.kt │ │ │ ├── ScreenConfigurationUtil.kt │ │ │ ├── WindowUtil.kt │ │ │ ├── collection │ │ │ │ ├── CollectionSelectorActivity.kt │ │ │ │ ├── CollectionSelectorFragment.kt │ │ │ │ ├── CollectionSelectorViewModel.kt │ │ │ │ └── CollectionTeamUtil.kt │ │ │ ├── delete │ │ │ │ ├── DeleteVaultItemFragment.kt │ │ │ │ ├── DeleteVaultItemScreen.kt │ │ │ │ └── DeleteVaultItemViewModel.kt │ │ │ ├── header │ │ │ │ └── ItemHeader.kt │ │ │ ├── linkedwebsites │ │ │ │ ├── LinkedServicesContract.kt │ │ │ │ ├── LinkedServicesDataProvider.kt │ │ │ │ ├── LinkedServicesFragment.kt │ │ │ │ ├── LinkedServicesUIState.kt │ │ │ │ ├── LinkedServicesUtils.kt │ │ │ │ ├── LinkedServicesViewModel.kt │ │ │ │ ├── item │ │ │ │ │ ├── LinkedAppsItemFragment.kt │ │ │ │ │ ├── LinkedAppsViewModel.kt │ │ │ │ │ ├── LinkedServicesItem.kt │ │ │ │ │ ├── LinkedWebsitesItemFragment.kt │ │ │ │ │ └── LinkedWebsitesViewModel.kt │ │ │ │ └── old │ │ │ │ │ ├── LinkedServicesActivity.kt │ │ │ │ │ ├── LinkedServicesViewModel.kt │ │ │ │ │ ├── LinkedServicesViewProxy.kt │ │ │ │ │ └── item │ │ │ │ │ ├── LinkedAppsItemFragment.kt │ │ │ │ │ ├── LinkedAppsViewModel.kt │ │ │ │ │ ├── LinkedWebsitesItemFragment.kt │ │ │ │ │ └── LinkedWebsitesViewModel.kt │ │ │ ├── nfc │ │ │ │ ├── EmvCardProvider.kt │ │ │ │ ├── NfcCreditCardReader.kt │ │ │ │ └── NfcHelper.kt │ │ │ ├── passwordhistory │ │ │ │ ├── PasswordHistoryActivity.kt │ │ │ │ ├── PasswordHistoryEntry.kt │ │ │ │ ├── PasswordHistoryFragment.kt │ │ │ │ ├── PasswordHistoryItem.kt │ │ │ │ ├── PasswordHistoryScreen.kt │ │ │ │ ├── PasswordHistoryScreenOld.kt │ │ │ │ └── PasswordHistoryViewModel.kt │ │ │ ├── subview │ │ │ │ ├── ItemCollectionListSubView.kt │ │ │ │ ├── ItemScreenConfigurationProvider.kt │ │ │ │ ├── ItemSubView.kt │ │ │ │ ├── ItemSubViewImpl.kt │ │ │ │ ├── ItemSubViewWithActionWrapper.kt │ │ │ │ ├── ValueChangeManager.kt │ │ │ │ ├── ValueChangeManagerImpl.kt │ │ │ │ ├── ViewFactory.kt │ │ │ │ ├── action │ │ │ │ │ ├── AttachmentDetailsAction.kt │ │ │ │ │ ├── AuthenticatorCodeCopyAction.kt │ │ │ │ │ ├── CopyAction.kt │ │ │ │ │ ├── DataIdentifierUtil.kt │ │ │ │ │ ├── DeleteMenuAction.kt │ │ │ │ │ ├── GeneratePasswordAction.kt │ │ │ │ │ ├── ItemEditMenuAction.kt │ │ │ │ │ ├── ItemHistoryAction.kt │ │ │ │ │ ├── LimitedSharingRightsInfoAction.kt │ │ │ │ │ ├── LoginAction.kt │ │ │ │ │ ├── LoginOpener.kt │ │ │ │ │ ├── MenuAction.kt │ │ │ │ │ ├── NewShareAction.kt │ │ │ │ │ ├── NewShareMenuAction.kt │ │ │ │ │ ├── OpenLinkedWebsitesAction.kt │ │ │ │ │ ├── ShareDetailsAction.kt │ │ │ │ │ ├── ShowAttachmentsMenuAction.kt │ │ │ │ │ ├── authenticator │ │ │ │ │ │ └── ActivateRemoveAuthenticatorAction.kt │ │ │ │ │ ├── note │ │ │ │ │ │ ├── SecureNoteCategoryMenuAction.kt │ │ │ │ │ │ ├── SecureNoteColorMenuAction.kt │ │ │ │ │ │ └── SecureNoteLockMenuAction.kt │ │ │ │ │ └── payment │ │ │ │ │ │ └── CreditCardColorMenuAction.kt │ │ │ │ ├── edit │ │ │ │ │ ├── ItemAuthenticatorEditSubView.kt │ │ │ │ │ ├── ItemEditPasswordWithStrengthSubView.kt │ │ │ │ │ ├── ItemEditSpaceSubView.kt │ │ │ │ │ ├── ItemEditValueBooleanSubView.kt │ │ │ │ │ ├── ItemEditValueDateSubView.kt │ │ │ │ │ ├── ItemEditValueListNonDefaultSubView.kt │ │ │ │ │ ├── ItemEditValueListSubView.kt │ │ │ │ │ ├── ItemEditValueNumberSubView.kt │ │ │ │ │ ├── ItemEditValueRawSubView.kt │ │ │ │ │ ├── ItemEditValueSubView.kt │ │ │ │ │ └── ItemEditValueTextSubView.kt │ │ │ │ ├── provider │ │ │ │ │ ├── BaseSubViewFactory.kt │ │ │ │ │ ├── CountryUtil.kt │ │ │ │ │ ├── DateTimeFieldFactory.kt │ │ │ │ │ ├── EditableSubViewFactory.kt │ │ │ │ │ ├── ItemScreenConfigurationSecureNoteProvider.kt │ │ │ │ │ ├── ReadOnlySubViewFactory.kt │ │ │ │ │ ├── SubViewFactory.kt │ │ │ │ │ ├── credential │ │ │ │ │ │ └── ItemScreenConfigurationPasskeyProvider.kt │ │ │ │ │ ├── id │ │ │ │ │ │ ├── IdUtil.kt │ │ │ │ │ │ ├── IdentityAdapter.kt │ │ │ │ │ │ ├── ItemScreenConfigurationDriverLicenseProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationFiscalStatementProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationIdCardProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationPassportProvider.kt │ │ │ │ │ │ └── ItemScreenConfigurationSocialSecurityProvider.kt │ │ │ │ │ ├── payment │ │ │ │ │ │ ├── BankUtil.kt │ │ │ │ │ │ ├── ItemScreenConfigurationBankAccountProvider.kt │ │ │ │ │ │ └── ItemScreenConfigurationCreditCardProvider.kt │ │ │ │ │ └── personalinfo │ │ │ │ │ │ ├── ItemScreenConfigurationAddressProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationCompanyProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationEmailProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationIdentityProvider.kt │ │ │ │ │ │ ├── ItemScreenConfigurationPhoneProvider.kt │ │ │ │ │ │ └── ItemScreenConfigurationWebsiteProvider.kt │ │ │ │ ├── readonly │ │ │ │ │ ├── ItemAuthenticatorReadSubView.kt │ │ │ │ │ ├── ItemClickActionSubView.kt │ │ │ │ │ ├── ItemInfoboxSubView.kt │ │ │ │ │ ├── ItemLinkedServicesSubView.kt │ │ │ │ │ ├── ItemMetaReadValueDateTimeSubView.kt │ │ │ │ │ ├── ItemPasswordSafetySubView.kt │ │ │ │ │ ├── ItemReadSpaceSubView.kt │ │ │ │ │ ├── ItemReadValueBooleanSubView.kt │ │ │ │ │ ├── ItemReadValueDateSubView.kt │ │ │ │ │ ├── ItemReadValueListSubView.kt │ │ │ │ │ ├── ItemReadValueNumberSubView.kt │ │ │ │ │ ├── ItemReadValueRawSubView.kt │ │ │ │ │ ├── ItemReadValueSubView.kt │ │ │ │ │ └── ItemReadValueTextSubView.kt │ │ │ │ └── view │ │ │ │ │ ├── AuthenticatorViewProvider.kt │ │ │ │ │ ├── ButtonInputProvider.kt │ │ │ │ │ ├── CollectionListViewProvider.kt │ │ │ │ │ ├── CustomItemSelectSpinner.kt │ │ │ │ │ ├── DatePickerInputProvider.kt │ │ │ │ │ ├── EditTextInputProvider.kt │ │ │ │ │ ├── InfoboxViewProvider.kt │ │ │ │ │ ├── MetaTextViewProvider.kt │ │ │ │ │ ├── PasswordSafetyViewProvider.kt │ │ │ │ │ ├── PasswordWithStrengthViewProvider.kt │ │ │ │ │ ├── SpaceSelectorProvider.kt │ │ │ │ │ ├── SpinnerInputProvider.kt │ │ │ │ │ ├── SpinnerNoDefaultInputProvider.kt │ │ │ │ │ ├── SwitchInputProvider.kt │ │ │ │ │ └── TextInputLayoutProvider.kt │ │ │ └── v3 │ │ │ │ ├── ItemEditFragment.kt │ │ │ │ ├── ItemEditModule.kt │ │ │ │ ├── ItemEditViewModelFactory.kt │ │ │ │ ├── builders │ │ │ │ ├── CredentialBuilder.kt │ │ │ │ ├── CreditCardBuilder.kt │ │ │ │ ├── SecretBuilder.kt │ │ │ │ └── SecureNoteBuilder.kt │ │ │ │ ├── data │ │ │ │ ├── CollectionData.kt │ │ │ │ ├── CommonData.kt │ │ │ │ ├── CredentialFormData.kt │ │ │ │ ├── CreditCardFormData.kt │ │ │ │ ├── FormData.kt │ │ │ │ ├── InfoBoxData.kt │ │ │ │ ├── ItemAction.kt │ │ │ │ ├── PasswordHealthData.kt │ │ │ │ ├── SecretFormData.kt │ │ │ │ └── SecureNoteFormData.kt │ │ │ │ ├── display │ │ │ │ ├── DisplayInfoBox.kt │ │ │ │ ├── ItemEditPerformAction.kt │ │ │ │ ├── ItemEditScreen.kt │ │ │ │ ├── ItemHeader.kt │ │ │ │ ├── SectionItemHelper.kt │ │ │ │ ├── Toolbar.kt │ │ │ │ ├── fields │ │ │ │ │ ├── CollectionsField.kt │ │ │ │ │ ├── DeleteItemField.kt │ │ │ │ │ ├── GenericField.kt │ │ │ │ │ ├── LinkedServicesField.kt │ │ │ │ │ ├── PasswordField.kt │ │ │ │ │ ├── SectionContent.kt │ │ │ │ │ ├── SectionTitle.kt │ │ │ │ │ ├── SecureNoteColorField.kt │ │ │ │ │ ├── SpaceField.kt │ │ │ │ │ └── TwoFactorAuthenticatorField.kt │ │ │ │ ├── forms │ │ │ │ │ ├── CredentialForm.kt │ │ │ │ │ ├── SecretForm.kt │ │ │ │ │ └── SecureNoteForm.kt │ │ │ │ └── sections │ │ │ │ │ ├── AttachmentsSection.kt │ │ │ │ │ ├── HealthDetailSection.kt │ │ │ │ │ ├── ItemDateSection.kt │ │ │ │ │ ├── LoginDetailSection.kt │ │ │ │ │ ├── NoteDetailSection.kt │ │ │ │ │ ├── OrganisationSection.kt │ │ │ │ │ ├── SecretDetailSection.kt │ │ │ │ │ ├── SecretSettingsSection.kt │ │ │ │ │ ├── SecureNoteSettingsSection.kt │ │ │ │ │ └── SharedAccessSection.kt │ │ │ │ ├── loaders │ │ │ │ ├── AsyncDataLoader.kt │ │ │ │ ├── CredentialAsyncDataLoader.kt │ │ │ │ ├── SecretAsyncDataLoader.kt │ │ │ │ ├── SecureNoteAsyncDataLoader.kt │ │ │ │ └── common │ │ │ │ │ └── CollectionLoader.kt │ │ │ │ ├── repositories │ │ │ │ ├── CollectionsRepository.kt │ │ │ │ ├── CollectionsRepositoryImpl.kt │ │ │ │ ├── GeneratedPasswordRepository.kt │ │ │ │ ├── GeneratedPasswordRepositoryImpl.kt │ │ │ │ ├── ItemEditRepository.kt │ │ │ │ ├── ItemEditRepositoryImpl.kt │ │ │ │ ├── NewItemRepository.kt │ │ │ │ ├── NewItemRepositoryImpl.kt │ │ │ │ ├── PasswordHealthRepository.kt │ │ │ │ └── PasswordHealthRepositoryImpl.kt │ │ │ │ ├── util │ │ │ │ ├── InfoboxHelper.kt │ │ │ │ ├── ItemEditValueUpdateManager.kt │ │ │ │ ├── ItemEditValueUpdateManagerImpl.kt │ │ │ │ ├── MenuActionHelper.kt │ │ │ │ ├── SensitiveField.kt │ │ │ │ ├── SensitiveFieldLoader.kt │ │ │ │ ├── StateHelper.kt │ │ │ │ ├── ToolbarHelper.kt │ │ │ │ └── VaultItemHelper.kt │ │ │ │ └── viewmodels │ │ │ │ ├── CredentialItemEditViewModel.kt │ │ │ │ ├── ItemEditViewModel.kt │ │ │ │ ├── SecretItemEditViewModel.kt │ │ │ │ └── SecureNoteItemEditViewModel.kt │ │ │ ├── labs │ │ │ ├── DashlaneLabsFragment.kt │ │ │ ├── DashlaneLabsState.kt │ │ │ └── DashlaneLabsViewModel.kt │ │ │ ├── limitations │ │ │ ├── DeviceLimitActivityListener.kt │ │ │ └── Enforce2faLimiter.kt │ │ │ ├── listeners │ │ │ └── edittext │ │ │ │ └── NoLockEditTextWatcher.kt │ │ │ ├── loaders │ │ │ ├── InstalledAppAndPopularWebsiteLoader.kt │ │ │ └── datalists │ │ │ │ ├── NewShareItemDataProvider.kt │ │ │ │ ├── SearchLoader.kt │ │ │ │ └── SharingUserDataUtils.kt │ │ │ ├── locking │ │ │ └── controllers │ │ │ │ ├── LockManagerActivityListener.kt │ │ │ │ └── LockSelfCheckActivityListener.kt │ │ │ ├── logger │ │ │ ├── ActivityLogErrorReporterImpl.kt │ │ │ ├── AdjustWrapper.kt │ │ │ ├── AnalyticsErrorReporterImpl.kt │ │ │ └── utils │ │ │ │ └── HermesDebugUtil.kt │ │ │ ├── login │ │ │ ├── Device.kt │ │ │ ├── DeviceRegistrationInfoImpl.kt │ │ │ ├── InstallationIdDebugUtil.kt │ │ │ ├── LoginActivity.kt │ │ │ ├── LoginIntents.kt │ │ │ ├── LoginLogger.kt │ │ │ ├── LoginStrategy.kt │ │ │ ├── LoginSuccessIntentFactory.kt │ │ │ ├── TrackingIdProvider.kt │ │ │ ├── UserAccountStatus.kt │ │ │ ├── accountrecoverykey │ │ │ │ ├── LoginAccountRecoveryDestination.kt │ │ │ │ ├── LoginAccountRecoveryKeyActivity.kt │ │ │ │ ├── LoginAccountRecoveryKeyRepository.kt │ │ │ │ ├── LoginAccountRecoveryKeyViewModel.kt │ │ │ │ ├── LoginAccountRecoveryNavigation.kt │ │ │ │ ├── enterark │ │ │ │ │ ├── EnterARKScreen.kt │ │ │ │ │ ├── EnterARKState.kt │ │ │ │ │ └── EnterARKViewModel.kt │ │ │ │ ├── intro │ │ │ │ │ ├── IntroScreen.kt │ │ │ │ │ ├── IntroState.kt │ │ │ │ │ └── IntroViewModel.kt │ │ │ │ └── recovery │ │ │ │ │ ├── RecoveryScreen.kt │ │ │ │ │ ├── RecoveryState.kt │ │ │ │ │ └── RecoveryViewModel.kt │ │ │ ├── controller │ │ │ │ ├── LoginTokensModule.kt │ │ │ │ ├── NumberOfRunsActivityListener.kt │ │ │ │ ├── PasswordResetActivityListener.kt │ │ │ │ ├── PasswordResetReceiver.kt │ │ │ │ ├── TokenChecker.kt │ │ │ │ └── TokenReceiverActivityListener.kt │ │ │ ├── dagger │ │ │ │ ├── AuthBindingModule.kt │ │ │ │ ├── LoginAggregationModule.kt │ │ │ │ ├── LoginBindingModule.kt │ │ │ │ ├── LoginCreateAccountSharedModule.kt │ │ │ │ ├── ShortTimeout.kt │ │ │ │ └── TrackingId.kt │ │ │ ├── devicelimit │ │ │ │ ├── DeviceAdapter.kt │ │ │ │ ├── DeviceLimitActivity.kt │ │ │ │ ├── DeviceLimitContract.kt │ │ │ │ ├── DeviceLimitModule.kt │ │ │ │ ├── DeviceLimitPresenter.kt │ │ │ │ ├── DeviceLimitViewProxy.kt │ │ │ │ ├── DeviceViewHolder.kt │ │ │ │ ├── UnlinkDevicesActivity.kt │ │ │ │ ├── UnlinkDevicesContract.kt │ │ │ │ ├── UnlinkDevicesModule.kt │ │ │ │ ├── UnlinkDevicesPresenter.kt │ │ │ │ └── UnlinkDevicesViewProxy.kt │ │ │ ├── lock │ │ │ │ ├── LockManagerForItem.kt │ │ │ │ ├── LockNavigationHelperImpl.kt │ │ │ │ ├── LockTypeManagerImpl.kt │ │ │ │ └── OnboardingApplicationLockActivity.kt │ │ │ ├── monobucket │ │ │ │ ├── MonobucketActivity.kt │ │ │ │ ├── MonobucketScreen.kt │ │ │ │ ├── MonobucketState.kt │ │ │ │ ├── MonobucketUseCase.kt │ │ │ │ └── MonobucketViewModel.kt │ │ │ ├── pages │ │ │ │ ├── biometric │ │ │ │ │ ├── compose │ │ │ │ │ │ ├── LoginBiometricScreen.kt │ │ │ │ │ │ ├── LoginBiometricState.kt │ │ │ │ │ │ └── LoginBiometricViewModel.kt │ │ │ │ │ └── recovery │ │ │ │ │ │ ├── BiometricRecoveryDestination.kt │ │ │ │ │ │ ├── BiometricRecoveryNavigation.kt │ │ │ │ │ │ ├── BiometricRecoveryScreen.kt │ │ │ │ │ │ ├── BiometricRecoveryState.kt │ │ │ │ │ │ └── BiometricRecoveryViewModel.kt │ │ │ │ ├── email │ │ │ │ │ └── compose │ │ │ │ │ │ ├── LoginEmailScreen.kt │ │ │ │ │ │ ├── LoginEmailState.kt │ │ │ │ │ │ └── LoginEmailViewModel.kt │ │ │ │ ├── enforce2fa │ │ │ │ │ ├── Enforce2faLimitActivity.kt │ │ │ │ │ ├── Enforce2faLimitModule.kt │ │ │ │ │ ├── Enforce2faLimitPresenter.kt │ │ │ │ │ ├── HasEnforced2FaLimitUseCaseImpl.kt │ │ │ │ │ └── HasEnforced2faLimitUseCase.kt │ │ │ │ ├── password │ │ │ │ │ ├── InitialSync.kt │ │ │ │ │ ├── LoginPasswordRepository.kt │ │ │ │ │ └── compose │ │ │ │ │ │ ├── LoginPasswordScreen.kt │ │ │ │ │ │ ├── LoginPasswordState.kt │ │ │ │ │ │ └── LoginPasswordViewModel.kt │ │ │ │ ├── pin │ │ │ │ │ ├── PinErrorBottomSheet.kt │ │ │ │ │ └── compose │ │ │ │ │ │ ├── LoginPinScreen.kt │ │ │ │ │ │ ├── LoginPinState.kt │ │ │ │ │ │ └── LoginPinViewModel.kt │ │ │ │ ├── secrettransfer │ │ │ │ │ ├── LoginSecretTransferDestination.kt │ │ │ │ │ ├── LoginSecretTransferNavigation.kt │ │ │ │ │ ├── LoginSecretTransferState.kt │ │ │ │ │ ├── LoginSecretTransferViewModel.kt │ │ │ │ │ ├── authorize │ │ │ │ │ │ └── AuthorizeScreen.kt │ │ │ │ │ ├── choosetype │ │ │ │ │ │ ├── ChooseTypeScreen.kt │ │ │ │ │ │ ├── ChooseTypeState.kt │ │ │ │ │ │ └── ChooseTypeViewModel.kt │ │ │ │ │ ├── confirmemail │ │ │ │ │ │ ├── ConfirmEmailScreen.kt │ │ │ │ │ │ ├── ConfirmEmailState.kt │ │ │ │ │ │ └── ConfirmEmailViewModel.kt │ │ │ │ │ ├── help │ │ │ │ │ │ ├── RecoveryHelpScreen.kt │ │ │ │ │ │ ├── RecoveryHelpState.kt │ │ │ │ │ │ ├── RecoveryHelpViewModel.kt │ │ │ │ │ │ └── lostkey │ │ │ │ │ │ │ └── LostKeyScreen.kt │ │ │ │ │ └── universal │ │ │ │ │ │ ├── intro │ │ │ │ │ │ ├── UniversalIntroScreen.kt │ │ │ │ │ │ ├── UniversalIntroState.kt │ │ │ │ │ │ └── UniversalIntroViewModel.kt │ │ │ │ │ │ └── passphrase │ │ │ │ │ │ └── PassphraseIdentificationScreen.kt │ │ │ │ ├── sso │ │ │ │ │ └── compose │ │ │ │ │ │ ├── LoginSsoScreen.kt │ │ │ │ │ │ ├── LoginSsoState.kt │ │ │ │ │ │ └── LoginSsoViewModel.kt │ │ │ │ ├── token │ │ │ │ │ └── compose │ │ │ │ │ │ ├── LoginTokenScreen.kt │ │ │ │ │ │ ├── LoginTokenState.kt │ │ │ │ │ │ └── LoginTokenViewModel.kt │ │ │ │ └── totp │ │ │ │ │ └── compose │ │ │ │ │ ├── LoginTotpScreen.kt │ │ │ │ │ ├── LoginTotpState.kt │ │ │ │ │ └── LoginTotpViewModel.kt │ │ │ ├── progress │ │ │ │ ├── LoginSyncProgressActivity.kt │ │ │ │ ├── LoginSyncProgressProcessPercentViewProxy.kt │ │ │ │ ├── LoginSyncProgressScreen.kt │ │ │ │ ├── LoginSyncProgressState.kt │ │ │ │ └── LoginSyncProgressViewModel.kt │ │ │ ├── root │ │ │ │ ├── LocalLoginDestination.kt │ │ │ │ ├── LocalLoginNavigationHost.kt │ │ │ │ ├── LoginDestination.kt │ │ │ │ ├── LoginNavigationHost.kt │ │ │ │ ├── LoginRepository.kt │ │ │ │ ├── LoginState.kt │ │ │ │ └── LoginViewModel.kt │ │ │ ├── settings │ │ │ │ ├── LoginSettingsActivity.kt │ │ │ │ ├── LoginSettingsScreen.kt │ │ │ │ ├── LoginSettingsState.kt │ │ │ │ └── LoginSettingsViewModel.kt │ │ │ └── sso │ │ │ │ ├── ContactSsoAdministratorDialogFactory.kt │ │ │ │ ├── ContactSsoAdministratorDialogFactoryImpl.kt │ │ │ │ ├── LoginSsoActivity.kt │ │ │ │ ├── LoginSsoContract.kt │ │ │ │ ├── LoginSsoDataProvider.kt │ │ │ │ ├── LoginSsoLogger.kt │ │ │ │ ├── LoginSsoLoggerImpl.kt │ │ │ │ ├── LoginSsoLoggerModule.kt │ │ │ │ ├── LoginSsoModule.kt │ │ │ │ ├── LoginSsoPresenter.kt │ │ │ │ ├── LoginSsoViewProxy.kt │ │ │ │ ├── MigrationToSsoMemberInfo.kt │ │ │ │ └── migration │ │ │ │ ├── MigrationToSsoMemberActivity.kt │ │ │ │ ├── MigrationToSsoMemberContract.kt │ │ │ │ ├── MigrationToSsoMemberDataProvider.kt │ │ │ │ ├── MigrationToSsoMemberIntroActivity.kt │ │ │ │ ├── MigrationToSsoMemberModule.kt │ │ │ │ ├── MigrationToSsoMemberPresenter.kt │ │ │ │ └── MigrationToSsoMemberViewProxy.kt │ │ │ ├── masterpassword │ │ │ ├── ChangeMasterPasswordActivity.kt │ │ │ ├── ChangeMasterPasswordComposeActivity.kt │ │ │ ├── ChangeMasterPasswordContract.kt │ │ │ ├── ChangeMasterPasswordDataProvider.kt │ │ │ ├── ChangeMasterPasswordFeatureAccessChecker.kt │ │ │ ├── ChangeMasterPasswordLogoutHelper.kt │ │ │ ├── ChangeMasterPasswordPresenter.kt │ │ │ ├── ChangeMasterPasswordProgressViewProxy.kt │ │ │ ├── ChangeMasterPasswordViewProxy.kt │ │ │ ├── dagger │ │ │ │ └── ChangeMasterPasswordModule.kt │ │ │ ├── logger │ │ │ │ └── ChangeMasterPasswordLogger.kt │ │ │ ├── tips │ │ │ │ └── MasterPasswordTipsActivity.kt │ │ │ └── warning │ │ │ │ └── ChangeMPWarningDesktopActivity.kt │ │ │ ├── navigation │ │ │ ├── CustomTitleDestinationChangedListener.kt │ │ │ ├── MenuIconDestinationChangedListener.kt │ │ │ ├── NavControllerUtils.kt │ │ │ ├── NavDeepLinkHelper.kt │ │ │ └── NavigatorImpl.kt │ │ │ ├── notification │ │ │ ├── AutofillReceiver.kt │ │ │ ├── FcmCode.kt │ │ │ ├── FcmHelper.kt │ │ │ ├── FcmMessage.kt │ │ │ ├── LocalNotificationCenterActivityListener.kt │ │ │ ├── LocalNotificationCreator.kt │ │ │ ├── NotificationIntentUtils.kt │ │ │ ├── PushNotificationRegister.kt │ │ │ ├── badge │ │ │ │ ├── NotificationBadgeActivityListener.kt │ │ │ │ ├── NotificationBadgeActor.kt │ │ │ │ ├── NotificationBadgeListener.kt │ │ │ │ ├── SharingInvitationRepository.kt │ │ │ │ └── SharingInvitationRepositoryImpl.kt │ │ │ ├── creator │ │ │ │ ├── AutoFillNotificationCreator.kt │ │ │ │ └── WorkerManagerUtils.kt │ │ │ └── model │ │ │ │ ├── AbstractNotificationHandler.kt │ │ │ │ ├── DarkWebAlertNotificationHandler.kt │ │ │ │ ├── PublicBreachAlertNotificationHandler.kt │ │ │ │ ├── SyncNotificationHandler.kt │ │ │ │ └── TokenNotificationHandler.kt │ │ │ ├── notificationcenter │ │ │ ├── NotificationCenterDataProvider.kt │ │ │ ├── NotificationCenterDef.kt │ │ │ ├── NotificationCenterFragment.kt │ │ │ ├── NotificationCenterModule.kt │ │ │ ├── NotificationCenterPresenter.kt │ │ │ ├── NotificationCenterRepository.kt │ │ │ ├── NotificationCenterRepositoryImpl.kt │ │ │ ├── NotificationCenterViewProxy.kt │ │ │ ├── alerts │ │ │ │ └── BreachDataHelper.kt │ │ │ ├── details │ │ │ │ └── NotificationCenterSectionDetailsFragment.kt │ │ │ ├── promotions │ │ │ │ └── IntroOfferActionItem.kt │ │ │ └── view │ │ │ │ ├── ActionItem.kt │ │ │ │ ├── ActionItemEmptyItemViewHolder.kt │ │ │ │ ├── ActionItemSection.kt │ │ │ │ ├── ActionItemType.kt │ │ │ │ ├── AlertActionItem.kt │ │ │ │ ├── HeaderItem.kt │ │ │ │ ├── NotificationItem.kt │ │ │ │ ├── ReadStateViewHolder.kt │ │ │ │ ├── SharingActionItemCollection.kt │ │ │ │ ├── SharingActionItemItemGroup.kt │ │ │ │ ├── SharingActionItemUserGroup.kt │ │ │ │ └── SwipeToDeleteCallback.kt │ │ │ ├── pin │ │ │ ├── PinSetupRepository.kt │ │ │ ├── settings │ │ │ │ ├── PinSettingsActivity.kt │ │ │ │ ├── PinSettingsDestination.kt │ │ │ │ ├── PinSettingsNavigation.kt │ │ │ │ └── success │ │ │ │ │ ├── PinSettingSuccessViewModel.kt │ │ │ │ │ ├── PinSettingsSuccessScreen.kt │ │ │ │ │ └── PinSettingsSuccessState.kt │ │ │ └── setup │ │ │ │ ├── PinSetupScreen.kt │ │ │ │ ├── PinSetupState.kt │ │ │ │ └── PinSetupViewModel.kt │ │ │ ├── plans │ │ │ └── ui │ │ │ │ └── view │ │ │ │ ├── PurchaseCheckingActivity.kt │ │ │ │ ├── PurchaseCheckingCoordinatorImpl.kt │ │ │ │ ├── PurchaseCheckingErrorFragment.kt │ │ │ │ ├── PurchaseCheckingProgressFragment.kt │ │ │ │ ├── PurchaseCheckingResultViewProxy.kt │ │ │ │ └── PurchaseCheckingSuccessFragment.kt │ │ │ ├── security │ │ │ ├── HideOverlayWindowActivityListener.kt │ │ │ ├── SecurityAlertTrackingUtil.kt │ │ │ ├── TouchFilterActivityListener.kt │ │ │ ├── darkwebmonitoring │ │ │ │ ├── DarkWebMonitoringAlertViewModel.kt │ │ │ │ ├── DarkWebMonitoringContract.kt │ │ │ │ ├── DarkWebMonitoringDataProvider.kt │ │ │ │ ├── DarkWebMonitoringFragment.kt │ │ │ │ ├── DarkWebMonitoringPagerAdapter.kt │ │ │ │ ├── DarkWebMonitoringPresenter.kt │ │ │ │ ├── DarkWebMonitoringViewProxy.kt │ │ │ │ ├── dagger │ │ │ │ │ └── DarkWebMonitoringModule.kt │ │ │ │ ├── detail │ │ │ │ │ ├── BreachAlertAdvice.kt │ │ │ │ │ ├── BreachAlertDetail.kt │ │ │ │ │ ├── BreachAlertDetailDataProvider.kt │ │ │ │ │ ├── BreachAlertDetailFragment.kt │ │ │ │ │ ├── BreachAlertDetailLogger.kt │ │ │ │ │ ├── BreachAlertDetailPresenter.kt │ │ │ │ │ └── BreachAlertDetailViewProxy.kt │ │ │ │ └── item │ │ │ │ │ ├── DarkWebBreachItem.kt │ │ │ │ │ ├── DarkWebEmailItem.kt │ │ │ │ │ ├── DarkWebEmailPlaceholderItem.kt │ │ │ │ │ ├── DarkWebEmptyItem.kt │ │ │ │ │ └── DarkWebHeaderItem.kt │ │ │ └── identitydashboard │ │ │ │ ├── IdentityDashboardContract.kt │ │ │ │ ├── IdentityDashboardDataProvider.kt │ │ │ │ ├── IdentityDashboardFragment.kt │ │ │ │ ├── IdentityDashboardPresenter.kt │ │ │ │ ├── IdentityDashboardViewProxy.kt │ │ │ │ ├── PasswordAnalysisScoreViewProxy.kt │ │ │ │ ├── SecurityScore.kt │ │ │ │ ├── breach │ │ │ │ ├── AnalyzedBreach.kt │ │ │ │ ├── BreachLoader.kt │ │ │ │ ├── BreachUIUtils.kt │ │ │ │ └── BreachWrapper.kt │ │ │ │ ├── item │ │ │ │ ├── IdentityDashboardItem.kt │ │ │ │ ├── IdentityDashboardPasswordHealthItem.kt │ │ │ │ ├── IdentityDashboardSeparatorItem.kt │ │ │ │ └── identityprotection │ │ │ │ │ ├── IdentityDashboardProtectionPackageActiveItem.kt │ │ │ │ │ └── IdentityDashboardProtectionPackageUtil.kt │ │ │ │ └── password │ │ │ │ ├── AnalyzedAuthentifiant.kt │ │ │ │ ├── AuthentifiantSecurityEvaluator.kt │ │ │ │ ├── GroupOfAuthentifiant.kt │ │ │ │ ├── PasswordAnalysisContract.kt │ │ │ │ ├── PasswordAnalysisCountBadgeDrawable.kt │ │ │ │ ├── PasswordAnalysisDataProvider.kt │ │ │ │ ├── PasswordAnalysisFragment.kt │ │ │ │ ├── PasswordAnalysisItemWrapper.kt │ │ │ │ ├── PasswordAnalysisPresenter.kt │ │ │ │ └── PasswordAnalysisViewProxy.kt │ │ │ ├── session │ │ │ ├── observer │ │ │ │ ├── AnnouncementCenterObserver.kt │ │ │ │ ├── AntiPhishingObserver.kt │ │ │ │ ├── BackupTokenObserver.kt │ │ │ │ ├── BroadcastManagerObserver.kt │ │ │ │ ├── CryptographyMigrationObserver.kt │ │ │ │ ├── DeviceUpdateManagerObserver.kt │ │ │ │ ├── FcmRegistrationObserver.kt │ │ │ │ ├── LinkedAppsMigrationObserver.kt │ │ │ │ ├── OfflineExperimentObserver.kt │ │ │ │ ├── SystemUpdateObserver.kt │ │ │ │ └── UserSettingsLogObserver.kt │ │ │ └── repository │ │ │ │ ├── LockRepository.kt │ │ │ │ ├── LockRepositoryUtil.kt │ │ │ │ ├── SessionCoroutineScopeProvider.kt │ │ │ │ ├── UserAccountInfoRepository.kt │ │ │ │ └── UserLoggedIn.kt │ │ │ ├── settings │ │ │ └── biometric │ │ │ │ ├── BiometricSettingsHelper.kt │ │ │ │ └── BiometricSettingsHelperImpl.kt │ │ │ ├── storage │ │ │ └── userdata │ │ │ │ ├── EmailSuggestionProviderImpl.kt │ │ │ │ ├── RichIconsSettingProviderImpl.kt │ │ │ │ ├── accessor │ │ │ │ ├── CollectionDataQueryImpl.kt │ │ │ │ ├── CredentialDataQueryImpl.kt │ │ │ │ ├── DataChangeHistoryQueryImpl.kt │ │ │ │ ├── DataChangeHistorySaverImpl.kt │ │ │ │ ├── DataCounterImpl.kt │ │ │ │ ├── DataSaverImpl.kt │ │ │ │ ├── FrequentSearchImpl.kt │ │ │ │ ├── GeneratedPasswordQueryImpl.kt │ │ │ │ └── dagger │ │ │ │ │ └── UserDataAccessorModule.kt │ │ │ │ └── dao │ │ │ │ ├── ItemContentDB.kt │ │ │ │ └── SharingDataType.kt │ │ │ ├── sync │ │ │ └── DataIdentifierExtraDataWrapper.kt │ │ │ ├── teamspaces │ │ │ ├── db │ │ │ │ ├── SmartSpaceCategorizationDatabaseAccessor.kt │ │ │ │ ├── SmartSpaceCategorizationManager.kt │ │ │ │ ├── SmartSpaceItemChecker.kt │ │ │ │ ├── TeamspaceDbUtils.kt │ │ │ │ └── TeamspaceForceDeletionSharingWorker.kt │ │ │ └── manager │ │ │ │ ├── RevokedDetector.kt │ │ │ │ └── SpaceDeletedNotifier.kt │ │ │ ├── ui │ │ │ ├── ActivityLifecycleLoggerListener.kt │ │ │ ├── ApplicationForegroundChecker.kt │ │ │ ├── GlobalActivityLifecycleListener.kt │ │ │ ├── M2xIntentFactoryImpl.kt │ │ │ ├── ScreenshotPolicyImpl.kt │ │ │ ├── activities │ │ │ │ ├── DashlaneWrapperActivity.kt │ │ │ │ ├── HomeActivity.kt │ │ │ │ ├── SplashScreenActivity.kt │ │ │ │ ├── SplashScreenIntentFactory.kt │ │ │ │ ├── debug │ │ │ │ │ ├── AbstractDebugCategory.kt │ │ │ │ │ ├── DebugActivity.kt │ │ │ │ │ ├── DebugCategoryAccountsManager.kt │ │ │ │ │ ├── DebugCategoryCryptography.kt │ │ │ │ │ ├── DebugCategoryDevOption.kt │ │ │ │ │ ├── DebugCategorySync.kt │ │ │ │ │ ├── DebugFragment.kt │ │ │ │ │ └── RacletteDebugCategory.kt │ │ │ │ ├── firstpassword │ │ │ │ │ ├── AddFirstPassword.kt │ │ │ │ │ ├── AddFirstPasswordActivity.kt │ │ │ │ │ ├── AddFirstPasswordDataProvider.kt │ │ │ │ │ ├── AddFirstPasswordPresenter.kt │ │ │ │ │ ├── AddFirstPasswordViewProxy.kt │ │ │ │ │ ├── autofilldemo │ │ │ │ │ │ ├── AutofillDemo.kt │ │ │ │ │ │ ├── AutofillDemoActivity.kt │ │ │ │ │ │ ├── AutofillDemoDataProvider.kt │ │ │ │ │ │ ├── AutofillDemoPresenter.kt │ │ │ │ │ │ └── AutofillDemoViewProxy.kt │ │ │ │ │ ├── dagger │ │ │ │ │ │ └── FirstPasswordModule.kt │ │ │ │ │ └── faq │ │ │ │ │ │ └── FAQFirstPasswordActivity.kt │ │ │ │ ├── fragments │ │ │ │ │ ├── AbstractContentFragment.kt │ │ │ │ │ ├── PasswordGeneratorAndGeneratedPasswordFragment.java │ │ │ │ │ ├── checklist │ │ │ │ │ │ ├── ChecklistData.kt │ │ │ │ │ │ ├── ChecklistDataProvider.kt │ │ │ │ │ │ ├── ChecklistDataProviderContract.kt │ │ │ │ │ │ ├── ChecklistFragment.kt │ │ │ │ │ │ ├── ChecklistHelper.kt │ │ │ │ │ │ ├── ChecklistViewModel.kt │ │ │ │ │ │ ├── ChecklistViewModelContract.kt │ │ │ │ │ │ ├── ChecklistViewProxy.kt │ │ │ │ │ │ └── dagger │ │ │ │ │ │ │ └── ChecklistModule.kt │ │ │ │ │ ├── list │ │ │ │ │ │ ├── ItemWrapperOneColViewHolder.kt │ │ │ │ │ │ ├── ItemWrapperViewHolder.kt │ │ │ │ │ │ ├── action │ │ │ │ │ │ │ ├── ActionItemHelper.kt │ │ │ │ │ │ │ ├── CopyItemFieldListItemAction.kt │ │ │ │ │ │ │ ├── ListItemAction.kt │ │ │ │ │ │ │ └── QuickActionsItemAction.kt │ │ │ │ │ │ └── wrapper │ │ │ │ │ │ │ ├── DefaultVaultItemWrapper.kt │ │ │ │ │ │ │ ├── ItemWrapperProvider.kt │ │ │ │ │ │ │ ├── PaymentCreditCardWrapper.kt │ │ │ │ │ │ │ ├── VaultItemDoubleWrapper.kt │ │ │ │ │ │ │ └── VaultItemWrapper.kt │ │ │ │ │ └── vault │ │ │ │ │ │ ├── HiddenImpala.kt │ │ │ │ │ │ ├── ScrollToTopEvent.kt │ │ │ │ │ │ ├── Vault.kt │ │ │ │ │ │ ├── VaultDataProvider.kt │ │ │ │ │ │ ├── VaultFragment.kt │ │ │ │ │ │ ├── VaultItemViewTypeProvider.kt │ │ │ │ │ │ ├── VaultPresenter.kt │ │ │ │ │ │ ├── VaultViewModel.kt │ │ │ │ │ │ ├── VaultViewProxy.kt │ │ │ │ │ │ ├── dagger │ │ │ │ │ │ ├── VaultListModule.kt │ │ │ │ │ │ ├── VaultModule.kt │ │ │ │ │ │ └── VaultScope.kt │ │ │ │ │ │ ├── list │ │ │ │ │ │ ├── VaultList.kt │ │ │ │ │ │ ├── VaultListData.kt │ │ │ │ │ │ ├── VaultListDataProvider.kt │ │ │ │ │ │ ├── VaultListFragment.kt │ │ │ │ │ │ ├── VaultListState.kt │ │ │ │ │ │ ├── VaultListViewModel.kt │ │ │ │ │ │ └── VaultListViewProxy.kt │ │ │ │ │ │ └── provider │ │ │ │ │ │ ├── CategoryHeaderProvider.kt │ │ │ │ │ │ ├── FirstLetterHeaderProvider.kt │ │ │ │ │ │ ├── HeaderProvider.kt │ │ │ │ │ │ ├── RecentHeaderProvider.kt │ │ │ │ │ │ └── SuggestedHeaderProvider.kt │ │ │ │ └── onboarding │ │ │ │ │ ├── HomeActivityIntentCoordinator.kt │ │ │ │ │ └── InAppLoginIntroActivity.kt │ │ │ ├── adapter │ │ │ │ ├── AbstractSpinnerAdapterWithDefaultValue.java │ │ │ │ ├── CsvImportViewTypeProviderImpl.kt │ │ │ │ ├── SpinnerAdapterDefaultValue.java │ │ │ │ └── SpinnerAdapterDefaultValueString.java │ │ │ ├── adapters │ │ │ │ ├── sharing │ │ │ │ │ └── SharingContactFilteredArrayAdapter.kt │ │ │ │ └── viewedit │ │ │ │ │ ├── ColorSelectionAdapter.kt │ │ │ │ │ ├── CreditCardColorArrayAdapter.kt │ │ │ │ │ ├── SecureNoteCategoryArrayAdapter.java │ │ │ │ │ └── SecureNoteColorArrayAdapter.kt │ │ │ ├── credential │ │ │ │ └── passwordgenerator │ │ │ │ │ ├── PasswordGeneratorDialog.kt │ │ │ │ │ ├── PasswordGeneratorLogger.kt │ │ │ │ │ └── StrengthLevelUpdater.kt │ │ │ ├── dialogs │ │ │ │ ├── fragment │ │ │ │ │ ├── SpaceRevokedDialog.kt │ │ │ │ │ ├── TeamRevokedDialogDisplayer.kt │ │ │ │ │ ├── WaiterDialogFragment.kt │ │ │ │ │ ├── braze │ │ │ │ │ │ └── BrazePopupDialogFragment.kt │ │ │ │ │ └── sharing │ │ │ │ │ │ ├── confirmation │ │ │ │ │ │ ├── SharingConfirmationDeclineGroupInvite.kt │ │ │ │ │ │ ├── SharingConfirmationDialogCancelInvite.kt │ │ │ │ │ │ ├── SharingConfirmationDialogDeclineUserGroupInvite.kt │ │ │ │ │ │ └── SharingConfirmationDialogRevoke.kt │ │ │ │ │ │ └── contextual │ │ │ │ │ │ ├── MenuUtil.kt │ │ │ │ │ │ ├── PopupMenuManageUserAccepted.kt │ │ │ │ │ │ └── PopupMenuManageUserPending.kt │ │ │ │ └── fragments │ │ │ │ │ ├── AbstractDialogFragment.kt │ │ │ │ │ └── NotificationDialogFragment.kt │ │ │ ├── drawable │ │ │ │ ├── CircleFirstLetterDrawable.java │ │ │ │ └── ContactDrawable.java │ │ │ ├── fab │ │ │ │ ├── FabDef.kt │ │ │ │ ├── FabPresenter.kt │ │ │ │ ├── FabViewProxy.kt │ │ │ │ ├── FabViewUtil.kt │ │ │ │ ├── VaultFabMenuItemNavigator.kt │ │ │ │ └── VaultFabViewProxy.kt │ │ │ ├── fragments │ │ │ │ ├── BaseUiFragment.java │ │ │ │ ├── BottomSheetListDialogFragment.kt │ │ │ │ ├── PasswordGenerationCallback.kt │ │ │ │ ├── PasswordGeneratorFragment.kt │ │ │ │ └── StrengthBarAnimation.kt │ │ │ ├── menu │ │ │ │ ├── MenuScreen.kt │ │ │ │ ├── MenuState.kt │ │ │ │ ├── MenuViewModel.kt │ │ │ │ ├── domain │ │ │ │ │ ├── BuildMenuNavigationUseCase.kt │ │ │ │ │ ├── MenuConfigurationProvider.kt │ │ │ │ │ ├── MenuItemModel.kt │ │ │ │ │ └── TeamspaceIcon.kt │ │ │ │ └── view │ │ │ │ │ ├── footer │ │ │ │ │ └── MenuLockFooterItem.kt │ │ │ │ │ ├── header │ │ │ │ │ └── MenuHeaderItem.kt │ │ │ │ │ ├── item │ │ │ │ │ └── MenuItem.kt │ │ │ │ │ ├── separator │ │ │ │ │ ├── MenuSectionHeaderItem.kt │ │ │ │ │ └── MenuSeparatorItem.kt │ │ │ │ │ └── teamspace │ │ │ │ │ ├── MenuTeamspaceIcon.kt │ │ │ │ │ └── MenuTeamspaceItem.kt │ │ │ ├── premium │ │ │ │ └── inappbilling │ │ │ │ │ ├── BillingVerification.kt │ │ │ │ │ ├── InAppBillingDebugPreferenceImpl.kt │ │ │ │ │ └── RefreshPremiumAfterPurchase.kt │ │ │ ├── quickactions │ │ │ │ ├── QuickActionsBottomSheetFragment.kt │ │ │ │ ├── QuickActionsContract.kt │ │ │ │ ├── QuickActionsDataProvider.kt │ │ │ │ ├── QuickActionsLogger.kt │ │ │ │ ├── QuickActionsPresenter.kt │ │ │ │ └── QuickActionsViewProxy.kt │ │ │ ├── screens │ │ │ │ ├── activities │ │ │ │ │ ├── GeneratedPasswordHistoryActivity.kt │ │ │ │ │ └── onboarding │ │ │ │ │ │ └── hardwareauth │ │ │ │ │ │ ├── HardwareAuthActivationActivity.kt │ │ │ │ │ │ └── OnboardingHardwareAuthActivity.kt │ │ │ │ ├── fragments │ │ │ │ │ ├── SharingPolicyDataProviderImpl.kt │ │ │ │ │ ├── account │ │ │ │ │ │ ├── AccountStatusFragment.kt │ │ │ │ │ │ ├── AccountStatusViewModel.kt │ │ │ │ │ │ ├── AccountStatusViewState.kt │ │ │ │ │ │ ├── ChangeContactEmailFragment.kt │ │ │ │ │ │ ├── ChangeContactEmailState.kt │ │ │ │ │ │ └── ChangeContactEmailViewModel.kt │ │ │ │ │ ├── search │ │ │ │ │ │ ├── SearchFragment.kt │ │ │ │ │ │ ├── SearchLogger.kt │ │ │ │ │ │ ├── SearchResult.kt │ │ │ │ │ │ ├── SearchService.kt │ │ │ │ │ │ ├── SearchViewModel.kt │ │ │ │ │ │ ├── dagger │ │ │ │ │ │ │ └── SearchModule.kt │ │ │ │ │ │ └── ui │ │ │ │ │ │ │ ├── SearchItemWrapper.kt │ │ │ │ │ │ │ └── SearchListViewHelper.kt │ │ │ │ │ ├── sharing │ │ │ │ │ │ └── dialog │ │ │ │ │ │ │ ├── SharingPermissionInfoDialogFragment.java │ │ │ │ │ │ │ └── SharingPermissionSelectionDialogFragment.kt │ │ │ │ │ └── userdata │ │ │ │ │ │ ├── CredentialAddStep1Fragment.kt │ │ │ │ │ │ ├── CredentialViewPasswordSafety.kt │ │ │ │ │ │ ├── DomainItem.kt │ │ │ │ │ │ └── sharing │ │ │ │ │ │ ├── SharingBaseViewProxy.kt │ │ │ │ │ │ ├── SharingContactItem.kt │ │ │ │ │ │ ├── SharingModelUtils.kt │ │ │ │ │ │ ├── SharingModels.kt │ │ │ │ │ │ ├── SharingRequestDialogUtils.kt │ │ │ │ │ │ ├── SharingRevokeAllMembers.kt │ │ │ │ │ │ ├── SharingRevokeMe.kt │ │ │ │ │ │ ├── center │ │ │ │ │ │ ├── SharingCenterFragment.kt │ │ │ │ │ │ ├── SharingCenterUserGroupItem.kt │ │ │ │ │ │ ├── SharingCenterUserItem.kt │ │ │ │ │ │ ├── SharingCenterViewModel.kt │ │ │ │ │ │ ├── SharingCenterViewModelContract.kt │ │ │ │ │ │ ├── SharingCenterViewProxy.kt │ │ │ │ │ │ ├── SharingContact.kt │ │ │ │ │ │ ├── SharingContactCreator.kt │ │ │ │ │ │ ├── SharingDataProvider.kt │ │ │ │ │ │ ├── SharingDataProviderImpl.kt │ │ │ │ │ │ ├── SharingDataUpdateProvider.kt │ │ │ │ │ │ ├── SharingInvitationCollection.kt │ │ │ │ │ │ ├── SharingInvitationItem.kt │ │ │ │ │ │ └── SharingInvitationUserGroup.kt │ │ │ │ │ │ ├── group │ │ │ │ │ │ ├── SharedVaultItemWrapper.kt │ │ │ │ │ │ ├── UserGroupDataProvider.kt │ │ │ │ │ │ ├── UserGroupItemsFragment.kt │ │ │ │ │ │ ├── UserGroupItemsViewModel.kt │ │ │ │ │ │ ├── UserGroupItemsViewModelContract.kt │ │ │ │ │ │ ├── UserGroupItemsViewProxy.kt │ │ │ │ │ │ ├── UserGroupMemberItem.kt │ │ │ │ │ │ ├── UserGroupMembersFragment.kt │ │ │ │ │ │ ├── UserGroupMembersViewModel.kt │ │ │ │ │ │ ├── UserGroupMembersViewModelContract.kt │ │ │ │ │ │ ├── UserGroupMembersViewProxy.kt │ │ │ │ │ │ └── UserGroupTabFragment.kt │ │ │ │ │ │ ├── items │ │ │ │ │ │ ├── SharingItemsDataProvider.kt │ │ │ │ │ │ ├── SharingItemsForUserFragment.kt │ │ │ │ │ │ ├── SharingItemsForUserViewModel.kt │ │ │ │ │ │ ├── SharingItemsForUserViewModelContract.kt │ │ │ │ │ │ └── SharingItemsForUserViewProxy.kt │ │ │ │ │ │ ├── itemselection │ │ │ │ │ │ ├── ItemWrapperSelectable.kt │ │ │ │ │ │ ├── NewShareItemViewModel.kt │ │ │ │ │ │ ├── NewShareItemViewModelContract.kt │ │ │ │ │ │ ├── SharingItemSelectionTabFragment.kt │ │ │ │ │ │ ├── SharingItemSelectionTabViewProxy.kt │ │ │ │ │ │ ├── SharingNewShareItemFragment.kt │ │ │ │ │ │ └── SharingNewShareItemViewProxy.kt │ │ │ │ │ │ └── users │ │ │ │ │ │ ├── SharedContactUser.kt │ │ │ │ │ │ ├── SharedContactUserGroup.kt │ │ │ │ │ │ ├── SharingUserForItemsFragment.kt │ │ │ │ │ │ ├── SharingUserForItemsViewModel.kt │ │ │ │ │ │ ├── SharingUsersDataProvider.kt │ │ │ │ │ │ ├── SharingUsersForItemViewModelContract.kt │ │ │ │ │ │ └── SharingUsersForItemViewProxy.kt │ │ │ │ ├── settings │ │ │ │ │ ├── DeviceFragmentUtils.kt │ │ │ │ │ ├── DevicesFragment.kt │ │ │ │ │ ├── LicensesActivity.kt │ │ │ │ │ ├── SearchableSettingInRecyclerView.kt │ │ │ │ │ ├── SettingInRecyclerView.kt │ │ │ │ │ ├── SettingPrivacySetting.kt │ │ │ │ │ ├── SettingSocialMediaLinkInRecyclerView.kt │ │ │ │ │ ├── SettingsFragment.kt │ │ │ │ │ ├── SettingsHeaderInRecyclerView.kt │ │ │ │ │ ├── SettingsViewModel.kt │ │ │ │ │ ├── SettingsViewModelContract.kt │ │ │ │ │ ├── SettingsViewProxy.kt │ │ │ │ │ ├── SingleChoiceDialog.kt │ │ │ │ │ ├── Use2faSettingState.kt │ │ │ │ │ ├── Use2faSettingStateHolder.kt │ │ │ │ │ ├── UserSettingsLogRepository.kt │ │ │ │ │ ├── WindowConfigurationImpl.kt │ │ │ │ │ ├── item │ │ │ │ │ │ ├── SearchableSettingItemImpl.kt │ │ │ │ │ │ ├── SensibleSettingsClickHelper.kt │ │ │ │ │ │ ├── SettingChange.kt │ │ │ │ │ │ ├── SettingCheckable.kt │ │ │ │ │ │ ├── SettingHeader.kt │ │ │ │ │ │ ├── SettingItem.kt │ │ │ │ │ │ ├── SettingLoadable.kt │ │ │ │ │ │ ├── SettingScreenItem.kt │ │ │ │ │ │ └── SettingSocialMediaLinks.kt │ │ │ │ │ └── list │ │ │ │ │ │ ├── RootSettingsList.kt │ │ │ │ │ │ ├── general │ │ │ │ │ │ ├── RootSettingsGeneralList.kt │ │ │ │ │ │ ├── SettingsGeneralAutoLoginList.kt │ │ │ │ │ │ ├── SettingsGeneralBackupList.kt │ │ │ │ │ │ └── SettingsGeneralNotificationsList.kt │ │ │ │ │ │ ├── help │ │ │ │ │ │ └── RootSettingsHelpList.kt │ │ │ │ │ │ └── security │ │ │ │ │ │ ├── RootSettingsSecurityList.kt │ │ │ │ │ │ ├── SettingsSecurityApplicationLockList.kt │ │ │ │ │ │ └── SettingsSecurityMiscList.kt │ │ │ │ └── sharing │ │ │ │ │ ├── NewSharePeopleDataProvider.kt │ │ │ │ │ ├── NewSharePeopleViewModel.kt │ │ │ │ │ ├── NewSharePeopleViewModelContract.kt │ │ │ │ │ ├── NewSharePeopleViewProxy.kt │ │ │ │ │ └── SharingNewSharePeopleFragment.kt │ │ │ ├── util │ │ │ │ ├── DataLoaderForUi.kt │ │ │ │ ├── DrawerLayoutUtils.kt │ │ │ │ ├── FinishingActivity.kt │ │ │ │ ├── PasswordGeneratorAndStrength.kt │ │ │ │ ├── PasswordGeneratorCreator.kt │ │ │ │ ├── PasswordGeneratorWrapperImpl.kt │ │ │ │ └── RemoteAvatarDownloader.java │ │ │ └── widgets │ │ │ │ ├── BubbleLinearLayout.kt │ │ │ │ ├── NotificatorImpl.kt │ │ │ │ ├── TooltipPointShape.kt │ │ │ │ ├── lists │ │ │ │ └── BottomSheetListView.kt │ │ │ │ └── view │ │ │ │ ├── CheckableLinearLayout.java │ │ │ │ ├── ImportMethodItem.kt │ │ │ │ ├── MainDrawerToggle.kt │ │ │ │ ├── RecyclerViewFloatingActionButton.java │ │ │ │ ├── SharingContactAutocompleteTextView.kt │ │ │ │ ├── chips │ │ │ │ └── SharingContactChipsView.java │ │ │ │ └── empty │ │ │ │ ├── IDsEmptyScreen.java │ │ │ │ ├── PasswordsEmptyScreen.kt │ │ │ │ ├── PaymentsEmptyScreen.java │ │ │ │ ├── PersonalInfoEmptyScreen.java │ │ │ │ ├── SecureNotesEmptyScreen.java │ │ │ │ ├── SharingCenterEmptyScreen.java │ │ │ │ ├── SharingItemSelectionEmptyScreen.kt │ │ │ │ ├── UserGroupItemListEmptyScreen.java │ │ │ │ ├── UserGroupMemberListEmptyScreen.java │ │ │ │ └── VaultAllItemsEmptyScreen.java │ │ │ ├── update │ │ │ ├── AppUpdateInstaller.kt │ │ │ ├── AppUpdateNeededActivityListener.kt │ │ │ └── AppUpdateNeededEvent.kt │ │ │ ├── urldomain │ │ │ └── CleanupLegacyUrlDomainIconDatabase.kt │ │ │ ├── util │ │ │ ├── AppShortcutsUtil.kt │ │ │ ├── CheckedDelegate.kt │ │ │ ├── CursorUtils.kt │ │ │ ├── DashlaneGlideModule.java │ │ │ ├── DeviceListManager.kt │ │ │ ├── GravatarFetcher.java │ │ │ ├── IntentFactory.kt │ │ │ ├── NetworkStateProvider.kt │ │ │ ├── ResourcesUtils.kt │ │ │ ├── TextUtil.java │ │ │ ├── UiConstants.java │ │ │ ├── ViewTypeUtils.kt │ │ │ ├── ViewUtils.kt │ │ │ ├── clipboard │ │ │ │ └── VaultItemCopyModule.kt │ │ │ ├── log │ │ │ │ ├── AttributionsLogData.kt │ │ │ │ ├── FirstLaunchDetector.kt │ │ │ │ ├── LaunchLogger.kt │ │ │ │ └── UserSupportFileLoggerApplicationCreated.kt │ │ │ └── strictmode │ │ │ │ └── StrictModeUtil.kt │ │ │ ├── vault │ │ │ ├── CollectionsReportProvider.kt │ │ │ ├── VaultItemLogClickListener.kt │ │ │ ├── VaultItemLogCopyListener.kt │ │ │ ├── VaultReportLogger.kt │ │ │ └── util │ │ │ │ ├── DataIdentifierUtils.kt │ │ │ │ ├── PaymentPaypalUtils.kt │ │ │ │ ├── SecureNoteCategoryUtils.kt │ │ │ │ ├── SecurityBreachUtil.kt │ │ │ │ └── VaultItemComparatorUtil.kt │ │ │ └── vpn │ │ │ └── thirdparty │ │ │ └── VpnThirdPartyFragment.kt │ └── res │ │ ├── anim │ │ ├── fade_slide_in_bottom.xml │ │ ├── fade_slide_out_top.xml │ │ ├── fadein_activity.xml │ │ ├── fadeout_activity.xml │ │ ├── grow_from_bottom.xml │ │ └── shrink_from_top.xml │ │ ├── color-night │ │ └── item_highlighted_background_tint.xml │ │ ├── color │ │ ├── edittext_input_provider_item_text_color.xml │ │ └── item_highlighted_background_tint.xml │ │ ├── drawable-hdpi │ │ └── sharing_contact_bubble.9.png │ │ ├── drawable-mdpi │ │ └── sharing_contact_bubble.9.png │ │ ├── drawable-xhdpi │ │ └── sharing_contact_bubble.9.png │ │ ├── drawable-xxhdpi │ │ └── sharing_contact_bubble.9.png │ │ ├── drawable │ │ ├── action_bar_menu_alert.xml │ │ ├── action_bar_menu_alert_with_dot.xml │ │ ├── action_bar_menu_attach_file.xml │ │ ├── action_bar_menu_delete.xml │ │ ├── autologin_intro_icon.xml │ │ ├── background_circle_error.xml │ │ ├── background_device_item.xml │ │ ├── background_device_item_selected.xml │ │ ├── background_dwm_alert_solved.xml │ │ ├── background_dwm_selected.xml │ │ ├── background_linked_app_empty_state.xml │ │ ├── bg_card.xml │ │ ├── bg_card_bottom_margin_8dp.xml │ │ ├── bottom_sheet_round_corner.xml │ │ ├── category.xml │ │ ├── close_cross.xml │ │ ├── color.xml │ │ ├── dark_web_email_monitored_indicator.xml │ │ ├── edit.xml │ │ ├── fab_menu_item_text_background.xml │ │ ├── fab_plus_icon_selector.xml │ │ ├── hidden_impala.xml │ │ ├── ic_action_bar_menu_locked.xml │ │ ├── ic_action_bar_menu_unlocked.xml │ │ ├── ic_action_item_account_recovery.xml │ │ ├── ic_action_item_auto_fill.xml │ │ ├── ic_action_item_dm_alert.xml │ │ ├── ic_action_item_fingerprint.xml │ │ ├── ic_action_item_pin.xml │ │ ├── ic_action_item_premium_related.xml │ │ ├── ic_action_item_security_alert.xml │ │ ├── ic_action_item_sharing_invitation.xml │ │ ├── ic_action_item_zero_password.xml │ │ ├── ic_action_open.xml │ │ ├── ic_add.xml │ │ ├── ic_arrow_up_outlined.xml │ │ ├── ic_attachment_selected.xml │ │ ├── ic_backward_outlined.xml │ │ ├── ic_biometric.xml │ │ ├── ic_biometric_recovery_intro.xml │ │ ├── ic_biometrics.xml │ │ ├── ic_breach_risk_outlined.xml │ │ ├── ic_check_outlined.xml │ │ ├── ic_chevron_right.xml │ │ ├── ic_darkweb_expert.xml │ │ ├── ic_discover_darkweb.xml │ │ ├── ic_dwm_item_selected.xml │ │ ├── ic_empty_breaches.xml │ │ ├── ic_empty_breaches_email_pending.xml │ │ ├── ic_empty_breaches_resolved.xml │ │ ├── ic_empty_password_analysis.xml │ │ ├── ic_empty_password_analysis_ignored.xml │ │ ├── ic_empty_personalinfo.xml │ │ ├── ic_empty_vault_allitems.xml │ │ ├── ic_faq_add_first_password_cancel.xml │ │ ├── ic_forward_outlined.xml │ │ ├── ic_import_methods_competitor.xml │ │ ├── ic_import_methods_csv.xml │ │ ├── ic_import_methods_dashlane_secure_archive.xml │ │ ├── ic_import_methods_m2d.xml │ │ ├── ic_item_action_copy.xml │ │ ├── ic_menu_dashlane.xml │ │ ├── ic_migration_to_sso_member_intro.xml │ │ ├── ic_mobile.xml │ │ ├── ic_onboarding_application_lock.xml │ │ ├── ic_purchase_check_error.xml │ │ ├── ic_purchase_check_success.xml │ │ ├── ic_sharing_user_group.xml │ │ ├── ic_sync_multi_device.xml │ │ ├── ic_trash.xml │ │ ├── menu_item_lock_unlock.xml │ │ ├── nfc_creditcard_scan_logo.xml │ │ ├── progress_circular.xml │ │ ├── save.xml │ │ └── sharing_send.xml │ │ ├── layout-land │ │ └── include_dialog_image_text.xml │ │ ├── layout │ │ ├── activity_add_first_password.xml │ │ ├── activity_attachment_list.xml │ │ ├── activity_autofill_demo.xml │ │ ├── activity_change_master_password.xml │ │ ├── activity_dashlane_wrapper.xml │ │ ├── activity_debug_settings.xml │ │ ├── activity_device_limit_unlink_devices.xml │ │ ├── activity_faq_add_first_password.xml │ │ ├── activity_generated_password_history.xml │ │ ├── activity_home_activity_layout.xml │ │ ├── activity_item_edit_view.xml │ │ ├── activity_licenses.xml │ │ ├── activity_linked_websites.xml │ │ ├── activity_login_create_account.xml │ │ ├── activity_migration_to_sso_member.xml │ │ ├── activity_onboarding_in_app_login.xml │ │ ├── activity_purchase_checking.xml │ │ ├── activity_sso_login.xml │ │ ├── activity_tips_master_password.xml │ │ ├── activity_warning.xml │ │ ├── attachment_list_item.xml │ │ ├── autocomplete_textview_websites_adapter.xml │ │ ├── bottom_sheet_autofill_demo_prompt.xml │ │ ├── bottom_sheet_dialog.xml │ │ ├── bottom_sheet_list_dialog_fragment.xml │ │ ├── bottom_sheet_quick_actions.xml │ │ ├── bottom_sheet_tos_account_creation.xml │ │ ├── chips_text_sharing_contact.xml │ │ ├── chips_text_sharing_contact_layout.xml │ │ ├── dark_web_emails_expandable_card.xml │ │ ├── dialog_biometric_recovery_intro.xml │ │ ├── dialog_export_business_data_restriction.xml │ │ ├── dialog_security_breach_alert.xml │ │ ├── edittext_input_provider_item.xml │ │ ├── expandable_import_methods.xml │ │ ├── fab_menu_list_ids.xml │ │ ├── fab_menu_list_payments.xml │ │ ├── fab_menu_list_personal_info.xml │ │ ├── fab_menu_list_recent_item.xml │ │ ├── fragment_actionitem_center.xml │ │ ├── fragment_breach_alert_detail.xml │ │ ├── fragment_checklist.xml │ │ ├── fragment_create_credential_step1.xml │ │ ├── fragment_darkweb_monitoring.xml │ │ ├── fragment_dashboard_identity.xml │ │ ├── fragment_dashboard_password_analysis.xml │ │ ├── fragment_data_list.xml │ │ ├── fragment_devices_list.xml │ │ ├── fragment_dialog_password_generator.xml │ │ ├── fragment_dialog_sharing_permissions_info.xml │ │ ├── fragment_linked_services.xml │ │ ├── fragment_notification_center_details.xml │ │ ├── fragment_password_generator.xml │ │ ├── fragment_purchase_checking_loading.xml │ │ ├── fragment_purchase_checking_result.xml │ │ ├── fragment_search.xml │ │ ├── fragment_sharing_message.xml │ │ ├── fragment_tablayout_viewpager2.xml │ │ ├── fragment_tablayout_viewpager2_with_fab.xml │ │ ├── fragment_vault.xml │ │ ├── fragment_vault_list.xml │ │ ├── generated_password_listitem.xml │ │ ├── header_dark_web_monitored_emails.xml │ │ ├── header_import_methods.xml │ │ ├── hidden_impala.xml │ │ ├── include_change_master_password_progress.xml │ │ ├── include_create_account_choose_password.xml │ │ ├── include_create_account_confirm_password.xml │ │ ├── include_create_account_email.xml │ │ ├── include_create_account_settings.xml │ │ ├── include_dialog_image_text.xml │ │ ├── include_fab_menu_item.xml │ │ ├── include_fragment_password_generator_header.xml │ │ ├── include_import_method_item.xml │ │ ├── include_login_sync_progress.xml │ │ ├── include_password_analysis_score.xml │ │ ├── include_password_creation_tips.xml │ │ ├── include_password_zxcvbn_tips.xml │ │ ├── item_action_bottom_sheet_dialog.xml │ │ ├── item_actionitem.xml │ │ ├── item_actionitem_header.xml │ │ ├── item_dark_web_breach.xml │ │ ├── item_dark_web_email.xml │ │ ├── item_dark_web_email_placeholder.xml │ │ ├── item_dark_web_email_recycler.xml │ │ ├── item_dark_web_inactive.xml │ │ ├── item_dark_web_loading.xml │ │ ├── item_dark_web_recycler.xml │ │ ├── item_device.xml │ │ ├── item_empty_actionitem.xml │ │ ├── item_getstarted.xml │ │ ├── item_id_password_health.xml │ │ ├── item_id_password_health_count.xml │ │ ├── item_id_protection_package_active.xml │ │ ├── item_id_separator.xml │ │ ├── item_license.xml │ │ ├── item_linked_apps.xml │ │ ├── item_linked_services_header.xml │ │ ├── item_linked_websites.xml │ │ ├── item_linked_websites_add_button.xml │ │ ├── item_searcheable_setting.xml │ │ ├── item_settings_header.xml │ │ ├── linked_app_fragment.xml │ │ ├── list_item_color.xml │ │ ├── list_item_content_sharing_by_user.xml │ │ ├── list_item_content_sharing_by_user_tablet.xml │ │ ├── list_item_secure_note_category.xml │ │ ├── list_item_setting_checkbox.xml │ │ ├── list_item_sharing_contact_chips.xml │ │ ├── list_social_media_footer.xml │ │ ├── popup_token_view.xml │ │ ├── progress_dialog.xml │ │ ├── sharing_pending_invitation_layout.xml │ │ ├── sharing_pending_invitation_layout_tablet.xml │ │ ├── simple_frame_layout.xml │ │ ├── simple_list_item_single_choice.xml │ │ ├── subview_with_action.xml │ │ └── window_lottie_confetti.xml │ │ ├── menu │ │ ├── collection_detail_menu.xml │ │ ├── collection_list_menu.xml │ │ ├── delete_menu.xml │ │ ├── fragment_vault_menu.xml │ │ ├── help_menu.xml │ │ ├── main_menu.xml │ │ ├── save_menu.xml │ │ ├── sharing_action_admin_menu.xml │ │ ├── sharing_action_user_pending_menu.xml │ │ └── sharing_share_item_send.xml │ │ ├── navigation │ │ ├── drawer_navigation.xml │ │ └── purchase_checking_navigation.xml │ │ ├── raw │ │ ├── keep_instant_app.xml │ │ ├── lottie_checklist_completion_confetti.json │ │ ├── lottie_identity_dashboard_score_indeterminate.json │ │ ├── lottie_identity_dashboard_score_progress.json │ │ └── lottie_trial_upgrade_recommendation.json │ │ ├── values-h520dp │ │ └── values_activity_warning.xml │ │ ├── values-sw600dp-land │ │ └── add_credential_new_account_v2_dimen.xml │ │ ├── values-sw600dp │ │ ├── add_credential_new_account_v2_dimen.xml │ │ ├── dimens_fab_menu.xml │ │ ├── dimens_floating_button.xml │ │ └── dimens_fragment_devices_grid.xml │ │ ├── values-sw720dp-land │ │ └── add_credential_new_account_v2_dimen.xml │ │ ├── values-sw720dp │ │ ├── add_credential_new_account_v2_dimen.xml │ │ └── resources_forwarding_sharing_center_lists.xml │ │ ├── values-w480dp │ │ └── resources_forwarding_sharing_center_lists.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ ├── values │ │ ├── add_credential_new_account_v2_dimen.xml │ │ ├── arc_buttons.xml │ │ ├── attrs.xml │ │ ├── attrs_import_method_item.xml │ │ ├── attrs_logo_behavior.xml │ │ ├── badges.xml │ │ ├── bools.xml │ │ ├── createscreen_keys.xml │ │ ├── dimens.xml │ │ ├── dimens_botton_sheet_action.xml │ │ ├── dimens_floating_button.xml │ │ ├── dimens_fragment_devices_grid.xml │ │ ├── dimens_fragment_settings.xml │ │ ├── dimens_import_core.xml │ │ ├── dimens_sharing_center_lists.xml │ │ ├── floating_label_ids.xml │ │ ├── home_colors.xml │ │ ├── home_dimens.xml │ │ ├── ids.xml │ │ ├── ids_import_browser.xml │ │ ├── ids_item_subview.xml │ │ ├── integers.xml │ │ ├── keyboard_res.xml │ │ ├── notification.xml │ │ ├── onboarding_style.xml │ │ ├── password_generator_settings.xml │ │ ├── plurals.xml │ │ ├── resources_forwarding_sharing_center_lists.xml │ │ ├── save_credentials.xml │ │ ├── secrets.xml │ │ ├── settings_arrays.xml │ │ ├── settings_keys.xml │ │ ├── sharing_colors.xml │ │ ├── sharing_ids.xml │ │ ├── string_autofill_onboarding.xml │ │ ├── string_invalidated_biometric_prompt.xml │ │ ├── strings.xml │ │ ├── strings_account_recovery.xml │ │ ├── strings_account_status.xml │ │ ├── strings_actionitem_center.xml │ │ ├── strings_add_first_password.xml │ │ ├── strings_app_update.xml │ │ ├── strings_autologin_intro.xml │ │ ├── strings_biometric_intro.xml │ │ ├── strings_biometrics.xml │ │ ├── strings_collection.xml │ │ ├── strings_collection_limiter.xml │ │ ├── strings_create_account.xml │ │ ├── strings_darkweb_breaches.xml │ │ ├── strings_dashlane_labs.xml │ │ ├── strings_end_of_life.xml │ │ ├── strings_faq_add_first_password.xml │ │ ├── strings_getstarted.xml │ │ ├── strings_hidden_impala.xml │ │ ├── strings_keyboard.xml │ │ ├── strings_license.xml │ │ ├── strings_linked_services.xml │ │ ├── strings_login.xml │ │ ├── strings_login_passwordless.xml │ │ ├── strings_logout.xml │ │ ├── strings_menu_v3.xml │ │ ├── strings_nfc.xml │ │ ├── strings_notification.xml │ │ ├── strings_onboarding_application_lock.xml │ │ ├── strings_password_generator.xml │ │ ├── strings_password_history.xml │ │ ├── strings_password_safety.xml │ │ ├── strings_pin_lock.xml │ │ ├── strings_search.xml │ │ ├── strings_securefile.xml │ │ ├── strings_security_dashboard.xml │ │ ├── strings_settings.xml │ │ ├── strings_settings_tos.xml │ │ ├── strings_smartling.xml │ │ ├── strings_sso.xml │ │ ├── strings_surveys.xml │ │ ├── strings_trial_awareness_dialog.xml │ │ ├── strings_vault.xml │ │ ├── strings_vault_announcement.xml │ │ ├── tag_keys.xml │ │ ├── themes_login.xml │ │ ├── themes_splash_screen.xml │ │ ├── values_activity_warning.xml │ │ └── websites_suggestion.xml │ │ └── xml │ │ ├── authenticator.xml │ │ ├── file_provider_paths.xml │ │ └── locales_config.xml │ └── release │ └── generated │ └── baselineProfiles │ ├── baseline-prof.txt │ └── startup-prof.txt ├── baselineprofile ├── .gitignore ├── README.md └── src │ └── main │ ├── AndroidManifest.xml │ └── java │ └── com │ └── dashlane │ └── baselineprofile │ ├── BaselineProfileGenerator.kt │ ├── BaselineTestHelper.kt │ └── StartupBenchmarks.kt └── modules ├── common ├── base-ui │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── help │ │ │ ├── HelpCenterCoordinator.kt │ │ │ └── HelpCenterLink.kt │ │ │ ├── login │ │ │ └── CodeInputViewHelper.kt │ │ │ ├── ui │ │ │ ├── BottomSheetUtils.kt │ │ │ ├── ExpandedBottomSheetDialogFragment.kt │ │ │ ├── M2xIntentFactory.kt │ │ │ ├── PostAccountCreationCoordinator.kt │ │ │ ├── SwipeRefreshLayoutUtils.kt │ │ │ ├── VaultItemImageHelper.kt │ │ │ ├── action │ │ │ │ └── Action.kt │ │ │ ├── activities │ │ │ │ ├── MenuContainer.kt │ │ │ │ └── intro │ │ │ │ │ ├── IntroButtonBarLayout.kt │ │ │ │ │ ├── IntroScreen.kt │ │ │ │ │ ├── IntroScreenContract.kt │ │ │ │ │ ├── IntroScreenUtil.kt │ │ │ │ │ └── IntroScreenViewProxy.kt │ │ │ ├── adapter │ │ │ │ ├── DashlaneRecyclerAdapter.java │ │ │ │ ├── HeaderItem.java │ │ │ │ ├── ItemListContext.kt │ │ │ │ ├── ItemListContextProvider.kt │ │ │ │ ├── ItemListContextUtil.kt │ │ │ │ └── util │ │ │ │ │ ├── AdapterViewTypeProviderDiffCallback.java │ │ │ │ │ ├── DashlaneRecyclerAdapterUtils.kt │ │ │ │ │ ├── DiffUtilComparator.kt │ │ │ │ │ └── SectionUtil.kt │ │ │ ├── drawable │ │ │ │ ├── BadgeDrawerArrowDrawable.java │ │ │ │ ├── CircleDrawable.kt │ │ │ │ ├── CountDownDrawable.java │ │ │ │ └── PlaceholderForTextDrawableFactory.kt │ │ │ ├── model │ │ │ │ ├── TextResource.kt │ │ │ │ └── TextResourceUtil.kt │ │ │ ├── util │ │ │ │ └── DialogHelper.kt │ │ │ └── widgets │ │ │ │ ├── compose │ │ │ │ ├── DashlaneLoading.kt │ │ │ │ ├── DashlaneSyncProgress.kt │ │ │ │ ├── GenericInfoContent.kt │ │ │ │ ├── OutlinedTeamspaceIcon.kt │ │ │ │ ├── PassphraseLayout.kt │ │ │ │ └── SettingField.kt │ │ │ │ └── view │ │ │ │ ├── CategoryChip.kt │ │ │ │ ├── ChecklistGroup.kt │ │ │ │ ├── ExpandableCardView.kt │ │ │ │ ├── GetStartedStepView.kt │ │ │ │ ├── HtmlTextView.kt │ │ │ │ ├── Infobox.kt │ │ │ │ ├── MultiColumnRecyclerView.java │ │ │ │ ├── ProgressBarUtils.kt │ │ │ │ ├── StepInfoBox.kt │ │ │ │ └── empty │ │ │ │ ├── EmptyScreenConfiguration.java │ │ │ │ └── EmptyScreenViewProvider.java │ │ │ └── util │ │ │ ├── AccessibilityUtils.kt │ │ │ ├── ColorUtils.kt │ │ │ ├── ConstraintLayoutUtils.kt │ │ │ ├── CustomTabsUtil.kt │ │ │ ├── DrawableUtils.kt │ │ │ ├── ProgressBarUtil.kt │ │ │ ├── SnackbarUtils.kt │ │ │ ├── TextColorTransition.kt │ │ │ ├── TextInputAutoCompleteTextView.kt │ │ │ ├── TextInputLayoutUtils.kt │ │ │ ├── Toaster.kt │ │ │ ├── ToasterImpl.kt │ │ │ ├── ViewProxyUtils.kt │ │ │ ├── animation │ │ │ ├── FadeInOutUtil.kt │ │ │ └── ShakeAnimation.kt │ │ │ ├── colorpassword │ │ │ ├── CharacterColor.kt │ │ │ └── ColorTextWatcher.kt │ │ │ ├── compose │ │ │ ├── BackPressedDispatcherBridge.kt │ │ │ ├── GenericSeparatorVisualTransformation.kt │ │ │ ├── Navigation.kt │ │ │ └── PasswordFieldActions.kt │ │ │ ├── font │ │ │ └── WalsheimProBold.kt │ │ │ ├── graphics │ │ │ ├── BackgroundColorDrawable.kt │ │ │ ├── TextDrawable.java │ │ │ ├── TextFitDrawable.kt │ │ │ └── ViewAnimatorPager.kt │ │ │ └── notification │ │ │ ├── DashlaneNotificationBuilder.kt │ │ │ ├── NotificationDsl.kt │ │ │ ├── NotificationHelper.kt │ │ │ └── NotificationUtils.kt │ │ └── res │ │ ├── anim │ │ ├── fade_slide_in_left.xml │ │ ├── fade_slide_in_right.xml │ │ ├── fade_slide_out_left.xml │ │ ├── fade_slide_out_right.xml │ │ ├── fadeout_fragment.xml │ │ ├── no_animation.xml │ │ ├── slide_in_bottom.xml │ │ ├── slide_out_bottom.xml │ │ ├── slide_to_left.xml │ │ └── slide_to_right.xml │ │ ├── color │ │ ├── button_secondary_background_tint.xml │ │ ├── button_secondary_ripple_color.xml │ │ ├── button_secondary_text_color.xml │ │ ├── on_background_alpha_12.xml │ │ ├── on_surface_alpha_12.xml │ │ ├── primary_disabled.xml │ │ ├── secondary_alpha_20.xml │ │ ├── step_infobox_background_tint.xml │ │ ├── text_button_background_tint.xml │ │ ├── text_button_ripple_color.xml │ │ └── text_button_text_color.xml │ │ ├── drawable │ │ ├── background_circle.xml │ │ ├── background_list_round_borders.xml │ │ ├── bottom_sheet_half_round_rectangle.xml │ │ ├── bottom_sheet_top_rounded_background.xml │ │ ├── code_input_character_background.xml │ │ ├── divider_empty_spacing_normal.xml │ │ ├── divider_empty_spacing_small.xml │ │ ├── fab_plus_icon.xml │ │ ├── fastscroll_line.xml │ │ ├── fastscroll_line_selector.xml │ │ ├── fastscroll_thumb.xml │ │ ├── fastscroll_thumb_pressed.xml │ │ ├── fastscroll_thumb_selector.xml │ │ ├── handle_round_rectangle_shape.xml │ │ ├── ic_arrow_collapse.xml │ │ ├── ic_arrow_up_faq.xml │ │ ├── ic_attachment.xml │ │ ├── ic_attachment_icon_list_default.xml │ │ ├── ic_check.xml │ │ ├── ic_checklist_check.xml │ │ ├── ic_empty_actionitem_center.xml │ │ ├── ic_empty_id.xml │ │ ├── ic_empty_password.xml │ │ ├── ic_empty_payment.xml │ │ ├── ic_empty_secure_note.xml │ │ ├── ic_empty_sharing.xml │ │ ├── ic_fab_menu_address.xml │ │ ├── ic_fab_menu_bank.xml │ │ ├── ic_fab_menu_company.xml │ │ ├── ic_fab_menu_driver.xml │ │ ├── ic_fab_menu_email.xml │ │ ├── ic_fab_menu_id.xml │ │ ├── ic_fab_menu_name.xml │ │ ├── ic_fab_menu_passport.xml │ │ ├── ic_fab_menu_passwords.xml │ │ ├── ic_fab_menu_payments.xml │ │ ├── ic_fab_menu_paypal.xml │ │ ├── ic_fab_menu_phone.xml │ │ ├── ic_fab_menu_secure_notes.xml │ │ ├── ic_fab_menu_ssn.xml │ │ ├── ic_fab_menu_tax.xml │ │ ├── ic_fab_menu_website.xml │ │ ├── ic_info_24.xml │ │ ├── ic_info_circle_outlined.xml │ │ ├── ic_item_action_more.xml │ │ ├── ic_launcher_browser_foreground.xml │ │ ├── ic_list_secure_note.xml │ │ ├── ic_locked.xml │ │ ├── ic_modal_done.xml │ │ ├── ic_notification_large_icon.xml │ │ ├── ic_notification_small_icon.xml │ │ ├── ic_password_generator_regenerate.xml │ │ ├── ic_search.xml │ │ ├── ic_search_no_result_outlined.xml │ │ ├── ic_share.xml │ │ ├── ic_shared.xml │ │ ├── ic_splash_screen.xml │ │ ├── ic_up_indicator_close.xml │ │ ├── ic_widget_infobox.xml │ │ ├── ico_list_address.xml │ │ ├── ico_list_bank_account.xml │ │ ├── ico_list_card.xml │ │ ├── ico_list_card_on_white.xml │ │ ├── ico_list_company.xml │ │ ├── ico_list_driving_licence.xml │ │ ├── ico_list_id_card.xml │ │ ├── ico_list_mail.xml │ │ ├── ico_list_name.xml │ │ ├── ico_list_passport.xml │ │ ├── ico_list_paypal.xml │ │ ├── ico_list_phone.xml │ │ ├── ico_list_social_security.xml │ │ ├── ico_list_tax_number.xml │ │ ├── ico_list_website.xml │ │ ├── illu_onboarding_vault.xml │ │ ├── rounded_rectangle_background.xml │ │ ├── splash_logo.xml │ │ ├── tab_default_dot.xml │ │ ├── tab_selected_dot.xml │ │ ├── tab_selector.xml │ │ └── toast_background.xml │ │ ├── layout-w600dp │ │ └── toast_layout.xml │ │ ├── layout │ │ ├── activity_intro.xml │ │ ├── autocomplete_textview_adapter.xml │ │ ├── empty_screen_generic.xml │ │ ├── expandablecardview.xml │ │ ├── getstarted_step.xml │ │ ├── include_intro_link.xml │ │ ├── item_dataidentifier.xml │ │ ├── item_dataidentifier_content.xml │ │ ├── item_header.xml │ │ ├── item_header_big.xml │ │ ├── item_separator.xml │ │ ├── toast_layout.xml │ │ ├── widget_infobox.xml │ │ └── widget_step_infobox.xml │ │ ├── raw │ │ ├── lottie_checklist_m2d.json │ │ ├── lottie_keyboard_autofill_demo.json │ │ ├── lottie_loading_determinate.json │ │ ├── lottie_loading_fail.json │ │ ├── lottie_loading_indeterminate.json │ │ ├── lottie_loading_success.json │ │ ├── lottie_sync_progress.json │ │ ├── lottie_welcome_autofill.json │ │ ├── lottie_welcome_dwm.json │ │ ├── lottie_welcome_vault.json │ │ └── lottie_welcome_vault_background.json │ │ ├── values-sw600dp │ │ └── dimens_list_credentials.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── dimens.xml │ │ ├── dimens_action_bar.xml │ │ ├── dimens_item.xml │ │ ├── dimens_list_credentials.xml │ │ ├── ids.xml │ │ └── strings.xml ├── baseactivity │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ ├── ui │ │ ├── AbstractActivityLifecycleListener.kt │ │ ├── ActivityLifecycleListener.kt │ │ ├── AutoFillDisabler.kt │ │ ├── ScreenOverLockProtectionView.kt │ │ ├── ScreenshotPolicy.kt │ │ ├── activities │ │ │ └── DashlaneActivity.kt │ │ ├── dagger │ │ │ └── UiPartEntryPoint.kt │ │ ├── fragments │ │ │ └── BaseDialogFragment.kt │ │ └── util │ │ │ ├── ActionBarUtil.java │ │ │ ├── ActivityListenerWindowCallback.kt │ │ │ └── DelegateWindowCallback.kt │ │ └── util │ │ └── PageViewUtil.kt ├── crypto-keys │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── crypto │ │ └── keys │ │ ├── AppKey.kt │ │ ├── LocalKey.kt │ │ └── VaultKey.kt ├── lock │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── lock │ │ ├── LockEvent.kt │ │ ├── LockHelper.kt │ │ ├── LockNavigationHelper.kt │ │ ├── LockPass.kt │ │ ├── LockSelfChecker.kt │ │ ├── LockSetting.kt │ │ ├── LockTimeManager.kt │ │ ├── LockTypeManager.kt │ │ ├── LockWaiter.kt │ │ └── LockWatcher.kt ├── mvvm │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── mvvm │ │ ├── State.kt │ │ └── ViewStateFlow.kt ├── navigation │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── navigation │ │ ├── NavigationConstants.kt │ │ ├── NavigationHelper.kt │ │ ├── NavigationUriBuilder.kt │ │ ├── NavigationUtils.kt │ │ ├── Navigator.kt │ │ ├── SchemeUtils.kt │ │ └── paywall │ │ └── PaywallIntroType.kt ├── network │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── network │ │ ├── NitroUrlOverride.kt │ │ ├── ServerUrlOverride.kt │ │ ├── inject │ │ ├── ConnectivityCheckModule.kt │ │ ├── DashlaneServicesModule.kt │ │ ├── HttpModule.kt │ │ └── RetrofitModule.kt │ │ ├── tools │ │ ├── CloudflareHeaderInterceptor.kt │ │ └── MoreDetailedExceptionRequestInterceptor.kt │ │ └── webservices │ │ ├── DashlaneUrls.kt │ │ ├── DownloadFileService.kt │ │ └── UploadFileService.kt ├── permission │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── permission │ │ ├── PermissionsManager.kt │ │ └── PermissionsManagerImpl.kt ├── sync │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── sync │ │ ├── DataSync.kt │ │ ├── SyncBindingModule.kt │ │ ├── cryptochanger │ │ ├── RemoteKeyIdGenerator.kt │ │ ├── SyncCryptoChanger.kt │ │ ├── SyncCryptoChangerException.kt │ │ └── SyncCryptoChangerImpl.kt │ │ ├── domain │ │ ├── SyncCryptographyException.kt │ │ ├── SyncTransactionException.kt │ │ ├── Transaction.kt │ │ ├── TransactionCipher.kt │ │ └── TransactionCipherImpl.kt │ │ ├── merger │ │ ├── SyncConflict.kt │ │ ├── SyncMerger.kt │ │ └── SyncMergerImpl.kt │ │ ├── repositories │ │ ├── ChronologicalSync.kt │ │ ├── ChronologicalSyncImpl.kt │ │ ├── IncomingTransactionsHelper.kt │ │ ├── ServerCredentials.kt │ │ ├── SharingSyncHelper.kt │ │ ├── SyncDeduplication.kt │ │ ├── SyncDeduplicationImpl.kt │ │ ├── SyncProgress.kt │ │ ├── SyncRepository.kt │ │ ├── SyncRepositoryImpl.kt │ │ └── strategies │ │ │ ├── SyncServices.kt │ │ │ └── SyncServicesImpl.kt │ │ ├── sharing │ │ └── SharingSync.kt │ │ ├── treat │ │ ├── SyncSummaryItem.kt │ │ ├── TransactionFailureRegistry.kt │ │ ├── TreatProblemManager.kt │ │ └── TreatProblemManagerImpl.kt │ │ ├── util │ │ ├── MapAsync.kt │ │ ├── SyncLogs.kt │ │ └── SyncLogsImpl.kt │ │ ├── vault │ │ ├── SyncObjectDescriptor.kt │ │ └── SyncVault.kt │ │ └── xml │ │ ├── MergeListStrategy.kt │ │ └── XmlDataMerge.kt ├── test-fixtures │ └── vault │ │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── testfixtures │ │ └── vault │ │ └── SummaryObjectFixture.kt ├── ui │ ├── common-compose-components │ │ └── src │ │ │ └── main │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── dashlane │ │ │ │ └── ui │ │ │ │ └── common │ │ │ │ └── compose │ │ │ │ ├── components │ │ │ │ ├── ContentStepper.kt │ │ │ │ ├── DashlaneCheckbox.kt │ │ │ │ ├── DescriptionItemContent.kt │ │ │ │ ├── EmptyScreen.kt │ │ │ │ ├── GenericErrorContent.kt │ │ │ │ ├── LoadingScreen.kt │ │ │ │ ├── OtpInput.kt │ │ │ │ ├── TopBarScaffold.kt │ │ │ │ ├── TopBarState.kt │ │ │ │ ├── WarningContent.kt │ │ │ │ ├── banner │ │ │ │ │ └── VaultBanner.kt │ │ │ │ ├── basescreen │ │ │ │ │ ├── AppBarScreenWrapper.kt │ │ │ │ │ └── NoAppBarScreenWrapper.kt │ │ │ │ ├── components │ │ │ │ │ ├── DashlaneTopAppBar.kt │ │ │ │ │ └── StatusBarHandler.kt │ │ │ │ ├── pincode │ │ │ │ │ ├── PinKeyboard.kt │ │ │ │ │ ├── PinTextField.kt │ │ │ │ │ └── PinTextFieldCharacter.kt │ │ │ │ └── socialmedia │ │ │ │ │ ├── DashlaneSocialMedia.kt │ │ │ │ │ └── SocialMediaBar.kt │ │ │ │ └── utils │ │ │ │ └── RememberLargeScreen.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ └── backspace.xml │ │ │ └── values │ │ │ ├── accessibility_strings.xml │ │ │ ├── string_dashlane_social_media.xml │ │ │ └── strings.xml │ ├── illustration-resources │ │ └── src │ │ │ └── main │ │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── dashlane │ │ │ │ └── ui │ │ │ │ └── illustration │ │ │ │ └── WebUrlIllustration.kt │ │ │ └── res │ │ │ └── drawable │ │ │ └── img_m2w_url.xml │ ├── theme-legacy │ │ └── src │ │ │ └── main │ │ │ └── res │ │ │ ├── color │ │ │ ├── button_primary_background_tint.xml │ │ │ ├── button_primary_ripple_color.xml │ │ │ ├── button_primary_text_color.xml │ │ │ ├── button_ternary_background_tint.xml │ │ │ ├── button_ternary_ripple_color.xml │ │ │ ├── button_ternary_text_color.xml │ │ │ ├── card_foreground_color.xml │ │ │ ├── card_ripple_color.xml │ │ │ ├── checkbox_button_tint.xml │ │ │ ├── edit_text_background_tint.xml │ │ │ ├── edit_text_text_color.xml │ │ │ ├── menu_floating_action_button_background_tint_selector.xml │ │ │ ├── menu_floating_action_button_ripple_color_selector.xml │ │ │ ├── menu_floating_action_button_tint_selector.xml │ │ │ ├── radio_button_tint.xml │ │ │ ├── slider_halo_color.xml │ │ │ ├── slider_thumb_color.xml │ │ │ ├── slider_track_color_active.xml │ │ │ ├── slider_track_color_inactive.xml │ │ │ ├── switch_thumb_tint.xml │ │ │ ├── switch_track_tint.xml │ │ │ ├── text_input_hint_color.xml │ │ │ └── textinputlayout_stroke_color.xml │ │ │ ├── drawable │ │ │ ├── background_widget_infobox.xml │ │ │ ├── ic_error_state.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── font │ │ │ ├── gt_walsheim_pro_bold.ttf │ │ │ ├── roboto.xml │ │ │ ├── roboto_bold.ttf │ │ │ ├── roboto_medium.ttf │ │ │ ├── roboto_mono_bold.ttf │ │ │ ├── roboto_mono_regular.ttf │ │ │ └── roboto_regular.ttf │ │ │ ├── mipmap-anydpi │ │ │ └── ic_launcher.xml │ │ │ ├── values-night │ │ │ ├── bools.xml │ │ │ └── themes.xml │ │ │ ├── values-sw600dp │ │ │ ├── dimens_theme.xml │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── aliases.xml │ │ │ ├── attrs_expandablecardview.xml │ │ │ ├── attrs_getstarted_step.xml │ │ │ ├── attrs_theme.xml │ │ │ ├── attrs_widget_infobox.xml │ │ │ ├── bools.xml │ │ │ ├── colors_brand.xml │ │ │ ├── colors_brand_impala.xml │ │ │ ├── colors_toast.xml │ │ │ ├── colors_util.xml │ │ │ ├── dimens_material.xml │ │ │ ├── dimens_theme.xml │ │ │ ├── styles.xml │ │ │ ├── text_appearance.xml │ │ │ ├── theme_shape_size.xml │ │ │ ├── themes.xml │ │ │ ├── themes_dashlane_alert_dialog.xml │ │ │ ├── themes_modal.xml │ │ │ ├── themes_transparent.xml │ │ │ └── widgets.xml │ └── thumbnail │ │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── dashlane │ │ └── ui │ │ └── thumbnail │ │ ├── ThumbnailDomainIcon.kt │ │ ├── ThumbnailDomainIconView.kt │ │ ├── ThumbnailDomainIconViewModel.kt │ │ └── ThumbnailUserSingle.kt ├── user │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── user │ │ ├── UserAccountInfo.kt │ │ ├── UserSecuritySettings.kt │ │ └── Username.kt ├── utils-coroutines │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── utils │ │ └── coroutines │ │ ├── CoroutineExtension.kt │ │ └── inject │ │ ├── hilt │ │ ├── CoroutineScopesModule.kt │ │ └── CoroutinesModule.kt │ │ └── qualifiers │ │ ├── ActivityLifecycleCoroutineScope.kt │ │ ├── ApplicationCoroutineScope.kt │ │ ├── DefaultCoroutineDispatcher.kt │ │ ├── FragmentLifecycleCoroutineScope.kt │ │ ├── IoCoroutineDispatcher.kt │ │ ├── MainCoroutineDispatcher.kt │ │ └── MainImmediateCoroutineDispatcher.kt ├── utils │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── Legal.kt │ │ │ ├── autofill │ │ │ ├── AutofillCompatModeAllowedPackages.kt │ │ │ └── LinkedServicesHelper.kt │ │ │ ├── core │ │ │ └── helpers │ │ │ │ ├── AppSignature.kt │ │ │ │ ├── PackageNameSignatureHelper.kt │ │ │ │ ├── PackageSignatureStatus.kt │ │ │ │ ├── SignatureUtils.kt │ │ │ │ └── SignatureVerification.kt │ │ │ ├── crashreport │ │ │ ├── CrashReporter.kt │ │ │ └── CrashTrace.kt │ │ │ ├── exception │ │ │ ├── NotLoggedInException.kt │ │ │ └── SettingsManagerException.kt │ │ │ ├── ext │ │ │ └── application │ │ │ │ ├── AutofillExtraDataApplication.kt │ │ │ │ ├── BlacklistApplication.kt │ │ │ │ ├── ExternalApplication.kt │ │ │ │ ├── KnownApplication.kt │ │ │ │ ├── KnownApplicationProvider.kt │ │ │ │ ├── KnownLinkedDomains.kt │ │ │ │ ├── TrustedBrowserApplication.kt │ │ │ │ └── WhitelistApplication.kt │ │ │ ├── iconcrawler │ │ │ └── IconWrapper.kt │ │ │ ├── login │ │ │ ├── LoginInfo.kt │ │ │ └── LoginMode.kt │ │ │ ├── notificator │ │ │ └── Notificator.kt │ │ │ ├── securearchive │ │ │ └── BackupCoordinator.kt │ │ │ ├── security │ │ │ └── DashlaneIntent.java │ │ │ ├── sharing │ │ │ ├── SharingKeysHelper.kt │ │ │ ├── SharingKeysHelperComponent.kt │ │ │ └── UserPermission.kt │ │ │ ├── storage │ │ │ └── userdata │ │ │ │ ├── EmailSuggestionProvider.kt │ │ │ │ └── RichIconsSettingProvider.kt │ │ │ └── util │ │ │ ├── ActivityResultContractCompat.kt │ │ │ ├── ActivityUtils.kt │ │ │ ├── AnimatorUtils.kt │ │ │ ├── AnonymousException.kt │ │ │ ├── AppSync.kt │ │ │ ├── AssetUtils.kt │ │ │ ├── BadgeViewOptionalText.kt │ │ │ ├── BundleUtils.kt │ │ │ ├── CharSequenceUtils.kt │ │ │ ├── ContextUtils.kt │ │ │ ├── DateUtils.kt │ │ │ ├── DeviceUtils.kt │ │ │ ├── ExceptionSafePrintWriter.kt │ │ │ ├── FileUtils.kt │ │ │ ├── HashUtils.kt │ │ │ ├── InstantUtils.kt │ │ │ ├── IntUtils.kt │ │ │ ├── IntentUtils.kt │ │ │ ├── JSONArrayExt.kt │ │ │ ├── KeyboardVisibilityDetector.kt │ │ │ ├── LocaleUtil.kt │ │ │ ├── MD5Hash.java │ │ │ ├── MeasureUtil.kt │ │ │ ├── PackageManagerUtils.kt │ │ │ ├── PackageUtilities.kt │ │ │ ├── SearchKeywordUtils.kt │ │ │ ├── SpannableUtils.kt │ │ │ ├── StatusBarUtils.kt │ │ │ ├── StringUtils.kt │ │ │ ├── TelephonyManagerUtils.kt │ │ │ ├── TextAnnotationUtils.kt │ │ │ ├── TextViewOptionalText.kt │ │ │ ├── TextViewText.kt │ │ │ ├── TextViewUtils.kt │ │ │ ├── URIBuilder.kt │ │ │ ├── UriUtils.kt │ │ │ ├── UrlDomainUtils.kt │ │ │ ├── Utils.kt │ │ │ ├── WindowConfiguration.kt │ │ │ ├── coroutines │ │ │ └── DeferredViewModel.kt │ │ │ ├── date │ │ │ ├── RelativeDateFormatter.kt │ │ │ └── RelativeDateFormatterImpl.kt │ │ │ ├── domain │ │ │ └── PopularWebsiteUtils.kt │ │ │ ├── exceptions │ │ │ └── NetworkOffException.kt │ │ │ ├── inject │ │ │ ├── OptionalProvider.java │ │ │ └── qualifiers │ │ │ │ └── Cache.kt │ │ │ ├── keychain │ │ │ ├── KeyChainException.java │ │ │ ├── KeyChainHelper.kt │ │ │ ├── KeyChainHelperImpl.kt │ │ │ └── KeyChainManager.java │ │ │ ├── thread │ │ │ └── ConflatedQueueExecutor.kt │ │ │ ├── time │ │ │ ├── LocalDate.kt │ │ │ ├── Month.kt │ │ │ ├── TimeMeasurement.kt │ │ │ ├── TimeTicker.kt │ │ │ ├── Year.kt │ │ │ └── YearMonth.kt │ │ │ └── web │ │ │ ├── WebViewCommunicator.kt │ │ │ └── WebViewCommunicatorImpl.kt │ │ └── res │ │ ├── values-de │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-en │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-es │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-fr │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-it │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-ja │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-ko │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-nl │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-pt │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-sv │ │ └── language_iso_639_1_nontranslatable.xml │ │ ├── values-zh │ │ └── language_iso_639_1_nontranslatable.xml │ │ └── values │ │ ├── language_iso_639_1_nontranslatable.xml │ │ └── strings.xml ├── vault-item │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── vault │ │ │ └── item │ │ │ ├── VaultListItem.kt │ │ │ └── VaultListItemStateFactory.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── vault-text-factory │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── vault │ │ │ └── textfactory │ │ │ ├── dagger │ │ │ └── VaultTextFactoryModule.kt │ │ │ ├── identity │ │ │ ├── IdentityNameHolderService.kt │ │ │ └── IdentityNameHolderServiceImpl.kt │ │ │ └── list │ │ │ ├── AddressListTextFactory.kt │ │ │ ├── AuthentifiantListTextFactory.kt │ │ │ ├── BankStatementListTextFactory.kt │ │ │ ├── CompanyListTextFactory.kt │ │ │ ├── DataIdentifierListTextFactory.kt │ │ │ ├── DataIdentifierListTextResolver.kt │ │ │ ├── DataIdentifierListTextResolverImpl.kt │ │ │ ├── DataIdentifierTypeTextFactory.kt │ │ │ ├── DriverLicenceListTextFactory.kt │ │ │ ├── EmailListTextFactory.kt │ │ │ ├── EmptyListTextFactory.kt │ │ │ ├── FiscalStatementListTextFactory.kt │ │ │ ├── IdCardListTextFactory.kt │ │ │ ├── IdentityListTextFactory.kt │ │ │ ├── PasskeyListTextFactory.kt │ │ │ ├── PassportListTextFactory.kt │ │ │ ├── PaymentCreditCardListTextFactory.kt │ │ │ ├── PersonalWebsiteListTextFactory.kt │ │ │ ├── PhoneListTextFactory.kt │ │ │ ├── SecretListTextFactory.kt │ │ │ ├── SecureNoteListTextFactory.kt │ │ │ ├── SocialSecurityStatementListTextFactory.kt │ │ │ ├── StatusText.kt │ │ │ └── utils │ │ │ └── GetIdentityStatusTextUtils.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── vault-utils │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── vault │ │ └── utils │ │ └── Attachments.kt └── vaultmodel │ └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── dashlane │ │ ├── hilt │ │ └── BankDataProviderModule.kt │ │ ├── util │ │ └── obfuscated │ │ │ └── SyncAndObfuscatedText.kt │ │ └── vault │ │ ├── history │ │ ├── DataChangeHistoryField.kt │ │ └── DataChangeHistoryUtils.kt │ │ ├── model │ │ ├── Address.kt │ │ ├── AuthCategory.kt │ │ ├── Authentifiant.kt │ │ ├── BankConfiguration.kt │ │ ├── BankStatement.kt │ │ ├── Collection.kt │ │ ├── Company.kt │ │ ├── Country.kt │ │ ├── CreditCardBank.kt │ │ ├── CreditCardColor.kt │ │ ├── DataChangeHistory.kt │ │ ├── DataIdentifierProxy.kt │ │ ├── DeviceType.kt │ │ ├── DriverLicence.kt │ │ ├── Email.kt │ │ ├── EmailType.kt │ │ ├── FiscalStatement.kt │ │ ├── Gender.kt │ │ ├── GeneratedPassword.kt │ │ ├── IdCard.kt │ │ ├── Identity.kt │ │ ├── LockItemUtil.kt │ │ ├── Passkey.kt │ │ ├── Passport.kt │ │ ├── PaymentCreditCard.kt │ │ ├── PersonalWebsite.kt │ │ ├── Phone.kt │ │ ├── PhoneType.kt │ │ ├── Secret.kt │ │ ├── SecureFileInfo.kt │ │ ├── SecureNote.kt │ │ ├── SecureNoteCategory.kt │ │ ├── SecureNoteType.kt │ │ ├── SecurityBreach.kt │ │ ├── SocialSecurityStatement.kt │ │ ├── SpaceItemUtil.kt │ │ ├── Title.kt │ │ └── VaultItemUtils.kt │ │ └── util │ │ ├── AddressUtils.kt │ │ ├── AuthentifiantPackageNameMatcher.kt │ │ ├── AuthentifiantPackageNameSignatureUtil.kt │ │ ├── BankDataProvider.kt │ │ ├── DataIdentifierSyncObjectTypes.kt │ │ ├── SharingStateChecker.kt │ │ └── SummaryObjectUtils.kt │ └── res │ ├── drawable-hdpi │ └── device_unknown.png │ ├── drawable-mdpi │ └── device_unknown.png │ ├── drawable-xhdpi │ └── device_unknown.png │ ├── drawable-xxhdpi │ └── device_unknown.png │ ├── drawable │ ├── device_android.xml │ ├── device_apple.xml │ ├── device_browser.xml │ └── device_windows.xml │ └── values │ ├── colors_credit_cards.xml │ ├── colors_list_securenotes.xml │ ├── strings.xml │ └── strings_device_types.xml ├── features ├── accountrecoverykey │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── accountrecoverykey │ │ │ ├── AccountRecoveryKeyDestination.kt │ │ │ ├── AccountRecoveryKeySettingsNavigation.kt │ │ │ ├── AccountRecoveryKeySetupNavigation.kt │ │ │ ├── activation │ │ │ ├── confirm │ │ │ │ ├── AccountRecoveryKeyConfirmScreen.kt │ │ │ │ ├── AccountRecoveryKeyConfirmState.kt │ │ │ │ └── AccountRecoveryKeyConfirmViewModel.kt │ │ │ ├── generate │ │ │ │ ├── AccountRecoveryKeyGenerateScreen.kt │ │ │ │ ├── AccountRecoveryKeyGenerateState.kt │ │ │ │ └── AccountRecoveryKeyGenerateViewModel.kt │ │ │ ├── intro │ │ │ │ ├── AccountRecoveryKeyActivationIntroScreen.kt │ │ │ │ ├── AccountRecoveryKeyActivationIntroState.kt │ │ │ │ └── AccountRecoveryKeyActivationIntroViewModel.kt │ │ │ └── success │ │ │ │ └── AccountRecoveryKeySuccessScreen.kt │ │ │ ├── enforce │ │ │ └── AccountRecoveryKeyEnforcer.kt │ │ │ └── setting │ │ │ ├── AccountRecoveryKeyDetailSettingScreen.kt │ │ │ ├── AccountRecoveryKeyDetailSettingState.kt │ │ │ ├── AccountRecoveryKeyDetailSettingViewModel.kt │ │ │ ├── AccountRecoveryKeySettingState.kt │ │ │ └── AccountRecoveryKeySettingStateHolder.kt │ │ └── res │ │ └── values │ │ └── strings_account_recovery_key.xml ├── activate-totp │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── activatetotp │ │ │ └── ViewBindingUtil.kt │ │ │ ├── disabletotp │ │ │ ├── DisableTotpActivity.kt │ │ │ ├── DisableTotpDeactivationErrorFragment.kt │ │ │ ├── DisableTotpEnforcedIntroActivity.kt │ │ │ ├── deactivation │ │ │ │ ├── DisableTotpDeactivationFragment.kt │ │ │ │ └── DisableTotpDeactivationViewModel.kt │ │ │ └── token │ │ │ │ ├── DisableTotpEnterTokenFragment.kt │ │ │ │ ├── TotpRecoveryCodeAlertDialogBuilder.kt │ │ │ │ └── TotpRecoveryCodeDialogViewModel.kt │ │ │ └── ui │ │ │ └── screens │ │ │ └── settings │ │ │ └── Use2faSettingStateRefresher.kt │ │ └── res │ │ ├── drawable │ │ ├── background_enable_totp_surface.xml │ │ ├── ic_enable_totp_recovery_info_option.xml │ │ ├── illu_enable_totp_complete.xml │ │ ├── picto_authenticator.xml │ │ └── picto_error_fail_circle.xml │ │ ├── layout │ │ ├── activate_totp_error.xml │ │ ├── activate_totp_loading.xml │ │ ├── activity_disable_totp.xml │ │ ├── dialog_2fa_recovery.xml │ │ ├── enable_totp_step_add_phone_content.xml │ │ ├── enable_totp_step_display_recovery_codes_content.xml │ │ ├── enable_totp_step_recovery_info_content.xml │ │ ├── enable_totp_step_select_frequency_content.xml │ │ ├── fragment_disable_totp_enter_token.xml │ │ └── fragment_enable_totp_complete.xml │ │ ├── navigation │ │ ├── navigation_disable_totp.xml │ │ └── navigation_enable_totp.xml │ │ └── values │ │ └── strings.xml ├── authenticator │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── authenticator │ │ │ ├── AuthenticatorBaseViewModelContract.kt │ │ │ ├── AuthenticatorEnterActivationKey.kt │ │ │ ├── AuthenticatorIntro.kt │ │ │ ├── AuthenticatorLogger.kt │ │ │ ├── AuthenticatorMultipleMatchesResult.kt │ │ │ ├── AuthenticatorResultIntro.kt │ │ │ ├── AuthenticatorUtils.kt │ │ │ ├── Hotp.kt │ │ │ ├── Otp.kt │ │ │ ├── Pin.kt │ │ │ ├── Totp.kt │ │ │ ├── UriParser.kt │ │ │ ├── dashboard │ │ │ ├── AuthenticatorDashboardCredentialItemAdapter.kt │ │ │ ├── AuthenticatorDashboardCredentialItemViewHolder.kt │ │ │ ├── AuthenticatorDashboardEditState.kt │ │ │ ├── AuthenticatorDashboardUiState.kt │ │ │ ├── AuthenticatorDashboardViewModel.kt │ │ │ ├── AuthenticatorDashboardViewModelContract.kt │ │ │ └── AuthenticatorDashboardViewProxy.kt │ │ │ ├── item │ │ │ └── AuthenticatorViewProxy.kt │ │ │ ├── suggestions │ │ │ ├── AuthenticatorIntroResult.kt │ │ │ ├── AuthenticatorSuggestionsCredentialItemAdapter.kt │ │ │ ├── AuthenticatorSuggestionsCredentialItemViewHolder.kt │ │ │ ├── AuthenticatorSuggestionsUiState.kt │ │ │ ├── AuthenticatorSuggestionsViewModel.kt │ │ │ ├── AuthenticatorSuggestionsViewModelContract.kt │ │ │ └── AuthenticatorSuggestionsViewProxy.kt │ │ │ └── util │ │ │ ├── AuthenticatorDialogHelper.kt │ │ │ ├── Base32String.java │ │ │ ├── PasscodeGenerator.java │ │ │ ├── SetUpAuthenticatorResultContract.kt │ │ │ └── TotpCounter.java │ │ └── res │ │ ├── drawable │ │ ├── authenticator_list_background.xml │ │ ├── ic_authenticator.xml │ │ ├── ic_authenticator_edit_button.xml │ │ ├── ic_authenticator_error.xml │ │ ├── ic_authenticator_item_copy.xml │ │ ├── ic_authenticator_item_delete.xml │ │ ├── ic_authenticator_shield.xml │ │ ├── ic_authenticator_success.xml │ │ └── ic_refresh.xml │ │ ├── layout │ │ ├── activity_enter_activation_key.xml │ │ ├── activity_mutliple_matches_result.xml │ │ ├── authenticator_credential_item.xml │ │ ├── authenticator_credential_item_otp.xml │ │ ├── authenticator_credential_multiple_matches_item.xml │ │ ├── fragment_authenticator_dashboard.xml │ │ ├── fragment_authenticator_suggestions.xml │ │ ├── header_authenticator_credential_item_otp_header.xml │ │ ├── header_authenticator_question_1.xml │ │ ├── header_authenticator_question_2.xml │ │ ├── header_authenticator_question_3.xml │ │ ├── include_authenticator_empty_screen.xml │ │ ├── include_authenticator_empty_screen_all_setup.xml │ │ ├── include_authenticator_faq.xml │ │ ├── include_authenticator_suggestions.xml │ │ ├── include_item_edit_authenticator_activate.xml │ │ ├── item_authenticator_credential_item_otp.xml │ │ ├── item_authenticator_question_1.xml │ │ ├── item_authenticator_question_2.xml │ │ └── item_authenticator_question_3.xml │ │ └── values │ │ └── strings.xml ├── change-master-password │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── changemasterpassword │ │ │ ├── ChangeMasterPasswordNavigation.kt │ │ │ ├── ChangeMasterPasswordOrigin.kt │ │ │ ├── ChangeMasterPasswordScreen.kt │ │ │ ├── ChangeMasterPasswordState.kt │ │ │ ├── ChangeMasterPasswordViewModel.kt │ │ │ ├── success │ │ │ ├── ChangeMasterPasswordSuccessScreen.kt │ │ │ ├── ChangeMasterPasswordSuccessState.kt │ │ │ └── ChangeMasterPasswordSuccessViewModel.kt │ │ │ ├── tips │ │ │ └── MasterPasswordTipsContent.kt │ │ │ └── warning │ │ │ ├── ChangeMasterPasswordWarningScreen.kt │ │ │ ├── ChangeMasterPasswordWarningState.kt │ │ │ └── ChangeMasterPasswordWarningViewModel.kt │ │ └── res │ │ ├── drawable │ │ └── ic_sync_multi_device.xml │ │ └── values │ │ └── strings_change_master_password.xml ├── credentialmanager │ ├── .gitignore │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── credentialmanager │ │ │ ├── CredentialLoader.kt │ │ │ ├── CredentialManagerDAO.kt │ │ │ ├── CredentialManagerHandler.kt │ │ │ ├── CredentialManagerIntent.kt │ │ │ ├── CredentialManagerLocker.kt │ │ │ ├── CredentialManagerLogger.kt │ │ │ ├── CredentialManagerModule.kt │ │ │ ├── DashlaneCredentialProviderService.kt │ │ │ ├── algorithm │ │ │ └── PasskeyAlgorithm.kt │ │ │ ├── credential │ │ │ ├── CredentialPasskeyManager.kt │ │ │ └── CredentialPasswordManager.kt │ │ │ ├── model │ │ │ ├── DashlaneCredentialManagerException.kt │ │ │ ├── PasskeyCreationOptions.kt │ │ │ ├── PasskeyPrivilegedApplications.kt │ │ │ ├── PasskeyRequestOptions.kt │ │ │ ├── PrivilegedAllowlist.kt │ │ │ ├── Util.kt │ │ │ └── fido │ │ │ │ ├── AuthenticatorAssertionResponse.kt │ │ │ │ ├── AuthenticatorAttestationResponse.kt │ │ │ │ ├── AuthenticatorFlags.kt │ │ │ │ ├── AuthenticatorResponse.kt │ │ │ │ └── FidoPublicKeyCredential.kt │ │ │ └── ui │ │ │ ├── CredentialManagerActivity.kt │ │ │ ├── CredentialManagerState.kt │ │ │ └── CredentialManagerViewModel.kt │ │ └── res │ │ ├── values │ │ └── strings.xml │ │ ├── xml-v34 │ │ └── provider.xml │ │ └── xml │ │ └── provider.xml ├── csv-export │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── dashlane │ │ │ └── csvexport │ │ │ └── intro │ │ │ ├── CsvExportFromWebActivity.kt │ │ │ └── CsvExportFromWebScreen.kt │ │ └── res │ │ ├── drawable │ │ └── illustration_go_to_web.xml │ │ └── values │ │ └── strings_import_on_web.xml ├── csv-import │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── csvimport │ │ │ ├── CsvSendActionHandler.kt │ │ │ ├── csvimport │ │ │ ├── CsvAuthentifiant.kt │ │ │ ├── CsvImportManager.kt │ │ │ ├── CsvImportUtils.kt │ │ │ ├── CsvImportViewTypeProvider.kt │ │ │ ├── CsvSchema.kt │ │ │ ├── ImportAuthentifiantHelper.kt │ │ │ └── view │ │ │ │ ├── CsvImportActivity.kt │ │ │ │ ├── CsvImportState.kt │ │ │ │ └── CsvImportViewModel.kt │ │ │ ├── intro │ │ │ └── CsvFileImportIntroActivity.kt │ │ │ ├── matchcsvfields │ │ │ ├── MatchCsvFieldsActivity.kt │ │ │ ├── MatchCsvFieldsItem.kt │ │ │ ├── MatchCsvFieldsViewModel.kt │ │ │ ├── MatchCsvFieldsViewProxy.kt │ │ │ └── MatchCsvFieldsViewState.kt │ │ │ └── utils │ │ │ ├── Intents.kt │ │ │ ├── OnSwipeTouchListener.kt │ │ │ ├── ParseCsv.kt │ │ │ └── Utils.kt │ │ └── res │ │ ├── color │ │ ├── button_csv_import_background_tint.xml │ │ ├── button_csv_import_ripple_color.xml │ │ └── button_csv_import_text_color.xml │ │ ├── drawable │ │ ├── ic_arrow_down_text_secondary_24dp.xml │ │ ├── ic_arrow_up_text_secondary_24dp.xml │ │ ├── ic_csv_file_import.xml │ │ └── ic_csv_file_import_competitor.xml │ │ ├── layout-h520dp │ │ └── include_custom_csv_import_buttons.xml │ │ ├── layout │ │ ├── activity_csv_import.xml │ │ ├── activity_custom_csv_import.xml │ │ ├── include_custom_csv_import_buttons.xml │ │ └── list_item_custom_csv_import.xml │ │ ├── values-h520dp │ │ └── dimens.xml │ │ ├── values-sw720dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── plurals.xml │ │ ├── strings.xml │ │ └── widgets.xml ├── darkweb-monitoring │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── darkweb │ │ │ └── ui │ │ │ ├── intro │ │ │ └── DarkWebSetupIntroActivity.kt │ │ │ ├── result │ │ │ └── DarkWebSetupResultActivity.kt │ │ │ └── setup │ │ │ ├── DarkWebSetupMailActivity.kt │ │ │ ├── DarkWebSetupMailState.kt │ │ │ ├── DarkWebSetupMailViewModel.kt │ │ │ ├── DarkWebSetupMailViewModelContract.kt │ │ │ └── DarkWebSetupMailViewProxy.kt │ │ └── res │ │ ├── drawable │ │ ├── logo_darkweb.xml │ │ └── logo_darkweb_result.xml │ │ ├── layout │ │ ├── activity_darkweb_setup_mail.xml │ │ └── activity_darkweb_setup_result.xml │ │ └── values │ │ └── strings.xml ├── follow-up-notification │ ├── README.md │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── followupnotification │ │ │ ├── FollowUpNotificationComponentModule.kt │ │ │ ├── FollowUpNotificationEntryPoint.kt │ │ │ ├── api │ │ │ ├── FollowUpNotificationApi.kt │ │ │ ├── FollowUpNotificationApiImpl.kt │ │ │ ├── FollowUpNotificationApiNoOperationImpl.kt │ │ │ ├── FollowUpNotificationApiProvider.kt │ │ │ ├── FollowUpNotificationApiProviderImpl.kt │ │ │ ├── FollowUpNotificationLockManager.kt │ │ │ └── FollowUpNotificationPermissionManager.kt │ │ │ ├── data │ │ │ ├── FollowUpNotificationRepository.kt │ │ │ └── FollowUpNotificationRepositoryMemoryImpl.kt │ │ │ ├── discovery │ │ │ ├── FollowUpNotificationDiscoveryActivity.kt │ │ │ └── FollowUpNotificationDiscoveryContract.kt │ │ │ ├── domain │ │ │ ├── CopyFollowUpNotificationToClipboard.kt │ │ │ ├── CopyFollowUpNotificationToClipboardImpl.kt │ │ │ ├── CreateFollowUpNotification.kt │ │ │ ├── CreateFollowUpNotificationImpl.kt │ │ │ ├── FollowUpNotification.kt │ │ │ ├── FollowUpNotificationSettingModel.kt │ │ │ ├── FollowUpNotificationSettings.kt │ │ │ ├── FollowUpNotificationSettingsImpl.kt │ │ │ └── FollowUpNotificationsTypes.kt │ │ │ └── services │ │ │ ├── FollowUpNotificationDiscoveryService.kt │ │ │ ├── FollowUpNotificationDisplayService.kt │ │ │ ├── FollowUpNotificationDisplayServiceImpl.kt │ │ │ ├── FollowUpNotificationDynamicData.kt │ │ │ ├── FollowUpNotificationDynamicDataImpl.kt │ │ │ ├── FollowUpNotificationFlags.kt │ │ │ ├── FollowUpNotificationFlagsImpl.kt │ │ │ ├── FollowUpNotificationLogger.kt │ │ │ ├── FollowUpNotificationLoggerNoOp.kt │ │ │ ├── FollowUpNotificationReceiver.kt │ │ │ ├── FollowUpNotificationSettingsService.kt │ │ │ ├── FollowUpNotificationVaultItemCopyListenerImpl.kt │ │ │ ├── FollowUpNotificationsStrings.kt │ │ │ ├── FollowUpNotificationsStringsImpl.kt │ │ │ ├── VaultItemContentService.kt │ │ │ └── VaultItemContentServiceImpl.kt │ │ └── res │ │ ├── drawable │ │ ├── bg_attribute_separator.xml │ │ ├── bg_notification_quick_start.xml │ │ └── ic_follow_up_preview.xml │ │ ├── layout │ │ ├── activity_follow_up_notification_discovery.xml │ │ ├── follow_up_notification_container.xml │ │ ├── follow_up_notification_field.xml │ │ ├── follow_up_notification_header.xml │ │ └── follow_up_notification_separator.xml │ │ └── values │ │ ├── follow_up_notification_styles.xml │ │ ├── strings_follow_up.xml │ │ ├── strings_in_context_discovery.xml │ │ ├── strings_notification.xml │ │ └── strings_notification_center_item.xml ├── guided-onboarding │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── guidedonboarding │ │ │ ├── OnboardingQuestionnaireActivity.kt │ │ │ ├── OnboardingQuestionnaireState.kt │ │ │ ├── OnboardingQuestionnaireViewModel.kt │ │ │ ├── OnboardingQuestionnaireViewProxy.kt │ │ │ ├── TrustFAQActivity.kt │ │ │ ├── darkwebmonitoring │ │ │ ├── OnboardingDarkWebMonitoringActivity.kt │ │ │ ├── OnboardingDarkWebMonitoringEmailConfirmedFragment.kt │ │ │ ├── OnboardingDarkWebMonitoringErrorFragment.kt │ │ │ ├── OnboardingDarkWebMonitoringLoadingFragment.kt │ │ │ └── OnboardingDarkWebMonitoringNoAlertsFragment.kt │ │ │ └── widgets │ │ │ ├── AnswerView.kt │ │ │ ├── QuestionnaireAnswer.kt │ │ │ └── QuestionnaireStep.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_onboarding_all_good.xml │ │ ├── ic_onboarding_error.xml │ │ ├── ic_onboarding_success.xml │ │ └── ic_trust_faq_cancel.xml │ │ ├── layout │ │ ├── activity_onboarding_dark_web_monitoring.xml │ │ ├── activity_onboarding_questionnaire.xml │ │ ├── activity_trust_faq.xml │ │ ├── fragment_onboarding_dark_web_monitoring_email_confirmed.xml │ │ ├── fragment_onboarding_dark_web_monitoring_error.xml │ │ ├── fragment_onboarding_dark_web_monitoring_loading.xml │ │ ├── fragment_onboarding_dark_web_monitoring_no_alerts.xml │ │ └── view_answer.xml │ │ ├── navigation │ │ └── onboarding_dark_web_monitoring_navigation.xml │ │ ├── raw │ │ ├── guided_onboarding_lottie_01_autofill.json │ │ ├── guided_onboarding_lottie_03_breach.json │ │ ├── guided_onboarding_lottie_04_onlinelife.json │ │ ├── guided_onboarding_lottie_05_vault.json │ │ ├── guided_onboarding_lottie_06_bouncing_logos.json │ │ ├── guided_onboarding_lottie_07_pwimport.json │ │ ├── guided_onboarding_lottie_08_devices.json │ │ └── guided_onboarding_lottie_building_plan.json │ │ └── values │ │ ├── attrs_anwer_view.xml │ │ ├── attrs_onboarding_plan_step_view.xml │ │ ├── strings_guided_onboarding.xml │ │ ├── strings_onboarding_dwm.xml │ │ └── strings_trust_faq.xml ├── guided-password-change │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── guidedpasswordchange │ │ │ ├── OnboardingGuidedPasswordChangeActivity.kt │ │ │ └── internal │ │ │ ├── OnboardingGuidedPasswordChangeContract.kt │ │ │ ├── OnboardingGuidedPasswordChangeDataProvider.kt │ │ │ ├── OnboardingGuidedPasswordChangePresenter.kt │ │ │ └── OnboardingGuidedPasswordChangeViewProxy.kt │ │ └── res │ │ ├── color │ │ ├── guided_password_change_step_icon_background_tint_selector.xml │ │ ├── guided_password_change_step_icon_foreground_tint_selector.xml │ │ └── guided_password_change_step_text_tint_selector.xml │ │ ├── drawable │ │ ├── guided_password_change_step1.xml │ │ ├── guided_password_change_step2.xml │ │ ├── guided_password_change_step3.xml │ │ ├── guided_password_change_step4.xml │ │ └── ic_back.xml │ │ ├── layout │ │ ├── activity_onboarding_guided_password_change.xml │ │ ├── guided_password_change_steps.xml │ │ ├── include_guided_password_change.xml │ │ └── include_guided_password_change_land.xml │ │ ├── raw-night │ │ └── lottie_guided_change_keyboard.json │ │ ├── raw │ │ ├── lottie_guided_change_keyboard.json │ │ └── lottie_guided_change_webcard.json │ │ ├── values-land │ │ └── forwarders.xml │ │ └── values │ │ ├── forwarders.xml │ │ └── strings.xml ├── home-vault-list │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── home │ │ │ └── vaultlist │ │ │ ├── VaultListContent.kt │ │ │ ├── VaultListResourceProvider.kt │ │ │ ├── VaultListScreen.kt │ │ │ ├── VaultListViewModel.kt │ │ │ └── comparator │ │ │ ├── AlphabeticComparator.kt │ │ │ ├── CategoryComparator.kt │ │ │ └── MostRecentComparator.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── home │ └── data │ │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── feature │ │ └── home │ │ └── data │ │ ├── Filter.kt │ │ └── VaultItemsRepository.kt ├── inappautofill │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── tokenizer.json │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── autofill │ │ │ ├── AutoFillBlackListImpl.kt │ │ │ ├── AutofillAnalyzerDef.kt │ │ │ ├── AutofillOrigin.java │ │ │ ├── ClientStateUtil.kt │ │ │ ├── FillRequestHandler.kt │ │ │ ├── SaveRequestHandler.kt │ │ │ ├── actionssources │ │ │ │ ├── model │ │ │ │ │ ├── ActionedFormSource.kt │ │ │ │ │ ├── ActionedFormSourceIcon.kt │ │ │ │ │ └── ActionsSourcesDataProvider.kt │ │ │ │ └── view │ │ │ │ │ ├── ActionsSourcesActivity.kt │ │ │ │ │ ├── ActionsSourcesState.kt │ │ │ │ │ ├── ActionsSourcesViewModel.kt │ │ │ │ │ ├── AutofillFormSourceHolder.kt │ │ │ │ │ ├── AutofillFormSourceViewTypeProviderFactory.kt │ │ │ │ │ └── AutofillFormSourceViewTypeProviderFactoryImpl.kt │ │ │ ├── announcement │ │ │ │ └── KeyboardAutofillService.kt │ │ │ ├── changepassword │ │ │ │ ├── AutoFillChangePasswordConfiguration.kt │ │ │ │ ├── AutofillChangePasswordActivityIntentProvider.kt │ │ │ │ ├── AutofillChangePasswordLogger.kt │ │ │ │ ├── ChangePasswordContract.kt │ │ │ │ ├── ChangePasswordDataProvider.kt │ │ │ │ ├── ChangePasswordDialogFragment.kt │ │ │ │ ├── ChangePasswordState.kt │ │ │ │ ├── ChangePasswordViewModel.kt │ │ │ │ ├── ChangePasswordViewProxy.kt │ │ │ │ ├── domain │ │ │ │ │ ├── AutofillChangePasswordErrors.kt │ │ │ │ │ ├── AutofillChangePasswordResultHandler.kt │ │ │ │ │ ├── AutofillUpdateAccountService.kt │ │ │ │ │ └── CredentialUpdateInfo.kt │ │ │ │ └── view │ │ │ │ │ ├── AskChangePasswordDialogFragment.kt │ │ │ │ │ ├── AskChangePasswordViewProxy.kt │ │ │ │ │ └── AutofillChangePasswordActivity.kt │ │ │ ├── changepause │ │ │ │ ├── ChangePauseContract.kt │ │ │ │ ├── dagger │ │ │ │ │ └── AutofillChangePauseModule.kt │ │ │ │ ├── model │ │ │ │ │ ├── ChangePauseDataProvider.kt │ │ │ │ │ └── ChangePauseModel.kt │ │ │ │ ├── presenter │ │ │ │ │ └── ChangePausePresenter.kt │ │ │ │ ├── services │ │ │ │ │ ├── ChangePauseStrings.kt │ │ │ │ │ └── ChangePauseStringsFromContext.kt │ │ │ │ └── view │ │ │ │ │ ├── ChangePauseFragment.kt │ │ │ │ │ ├── ChangePauseFragmentContract.kt │ │ │ │ │ ├── ChangePauseViewProxy.kt │ │ │ │ │ └── ChangePauseViewTypeProviderFactory.kt │ │ │ ├── createaccount │ │ │ │ ├── AutofillCreateAccountActivityIntentProvider.kt │ │ │ │ ├── AutofillCreateAccountLogger.kt │ │ │ │ ├── CreateAccountDataProvider.kt │ │ │ │ ├── domain │ │ │ │ │ ├── AutofillCreateAccountErrors.kt │ │ │ │ │ ├── AutofillCreateAccountResultHandler.kt │ │ │ │ │ ├── AutofillCreateAccountService.kt │ │ │ │ │ └── CredentialInfo.kt │ │ │ │ └── view │ │ │ │ │ ├── AutofillCreateAccountActivity.kt │ │ │ │ │ ├── CreateAccountDialogFragment.kt │ │ │ │ │ ├── CreateAccountState.kt │ │ │ │ │ └── CreateAccountViewModel.kt │ │ │ ├── dagger │ │ │ │ ├── AutofillApiInternalBindModule.kt │ │ │ │ ├── AutofillApiInternalEntryPoint.kt │ │ │ │ └── AutofillApiInternalModule.kt │ │ │ ├── emptywebsitewarning │ │ │ │ ├── AutofillEmptyWebsiteWarningService.kt │ │ │ │ ├── EmptyWebsiteWarningActivityIntentProvider.kt │ │ │ │ ├── EmptyWebsiteWarningContract.kt │ │ │ │ ├── dagger │ │ │ │ │ ├── AutofillEmptyWebsiteWarningComponent.kt │ │ │ │ │ └── AutofillEmptyWebsiteWarningModule.kt │ │ │ │ ├── domain │ │ │ │ │ ├── EmptyWebsiteWarningDataProvider.kt │ │ │ │ │ └── EmptyWebsiteWarningDialogResponse.kt │ │ │ │ ├── presenter │ │ │ │ │ └── EmptyWebsiteWarningPresenter.kt │ │ │ │ └── view │ │ │ │ │ ├── BottomSheetEmptyWebsiteWarningDialogFragment.kt │ │ │ │ │ ├── EmptyWebsiteWarningActivity.kt │ │ │ │ │ └── EmptyWebsiteWarningViewProxy.kt │ │ │ ├── fillresponse │ │ │ │ ├── AssociatedWebsiteUtils.kt │ │ │ │ ├── ChangePasswordActionIntentProvider.kt │ │ │ │ ├── CreateAccountActionIntentProvider.kt │ │ │ │ ├── DataSetCreator.kt │ │ │ │ ├── DatasetWrapper.kt │ │ │ │ ├── DatasetWrapperBuilder.kt │ │ │ │ ├── EmptyWebsiteWarningIntentProvider.kt │ │ │ │ ├── FillResponseCreator.kt │ │ │ │ ├── FillResponseWrapper.kt │ │ │ │ ├── FillResponseWrapperUtil.kt │ │ │ │ ├── InlinePresentationProvider.kt │ │ │ │ ├── PauseActionIntentProvider.kt │ │ │ │ ├── PhishingWarningIntentProvider.kt │ │ │ │ ├── RemoteViewProvider.kt │ │ │ │ ├── Util.kt │ │ │ │ ├── ViewAllAccountsActionIntentProvider.kt │ │ │ │ └── filler │ │ │ │ │ ├── AuthentifiantFiller.kt │ │ │ │ │ ├── CreditCardFiller.kt │ │ │ │ │ ├── EmailFiller.kt │ │ │ │ │ ├── Filler.kt │ │ │ │ │ ├── OtpCodeFiller.kt │ │ │ │ │ ├── PauseFiller.kt │ │ │ │ │ ├── PhishingWarningFiller.kt │ │ │ │ │ └── ViewAllAccountsFiller.kt │ │ │ ├── frozenautofill │ │ │ │ ├── FrozenAutofillActivity.kt │ │ │ │ ├── FrozenAutofillBottomSheet.kt │ │ │ │ ├── FrozenAutofillState.kt │ │ │ │ └── FrozenAutofillViewModel.kt │ │ │ ├── generatepassword │ │ │ │ ├── AutofillGeneratePasswordLogger.kt │ │ │ │ ├── AutofillGeneratePasswordService.kt │ │ │ │ ├── GeneratePasswordContract.kt │ │ │ │ ├── GeneratePasswordSpecialMode.kt │ │ │ │ ├── GeneratePasswordState.kt │ │ │ │ ├── GeneratePasswordViewModel.kt │ │ │ │ └── GeneratePasswordViewProxy.kt │ │ │ ├── internal │ │ │ │ ├── ApplicationFormSourceDeviceStatus.kt │ │ │ │ ├── AutofillApiEntryPoint.kt │ │ │ │ ├── AutofillFormSourcesStrings.kt │ │ │ │ └── AutofillLimiter.kt │ │ │ ├── linkedservices │ │ │ │ ├── AppMetaDataToLinkedAppsMigration.kt │ │ │ │ └── RememberToLinkedAppsMigration.kt │ │ │ ├── model │ │ │ │ ├── ItemToFill.kt │ │ │ │ └── ItemToFillExtension.kt │ │ │ ├── navigation │ │ │ │ ├── AutofillBottomSheetNavigator.kt │ │ │ │ ├── AutofillBottomSheetNavigatorImpl.kt │ │ │ │ ├── AutofillBottomSheetRootFragment.kt │ │ │ │ ├── AutofillDecisionActivity.kt │ │ │ │ ├── AutofillNavigator.kt │ │ │ │ ├── AutofillNavigatorImpl.kt │ │ │ │ └── WaitForNavigationDecisionFragment.kt │ │ │ ├── passwordendpoint │ │ │ │ └── OsSettingsRedirectionActivity.kt │ │ │ ├── pause │ │ │ │ ├── AskPauseContract.kt │ │ │ │ ├── AutofillPauseActivityIntentProvider.kt │ │ │ │ ├── dagger │ │ │ │ │ └── AutofillAskPauseModule.kt │ │ │ │ ├── model │ │ │ │ │ ├── AskPauseDataProvider.kt │ │ │ │ │ ├── PauseDurations.kt │ │ │ │ │ └── PausedFormSource.kt │ │ │ │ ├── presenter │ │ │ │ │ └── AskPausePresenter.kt │ │ │ │ ├── services │ │ │ │ │ ├── MutexPausedFormSourcesProvider.kt │ │ │ │ │ ├── PausedAutofillLimiter.kt │ │ │ │ │ ├── PausedFormSourcesProvider.kt │ │ │ │ │ ├── PausedFormSourcesRepository.kt │ │ │ │ │ ├── PausedFormSourcesStrings.kt │ │ │ │ │ ├── PausedFormSourcesStringsRepository.kt │ │ │ │ │ └── RemovePauseContract.kt │ │ │ │ └── view │ │ │ │ │ ├── AskPauseDialogContract.kt │ │ │ │ │ ├── AutofillPauseActivity.kt │ │ │ │ │ ├── BottomSheetAskPauseDialogFragment.kt │ │ │ │ │ └── BottomSheetAskPauseViewProxy.kt │ │ │ ├── pausedautofillsettings │ │ │ │ └── PausedAutofillActivity.kt │ │ │ ├── phishing │ │ │ │ ├── AntiPhishingFilesDownloader.kt │ │ │ │ ├── AutofillPhishingActivityIntentProvider.kt │ │ │ │ ├── AutofillPhishingLogger.kt │ │ │ │ ├── AutofillPhishingWarningFragment.kt │ │ │ │ ├── PhishingAttemptLevel.kt │ │ │ │ ├── PhishingWarningActivity.kt │ │ │ │ ├── PhishingWarningDataProvider.kt │ │ │ │ ├── PhishingWarningViewModel.kt │ │ │ │ ├── UrlPhishingClassificationHelper.kt │ │ │ │ └── model │ │ │ │ │ └── PhishingDomainList.kt │ │ │ ├── rememberaccount │ │ │ │ ├── AutofillApiRememberedAccountToaster.kt │ │ │ │ ├── model │ │ │ │ │ ├── FormSourcesDataProvider.kt │ │ │ │ │ ├── FormSourcesDataProviderImpl.kt │ │ │ │ │ └── RememberedFormSource.kt │ │ │ │ ├── services │ │ │ │ │ ├── FormSourceAuthentifiantLinker.kt │ │ │ │ │ └── TriggerRememberViewAllAccount.kt │ │ │ │ └── view │ │ │ │ │ ├── AutofillLinkServiceFragment.kt │ │ │ │ │ ├── AutofillLinkServiceLogger.kt │ │ │ │ │ ├── AutofillLinkServiceState.kt │ │ │ │ │ ├── AutofillLinkServiceViewModel.kt │ │ │ │ │ └── AutofillLinkServiceViewProxy.kt │ │ │ ├── request │ │ │ │ ├── autofill │ │ │ │ │ ├── database │ │ │ │ │ │ └── ItemLoader.kt │ │ │ │ │ └── logger │ │ │ │ │ │ └── LoggerUtil.kt │ │ │ │ └── save │ │ │ │ │ ├── AutofillSaveRequestLogger.kt │ │ │ │ │ ├── SaveAuthentifiantRequest.kt │ │ │ │ │ ├── SaveCallback.kt │ │ │ │ │ ├── SaveCreditCardRequest.kt │ │ │ │ │ ├── SaveRequest.kt │ │ │ │ │ └── SaveRequestActivity.kt │ │ │ ├── securitywarnings │ │ │ │ ├── AutofillSecurityWarningsLogger.kt │ │ │ │ ├── data │ │ │ │ │ ├── AutofillFormSourceUtil.kt │ │ │ │ │ ├── SecurityWarningAction.kt │ │ │ │ │ ├── SecurityWarningType.kt │ │ │ │ │ └── SecurityWarningsJson.kt │ │ │ │ ├── model │ │ │ │ │ ├── ExternalRepositoryRememberSecurityWarningsService.kt │ │ │ │ │ ├── RememberSecurityWarning.kt │ │ │ │ │ ├── RememberSecurityWarningsRepository.kt │ │ │ │ │ ├── RememberSecurityWarningsService.kt │ │ │ │ │ ├── SecurityWarningsProcessor.kt │ │ │ │ │ └── SecurityWarningsView.kt │ │ │ │ └── view │ │ │ │ │ ├── BottomSheetMismatchSecurityWarningDialogFragment.kt │ │ │ │ │ ├── BottomSheetUnknownSecurityWarningDialogFragment.kt │ │ │ │ │ ├── IncorrectSecurityWarningDialogFragment.kt │ │ │ │ │ └── SecurityWarningsViewProxy.kt │ │ │ ├── totp │ │ │ │ ├── AutofillTotpCopyService.kt │ │ │ │ └── TotpResult.kt │ │ │ ├── ui │ │ │ │ ├── AutoFillResponseActivity.kt │ │ │ │ ├── AutofillPerformedCallback.kt │ │ │ │ ├── FillSuggestionToActivityResult.kt │ │ │ │ ├── SmsOtpAutofillActivity.kt │ │ │ │ └── SmsOtpAutofillBottomSheet.kt │ │ │ ├── unlockfill │ │ │ │ ├── AutofillAuthActivity.kt │ │ │ │ ├── AutofillAuthChangePasswordActivity.kt │ │ │ │ └── UnlockedAuthentifiant.kt │ │ │ ├── util │ │ │ │ ├── AutoFillFormSourceIdentifier.kt │ │ │ │ ├── AutofillLogUtil.kt │ │ │ │ ├── AutofillNavigationService.kt │ │ │ │ ├── AutofillSummaryExt.kt │ │ │ │ ├── DashlaneInlinePresentationBuilder.kt │ │ │ │ ├── SaveInfoWrapper.kt │ │ │ │ └── SmsOtpPossibleChecker.kt │ │ │ └── viewallaccounts │ │ │ │ ├── AutofillSearch.kt │ │ │ │ ├── AutofillViewAllAccountsLogger.kt │ │ │ │ ├── AutofillViewAllItemsActivityIntentProvider.kt │ │ │ │ ├── services │ │ │ │ └── ViewAllAccountSelectionNotifier.kt │ │ │ │ └── view │ │ │ │ ├── AuthentifiantSearchViewTypeProviderFactory.kt │ │ │ │ ├── AutofillViewAllItemsActivity.kt │ │ │ │ ├── SearchAuthentifiantDialogResponse.kt │ │ │ │ ├── ViewAllItemsDialogFragment.kt │ │ │ │ ├── ViewAllItemsSecurityWarningsViewProxy.kt │ │ │ │ ├── ViewAllItemsState.kt │ │ │ │ ├── ViewAllItemsViewModel.kt │ │ │ │ └── ViewAllItemsViewProxy.kt │ │ │ └── autofillapi │ │ │ └── AutoFillAPIService.kt │ │ └── res │ │ ├── drawable │ │ ├── background_link_service.xml │ │ ├── background_password_limit_body.xml │ │ ├── handle_round_rectangle_shape.xml │ │ ├── ic_arrow_down.xml │ │ ├── ic_auto_login_outlinedauto_login_empty_state.xml │ │ ├── ic_autofill_change_password.xml │ │ ├── ic_autofill_create_account_add.xml │ │ ├── ic_close_outlinedauto_login_error_state.xml │ │ ├── ic_help_outlined.xml │ │ ├── ic_inline_add_account.xml │ │ ├── ic_inline_change_password.xml │ │ ├── ic_inline_email.xml │ │ ├── ic_inline_login.xml │ │ ├── ic_inline_onboarding.xml │ │ ├── ic_inline_phishing_high.xml │ │ ├── ic_inline_phishing_moderate.xml │ │ ├── ic_inline_sms_otp.xml │ │ ├── ic_inline_view_all_account.xml │ │ ├── ic_notification_action_code_copy.xml │ │ ├── ic_notification_action_dismiss.xml │ │ ├── ic_vault_outlined.xml │ │ ├── ic_warning_outlined.xml │ │ └── illu_mobile_onboarding_vault.xml │ │ ├── layout-land │ │ ├── autofill_list_empty_state.xml │ │ ├── autofill_list_error_state.xml │ │ └── bottom_sheet_form_source_pause_dialog_fragment.xml │ │ ├── layout │ │ ├── activity_autofill_actions_sources.xml │ │ ├── activity_revert_actions.xml │ │ ├── activity_transparent_navigation.xml │ │ ├── ask_change_password_bottom_sheet_dialog.xml │ │ ├── autofill_list_empty_state.xml │ │ ├── autofill_list_error_state.xml │ │ ├── bottom_sheet_change_password_layout.xml │ │ ├── bottom_sheet_create_account_layout.xml │ │ ├── bottom_sheet_empty_website_warning_dialog_fragment.xml │ │ ├── bottom_sheet_form_source_pause_dialog_fragment.xml │ │ ├── bottom_sheet_link_service.xml │ │ ├── dialog_keyboard_autofill_announcement.xml │ │ ├── fragment_pause_switch.xml │ │ ├── fragment_unlink_accounts.xml │ │ ├── include_generate_password.xml │ │ ├── layout_bottom_sheet_sms.xml │ │ ├── list_change_password_item.xml │ │ ├── list_create_account_item.xml │ │ ├── list_dashlane_login_item.xml │ │ ├── list_dashlane_pause_item.xml │ │ ├── list_invisible_item.xml │ │ ├── list_item_autofill_api.xml │ │ ├── list_item_autofill_otp.xml │ │ ├── list_item_scrolling.xml │ │ ├── list_linked_accounts_item.xml │ │ ├── list_view_all_accounts_item.xml │ │ ├── list_view_all_accounts_item_empty.xml │ │ ├── phishing_warning_autofill.xml │ │ ├── phishing_warning_education.xml │ │ ├── security_warning_incorrect_modal_dialog.xml │ │ ├── security_warning_mismatch_bottom_sheet_dialog.xml │ │ ├── security_warning_unknown_bottom_sheet_dialog.xml │ │ └── view_all_items_dialog_fragment.xml │ │ ├── navigation │ │ ├── autofill_activity_navigation.xml │ │ └── autofill_bottom_sheet_dialog_navigation.xml │ │ ├── values-land │ │ └── strings.xml │ │ ├── values │ │ ├── autofill_actioned_sources_strings.xml │ │ ├── autofill_change_password_strings.xml │ │ ├── autofill_change_pause_strings.xml │ │ ├── autofill_create_account_strings.xml │ │ ├── autofill_dropdown_suggestions.xml │ │ ├── autofill_empty_website_warning.xml │ │ ├── autofill_frozen_strings.xml │ │ ├── autofill_generate_password_strings.xml │ │ ├── autofill_inline_suggestions.xml │ │ ├── autofill_keyboard_announcement.xml │ │ ├── autofill_link_services_strings.xml │ │ ├── autofill_phishing_warning_strings.xml │ │ ├── autofill_revert_actions_strings.xml │ │ ├── autofill_security_warnings_strings.xml │ │ ├── autofill_unlink_accounts_strings.xml │ │ └── strings.xml │ │ └── xml-v31 │ │ └── autofill_service_config.xml ├── m2w │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── m2w │ │ │ ├── M2wActivityResultContract.kt │ │ │ ├── M2wConnectActivity.kt │ │ │ ├── M2wConnectViewModel.kt │ │ │ ├── M2wConnectViewModelContract.kt │ │ │ ├── M2wConnectViewProxy.kt │ │ │ ├── M2wIntentCoordinator.kt │ │ │ ├── M2wIntroActivity.kt │ │ │ └── M2wIntroPresenter.kt │ │ └── res │ │ ├── drawable │ │ ├── logo_m2w.xml │ │ └── m2w_url_background.xml │ │ ├── layout-land │ │ └── include_m2w_connect_url.xml │ │ ├── layout │ │ ├── activity_m2w_connect.xml │ │ └── include_m2w_connect_url.xml │ │ └── values │ │ └── strings.xml ├── premium │ ├── sampledata │ │ └── current_plan_benefits │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── premium │ │ │ ├── current │ │ │ ├── CurrentPlanActivity.kt │ │ │ ├── CurrentPlanDataRepository.kt │ │ │ ├── CurrentPlanLogger.kt │ │ │ ├── CurrentPlanState.kt │ │ │ ├── CurrentPlanViewModel.kt │ │ │ ├── DarkWebMonitoringInfoState.kt │ │ │ ├── model │ │ │ │ ├── CurrentPlan.kt │ │ │ │ └── CurrentPlanType.kt │ │ │ ├── other │ │ │ │ ├── CurrentBenefitsBuilder.kt │ │ │ │ ├── CurrentPlanStatusProvider.kt │ │ │ │ └── CurrentPlanStatusProviderImpl.kt │ │ │ └── ui │ │ │ │ ├── CurrentBenefitItem.kt │ │ │ │ └── DarkWebMonitoringBottomSheetDialogFragment.kt │ │ │ ├── enddate │ │ │ ├── EndDateFormatter.kt │ │ │ ├── FormattedEndDate.kt │ │ │ └── FormattedEndDateProvider.kt │ │ │ ├── offer │ │ │ ├── OffersModule.kt │ │ │ ├── common │ │ │ │ ├── InAppBillingDebugPreference.kt │ │ │ │ ├── OffersLogger.kt │ │ │ │ ├── OffersLoggerImpl.kt │ │ │ │ ├── ProductDetailsManager.kt │ │ │ │ ├── ProductDetailsManagerImpl.kt │ │ │ │ ├── PurchaseCheckingCoordinator.kt │ │ │ │ ├── StoreOffersFormatter.kt │ │ │ │ ├── StoreOffersFormatterImpl.kt │ │ │ │ ├── UserBenefitStatusProvider.kt │ │ │ │ ├── UserBenefitStatusProviderImpl.kt │ │ │ │ ├── YearlySavingCalculator.kt │ │ │ │ └── model │ │ │ │ │ ├── FormattedStoreOffer.kt │ │ │ │ │ ├── IntroOfferType.kt │ │ │ │ │ ├── OfferType.kt │ │ │ │ │ ├── Offers.kt │ │ │ │ │ ├── ProductDetailsWrapper.kt │ │ │ │ │ ├── ProductDetailsWrapperUtils.kt │ │ │ │ │ ├── ProductPeriodicity.kt │ │ │ │ │ ├── PromotionTypeUtils.kt │ │ │ │ │ └── UserBenefitStatus.kt │ │ │ ├── details │ │ │ │ ├── BenefitsBuilder.kt │ │ │ │ ├── ConflictingBillingPlatformProvider.kt │ │ │ │ ├── OfferDetailsDataProvider.kt │ │ │ │ ├── OfferDetailsFragment.kt │ │ │ │ ├── OfferDetailsScreen.kt │ │ │ │ ├── OfferDetailsViewModel.kt │ │ │ │ ├── OfferDetailsViewState.kt │ │ │ │ ├── TransitionHelper.kt │ │ │ │ └── ui │ │ │ │ │ ├── ActionBottomBar.kt │ │ │ │ │ ├── BenefitRow.kt │ │ │ │ │ ├── BenefitsList.kt │ │ │ │ │ ├── DisclaimerContent.kt │ │ │ │ │ └── PurchaseButton.kt │ │ │ └── list │ │ │ │ ├── OfferListContract.kt │ │ │ │ ├── OfferListDataProvider.kt │ │ │ │ ├── OfferListPresenter.kt │ │ │ │ ├── OfferListViewProxy.kt │ │ │ │ ├── OffersBuilder.kt │ │ │ │ ├── model │ │ │ │ ├── CurrentOffer.kt │ │ │ │ ├── DiscountCallOut.kt │ │ │ │ ├── OfferOverview.kt │ │ │ │ └── Pricing.kt │ │ │ │ ├── ui │ │ │ │ ├── OfferCard.kt │ │ │ │ └── PricingBox.kt │ │ │ │ └── view │ │ │ │ ├── OfferListFragment.kt │ │ │ │ └── OffersActivity.kt │ │ │ ├── paywall │ │ │ ├── common │ │ │ │ ├── PaywallActivity.kt │ │ │ │ ├── PaywallIntroScreen.kt │ │ │ │ ├── PaywallIntroState.kt │ │ │ │ ├── PaywallLogger.kt │ │ │ │ ├── PaywallLoggerImpl.kt │ │ │ │ ├── PaywallScreen.kt │ │ │ │ └── PaywallViewModel.kt │ │ │ ├── dagger │ │ │ │ └── PaywallModule.kt │ │ │ ├── darkwebmonitoring │ │ │ │ └── PaywallScreenDWM.kt │ │ │ ├── frozenaccount │ │ │ │ └── PaywallScreenFrozenAccount.kt │ │ │ ├── trialended │ │ │ │ ├── TrialEndedFragment.kt │ │ │ │ ├── TrialEndedScreen.kt │ │ │ │ └── TrialEndedViewModel.kt │ │ │ └── vpn │ │ │ │ └── PaywallScreenVPN.kt │ │ │ └── utils │ │ │ ├── PlansUtils.kt │ │ │ └── PriceUtils.kt │ │ └── res │ │ ├── drawable-nodpi │ │ └── illu_premium_dwm.png │ │ ├── drawable │ │ ├── current_plan_header_background.xml │ │ ├── ic_action_item_premium_star.xml │ │ ├── ic_check_offer_details_benefit_icon.xml │ │ ├── ic_current_benefit.xml │ │ ├── ic_current_benefit_more_info.xml │ │ ├── ic_current_plan_diamond.xml │ │ ├── ic_paywall_dwm.xml │ │ ├── ic_paywall_password_limit.xml │ │ ├── ic_paywall_secure_notes.xml │ │ ├── ic_paywall_sharing.xml │ │ ├── ic_paywall_vpn.xml │ │ ├── ic_vpn_paywall_shield.xml │ │ ├── ic_vpn_paywall_web.xml │ │ └── logo_hotspot_shield_seek.xml │ │ ├── layout-w480dp │ │ └── current_plan_header_background_item.xml │ │ ├── layout │ │ ├── activity_current_plan.xml │ │ ├── activity_offers.xml │ │ ├── bottom_sheet_more_info_dark_web_monitoring.xml │ │ ├── current_plan_benefit_item.xml │ │ ├── current_plan_header_background_item.xml │ │ ├── dialog_trial_awareness.xml │ │ ├── fragment_offer_details.xml │ │ ├── fragment_offer_list.xml │ │ ├── offer_details_benefit_item.xml │ │ ├── offer_details_content.xml │ │ ├── offer_details_warning_item.xml │ │ ├── offer_empty_screen.xml │ │ ├── offer_list_container.xml │ │ ├── offer_list_content.xml │ │ └── offer_list_tab_item.xml │ │ ├── navigation │ │ └── offers_navigation.xml │ │ ├── raw │ │ └── lottie_free_trial_started.json │ │ └── values │ │ ├── strings_current_plan.xml │ │ ├── strings_end_date.xml │ │ ├── strings_intro_offers_action_item.xml │ │ ├── strings_intro_offers_announcement_dialog.xml │ │ ├── strings_offers.xml │ │ ├── strings_paywall.xml │ │ ├── strings_plans.xml │ │ └── widgets.xml ├── secrettransfer-qr │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── secrettransfer │ │ │ └── qrcode │ │ │ ├── QRCode.kt │ │ │ ├── QrCodeGenerator.kt │ │ │ ├── QrCodeScreen.kt │ │ │ ├── QrCodeState.kt │ │ │ ├── QrCodeUseCase.kt │ │ │ └── QrCodeViewModel.kt │ │ └── res │ │ └── values │ │ ├── qr_code_strings.xml │ │ ├── secret_transfer_strings.xml │ │ └── string_accessibility_label.xml ├── secrettransfer │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── secrettransfer │ │ │ └── view │ │ │ ├── SecretTransferFragment.kt │ │ │ ├── SecretTransferState.kt │ │ │ ├── SecretTransferViewModel.kt │ │ │ ├── intro │ │ │ ├── SecretTransferIntroScreen.kt │ │ │ ├── SecretTransferIntroState.kt │ │ │ └── SecretTransferIntroViewModel.kt │ │ │ ├── success │ │ │ └── SecretTransferSuccess.kt │ │ │ └── universal │ │ │ ├── passphrase │ │ │ └── PassphraseVerificationScreen.kt │ │ │ └── pending │ │ │ ├── SecretTransferPendingScreen.kt │ │ │ ├── SecretTransferPendingState.kt │ │ │ └── SecretTransferPendingViewModel.kt │ │ └── res │ │ ├── navigation │ │ └── secret_transfer_navigation.xml │ │ └── values │ │ └── strings_secret_transfer.xml ├── secure-archive │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── securearchive │ │ │ ├── BackupActivity.kt │ │ │ ├── BackupActivityIntents.kt │ │ │ ├── BackupCoordinatorImpl.kt │ │ │ ├── BackupLogger.kt │ │ │ ├── BackupOperation.kt │ │ │ ├── BackupViewModel.kt │ │ │ ├── BackupViewModelContract.kt │ │ │ ├── BackupViewProxy.kt │ │ │ ├── BackupViewState.kt │ │ │ ├── SecureArchiveDataImporter.kt │ │ │ └── SecureArchiveManager.kt │ │ └── res │ │ ├── layout │ │ └── activity_backup.xml │ │ └── values │ │ └── strings_secure_archive.xml ├── sharingv2 │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ ├── sharing │ │ ├── SharingKeysHelperImpl.kt │ │ ├── SharingSyncCommunicator.kt │ │ ├── SharingSyncCommunicatorImpl.kt │ │ ├── exception │ │ │ └── Exceptions.kt │ │ ├── internal │ │ │ ├── builder │ │ │ │ └── request │ │ │ │ │ ├── AcceptCollectionRequestBuilder.kt │ │ │ │ │ ├── AcceptItemGroupRequestForUserBuilder.kt │ │ │ │ │ ├── AcceptUserGroupRequestBuilder.kt │ │ │ │ │ ├── AddItemsGroupsToCollectionRequestBuilder.kt │ │ │ │ │ ├── CollectionRequestsHelper.kt │ │ │ │ │ ├── CreateCollectionRequestBuilder.kt │ │ │ │ │ ├── CreateItemGroupRequestBuilder.kt │ │ │ │ │ ├── CreateItemGroupRequestsHelper.kt │ │ │ │ │ ├── CreateMultipleItemGroupsRequestBuilder.kt │ │ │ │ │ ├── InviteCollectionMembersRequestBuilder.kt │ │ │ │ │ ├── InviteItemGroupMembersRequestBuilder.kt │ │ │ │ │ ├── SharingRequestRepository.kt │ │ │ │ │ ├── UpdateItemGroupMembersRequestBuilder.kt │ │ │ │ │ └── UpdateUserGroupUsersRequestBuilder.kt │ │ │ └── model │ │ │ │ └── RequestModels.kt │ │ ├── model │ │ │ ├── CollectionUtils.kt │ │ │ ├── ItemGroupUtils.kt │ │ │ └── SharingModelUtils.kt │ │ ├── service │ │ │ └── FindUsersDataProvider.kt │ │ └── util │ │ │ ├── AuditLogHelper.kt │ │ │ ├── GroupKeyLazy.kt │ │ │ ├── GroupVerification.kt │ │ │ ├── GroupVerificationExceptions.kt │ │ │ ├── ProposeSignatureVerification.kt │ │ │ ├── SharingCryptographyExtension.kt │ │ │ └── SharingCryptographyHelper.kt │ │ └── util │ │ ├── GsonJsonSerialization.java │ │ └── JsonSerialization.java ├── vpn-third-party │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── vpn │ │ │ └── thirdparty │ │ │ ├── GetStartedVpnBottomSheetDialogFragment.kt │ │ │ ├── LearnMoreAboutVpnBottomSheetDialogFragment.kt │ │ │ ├── VpnB2bIntroActivity.kt │ │ │ ├── VpnThirdPartyAuthentifiantHelper.kt │ │ │ ├── VpnThirdPartyContract.kt │ │ │ ├── VpnThirdPartyDataProvider.kt │ │ │ ├── VpnThirdPartyLogger.kt │ │ │ ├── VpnThirdPartyPresenter.kt │ │ │ ├── VpnThirdPartyViewProxy.kt │ │ │ └── activate │ │ │ ├── VpnThirdPartyActivateAccountActivity.kt │ │ │ ├── VpnThirdPartyActivateAccountContract.kt │ │ │ ├── VpnThirdPartyActivateAccountDataProvider.kt │ │ │ ├── VpnThirdPartyActivateAccountEmailErrorFragment.kt │ │ │ ├── VpnThirdPartyActivateAccountErrorFragment.kt │ │ │ ├── VpnThirdPartyActivateAccountErrorListener.kt │ │ │ ├── VpnThirdPartyActivateAccountLoadingFragment.kt │ │ │ ├── VpnThirdPartyActivateAccountPresenter.kt │ │ │ ├── VpnThirdPartyActivateAccountSuccessFragment.kt │ │ │ ├── VpnThirdPartyActivateAccountViewProxy.kt │ │ │ └── VpnThirdPartySetupEmailFragment.kt │ │ └── res │ │ ├── drawable │ │ ├── ic_vpn_activated.xml │ │ ├── ic_vpn_activation_error.xml │ │ └── vpn_third_party_account_background.xml │ │ ├── layout │ │ ├── activity_vpn_third_party_activate_account.xml │ │ ├── bottom_sheet_vpn_third_party_get_started.xml │ │ ├── bottom_sheet_vpn_third_party_learn_more.xml │ │ ├── fragment_vpn_third_party.xml │ │ ├── fragment_vpn_third_party_activate_account_email_error.xml │ │ ├── fragment_vpn_third_party_activate_account_error.xml │ │ ├── fragment_vpn_third_party_activate_account_loading.xml │ │ ├── fragment_vpn_third_party_activate_account_success.xml │ │ ├── fragment_vpn_third_party_setup_email.xml │ │ ├── header_vpn_third_party_question_1.xml │ │ ├── header_vpn_third_party_question_2.xml │ │ ├── header_vpn_third_party_question_3.xml │ │ ├── include_vpn_third_party_account.xml │ │ ├── include_vpn_third_party_faq.xml │ │ ├── item_vpn_third_party_question_1.xml │ │ ├── item_vpn_third_party_question_2.xml │ │ └── item_vpn_third_party_question_3.xml │ │ ├── navigation │ │ └── vpn_third_party_activate_account_navigation.xml │ │ └── values │ │ └── strings.xml └── welcome │ └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── dashlane │ │ └── welcome │ │ ├── WelcomeActivity.kt │ │ └── WelcomePagerAdapter.kt │ └── res │ ├── layout-h520dp │ └── item_welcome.xml │ ├── layout │ ├── activity_welcome.xml │ └── item_welcome.xml │ ├── raw-night │ ├── lottie_welcome_encryption.json │ └── lottie_welcome_trust.json │ ├── raw │ ├── lottie_welcome_alert.json │ ├── lottie_welcome_encryption.json │ ├── lottie_welcome_trust.json │ └── lottie_welcome_trust_background.json │ ├── values-sw600dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── libraries ├── abtesting │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── abtesting │ │ ├── AbTest.kt │ │ ├── AbTestStatus.kt │ │ ├── LocalAbTest.kt │ │ ├── LocalAbTestManager.kt │ │ ├── OfflineExperimentReporter.kt │ │ ├── RemoteAbTestManager.kt │ │ └── RemoteConfiguration.kt ├── account-manager │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── dashlane │ │ └── authentication │ │ └── accountsmanager │ │ ├── AccountsManager.kt │ │ ├── AccountsManagerPassword.kt │ │ ├── DashlaneAuthenticator.kt │ │ └── DashlaneAuthenticatorService.kt ├── accountrecoverykey-domain │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── accountrecoverykey │ │ ├── AccountRecoveryKeyRepository.kt │ │ └── AccountRecoveryKeySettingStateRefresher.kt ├── accountstatus │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── accountstatus │ │ ├── AccountStatus.kt │ │ ├── AccountStatusPostUpdateManager.kt │ │ ├── AccountStatusProvider.kt │ │ ├── AccountStatusRepository.kt │ │ ├── AccountStatusService.kt │ │ ├── AccountStatusStorage.kt │ │ ├── hilt │ │ └── AccountStatusModule.kt │ │ ├── premiumstatus │ │ ├── DeviceNumberUpdater.kt │ │ └── PremiumStatusUtils.kt │ │ ├── subscription │ │ └── SubscriptionInfoUtils.kt │ │ └── subscriptioncode │ │ └── SubscriptionCodeRepository.kt ├── app-events │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ ├── event │ │ └── AppEvent.kt │ │ └── events │ │ ├── AppEvents.kt │ │ └── BroadcastConstants.kt ├── authentication │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── authentication │ │ │ ├── AuthenticationComponent.kt │ │ │ ├── AuthenticationCryptographyUtils.kt │ │ │ ├── AuthenticationException.kt │ │ │ ├── AuthenticationSecondFactor.kt │ │ │ ├── CipheredBackupToken.kt │ │ │ ├── DataLossTrackingLogger.kt │ │ │ ├── DeviceRegistrationInfo.kt │ │ │ ├── LoginDataReset.kt │ │ │ ├── LoginDataResetImpl.kt │ │ │ ├── RegisteredUserDevice.kt │ │ │ ├── RemoteKeyFactory.kt │ │ │ ├── SecurityFeature.kt │ │ │ ├── Settings.kt │ │ │ ├── SettingsFactory.kt │ │ │ ├── SettingsFactoryImpl.kt │ │ │ ├── SsoServerKeyFactory.kt │ │ │ ├── TermsOfService.kt │ │ │ ├── UnauthenticatedUser.kt │ │ │ ├── UserStorage.kt │ │ │ ├── UserStorageImpl.kt │ │ │ ├── UuidFactory.kt │ │ │ ├── UuidFactoryImpl.kt │ │ │ ├── create │ │ │ ├── AccountCreationEmailRepository.kt │ │ │ ├── AccountCreationEmailRepositoryImpl.kt │ │ │ ├── AccountCreationRepository.kt │ │ │ ├── AccountCreationRepositoryImpl.kt │ │ │ └── AccountCreator.kt │ │ │ ├── hilt │ │ │ ├── AuthenticationLocalKeyModule.kt │ │ │ └── LoginAuthModule.kt │ │ │ ├── localkey │ │ │ ├── AuthenticationLocalKeyRepository.kt │ │ │ └── AuthenticationLocalKeyRepositoryImpl.kt │ │ │ ├── login │ │ │ ├── AuthenticationAuthTicketHelper.kt │ │ │ ├── AuthenticationAuthTicketHelperImpl.kt │ │ │ ├── AuthenticationDeviceRepository.kt │ │ │ ├── AuthenticationDeviceRepositoryImpl.kt │ │ │ ├── AuthenticationEmailRepository.kt │ │ │ ├── AuthenticationEmailRepositoryImpl.kt │ │ │ ├── AuthenticationPasswordRepository.kt │ │ │ ├── AuthenticationPasswordRepositoryImpl.kt │ │ │ ├── AuthenticationSecondFactoryRepository.kt │ │ │ ├── AuthenticationSecondFactoryRepositoryImpl.kt │ │ │ ├── AuthenticationSecretTransferRepository.kt │ │ │ ├── AuthenticationSsoRepository.kt │ │ │ ├── AuthenticationSsoRepositoryImpl.kt │ │ │ ├── DeviceRegistrationInfoUtil.kt │ │ │ └── SsoInfo.kt │ │ │ └── sso │ │ │ ├── GetSsoInfoResult.kt │ │ │ ├── GetUserSsoInfoActivity.kt │ │ │ ├── SelfHostedSsoHelper.kt │ │ │ ├── confidential │ │ │ ├── NitroSsoInfoViewModel.kt │ │ │ └── webview │ │ │ │ ├── LimitedWebChromeClient.kt │ │ │ │ ├── NitroSsoWebView.kt │ │ │ │ └── NitroSsoWebViewClient.kt │ │ │ └── utils │ │ │ ├── UrlUtils.kt │ │ │ └── UserSsoInfo.kt │ │ └── res │ │ └── values │ │ └── view_id.xml ├── barcodescanner │ ├── .gitignore │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── barcodescanner │ │ │ ├── BarCodeCaptureActivity.kt │ │ │ └── CameraXViewModel.kt │ │ └── res │ │ ├── layout-land │ │ └── activity_barcode_scan.xml │ │ └── layout │ │ └── activity_barcode_scan.xml ├── braze │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── braze │ │ │ ├── BrazeConstants.kt │ │ │ ├── BrazeInAppMessage.kt │ │ │ ├── BrazeInAppMessageSubscriber.kt │ │ │ └── BrazeWrapper.kt │ │ └── res │ │ └── layout │ │ └── fragment_in_app_message.xml ├── breach │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── breach │ │ ├── Breach.kt │ │ ├── BreachService.kt │ │ ├── BreachServiceImpl.kt │ │ ├── BreachWithOriginalJson.kt │ │ └── GetFileBreachesService.kt ├── change-master-password │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── changemasterpassword │ │ └── MasterPasswordChanger.kt ├── common-app │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── common │ │ └── app │ │ └── hilt │ │ ├── CommonApplicationContextModule.kt │ │ ├── CryptographyModule.kt │ │ ├── DeviceInfoModule.kt │ │ └── MoshiProvider.kt ├── darkweb-monitoring │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── darkweb │ │ ├── CipheredInfo.kt │ │ ├── DarkWebEmailStatus.kt │ │ ├── DarkWebMonitoringCryptography.kt │ │ ├── DarkWebMonitoringLeakedPasswordsAnalysis.kt │ │ └── DarkWebMonitoringManager.kt ├── device │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── device │ │ ├── DeviceInfoRepository.kt │ │ └── DeviceInfoRepositoryImpl.kt ├── frozenaccount │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── frozenaccount │ │ │ ├── FrozenStateManager.kt │ │ │ ├── dagger │ │ │ └── FrozenAccountModule.kt │ │ │ └── tracking │ │ │ └── FrozenStateLogger.kt │ │ └── res │ │ └── values │ │ ├── strings_frozen_account.xml │ │ └── strings_trial_ended.xml ├── hardwaresecurity │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── hardwaresecurity │ │ │ ├── BiometricActivationStatus.kt │ │ │ ├── BiometricAuthModule.kt │ │ │ ├── CryptoObjectHelper.kt │ │ │ └── SecurityHelper.kt │ │ └── res │ │ └── values │ │ └── strings_security.xml ├── inappbilling │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── inappbilling │ │ ├── BillingClientUtils.kt │ │ ├── BillingManager.kt │ │ ├── BillingManagerImpl.kt │ │ ├── ConnectionScope.kt │ │ ├── ConnectionScopeImpl.kt │ │ ├── ServiceResult.kt │ │ └── UpdateReference.kt ├── lock │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── lock │ │ ├── LockManager.kt │ │ ├── LockSelfCheckerImpl.kt │ │ ├── LockTimeManagerImpl.kt │ │ ├── LockValidator.kt │ │ └── LockWatcherImpl.kt ├── navigable-bottom-sheet │ ├── README.md │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── bottomnavigation │ │ │ ├── NavigableBottomSheetDialogFragment.kt │ │ │ ├── NavigableBottomSheetDialogFragmentCanceledListener.kt │ │ │ ├── NavigableBottomSheetFragment.kt │ │ │ ├── activity │ │ │ └── NavigableBottomSheetActivity.kt │ │ │ └── delegatenavigation │ │ │ └── DelegateNavigationBottomSheetFragment.kt │ │ └── res │ │ ├── layout │ │ └── navigable_bottom_sheet_dialog_fragment.xml │ │ ├── navigation │ │ └── navigable_bottom_sheet_dialog_navigation.xml │ │ └── values │ │ └── ids.xml ├── nfccardreader │ ├── README.md │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── github │ │ │ └── devnied │ │ │ └── emvnfccard │ │ │ ├── enums │ │ │ ├── CommandEnum.java │ │ │ ├── EmvCardScheme.java │ │ │ ├── SwEnum.java │ │ │ ├── TagTypeEnum.java │ │ │ └── TagValueTypeEnum.java │ │ │ ├── exception │ │ │ ├── CommunicationException.java │ │ │ └── TlvException.java │ │ │ ├── iso7816emv │ │ │ ├── ByteArrayWrapper.java │ │ │ ├── EmvTags.java │ │ │ ├── ITag.java │ │ │ ├── ITerminal.java │ │ │ ├── TLV.java │ │ │ ├── TagAndLength.java │ │ │ ├── TerminalTransactionQualifiers.java │ │ │ └── impl │ │ │ │ ├── DefaultTerminalImpl.java │ │ │ │ └── TagImpl.java │ │ │ ├── model │ │ │ ├── AbstractData.java │ │ │ ├── Afl.java │ │ │ ├── Application.java │ │ │ ├── CPLC.java │ │ │ ├── EmvCard.java │ │ │ ├── EmvTrack1.java │ │ │ ├── EmvTrack2.java │ │ │ ├── EmvTransactionRecord.java │ │ │ ├── Service.java │ │ │ └── enums │ │ │ │ ├── ApplicationStepEnum.java │ │ │ │ ├── CardStateEnum.java │ │ │ │ ├── CountryCodeEnum.java │ │ │ │ ├── CurrencyEnum.java │ │ │ │ ├── IKeyEnum.java │ │ │ │ ├── ServiceCode1Enum.java │ │ │ │ ├── ServiceCode2Enum.java │ │ │ │ ├── ServiceCode3Enum.java │ │ │ │ └── TransactionTypeEnum.java │ │ │ ├── parser │ │ │ ├── EmvTemplate.java │ │ │ ├── IParser.java │ │ │ ├── IProvider.java │ │ │ ├── apdu │ │ │ │ ├── IFile.java │ │ │ │ ├── annotation │ │ │ │ │ ├── AnnotationData.java │ │ │ │ │ ├── AnnotationUtils.java │ │ │ │ │ └── Data.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractByteBean.java │ │ │ │ │ └── DataFactory.java │ │ │ └── impl │ │ │ │ ├── AbstractParser.java │ │ │ │ ├── EmvParser.java │ │ │ │ ├── GeldKarteParser.java │ │ │ │ └── ProviderWrapper.java │ │ │ ├── reader │ │ │ └── TlvInputStream.kt │ │ │ └── utils │ │ │ ├── AtrUtils.java │ │ │ ├── BitUtils.java │ │ │ ├── BytesUtils.java │ │ │ ├── CPLCUtils.java │ │ │ ├── CommandApdu.java │ │ │ ├── EnumUtils.java │ │ │ ├── ResponseUtils.java │ │ │ ├── TlvUtil.java │ │ │ └── TrackUtils.java │ │ └── resources │ │ └── smartcard_list.txt ├── nitro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── nitro │ │ ├── AttestationDocument.kt │ │ ├── AttestationValidator.kt │ │ ├── AttestationValidatorImpl.kt │ │ ├── CoseSign1.kt │ │ ├── Nitro.kt │ │ ├── NitroException.kt │ │ ├── NitroImpl.kt │ │ ├── NitroModule.kt │ │ ├── api │ │ ├── NitroApiClientImpl.kt │ │ ├── NitroApiProxyClientImpl.kt │ │ └── tools │ │ │ ├── CloudflareNitroHeaderInterceptor.kt │ │ │ └── NitroUtils.kt │ │ ├── cryptography │ │ ├── NitroSecretStreamClient.kt │ │ ├── NitroSecretStreamClientImpl.kt │ │ ├── SecretStreamClientInfo.kt │ │ ├── SecretStreamServerInfo.kt │ │ ├── SecretStreamStates.kt │ │ └── sodium │ │ │ ├── SodiumCryptography.kt │ │ │ ├── SodiumModule.kt │ │ │ └── keys │ │ │ ├── ClientKeyPair.kt │ │ │ ├── KeyExchangeKeyPair.kt │ │ │ └── ServerKeyPair.kt │ │ ├── hilt │ │ └── NitroModule.kt │ │ ├── logs │ │ └── EncryptedActivityLogsService.kt │ │ └── util │ │ ├── ECDSASignatureConverter.kt │ │ └── Hex.kt ├── passphrase │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── passphrase │ │ │ └── generator │ │ │ └── PassphraseGenerator.kt │ │ └── res │ │ └── raw │ │ └── eff_large_wordlist.txt ├── password-strength │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── passwordstrength │ │ │ ├── PasswordStrengthHorizontalIndicatorDrawable.kt │ │ │ ├── PasswordStrengthHorizontalIndicatorView.kt │ │ │ └── PasswordStrengthUiUtil.kt │ │ │ └── similarpassword │ │ │ ├── GroupOfPassword.kt │ │ │ ├── LevenshteinDistance.kt │ │ │ └── SimilarPassword.kt │ │ └── res │ │ ├── drawable │ │ └── password_strength_pride_flag_bar.xml │ │ └── values │ │ └── strings.xml ├── passwordgenerator │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── passwordgenerator │ │ │ └── PasswordGeneratorWrapper.kt │ │ │ ├── ui │ │ │ └── PasswordGeneratorConfigurationView.kt │ │ │ └── utils │ │ │ └── PasswordScrambler.kt │ │ └── res │ │ ├── drawable │ │ └── ic_history.xml │ │ ├── layout │ │ ├── generator_options_layout.xml │ │ └── include_fragment_password_generator_options_item.xml │ │ ├── menu │ │ └── password_history_menu.xml │ │ ├── values-land │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── length_values.xml │ │ └── strings.xml ├── passwordlimiter │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── limitations │ │ ├── PasswordLimitBottomSheet.kt │ │ ├── PasswordLimitationLogger.kt │ │ └── PasswordLimiter.kt ├── premium │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── premium │ │ ├── StoreOffersCache.kt │ │ └── StoreOffersManager.kt ├── quick-action │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── quickaction │ │ │ ├── QuickActionCopy.kt │ │ │ ├── QuickActionCopyIdentity.kt │ │ │ ├── QuickActionDelete.kt │ │ │ ├── QuickActionEdit.kt │ │ │ ├── QuickActionOpenAttachment.kt │ │ │ ├── QuickActionOpenWebsite.kt │ │ │ ├── QuickActionProvider.kt │ │ │ └── QuickActionShare.kt │ │ └── res │ │ └── values │ │ └── strings_quick_actions.xml ├── search │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── search │ │ ├── MatchedSearchResult.kt │ │ ├── Query.kt │ │ ├── SearchField.kt │ │ ├── SearchSorter.kt │ │ ├── SearchableSettingItem.kt │ │ ├── dagger │ │ └── SearchModule.kt │ │ ├── fields │ │ ├── LegacySearchField.kt │ │ ├── SettingSearchField.kt │ │ └── SyncObjectSearchField.kt │ │ ├── textfactory │ │ ├── AddressSearchListTextFactory.kt │ │ ├── AuthentifiantSearchListTextFactory.kt │ │ ├── BankStatementSearchListTextFactory.kt │ │ ├── CompanySearchListTextFactory.kt │ │ ├── DataIdentifierSearchListTextFactory.kt │ │ ├── DefaultSearchListTextFactory.kt │ │ ├── DriverLicenceListTextFactory.kt │ │ ├── EmailSearchListTextFactory.kt │ │ ├── IdCardSearchListTextFactory.kt │ │ ├── IdentitySearchListTextFactory.kt │ │ ├── PasskeySearchListTextFactory.kt │ │ ├── PassportSearchListTextFactory.kt │ │ ├── PaymentCreditCardSearchListTextFactory.kt │ │ ├── PersonalWebsiteSearchListTextFactory.kt │ │ ├── SearchListTextResolver.kt │ │ ├── SecureNoteSearchListTextFactory.kt │ │ └── SocialSecurityStatementSearchListTextFactory.kt │ │ └── utils │ │ ├── RankingSearchSorter.kt │ │ └── SearchImprovementsUtils.kt ├── secrettransfer-domain │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── secrettransfer │ │ ├── SecretTransferUseCase.kt │ │ └── domain │ │ ├── SecretTransferAnalytics.kt │ │ ├── SecretTransferConstants.kt │ │ ├── SecretTransferError.kt │ │ ├── SecretTransferException.kt │ │ ├── SecretTransferKeySet.kt │ │ ├── SecretTransferPayload.kt │ │ ├── SecretTransferPublicKey.kt │ │ ├── SecretTransferUri.kt │ │ └── SodiumSecretTransferPublicKey.kt ├── securefile │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── securefile │ │ ├── Attachment.kt │ │ ├── AttachmentsParser.kt │ │ ├── DeleteFileManager.kt │ │ ├── DownloadFileContract.kt │ │ ├── DownloadFileDataProvider.kt │ │ ├── FileSecurity.kt │ │ ├── SecureFile.kt │ │ ├── UploadFileContract.kt │ │ ├── UploadFileDataProvider.kt │ │ ├── extensions │ │ ├── AttachmentExtension.kt │ │ ├── ContentResolverExtension.kt │ │ └── SecureFileExtension.kt │ │ └── storage │ │ ├── SecureFileStorage.kt │ │ └── SecureFileStorageImpl.kt ├── session-restorer │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── dashlane │ │ └── session │ │ └── restorer │ │ └── SessionRestorerImpl.kt ├── session │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ ├── endoflife │ │ └── EndOfLife.kt │ │ └── session │ │ ├── Authorization.kt │ │ ├── BySessionRepository.kt │ │ ├── Session.kt │ │ ├── SessionCreator.kt │ │ ├── SessionCredentialsSaver.kt │ │ ├── SessionInitializer.kt │ │ ├── SessionManager.kt │ │ ├── SessionManagerImpl.kt │ │ ├── SessionObserver.kt │ │ ├── SessionRestorer.kt │ │ ├── SessionState.kt │ │ ├── SessionTrasher.kt │ │ └── repository │ │ ├── SessionCoroutineScopeRepository.kt │ │ ├── SettingsManager.kt │ │ ├── UserDataRepository.kt │ │ ├── UserDataRepositoryImpl.kt │ │ ├── UserDatabaseRepository.kt │ │ └── UserDatabaseRepositoryImpl.kt ├── sharing-policy │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── sharingpolicy │ │ └── SharingPolicyDataProvider.kt ├── sync-helper │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ ├── async │ │ │ └── SyncBroadcastManager.kt │ │ │ ├── events │ │ │ └── SyncFinishedEvent.kt │ │ │ ├── sharing │ │ │ └── SharedItemMerger.kt │ │ │ ├── storage │ │ │ └── userdata │ │ │ │ ├── DataSyncDaoRaclette.kt │ │ │ │ ├── DatabaseItemSaver.kt │ │ │ │ └── DatabaseItemSaverRaclette.kt │ │ │ └── sync │ │ │ ├── DataIdentifierSyncRepositoryRaclette.kt │ │ │ ├── DataSyncHelper.kt │ │ │ ├── LegacyCryptoMigrationHelper.kt │ │ │ ├── SyncVaultImplRaclette.kt │ │ │ └── UserSettingsSyncRepository.kt │ │ └── res │ │ └── values │ │ └── strings.xml ├── teamspace │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── teamspaces │ │ │ ├── TeamSpaceUtils.kt │ │ │ ├── adapter │ │ │ ├── SpinnerUtil.java │ │ │ ├── TeamspaceDrawableProvider.kt │ │ │ ├── TeamspaceIconDrawable.kt │ │ │ └── TeamspaceSpinnerAdapter.kt │ │ │ ├── hilt │ │ │ └── TeamSpaceModule.kt │ │ │ ├── manager │ │ │ ├── TeamSpaceAccessorProvider.kt │ │ │ └── TeamspaceAccessor.kt │ │ │ ├── model │ │ │ ├── SpaceColor.kt │ │ │ ├── SpaceName.kt │ │ │ └── TeamSpace.kt │ │ │ ├── ui │ │ │ ├── CurrentTeamSpaceUiFilter.kt │ │ │ ├── SpaceFilterState.kt │ │ │ └── TeamSpaceRestrictionNotificator.kt │ │ │ └── util │ │ │ └── BusinessSpaceUtil.kt │ │ └── res │ │ ├── drawable │ │ └── all_spaces_icon.xml │ │ ├── layout │ │ ├── spinner_item_dropdown.xml │ │ └── spinner_item_preview.xml │ │ └── values │ │ ├── colors_teamspaces.xml │ │ ├── dimens_teamspace.xml │ │ ├── strings_team_restrictions.xml │ │ └── strings_teamspaces.xml ├── user-cryptography │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── usercryptography │ │ ├── CryptographySettingsImpl.kt │ │ └── UserCryptographyRepository.kt ├── vault-clipboard │ ├── README.md │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── dashlane │ │ │ └── util │ │ │ └── clipboard │ │ │ ├── ClipboardCopy.kt │ │ │ ├── ClipboardCopyImpl.kt │ │ │ └── vault │ │ │ ├── CopyContent.kt │ │ │ ├── CopyField.kt │ │ │ ├── CopyFieldContentMapper.kt │ │ │ ├── CopyFieldFeedbackResourceIds.kt │ │ │ ├── VaultItemCopyListener.kt │ │ │ ├── VaultItemCopyListenerHolder.kt │ │ │ ├── VaultItemCopyListenerHolderByInjection.kt │ │ │ ├── VaultItemCopyService.kt │ │ │ ├── VaultItemCopyServiceImpl.kt │ │ │ ├── VaultItemFieldContentService.kt │ │ │ └── VaultItemFieldContentServiceImpl.kt │ │ └── res │ │ └── values │ │ └── strings_clipboard_feedback.xml ├── vault-domain │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── dashlane │ │ └── vault │ │ ├── VaultActivityLogger.kt │ │ ├── VaultItemLogger.kt │ │ └── item │ │ ├── VaultItemLogAttachmentHelper.kt │ │ └── delete │ │ ├── DeleteVaultItemLogger.kt │ │ └── DeleteVaultItemProvider.kt └── vault-storage │ └── src │ └── main │ └── kotlin │ └── com │ └── dashlane │ └── storage │ └── userdata │ └── accessor │ ├── AccessorDatabaseQueryUtils.kt │ ├── GenericDataQueryImpl.kt │ └── VaultDataQueryImpl.kt └── storage ├── db-access-interface └── src │ └── main │ └── java │ └── com │ └── dashlane │ ├── storage │ └── userdata │ │ └── accessor │ │ ├── CollectionDataQuery.kt │ │ ├── CredentialDataQuery.kt │ │ ├── DataChangeHistoryQuery.kt │ │ ├── DataChangeHistorySaver.kt │ │ ├── DataCounter.kt │ │ ├── DataQuery.kt │ │ ├── DataSaver.kt │ │ ├── FrequentSearch.kt │ │ ├── GeneratedPasswordQuery.kt │ │ ├── GenericDataQuery.kt │ │ ├── VaultDataQuery.kt │ │ └── filter │ │ ├── BaseFilter.kt │ │ ├── CollectionFilter.kt │ │ ├── CounterFilter.kt │ │ ├── CredentialFilter.kt │ │ ├── DataChangeHistoryFilter.kt │ │ ├── FilterDsl.kt │ │ ├── FilterToPredicate.kt │ │ ├── FilterToPredicateSummary.kt │ │ ├── FilterToPredicateUtil.kt │ │ ├── GenericFilter.kt │ │ ├── VaultFilter.kt │ │ ├── datatype │ │ ├── AllDataTypeFilter.kt │ │ ├── CredentialsDataTypeFilter.kt │ │ ├── DataTypeFilter.kt │ │ ├── EditableDataTypeFilter.kt │ │ ├── IdsDataTypeFilter.kt │ │ ├── ShareableDataTypeFilter.kt │ │ └── SpecificDataTypeFilter.kt │ │ ├── lock │ │ ├── DefaultLockFilter.kt │ │ ├── EditableLockFilter.kt │ │ ├── IgnoreLockFilter.kt │ │ └── LockFilter.kt │ │ ├── sharing │ │ ├── EditableSharingPermissionFilter.kt │ │ ├── NoSharingFilter.kt │ │ ├── SharingFilter.kt │ │ └── SpecificSharingFilter.kt │ │ ├── space │ │ ├── CurrentSpaceFilter.kt │ │ ├── EditableSpaceFilter.kt │ │ ├── NoRestrictionSpaceFilter.kt │ │ ├── NoSpaceFilter.kt │ │ ├── SpaceFilter.kt │ │ └── SpecificSpaceFilter.kt │ │ ├── status │ │ ├── AllStatusFilter.kt │ │ ├── DefaultStatusFilter.kt │ │ ├── EditableStatusFilter.kt │ │ └── StatusFilter.kt │ │ └── uid │ │ ├── EditableUidFilter.kt │ │ ├── NoUidFilter.kt │ │ ├── SpecificUidFilter.kt │ │ └── UidFilter.kt │ └── teamspaces │ └── manager │ ├── DataIdentifierSpaceCategorization.kt │ └── TeamspaceMatcher.kt ├── preference └── src │ └── main │ └── java │ └── com │ └── dashlane │ └── preference │ ├── CleanupPreferencesManager.kt │ ├── CompatibilityPreferencesManager.kt │ ├── ConstantsPrefs.kt │ ├── DashlanePreferencesManager.kt │ ├── GlobalPreferencesManager.kt │ ├── PreferenceEntry.kt │ ├── PreferenceExtension.kt │ └── UserPreferencesManager.kt └── securestorage └── src └── main └── java └── com └── dashlane ├── account ├── UserAccountStorage.kt └── UserAccountStorageImpl.kt └── storage └── securestorage ├── LocalKeyRepository.kt ├── SecureDataKey.kt ├── SecureDataStorage.kt ├── SecureDataStore.kt ├── SecureStorageLocalKeyCryptographyMarkerMigration.kt ├── SecureStorageManager.kt ├── UserSecureStorageManager.kt └── cryptography ├── FlexibleDecryptionEngine.kt └── SecureDataStoreCryptography.kt /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | stages: 2 | - test 3 | include: 4 | - template: Jobs/Secret-Detection.gitlab-ci.yml 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/autofill/onboarding/OnboardingStep.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.onboarding 2 | 3 | enum class OnboardingStep(val stepValue: Int) { 4 | CONFIRMATION(1) 5 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/core/HashForLog.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.core 2 | 3 | import android.annotation.SuppressLint 4 | import okio.ByteString.Companion.encodeUtf8 5 | 6 | object HashForLog { 7 | @JvmStatic 8 | @SuppressLint("WeakHashAlgorithm") 9 | fun getHashForLog(part1: String, part2: String): String = 10 | "$part1-$part2".encodeUtf8().md5().hex() 11 | } 12 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/core/sharing/SharingDaoMemoryDataAccessProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.core.sharing 2 | 3 | interface SharingDaoMemoryDataAccessProvider { 4 | suspend fun create(): SharingDaoMemoryDataAccess 5 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/core/sharing/SharingItemUpdaterRequestCallback.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.core.sharing 2 | 3 | interface SharingItemUpdaterRequestCallback { 4 | fun onRequestSucceed() 5 | 6 | fun onRequestError(error: Throwable) 7 | } 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/crashreport/CrashReporterLogger.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.crashreport 2 | 3 | import javax.inject.Inject 4 | 5 | class CrashReporterLogger @Inject constructor() { 6 | 7 | fun onCrashHappened(errorThread: String, throwable: Throwable) { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/createaccount/pages/email/CreateAccountEmailLogger.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.createaccount.pages.email 2 | 3 | interface CreateAccountEmailLogger { 4 | 5 | fun logEmptyEmail() 6 | 7 | fun logInvalidEmailLocal() 8 | 9 | fun logInvalidEmailServer() 10 | 11 | fun logAccountExists() 12 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/createaccount/passwordless/biometrics/BiometricSetupState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.createaccount.passwordless.biometrics 2 | 3 | sealed class BiometricSetupState { 4 | object Loading : BiometricSetupState() 5 | object HardwareEnabled : BiometricSetupState() 6 | object HardwareDisabled : BiometricSetupState() 7 | } 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/BreachStatusChangedEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class BreachStatusChangedEvent : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/BreachesRefreshedEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class BreachesRefreshedEvent : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/DarkWebSetupCompleteEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class DarkWebSetupCompleteEvent : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/DataIdentifierDeletedEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | import com.dashlane.xml.domain.SyncObjectType 5 | 6 | class DataIdentifierDeletedEvent(val type: SyncObjectType) : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/DataIdentifierReplacedEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class DataIdentifierReplacedEvent(val oldItemId: String, val newItemId: String) : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/events/PasswordChangedEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.events 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class PasswordChangedEvent : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/ScreenConfiguration.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item 2 | 3 | import com.dashlane.item.header.ItemHeader 4 | import com.dashlane.item.subview.ItemSubView 5 | 6 | data class ScreenConfiguration(val itemSubViews: List>, val itemHeader: ItemHeader? = null) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/header/ItemHeader.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.header 2 | 3 | import com.dashlane.item.subview.action.MenuAction 4 | 5 | data class ItemHeader( 6 | val menuActions: List, 7 | val title: String? = null, 8 | val thumbnailType: Int? = null, 9 | val thumbnailUrl: String? = null, 10 | val thumbnailIconRes: Int? = null, 11 | val thumbnailColor: Int? = null, 12 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/linkedwebsites/LinkedServicesUIState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.linkedwebsites 2 | 3 | import com.dashlane.vault.model.VaultItem 4 | import com.dashlane.xml.domain.SyncObject 5 | 6 | data class LinkedServicesUIState( 7 | val vaultItem: VaultItem?, 8 | val editMode: Boolean, 9 | val actionClosePageAfterSave: Boolean, 10 | val closePageImmediate: Boolean 11 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/passwordhistory/PasswordHistoryEntry.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.passwordhistory 2 | 3 | data class PasswordHistoryEntry( 4 | val password: String, 5 | val lastModifiedDateString: String 6 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/ItemSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview 2 | 3 | import androidx.annotation.DimenRes 4 | 5 | interface ItemSubView { 6 | 7 | var value: T 8 | 9 | @get:DimenRes 10 | var topMargin: Int 11 | 12 | fun notifyValueChanged(newValue: T) 13 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/ItemSubViewWithActionWrapper.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview 2 | 3 | import com.dashlane.ui.action.Action 4 | 5 | class ItemSubViewWithActionWrapper(val itemSubView: ItemSubView, val action: Action) : ItemSubView by itemSubView -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/ValueChangeManager.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview 2 | 3 | interface ValueChangeManager { 4 | 5 | fun addValueChangedListener(listener: Listener) 6 | fun removeValueChangedListener(listener: Listener) 7 | fun notifyListeners(origin: Any, newValue: T) 8 | 9 | interface Listener { 10 | fun onValueChanged(origin: Any, newValue: T) 11 | } 12 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/edit/ItemEditValueBooleanSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.edit 2 | 3 | import com.dashlane.vault.model.VaultItem 4 | 5 | class ItemEditValueBooleanSubView( 6 | val header: String, 7 | val description: String?, 8 | override var value: Boolean, 9 | valueUpdate: (VaultItem<*>, Boolean) -> VaultItem<*>? 10 | ) : ItemEditValueSubView(valueUpdate) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/edit/ItemEditValueRawSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.edit 2 | 3 | import com.dashlane.vault.model.VaultItem 4 | 5 | open class ItemEditValueRawSubView( 6 | val hint: String, 7 | override var value: String, 8 | val textSize: Float, 9 | valueUpdate: (VaultItem<*>, String) -> VaultItem<*>? 10 | ) : ItemEditValueSubView(valueUpdate) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemAuthenticatorReadSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | import com.dashlane.authenticator.Otp 4 | 5 | class ItemAuthenticatorReadSubView( 6 | val title: String, 7 | val domain: String, 8 | override var value: Otp 9 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemMetaReadValueDateTimeSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | import java.time.Instant 4 | 5 | data class ItemMetaReadValueDateTimeSubView( 6 | val header: String, 7 | override var value: Instant, 8 | var formattedDate: String 9 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemPasswordSafetySubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | class ItemPasswordSafetySubView( 4 | val header: String, 5 | override var value: String 6 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadSpaceSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | import com.dashlane.teamspaces.model.TeamSpace 4 | 5 | class ItemReadSpaceSubView( 6 | override var value: TeamSpace, 7 | val values: List 8 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadValueBooleanSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | class ItemReadValueBooleanSubView( 4 | val header: String, 5 | val description: String?, 6 | override var value: Boolean 7 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadValueDateSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | import java.time.LocalDate 4 | 5 | open class ItemReadValueDateSubView( 6 | val hint: String, 7 | override var value: LocalDate?, 8 | var formattedDate: String? 9 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadValueListSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | class ItemReadValueListSubView( 4 | val title: String, 5 | override var value: String, 6 | val values: List 7 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadValueRawSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | open class ItemReadValueRawSubView( 4 | val hint: String, 5 | override var value: String, 6 | val textSize: Float 7 | ) : ItemReadValueSubView() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/subview/readonly/ItemReadValueSubView.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.subview.readonly 2 | 3 | import com.dashlane.item.subview.ItemSubViewImpl 4 | 5 | abstract class ItemReadValueSubView : ItemSubViewImpl() -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/v3/data/CollectionData.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.v3.data 2 | 3 | import com.dashlane.item.subview.ItemCollectionListSubView 4 | 5 | data class CollectionData(val id: String?, val name: String, val shared: Boolean) 6 | 7 | fun ItemCollectionListSubView.Collection.toCollectionData() = CollectionData(id, name, shared) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/v3/data/PasswordHealthData.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.v3.data 2 | 3 | import com.dashlane.passwordstrength.PasswordStrength 4 | 5 | data class PasswordHealthData( 6 | val passwordStrength: PasswordStrength?, 7 | val isCompromised: Boolean, 8 | val reusedCount: Int, 9 | val isPasswordEmpty: Boolean 10 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/v3/repositories/NewItemRepository.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.v3.repositories 2 | 3 | import com.dashlane.vault.model.VaultItem 4 | import com.dashlane.xml.domain.SyncObject 5 | 6 | interface NewItemRepository { 7 | suspend fun performAdditionalSteps(itemToSave: VaultItem) 8 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/v3/repositories/PasswordHealthRepository.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.v3.repositories 2 | 3 | import com.dashlane.item.v3.data.PasswordHealthData 4 | 5 | interface PasswordHealthRepository { 6 | suspend fun getPasswordHealth( 7 | itemId: String? = null, 8 | password: String? = null 9 | ): PasswordHealthData 10 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/item/v3/util/SensitiveField.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.item.v3.util 2 | 3 | enum class SensitiveField { 4 | PASSWORD 5 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/accountrecoverykey/intro/IntroState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.accountrecoverykey.intro 2 | 3 | sealed class IntroState { 4 | object Initial : IntroState() 5 | 6 | object Loading : IntroState() 7 | object GoToToken : IntroState() 8 | object GoToTOTP : IntroState() 9 | data class GoToARK(val authTicket: String) : IntroState() 10 | object Error : IntroState() 11 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/controller/LoginTokensModule.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.controller 2 | 3 | import com.dashlane.notification.model.TokenNotificationHandler 4 | import javax.inject.Inject 5 | import javax.inject.Singleton 6 | 7 | @Suppress("UseDataClass") 8 | @Singleton 9 | class LoginTokensModule @Inject constructor() { 10 | val tokenHashmap = HashMap() 11 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/dagger/ShortTimeout.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.dagger 2 | 3 | import javax.inject.Qualifier 4 | 5 | @MustBeDocumented 6 | @Retention(AnnotationRetention.SOURCE) 7 | @Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION) 8 | @Qualifier 9 | annotation class ShortTimeout 10 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/dagger/TrackingId.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.dagger 2 | 3 | import javax.inject.Qualifier 4 | 5 | @Qualifier 6 | @Retention(AnnotationRetention.RUNTIME) 7 | @Target( 8 | AnnotationTarget.FIELD, 9 | AnnotationTarget.VALUE_PARAMETER, 10 | AnnotationTarget.FUNCTION, 11 | AnnotationTarget.PROPERTY_GETTER, 12 | AnnotationTarget.PROPERTY_SETTER 13 | ) 14 | annotation class TrackingId -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/devicelimit/DeviceLimitContract.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.devicelimit 2 | 3 | interface DeviceLimitContract { 4 | 5 | interface ViewProxy 6 | 7 | interface Presenter { 8 | fun onUpgradePremium() 9 | 10 | fun onUnlinkPreviousDevices() 11 | 12 | fun onLogOut() 13 | 14 | fun onStart() 15 | 16 | fun onShow() 17 | } 18 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/pages/enforce2fa/HasEnforced2faLimitUseCase.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.pages.enforce2fa 2 | 3 | import com.dashlane.session.Session 4 | 5 | interface HasEnforced2faLimitUseCase { 6 | suspend operator fun invoke(session: Session, hasTotpSetupFallback: Boolean?): Boolean 7 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/sso/ContactSsoAdministratorDialogFactory.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.sso 2 | 3 | import androidx.appcompat.app.AlertDialog 4 | 5 | interface ContactSsoAdministratorDialogFactory { 6 | fun show(onDismiss: (() -> Unit)? = null): AlertDialog 7 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/sso/LoginSsoLogger.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.sso 2 | 3 | interface LoginSsoLogger { 4 | fun logLoginStart() 5 | 6 | fun logInvalidSso() 7 | 8 | fun logErrorUnknown() 9 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/login/sso/LoginSsoLoggerModule.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login.sso 2 | 3 | import dagger.Binds 4 | import dagger.Module 5 | import dagger.hilt.InstallIn 6 | import dagger.hilt.android.components.ActivityComponent 7 | 8 | @Module 9 | @InstallIn(ActivityComponent::class) 10 | interface LoginSsoLoggerModule { 11 | @Binds 12 | fun bindLoginSsoLogger(impl: LoginSsoLoggerImpl): LoginSsoLogger 13 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/notification/NotificationIntentUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.notification 2 | 3 | import android.content.Intent 4 | 5 | const val EXTRA_BREACH_NOTIFICATION_FORCE_REFRESH = "extra_breach_notification_force_refresh" 6 | 7 | fun Intent.appendBreachNotificationExtra() { 8 | putExtra(EXTRA_BREACH_NOTIFICATION_FORCE_REFRESH, true) 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/notification/badge/NotificationBadgeListener.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.notification.badge 2 | 3 | interface NotificationBadgeListener { 4 | fun onNotificationBadgeUpdated() 5 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/notification/badge/SharingInvitationRepository.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.notification.badge 2 | 3 | interface SharingInvitationRepository { 4 | 5 | suspend fun hasInvitations(): Boolean 6 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/pin/settings/PinSettingsDestination.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.pin.settings 2 | 3 | import kotlinx.serialization.Serializable 4 | 5 | sealed interface PinSettingsDestination { 6 | @Serializable 7 | data object SetupDestination : PinSettingsDestination 8 | 9 | @Serializable 10 | data class SuccessDestination(val pin: String) : PinSettingsDestination 11 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/pin/settings/success/PinSettingsSuccessState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.pin.settings.success 2 | 3 | data class PinSettingsSuccessState( 4 | val isMPStoreDialogShown: Boolean = false 5 | ) 6 | 7 | sealed class PinSettingsSuccessNavigationState { 8 | data object Success : PinSettingsSuccessNavigationState() 9 | data object Cancel : PinSettingsSuccessNavigationState() 10 | } 11 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/security/darkwebmonitoring/detail/BreachAlertAdvice.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.security.darkwebmonitoring.detail 2 | 3 | data class BreachAlertAdvice( 4 | val content: String, 5 | val resolved: Boolean, 6 | val buttonText: String? = null, 7 | val buttonAction: (() -> Unit)? = null 8 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/security/identitydashboard/item/IdentityDashboardItem.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.security.identitydashboard.item 2 | 3 | import com.dashlane.ui.adapter.DashlaneRecyclerAdapter 4 | 5 | interface IdentityDashboardItem : DashlaneRecyclerAdapter.ViewTypeProvider -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/security/identitydashboard/password/GroupOfAuthentifiant.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.security.identitydashboard.password 2 | 3 | open class GroupOfAuthentifiant( 4 | val groupBy: T, 5 | val authentifiants: List, 6 | val countReal: Int = authentifiants.size 7 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/session/repository/LockRepositoryUtil.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.session.repository 2 | 3 | import com.dashlane.lock.LockManager 4 | import com.dashlane.session.SessionManager 5 | 6 | fun LockRepository.getLockManager(sessionManager: SessionManager): LockManager? { 7 | return sessionManager.session?.let { getLockManager(it) } 8 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/settings/biometric/BiometricSettingsHelper.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.settings.biometric 2 | 3 | interface BiometricSettingsHelper { 4 | var biometricSettingChecked: Boolean 5 | var resetMpSettingChecked: Boolean 6 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/storage/userdata/dao/ItemContentDB.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.storage.userdata.dao 2 | 3 | data class ItemContentDB( 4 | val id: String, 5 | val timestamp: Long, 6 | val extraData: String, 7 | val itemKeyBase64: String 8 | ) 9 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/storage/userdata/dao/SharingDataType.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.storage.userdata.dao 2 | 3 | enum class SharingDataType { 4 | ITEM, 5 | ITEM_GROUP, 6 | COLLECTION, 7 | USER_GROUP; 8 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/ActivityLifecycleLoggerListener.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui 2 | 3 | 4 | class ActivityLifecycleLoggerListener : AbstractActivityLifecycleListener() { 5 | 6 | override fun onFirstActivityStarted() { 7 | super.onFirstActivityStarted() 8 | } 9 | 10 | override fun onLastActivityStopped() { 11 | super.onLastActivityStopped() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/firstpassword/autofilldemo/AutofillDemoDataProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.firstpassword.autofilldemo 2 | 3 | import com.skocken.presentation.provider.BaseDataProvider 4 | import javax.inject.Inject 5 | 6 | class AutofillDemoDataProvider @Inject constructor() : 7 | BaseDataProvider(), 8 | AutofillDemo.DataProvider -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/checklist/ChecklistViewModelContract.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.checklist 2 | 3 | import kotlinx.coroutines.flow.Flow 4 | 5 | interface ChecklistViewModelContract { 6 | val checkListDataFlow: Flow 7 | fun onDismissChecklistClicked() 8 | 9 | fun onDWMViewScanResult() 10 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/list/ItemWrapperOneColViewHolder.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.list 2 | 3 | import android.view.View 4 | 5 | class ItemWrapperOneColViewHolder(itemView: View) : ItemWrapperViewHolder(itemView) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/list/wrapper/VaultItemDoubleWrapper.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.list.wrapper 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | 5 | open class VaultItemDoubleWrapper(val originalItemWrapper: VaultItemWrapper) : 6 | VaultItemWrapper by originalItemWrapper -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/vault/ScrollToTopEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.vault 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class ScrollToTopEvent(val filterIndex: Int) : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/vault/VaultDataProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.vault 2 | 3 | import com.skocken.presentation.provider.BaseDataProvider 4 | import javax.inject.Inject 5 | 6 | 7 | class VaultDataProvider @Inject constructor() : BaseDataProvider(), Vault.DataProvider -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/vault/dagger/VaultScope.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.vault.dagger 2 | 3 | import javax.inject.Scope 4 | 5 | @Scope 6 | @Retention(AnnotationRetention.RUNTIME) 7 | annotation class VaultScope -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/activities/fragments/vault/list/VaultListData.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities.fragments.vault.list 2 | 3 | import com.dashlane.feature.home.data.Filter 4 | import com.dashlane.ui.adapter.DashlaneRecyclerAdapter 5 | 6 | data class VaultListData( 7 | val filter: Filter, 8 | val list: List = emptyList(), 9 | val isLoading: Boolean = false 10 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/menu/MenuState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.menu 2 | 3 | import com.dashlane.ui.menu.domain.MenuItemModel 4 | 5 | sealed class MenuState(open val items: List) { 6 | object Init : MenuState(emptyList()) 7 | data class Loaded( 8 | override val items: List 9 | ) : MenuState(items = items) 10 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/menu/domain/TeamspaceIcon.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.menu.domain 2 | 3 | import com.dashlane.teamspaces.model.SpaceColor 4 | 5 | sealed class TeamspaceIcon { 6 | data object Combined : TeamspaceIcon() 7 | data class Space(val displayLetter: Char, val spaceColor: SpaceColor) : TeamspaceIcon() 8 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/screens/fragments/search/SearchResult.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.fragments.search 2 | 3 | import com.dashlane.search.MatchedSearchResult 4 | 5 | data class SearchResult(val searchRequest: SearchRequest, val result: List) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/screens/settings/item/SettingChange.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.settings.item 2 | 3 | interface SettingChange { 4 | 5 | interface Listenable { 6 | var listener: Listener? 7 | } 8 | 9 | interface Listener { 10 | fun onSettingsInvalidate() 11 | } 12 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/screens/settings/item/SettingCheckable.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.settings.item 2 | 3 | import android.content.Context 4 | 5 | interface SettingCheckable { 6 | 7 | fun isChecked(context: Context): Boolean 8 | 9 | fun onCheckChanged(context: Context, enable: Boolean) 10 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/screens/settings/item/SettingHeader.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.settings.item 2 | 3 | data class SettingHeader( 4 | val title: String 5 | ) -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/ui/screens/settings/item/SettingLoadable.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.settings.item 2 | 3 | import android.content.Context 4 | 5 | interface SettingLoadable { 6 | 7 | fun isLoaded(context: Context): Boolean 8 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/update/AppUpdateNeededEvent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.update 2 | 3 | import com.dashlane.event.AppEvent 4 | 5 | class AppUpdateNeededEvent : AppEvent -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/java/com/dashlane/util/ViewUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import android.view.View 4 | import android.view.ViewParent 5 | 6 | inline fun View.getRelativePosition(parent: ViewParent, accessor: (View) -> Float): Float { 7 | var c = 0.0f 8 | var v = this 9 | do { 10 | c += accessor(v) 11 | v = v.parent as View 12 | } while (v != parent) 13 | return c 14 | } -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/anim/fadein_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/anim/fadeout_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/color-night/item_highlighted_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/color/edittext_input_provider_item_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/color/item_highlighted_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable-hdpi/sharing_contact_bubble.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/Dashlane/src/main/res/drawable-hdpi/sharing_contact_bubble.9.png -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable-mdpi/sharing_contact_bubble.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/Dashlane/src/main/res/drawable-mdpi/sharing_contact_bubble.9.png -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable-xhdpi/sharing_contact_bubble.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/Dashlane/src/main/res/drawable-xhdpi/sharing_contact_bubble.9.png -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable-xxhdpi/sharing_contact_bubble.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/Dashlane/src/main/res/drawable-xxhdpi/sharing_contact_bubble.9.png -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_circle_error.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_device_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_device_item_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_dwm_alert_solved.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_dwm_selected.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/background_linked_app_empty_state.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/bg_card.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/bg_card_bottom_margin_8dp.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/bottom_sheet_round_corner.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/dark_web_email_monitored_indicator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/fab_menu_item_text_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/ic_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/ic_arrow_up_outlined.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/ic_backward_outlined.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/ic_forward_outlined.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/menu_item_lock_unlock.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/drawable/sharing_send.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/layout/activity_debug_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/layout/activity_onboarding_in_app_login.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/layout/chips_text_sharing_contact.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/layout/item_id_separator.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/layout/simple_frame_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/menu/save_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/raw/keep_instant_app.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-h520dp/values_activity_warning.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @integer/visibility_visible 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw600dp-land/add_credential_new_account_v2_dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw600dp/add_credential_new_account_v2_dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw600dp/dimens_fab_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw600dp/dimens_floating_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw600dp/dimens_fragment_devices_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw720dp-land/add_credential_new_account_v2_dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-sw720dp/add_credential_new_account_v2_dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/add_credential_new_account_v2_dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/arc_buttons.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/attrs_import_method_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/attrs_logo_behavior.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/badges.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | true 4 | 5 | false 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/createscreen_keys.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 24dp 3 | 320dp 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_botton_sheet_action.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | 16dp 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_floating_button.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 88dp 6 | 16dp 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_fragment_devices_grid.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 500dp 4 | 12dp 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_fragment_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6.5dp 4 | 0.5dp 5 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_import_core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0dp 5 | 6dp 6 | 8dp 7 | 16dp 8 | 24dp 9 | 32dp 10 | 48dp 11 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/dimens_sharing_center_lists.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 56dp 4 | 2.5dp 5 | 6 | 40dp 7 | 40dp 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/floating_label_ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/home_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/home_dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/ids_import_browser.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0 5 | 2 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/keyboard_res.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | passive_channel 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/onboarding_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/password_generator_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/resources_forwarding_sharing_center_lists.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @layout/list_item_content_sharing_by_user 4 | @layout/sharing_pending_invitation_layout 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/save_credentials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/secrets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Secrets sharing is only available on Web 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_app_update.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | A new update is available 4 | Install 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_keyboard.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_license.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | License 4 | Website 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_password_safety.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Strength: %1$s 4 | Reused: %1$d times 5 | It has been compromised 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Last searched 4 | Nothing stored in Dashlane matches your search. 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_settings_tos.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Terms of Service 4 | Privacy Policy 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/strings_surveys.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/values/values_activity_warning.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @integer/visibility_gone 4 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/xml/authenticator.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/Dashlane/src/main/res/xml/file_provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /dashlane-project/baselineprofile/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /dashlane-project/baselineprofile/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/M2xIntentFactory.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui 2 | 3 | import android.content.Intent 4 | 5 | interface M2xIntentFactory { 6 | fun buildM2xConnect(): Intent 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/PostAccountCreationCoordinator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui 2 | 3 | import android.content.Intent 4 | 5 | interface PostAccountCreationCoordinator { 6 | fun getHomeScreenAfterAccountCreationIntent(): Intent 7 | fun newHomeIntent(): Intent 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/activities/MenuContainer.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.activities 2 | 3 | interface MenuContainer { 4 | 5 | fun isNavigationDrawerVisible(): Boolean 6 | 7 | fun disableMenuAccess(bool: Boolean) 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/adapter/ItemListContextProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.adapter 2 | 3 | interface ItemListContextProvider { 4 | val itemListContext: ItemListContext 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/adapter/util/DiffUtilComparator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.adapter.util 2 | 3 | interface DiffUtilComparator { 4 | fun isItemTheSame(item: T): Boolean 5 | fun isContentTheSame(item: T): Boolean 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/ui/model/TextResourceUtil.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.model 2 | 3 | import androidx.compose.runtime.Composable 4 | import androidx.compose.ui.platform.LocalContext 5 | 6 | @Composable 7 | fun TextResource.getText(): String { 8 | val resources = LocalContext.current.resources 9 | return this.format(resources) 10 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/util/ViewProxyUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import android.view.View 4 | import androidx.annotation.IdRes 5 | import com.skocken.presentation.viewproxy.BaseViewProxy 6 | 7 | inline fun BaseViewProxy<*>.onClick(@IdRes id: Int, crossinline action: (View?) -> Unit) { 8 | findViewByIdEfficient(id)!!.setOnClickListener { action(it) } 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/java/com/dashlane/util/graphics/BackgroundColorDrawable.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.graphics 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | interface BackgroundColorDrawable { 6 | @get:ColorInt 7 | @setparam:ColorInt 8 | var backgroundColor: Int 9 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/fade_slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/fade_slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/fade_slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/fade_slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/fadeout_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/no_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/slide_in_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/slide_out_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/slide_to_left.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/anim/slide_to_right.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/button_secondary_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/button_secondary_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/on_background_alpha_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/on_surface_alpha_12.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/primary_disabled.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/secondary_alpha_20.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/step_infobox_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/color/text_button_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/background_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/bottom_sheet_top_rounded_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/code_input_character_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/divider_empty_spacing_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/divider_empty_spacing_small.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/fastscroll_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/fastscroll_line_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/fastscroll_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/fastscroll_thumb_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/fastscroll_thumb_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/handle_round_rectangle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/ic_arrow_collapse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/ic_arrow_up_faq.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/ic_empty_payment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/drawable/tab_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/layout/expandablecardview.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values-sw600dp/dimens_list_credentials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 42dp 5 | 6dp 6 | 24dp 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values/dimens_action_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @dimen/design_appbar_elevation 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values/dimens_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @dimen/spacing_small 4 | @dimen/spacing_big 5 | 360dp 6 | 72dp 7 | 40dp 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values/dimens_list_credentials.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 28dp 5 | 4dp 6 | 16dp 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/base-ui/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/baseactivity/src/main/java/com/dashlane/ui/AutoFillDisabler.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui 2 | 3 | import android.app.Activity 4 | import android.view.View 5 | import android.view.Window 6 | 7 | fun Activity.disableAutoFill() = this.window.disableAutoFill() 8 | 9 | private fun Window.disableAutoFill() { 10 | decorView.importantForAutofill = View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS 11 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/lock/src/main/java/com/dashlane/lock/LockSelfChecker.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.lock 2 | 3 | interface LockSelfChecker { 4 | 5 | fun selfCheck() 6 | 7 | fun markCredentialsEmpty() 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/mvvm/src/main/java/com/dashlane/mvvm/State.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.mvvm 2 | 3 | interface State { 4 | interface View : State 5 | interface SideEffect : State 6 | } 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/navigation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/navigation/src/main/java/com/dashlane/navigation/paywall/PaywallIntroType.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.navigation.paywall 2 | 3 | import androidx.annotation.Keep 4 | 5 | @Keep 6 | enum class PaywallIntroType { 7 | DARK_WEB_MONITORING, 8 | VPN, 9 | FROZEN_ACCOUNT 10 | } 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/network/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/network/src/main/java/com/dashlane/network/NitroUrlOverride.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.network 2 | 3 | interface NitroUrlOverride { 4 | val nitroUrl: String? 5 | val nitroStagingEnabled: Boolean 6 | val cloudFlareNitroClientId: String 7 | val cloudFlareNitroSecret: String 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/network/src/main/java/com/dashlane/network/ServerUrlOverride.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.network 2 | 3 | interface ServerUrlOverride { 4 | val serverUrl: String? 5 | val apiUrl: String? 6 | val stagingEnabled: Boolean 7 | val cloudFlareClientId: String 8 | val cloudFlareSecret: String 9 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/network/src/main/java/com/dashlane/network/webservices/DashlaneUrls.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.network.webservices 2 | 3 | object DashlaneUrls { 4 | const val URL_API = "https://api.dashlane.com/v1/" 5 | } 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/network/src/main/java/com/dashlane/network/webservices/DownloadFileService.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.network.webservices 2 | 3 | import okhttp3.ResponseBody 4 | import retrofit2.http.GET 5 | import retrofit2.http.Streaming 6 | import retrofit2.http.Url 7 | 8 | interface DownloadFileService { 9 | 10 | @Streaming 11 | @GET 12 | suspend fun execute(@Url fileUrl: String): ResponseBody 13 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/domain/SyncCryptographyException.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.domain 2 | 3 | class SyncCryptographyException( 4 | message: String? = null, 5 | cause: Throwable? = null, 6 | val cipherPayload: String? = null 7 | ) : Exception(message, cause) -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/repositories/ServerCredentials.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.repositories 2 | 3 | data class ServerCredentials( 4 | val login: String, 5 | val accessKey: String, 6 | val secretKey: String, 7 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/repositories/SyncDeduplication.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.repositories 2 | 3 | import com.dashlane.sync.vault.SyncVault 4 | 5 | interface SyncDeduplication { 6 | suspend fun performDeduplication(vault: SyncVault): Int 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/treat/SyncSummaryItem.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.treat 2 | 3 | import com.dashlane.xml.domain.SyncObjectType 4 | import java.time.Instant 5 | 6 | data class SyncSummaryItem( 7 | val objectId: String, 8 | val lastUpdateTime: Instant, 9 | val syncObjectType: SyncObjectType 10 | ) 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/vault/SyncObjectDescriptor.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.vault 2 | 3 | import com.dashlane.xml.domain.SyncObject 4 | import kotlin.reflect.KClass 5 | 6 | typealias SyncObjectDescriptor = Pair, String> -------------------------------------------------------------------------------- /dashlane-project/modules/common/sync/src/main/java/com/dashlane/sync/xml/MergeListStrategy.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sync.xml 2 | 3 | enum class MergeListStrategy { 4 | DEDUPLICATE, 5 | 6 | KEEP_RICHEST; 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/test-fixtures/vault/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/common-compose-components/src/main/kotlin/com/dashlane/ui/common/compose/components/TopBarState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.common.compose.components 2 | 3 | import java.io.Serializable 4 | 5 | data class TopBarState( 6 | val visible: Boolean = true, 7 | val title: String = "", 8 | val backEnabled: Boolean = true, 9 | ) : Serializable -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/common-compose-components/src/main/res/values/accessibility_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Clear 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/common-compose-components/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Something went wrong 5 | 6 | An unexpected error occurred. Please try again. 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/button_primary_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/button_primary_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/button_ternary_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/edit_text_background_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/edit_text_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/menu_floating_action_button_tint_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/slider_halo_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/slider_track_color_active.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/slider_track_color_inactive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/switch_thumb_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/switch_track_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/color/text_input_hint_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/gt_walsheim_pro_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/gt_walsheim_pro_bold.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_bold.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_medium.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_mono_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_mono_bold.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_mono_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_mono_regular.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/ui/theme-legacy/src/main/res/font/roboto_regular.ttf -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/mipmap-anydpi/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/values-night/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | false 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/values-sw600dp/dimens_theme.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 50% 4 | 70% 5 | 60% 6 | 90% 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/ui/theme-legacy/src/main/res/values-sw600dp/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/Legal.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane 2 | 3 | object Legal { 4 | const val URL_PRIVACY_POLICY = "https://www.dashlane.com/privacy" 5 | const val URL_TERMS_OF_SERVICE = "https://www.dashlane.com/terms" 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/core/helpers/PackageSignatureStatus.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.core.helpers 2 | 3 | enum class PackageSignatureStatus { 4 | UNKNOWN, 5 | VERIFIED, 6 | INCORRECT 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/exception/NotLoggedInException.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.exception 2 | 3 | data class NotLoggedInException( 4 | override val message: String? = null, 5 | val exception: Exception? = null 6 | ) : Exception(message, exception) 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/exception/SettingsManagerException.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.exception 2 | 3 | class SettingsManagerException @JvmOverloads constructor(message: String? = null, exception: Exception? = null) : 4 | Exception(message, exception) { 5 | constructor(exception: Exception) : this(message = null, exception = exception) 6 | } 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/login/LoginInfo.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.login 2 | 3 | data class LoginInfo( 4 | val isFirstLogin: Boolean, 5 | val loginMode: LoginMode 6 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/notificator/Notificator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.notificator 2 | 3 | import androidx.fragment.app.FragmentActivity 4 | 5 | fun interface Notificator { 6 | fun customErrorDialogMessage( 7 | activity: FragmentActivity?, 8 | topic: String?, 9 | message: String?, 10 | shouldCloseCaller: Boolean 11 | ) 12 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/securearchive/BackupCoordinator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.securearchive 2 | 3 | interface BackupCoordinator { 4 | fun startExport() 5 | fun startImport() 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/sharing/SharingKeysHelper.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sharing 2 | 3 | interface SharingKeysHelper { 4 | var publicKey: String? 5 | var privateKey: String? 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/sharing/SharingKeysHelperComponent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.sharing 2 | 3 | interface SharingKeysHelperComponent { 4 | val sharingKeysHelper: SharingKeysHelper 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/storage/userdata/EmailSuggestionProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.storage.userdata 2 | 3 | interface EmailSuggestionProvider { 4 | fun getAllEmails(): List 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/storage/userdata/RichIconsSettingProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.storage.userdata 2 | 3 | interface RichIconsSettingProvider { 4 | val editable: Boolean 5 | 6 | val richIcons: Boolean 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/AppSync.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | interface AppSync { 4 | fun sync() 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/HashUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import okio.ByteString.Companion.encodeUtf8 4 | 5 | fun String.sha256(): ByteArray = this.encodeUtf8().sha256().toByteArray() 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/InstantUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import java.time.Instant 4 | 5 | fun Instant.isSemanticallyNull(): Boolean { 6 | return this == Instant.EPOCH 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/IntUtils.kt: -------------------------------------------------------------------------------- 1 | @file:JvmName("IntUtils") 2 | 3 | package com.dashlane.util 4 | 5 | fun flagsOf(vararg flags: Int) = flags.reduce(Int::or) 6 | infix fun Int.hasFlag(flag: Int) = this and flag != 0 7 | 8 | fun Int.toBoolean() = this != 0 9 | fun Boolean.toInt() = if (this) 1 else 0 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/LocaleUtil.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import java.util.Locale 4 | 5 | fun getOsLang() = Locale.getDefault().language.substring(0, 2).lowercase() -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/UrlDomainUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import com.dashlane.url.UrlDomain 4 | import com.dashlane.url.toUrlDomainOrNull 5 | 6 | fun UrlDomain?.valueWithoutWww(): String? = this?.value?.removePrefix("www.") 7 | 8 | fun String.toRootUrlDomain(): UrlDomain? = this.toUrlDomainOrNull()?.root 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/WindowConfiguration.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util 2 | 3 | import android.view.Window 4 | 5 | interface WindowConfiguration { 6 | fun configure(window: Window) 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/date/RelativeDateFormatter.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.date 2 | 3 | import java.time.Instant 4 | 5 | interface RelativeDateFormatter { 6 | fun format(instant: Instant): String 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/exceptions/NetworkOffException.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.exceptions 2 | 3 | class NetworkOffException(exception: Exception? = null) : 4 | Exception("The network is not connected on this device", exception) -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/inject/OptionalProvider.java: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.inject; 2 | 3 | import androidx.annotation.Nullable; 4 | 5 | public interface OptionalProvider { 6 | 7 | @Nullable 8 | T get(); 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/keychain/KeyChainException.java: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.keychain; 2 | 3 | public class KeyChainException extends Exception { 4 | public KeyChainException(Exception e) { 5 | super(e); 6 | } 7 | public KeyChainException(String message) { 8 | super(message); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/keychain/KeyChainHelper.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.keychain 2 | 3 | import com.dashlane.cryptography.ObfuscatedByteArray 4 | 5 | interface KeyChainHelper { 6 | 7 | fun initializeKeyStoreIfNeeded(login: String) 8 | 9 | fun decryptPasswordWithUserCertificate(username: String, encrypted: String): ObfuscatedByteArray? 10 | } 11 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/time/Month.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.time 2 | 3 | import java.time.Month 4 | import java.time.temporal.ChronoField 5 | 6 | fun String.toMonthOrNull(): Month? = 7 | trim().toIntOrNull()?.toMonthOrNull() 8 | 9 | fun Int.toMonthOrNull(): Month? = 10 | if (ChronoField.MONTH_OF_YEAR.range().isValidValue(this.toLong())) Month.of(this) else null -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/time/TimeTicker.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.time 2 | 3 | class TimeTicker { 4 | private var lastTick = System.currentTimeMillis() 5 | 6 | fun tick(): Long { 7 | val now = System.currentTimeMillis() 8 | val durationSinceLastTick = now - lastTick 9 | lastTick = now 10 | return durationSinceLastTick 11 | } 12 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/time/Year.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.time 2 | 3 | import java.time.Year 4 | import java.time.temporal.ChronoField 5 | 6 | fun String.toYearOrNull(): Year? = 7 | trim().toIntOrNull()?.toYearOrNull() 8 | 9 | fun Int.toYearOrNull(): Year? = 10 | if (ChronoField.YEAR.range().isValidValue(this.toLong())) Year.of(this) else null -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/java/com/dashlane/util/web/WebViewCommunicator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.util.web 2 | 3 | import android.webkit.WebView 4 | 5 | interface WebViewCommunicator { 6 | 7 | fun injectJavascript(webView: WebView, js: String, callbackBlock: () -> Unit = {}) 8 | 9 | fun execute(block: () -> Unit) 10 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-de/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | DE 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-en/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | EN 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-es/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ES 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-fr/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | FR 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-it/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | IT 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-ja/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | JA 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-ko/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | KO 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-nl/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | NL 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-pt/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | PT 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-sv/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | SV 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values-zh/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ZH 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/utils/src/main/res/values/language_iso_639_1_nontranslatable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | EN 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vault-text-factory/src/main/java/com/dashlane/vault/textfactory/list/DataIdentifierListTextFactory.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.textfactory.list 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | 5 | interface DataIdentifierListTextFactory { 6 | 7 | 8 | fun getTitle(item: T): StatusText 9 | 10 | fun getDescription(item: T, default: StatusText): StatusText 11 | } 12 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vault-text-factory/src/main/java/com/dashlane/vault/textfactory/list/DataIdentifierListTextResolver.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.textfactory.list 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | 5 | interface DataIdentifierListTextResolver { 6 | fun getLine1(item: SummaryObject): StatusText 7 | fun getLine2(item: SummaryObject): StatusText 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/vault-text-factory/src/main/java/com/dashlane/vault/textfactory/list/StatusText.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.textfactory.list 2 | 3 | data class StatusText( 4 | val text: String, 5 | val isWarning: Boolean = false, 6 | val textToHighlight: String? = null, 7 | ) 8 | 9 | fun String.toStatusText(): StatusText = StatusText(text = this) -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/model/AuthCategory.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.model 2 | 3 | import com.dashlane.xml.domain.SyncObject 4 | 5 | fun VaultItem.copySyncObject(builder: SyncObject.AuthCategory.Builder.() -> Unit = {}): 6 | VaultItem { 7 | return this.copy(syncObject = this.syncObject.copy(builder)) 8 | } 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/model/BankConfiguration.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.model 2 | 3 | import com.dashlane.xml.domain.utils.Country 4 | 5 | data class BankConfiguration( 6 | val bankDescriptor: String, 7 | val displayName: String, 8 | val country: Country? 9 | ) 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/model/DataIdentifierProxy.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.model 2 | 3 | import com.dashlane.xml.domain.SyncObjectType 4 | 5 | interface DataIdentifierProxy { 6 | fun getEquivalentSyncObjectType(): SyncObjectType 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/model/Gender.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.model 2 | 3 | import com.dashlane.xml.domain.SyncObject 4 | 5 | fun SyncObject.Gender?.getLabelId() = when (this) { 6 | SyncObject.Gender.MALE -> R.string.male 7 | SyncObject.Gender.FEMALE -> R.string.female 8 | null -> R.string.no_gender 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/model/SpaceItemUtil.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.model 2 | 3 | import com.dashlane.xml.domain.SyncObject 4 | 5 | fun VaultItem.copyWithSpaceId(newSpaceId: String?) = copyWithAttrs { teamSpaceId = newSpaceId } 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/util/SharingStateChecker.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.util 2 | 3 | import com.dashlane.sharing.UserPermission 4 | import com.dashlane.vault.summary.SummaryObject 5 | 6 | object SharingStateChecker { 7 | fun hasLimitedSharingRights(summaryObject: SummaryObject) = summaryObject.isShared && 8 | UserPermission.LIMITED == summaryObject.sharingPermission 9 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/java/com/dashlane/vault/util/SummaryObjectUtils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.vault.util 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | 5 | val SummaryObject.isProtected: Boolean 6 | get() = when (this) { 7 | is SummaryObject.SecureNote -> secured ?: false 8 | is SummaryObject.Secret -> secured ?: false 9 | else -> false 10 | } -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/res/drawable-hdpi/device_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/vaultmodel/src/main/res/drawable-hdpi/device_unknown.png -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/res/drawable-mdpi/device_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/vaultmodel/src/main/res/drawable-mdpi/device_unknown.png -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/res/drawable-xhdpi/device_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/vaultmodel/src/main/res/drawable-xhdpi/device_unknown.png -------------------------------------------------------------------------------- /dashlane-project/modules/common/vaultmodel/src/main/res/drawable-xxhdpi/device_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/common/vaultmodel/src/main/res/drawable-xxhdpi/device_unknown.png -------------------------------------------------------------------------------- /dashlane-project/modules/features/activate-totp/src/main/java/com/dashlane/ui/screens/settings/Use2faSettingStateRefresher.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.ui.screens.settings 2 | 3 | interface Use2faSettingStateRefresher { 4 | suspend fun refresh() 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/activate-totp/src/main/res/drawable/background_enable_totp_surface.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/authenticator/src/main/java/com/dashlane/authenticator/Pin.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.authenticator 2 | 3 | interface Pin { 4 | val code: String 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/authenticator/src/main/java/com/dashlane/authenticator/dashboard/AuthenticatorDashboardEditState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.authenticator.dashboard 2 | 3 | sealed class AuthenticatorDashboardEditState { 4 | object EditLogins : AuthenticatorDashboardEditState() 5 | 6 | object ViewLogins : AuthenticatorDashboardEditState() 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/authenticator/src/main/res/drawable/authenticator_list_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/credentialmanager/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /dashlane-project/modules/features/credentialmanager/src/main/java/com/dashlane/credentialmanager/CredentialManagerIntent.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.credentialmanager 2 | 3 | import android.app.PendingIntent 4 | 5 | interface CredentialManagerIntent { 6 | fun loginToDashlaneIntent(): PendingIntent 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/credentialmanager/src/main/java/com/dashlane/credentialmanager/CredentialManagerLocker.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.credentialmanager 2 | 3 | interface CredentialManagerLocker { 4 | fun isLoggedIn(): Boolean 5 | fun isAccountLocked(): Boolean 6 | fun unlockDashlane() 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/credentialmanager/src/main/java/com/dashlane/credentialmanager/model/fido/AuthenticatorResponse.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.credentialmanager.model.fido 2 | 3 | import org.json.JSONObject 4 | 5 | interface AuthenticatorResponse { 6 | var clientJson: JSONObject 7 | fun json(): JSONObject 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-export/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/java/com/dashlane/csvimport/csvimport/CsvSchema.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.csvimport.csvimport 2 | 3 | data class CsvSchema( 4 | val hasHeader: Boolean, 5 | val separator: Char, 6 | val fieldTypes: List 7 | ) { 8 | enum class FieldType { 9 | URL, 10 | USERNAME, 11 | PASSWORD 12 | } 13 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/java/com/dashlane/csvimport/matchcsvfields/MatchCsvFieldsViewState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.csvimport.matchcsvfields 2 | 3 | internal data class MatchCsvFieldsViewState( 4 | val items: List, 5 | val position: Int, 6 | val canValidate: Boolean 7 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/java/com/dashlane/csvimport/utils/Utils.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.csvimport.utils 2 | 3 | import android.content.Context 4 | import androidx.localbroadcastmanager.content.LocalBroadcastManager 5 | 6 | internal val Context.localBroadcastManager: LocalBroadcastManager 7 | get() = LocalBroadcastManager.getInstance(this) -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/res/color/button_csv_import_text_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/res/values-h520dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24dp 4 | 30sp 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/res/values-sw720dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @dimen/size_480dp 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/csv-import/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @null 4 | 16dp 5 | 24sp 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/README.md: -------------------------------------------------------------------------------- 1 | # Follow up notification 2 | 3 | Help the user copy paste their vault item data -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/api/FollowUpNotificationApiProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.api 2 | 3 | interface FollowUpNotificationApiProvider { 4 | fun getFollowUpNotificationApi(): FollowUpNotificationApi 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/api/FollowUpNotificationLockManager.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.api 2 | 3 | interface FollowUpNotificationLockManager { 4 | fun isAccountLocked(): Boolean 5 | fun askForUnlockAndExecute(onUnlockSuccessful: () -> Unit) 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/api/FollowUpNotificationPermissionManager.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.api 2 | 3 | interface FollowUpNotificationPermissionManager { 4 | fun isNotificationPermissionGranted(): Boolean 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/domain/CopyFollowUpNotificationToClipboard.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.domain 2 | 3 | interface CopyFollowUpNotificationToClipboard { 4 | fun copy(followUpNotification: FollowUpNotification, copyFieldIndex: Int): Boolean 5 | } 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/domain/FollowUpNotificationSettingModel.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.domain 2 | 3 | data class FollowUpNotificationSettingModel( 4 | val isChecked: Boolean, 5 | val title: String, 6 | val description: String 7 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/domain/FollowUpNotificationSettings.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.domain 2 | 3 | interface FollowUpNotificationSettings { 4 | 5 | fun isAvailable(): Boolean 6 | 7 | fun isActive(): Boolean 8 | fun getSetting(): FollowUpNotificationSettingModel 9 | fun toggleSetting(): FollowUpNotificationSettingModel 10 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/services/FollowUpNotificationDynamicData.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.services 2 | 3 | interface FollowUpNotificationDynamicData { 4 | fun generateRandomUUIDString(): String 5 | fun deviceBuildVersionCode(): Int 6 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/services/FollowUpNotificationFlags.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.services 2 | 3 | interface FollowUpNotificationFlags { 4 | fun canUseFollowUpNotification(): Boolean 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/java/com/dashlane/followupnotification/services/FollowUpNotificationSettingsService.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.followupnotification.services 2 | 3 | interface FollowUpNotificationSettingsService { 4 | fun isFollowUpNotificationSettingChecked(): Boolean 5 | fun changeFollowUpNotificationSettingTo(checked: Boolean): Boolean 6 | } 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/res/drawable/bg_attribute_separator.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/follow-up-notification/src/main/res/layout/follow_up_notification_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-onboarding/src/main/java/com/dashlane/guidedonboarding/widgets/QuestionnaireStep.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.guidedonboarding.widgets 2 | 3 | enum class QuestionnaireStep { 4 | PRE_QUESTION, 5 | QUESTION_1, 6 | QUESTION_2, 7 | QUESTION_3, 8 | PLAN 9 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-onboarding/src/main/res/values/attrs_anwer_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-onboarding/src/main/res/values/attrs_onboarding_plan_step_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/color/guided_password_change_step_icon_background_tint_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/color/guided_password_change_step_icon_foreground_tint_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/color/guided_password_change_step_text_tint_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/drawable/ic_back.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/values-land/forwarders.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @layout/include_guided_password_change_land 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/guided-password-change/src/main/res/values/forwarders.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @layout/include_guided_password_change 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/home-vault-list/src/main/java/com/dashlane/home/vaultlist/comparator/CategoryComparator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.home.vaultlist.comparator 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | 5 | fun categoryComparator(): Comparator = compareBy { it.syncObjectType } -------------------------------------------------------------------------------- /dashlane-project/modules/features/home-vault-list/src/main/java/com/dashlane/home/vaultlist/comparator/MostRecentComparator.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.home.vaultlist.comparator 2 | 3 | import com.dashlane.vault.summary.SummaryObject 4 | import com.dashlane.vault.summary.mostRecentAccessTime 5 | 6 | fun mostRecentAccessTimeComparator(): Comparator = compareByDescending { it.mostRecentAccessTime } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/assets/tokenizer.json: -------------------------------------------------------------------------------- 1 | {"-n-": 1, "o": 2, "e": 3, ".": 4, "c": 5, "a": 6, "m": 7, "i": 8, "r": 9, "n": 10, "t": 11, "s": 12, "l": 13, "u": 14, "d": 15, "p": 16, "g": 17, "b": 18, "h": 19, "k": 20, "f": 21, "y": 22, "w": 23, "v": 24, "-": 25, "z": 26, "x": 27, "j": 28, "0": 29, "1": 30, "2": 31, "q": 32, "3": 33, "4": 34, "5": 35, "9": 36, "7": 37, "8": 38, "6": 39, "'": 40, " ": 41, "_": 42, "%": 43, "­": 44} -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/announcement/KeyboardAutofillService.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.announcement 2 | 3 | interface KeyboardAutofillService { 4 | 5 | fun setOnBoardingSuggestionDisplayed() 6 | 7 | fun canDisplayOnBoardingSuggestion(): Boolean 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/changepassword/AutofillChangePasswordLogger.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.changepassword 2 | 3 | interface AutofillChangePasswordLogger { 4 | var packageName: String? 5 | var domain: String? 6 | 7 | fun logUpdate(id: String) 8 | 9 | fun logCancel(id: String) 10 | 11 | fun logOnClickUpdateAccount(id: String) 12 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/changepassword/domain/CredentialUpdateInfo.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.changepassword.domain 2 | 3 | data class CredentialUpdateInfo( 4 | val id: String, 5 | val password: String 6 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/changepause/view/ChangePauseFragmentContract.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.changepause.view 2 | 3 | interface ChangePauseFragmentContract { 4 | fun updateActionBarTitle(title: String) 5 | fun openPauseFormSourceDialog() 6 | } 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/createaccount/domain/AutofillCreateAccountErrors.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.createaccount.domain 2 | 3 | enum class AutofillCreateAccountErrors(val message: String) { 4 | INCOMPLETE("At least one field is empty"), 5 | USER_LOGGED_OUT("User not logged in"), 6 | DATABASE_ERROR("Could not save the credential") 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/createaccount/domain/CredentialInfo.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.createaccount.domain 2 | 3 | data class CredentialInfo( 4 | val title: String?, 5 | val website: String?, 6 | val login: String, 7 | val password: String, 8 | val packageName: String?, 9 | val spaceId: String? 10 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/fillresponse/Util.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.fillresponse 2 | 3 | import android.os.Build 4 | import android.widget.inline.InlinePresentationSpec 5 | 6 | internal fun InlinePresentationSpec?.isAvailable() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && this != null -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/frozenautofill/FrozenAutofillState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.frozenautofill 2 | 3 | import com.dashlane.ui.model.TextResource 4 | 5 | data class FrozenAutofillState( 6 | val description: TextResource, 7 | val bottomSheetState: BottomSheetState 8 | ) { 9 | 10 | enum class BottomSheetState { 11 | FOLDED, 12 | EXPANDED 13 | } 14 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/generatepassword/GeneratePasswordSpecialMode.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.generatepassword 2 | 3 | enum class GeneratePasswordSpecialMode { 4 | PRIDE 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/internal/AutofillLimiter.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.internal 2 | 3 | import com.dashlane.autofill.formdetector.model.AutoFillFormSource 4 | 5 | interface AutofillLimiter { 6 | suspend fun canHandle(formSource: AutoFillFormSource): Boolean 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/navigation/AutofillDecisionActivity.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.navigation 2 | 3 | interface AutofillDecisionActivity { 4 | fun jumpTo(autofillNavigator: AutofillNavigator) 5 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/navigation/WaitForNavigationDecisionFragment.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.navigation 2 | 3 | import androidx.fragment.app.Fragment 4 | 5 | class WaitForNavigationDecisionFragment : Fragment() -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/pause/model/PausedFormSource.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.pause.model 2 | 3 | import com.dashlane.autofill.formdetector.model.AutoFillFormSource 4 | import java.time.Instant 5 | 6 | data class PausedFormSource( 7 | val autoFillFormSource: AutoFillFormSource, 8 | val pauseUntil: Instant 9 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/phishing/PhishingAttemptLevel.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.phishing 2 | 3 | enum class PhishingAttemptLevel { 4 | NONE, 5 | MODERATE, 6 | HIGH 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/phishing/model/PhishingDomainList.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.phishing.model 2 | 3 | data class PhishingDomainList(val fileFormat: Int, val domains: List) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/rememberaccount/AutofillApiRememberedAccountToaster.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.rememberaccount 2 | 3 | interface AutofillApiRememberedAccountToaster { 4 | fun onAccountRemembered() 5 | } 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/rememberaccount/model/RememberedFormSource.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.rememberaccount.model 2 | 3 | import com.dashlane.autofill.formdetector.model.AutoFillFormSource 4 | 5 | data class RememberedFormSource( 6 | val autoFillFormSource: AutoFillFormSource, 7 | val authentifiantId: String 8 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/request/save/SaveCallback.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.request.save 2 | 3 | import com.dashlane.vault.model.VaultItem 4 | 5 | interface SaveCallback { 6 | fun onSuccess(isUpdate: Boolean, vaultItem: VaultItem<*>) 7 | 8 | fun onFailure(message: CharSequence?) 9 | } 10 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/securitywarnings/data/SecurityWarningAction.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.securitywarnings.data 2 | 3 | enum class SecurityWarningAction { 4 | POSITIVE, 5 | NEGATIVE, 6 | CANCEL 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/java/com/dashlane/autofill/totp/TotpResult.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.autofill.totp 2 | 3 | data class TotpResult( 4 | val code: String, 5 | val timeRemainingMilliseconds: Long 6 | ) -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/background_link_service.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/background_password_limit_body.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/handle_round_rectangle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/ic_inline_add_account.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/drawable/ic_inline_sms_otp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/layout/list_invisible_item.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/values-land/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @string/autofill_do_not_show_again_choose_pause_title_landscape 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/inappautofill/src/main/res/values/autofill_revert_actions_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Undo 4 | Pause 5 | Accounts linked via manual Autofill 6 | 7 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/m2w/src/main/res/drawable/m2w_url_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/sampledata/current_plan_benefits: -------------------------------------------------------------------------------- 1 | Unlimited passwords 2 | Access on unlimited devices 3 | Secure Notes 4 | Dark Web Monitoring 5 | 6 separate accounts under one plan 6 | VPN 7 | Credit monitoring, identity insurance and restoration -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/java/com/dashlane/premium/current/DarkWebMonitoringInfoState.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.premium.current 2 | 3 | internal sealed class DarkWebMonitoringInfoState { 4 | 5 | object Initial : DarkWebMonitoringInfoState() 6 | 7 | object Displaying : DarkWebMonitoringInfoState() 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/java/com/dashlane/premium/offer/common/InAppBillingDebugPreference.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.premium.offer.common 2 | 3 | interface InAppBillingDebugPreference { 4 | 5 | fun isAllPurchaseActionsAllowed(): Boolean 6 | 7 | fun getOverridingProratedMode(): Int? 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/java/com/dashlane/premium/offer/common/UserBenefitStatusProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.premium.offer.common 2 | 3 | import com.dashlane.accountstatus.AccountStatus 4 | import com.dashlane.premium.offer.common.model.UserBenefitStatus 5 | 6 | interface UserBenefitStatusProvider { 7 | 8 | fun getFormattedStatus(accountStatus: AccountStatus?): UserBenefitStatus 9 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/java/com/dashlane/premium/offer/common/model/OfferType.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.premium.offer.common.model 2 | 3 | import androidx.annotation.Keep 4 | 5 | @Keep 6 | enum class OfferType { 7 | FREE, 8 | ADVANCED, 9 | PREMIUM, 10 | FAMILY 11 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/java/com/dashlane/premium/offer/details/ConflictingBillingPlatformProvider.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.premium.offer.details 2 | 3 | import com.dashlane.ui.model.TextResource 4 | 5 | interface ConflictingBillingPlatformProvider { 6 | fun getWarning(): TextResource? 7 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/res/drawable-nodpi/illu_premium_dwm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dashlane/android-apps/018f827f2a01b174ebdb721832e0c8463a02ed22/dashlane-project/modules/features/premium/src/main/res/drawable-nodpi/illu_premium_dwm.png -------------------------------------------------------------------------------- /dashlane-project/modules/features/premium/src/main/res/drawable/ic_check_offer_details_benefit_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/secrettransfer/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/secure-archive/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/secure-archive/src/main/java/com/dashlane/securearchive/BackupOperation.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.securearchive 2 | 3 | import android.net.Uri 4 | 5 | sealed class BackupOperation { 6 | data class Import(val uri: Uri) : BackupOperation() 7 | object Export : BackupOperation() 8 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/secure-archive/src/main/java/com/dashlane/securearchive/BackupViewModelContract.kt: -------------------------------------------------------------------------------- 1 | package com.dashlane.securearchive 2 | 3 | import kotlinx.coroutines.flow.Flow 4 | 5 | interface BackupViewModelContract { 6 | val operation: BackupOperation 7 | 8 | val state: Flow 9 | 10 | fun onPasswordChanged() 11 | 12 | fun onBackupLaunch(password: String) 13 | 14 | fun onBackupCancel() 15 | } -------------------------------------------------------------------------------- /dashlane-project/modules/features/sharingv2/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/vpn-third-party/src/main/res/drawable/vpn_third_party_account_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/welcome/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/welcome/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @dimen/size_480dp 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/welcome/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0dp 4 | -------------------------------------------------------------------------------- /dashlane-project/modules/features/welcome/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |