├── .gitattributes ├── .gitignore ├── .gitlab-ci.yml ├── .gitleaks.toml ├── .gitleaksignore ├── .grype.yaml ├── .idea ├── .name ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── copyright │ ├── ProtonCore.xml │ └── profiles_settings.xml ├── detekt.xml ├── dictionaries │ └── project.xml ├── externalDependencies.xml ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── kotlinScripting.xml ├── runConfigurations │ ├── All.xml │ ├── Large.xml │ ├── Large__Firebase_.xml │ ├── Medium.xml │ ├── Medium__Firebase_.xml │ ├── Smoke.xml │ └── Smoke__Firebase_.xml ├── saveactions_settings.xml └── vcs.xml ├── .locale-state.metadata ├── .semgrep.yml ├── .semgrepignore ├── CHANGELOG.md ├── CODEOWNERS ├── Dangerfile ├── Gemfile ├── Gemfile.lock ├── README.md ├── account-manager ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountmanager │ │ └── dagger │ │ └── CoreAccountManagerModule.kt ├── data-db │ ├── build.gradle.kts │ ├── schemas │ │ └── me.proton.core.accountmanager.data.db.AccountManagerDatabase │ │ │ ├── 1.json │ │ │ ├── 10.json │ │ │ ├── 11.json │ │ │ ├── 12.json │ │ │ ├── 13.json │ │ │ ├── 14.json │ │ │ ├── 15.json │ │ │ ├── 16.json │ │ │ ├── 17.json │ │ │ ├── 18.json │ │ │ ├── 19.json │ │ │ ├── 2.json │ │ │ ├── 20.json │ │ │ ├── 21.json │ │ │ ├── 22.json │ │ │ ├── 23.json │ │ │ ├── 24.json │ │ │ ├── 25.json │ │ │ ├── 26.json │ │ │ ├── 27.json │ │ │ ├── 28.json │ │ │ ├── 29.json │ │ │ ├── 3.json │ │ │ ├── 30.json │ │ │ ├── 31.json │ │ │ ├── 32.json │ │ │ ├── 33.json │ │ │ ├── 34.json │ │ │ ├── 35.json │ │ │ ├── 36.json │ │ │ ├── 37.json │ │ │ ├── 38.json │ │ │ ├── 39.json │ │ │ ├── 4.json │ │ │ ├── 40.json │ │ │ ├── 42.json │ │ │ ├── 43.json │ │ │ ├── 44.json │ │ │ ├── 45.json │ │ │ ├── 46.json │ │ │ ├── 47.json │ │ │ ├── 48.json │ │ │ ├── 49.json │ │ │ ├── 5.json │ │ │ ├── 50.json │ │ │ ├── 51.json │ │ │ ├── 52.json │ │ │ ├── 53.json │ │ │ ├── 54.json │ │ │ ├── 55.json │ │ │ ├── 56.json │ │ │ ├── 57.json │ │ │ ├── 58.json │ │ │ ├── 59.json │ │ │ ├── 6.json │ │ │ ├── 60.json │ │ │ ├── 61.json │ │ │ ├── 62.json │ │ │ ├── 63.json │ │ │ ├── 7.json │ │ │ ├── 8.json │ │ │ └── 9.json │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountmanager │ │ └── data │ │ └── db │ │ ├── AccountManagerDatabase.kt │ │ └── AccountManagerDatabaseMigrations.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountmanager │ │ │ └── data │ │ │ ├── AccountManagerImpl.kt │ │ │ ├── AccountMigratorImpl.kt │ │ │ ├── AccountStateHandler.kt │ │ │ ├── RefreshAddressesWorker.kt │ │ │ ├── RefreshUserAndAddressesWorker.kt │ │ │ ├── RefreshUserWorker.kt │ │ │ ├── SessionListenerImpl.kt │ │ │ ├── SessionManagerImpl.kt │ │ │ ├── SessionProviderImpl.kt │ │ │ └── job │ │ │ ├── DisableNotReadyAccount.kt │ │ │ ├── OnInvalidKey.kt │ │ │ └── OnMigrationNeeded.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountmanager │ │ └── data │ │ ├── AccountManagerImplTest.kt │ │ ├── AccountMigratorImplTest.kt │ │ ├── AccountStateHandlerTest.kt │ │ ├── RepositoryMocks.kt │ │ ├── SessionListenerImplTest.kt │ │ ├── SessionManagerImplTest.kt │ │ ├── SessionProviderImplTest.kt │ │ └── TestSessionListener.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountmanager │ │ │ └── domain │ │ │ ├── AccountManager.kt │ │ │ ├── AccountManagerExtensions.kt │ │ │ ├── AccountWorkflowHandler.kt │ │ │ ├── LogTag.kt │ │ │ ├── SessionManager.kt │ │ │ └── migrator │ │ │ └── AccountMigrator.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountmanager │ │ └── domain │ │ ├── AccountManagerExtensionsKtTest.kt │ │ └── migrator │ │ └── AccountMigratorTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountmanager │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── AccountPrimaryItem.kt │ │ │ ├── AccountPrimaryState.kt │ │ │ ├── AccountSettingsInfo.kt │ │ │ ├── AccountSettingsItem.kt │ │ │ ├── AccountSettingsList.kt │ │ │ ├── AccountSettingsScreen.kt │ │ │ ├── SignOutDialog.kt │ │ │ ├── SignOutDialogActivity.kt │ │ │ ├── entity │ │ │ └── SignOutDialogInput.kt │ │ │ └── viewmodel │ │ │ └── AccountSettingsViewModel.kt │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountmanager │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── AccountSettingsInfoSnapshotTest.kt │ │ │ ├── AccountSettingsItemSnapshotTest.kt │ │ │ ├── AccountSettingsListSnapshotTest.kt │ │ │ ├── AccountSettingsScreenSnapshotTest.kt │ │ │ ├── SignOutDialogSnapshotTest.kt │ │ │ └── viewmodel │ │ │ └── AccountSettingsViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsInfoSnapshotTest_defaultAccountSettingsInfoDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsInfoSnapshotTest_defaultAccountSettingsInfoHidden.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsInfoSnapshotTest_defaultAccountSettingsInfoLight.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsInfoSnapshotTest_defaultAccountSettingsViewDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsInfoSnapshotTest_defaultAccountSettingsViewLight.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsItemSnapshotTest_accountSettingsItem.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsItemSnapshotTest_accountSettingsItemDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsItemSnapshotTest_accountSettingsItemWithHint.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsItemSnapshotTest_accountSettingsItemWithHintDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsListSnapshotTest_accountSettingsList.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsListSnapshotTest_accountSettingsListDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsScreenSnapshotTest_accountSettingsScreen.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsScreenSnapshotTest_accountSettingsScreenDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsInfoCredentialLess.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsInfoDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsInfoHidden.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsInfoLight.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsInfoLoggedIn.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsViewDark.png │ │ ├── me.proton.core.accountmanager.presentation.compose_AccountSettingsSignUpTest_defaultAccountSettingsViewLight.png │ │ └── me.proton.core.accountmanager.presentation.compose_SignOutDialogSnapshotTest_signOutDialog.png ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── accountmanager │ │ │ │ └── presentation │ │ │ │ ├── AccountManagerObserver.kt │ │ │ │ ├── AccountManagerOrchestrator.kt │ │ │ │ ├── adapter │ │ │ │ └── AccountListItemAdapter.kt │ │ │ │ ├── entity │ │ │ │ ├── AccountItem.kt │ │ │ │ └── AccountListItem.kt │ │ │ │ ├── view │ │ │ │ ├── AccountListView.kt │ │ │ │ └── AccountPrimaryView.kt │ │ │ │ └── viewmodel │ │ │ │ └── AccountSwitcherViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── background_account.xml │ │ │ ├── background_account_initials.xml │ │ │ └── background_account_primary.xml │ │ │ ├── layout │ │ │ ├── account_action.xml │ │ │ ├── account_list_view.xml │ │ │ ├── account_primary_view.xml │ │ │ ├── account_section.xml │ │ │ └── account_view.xml │ │ │ ├── menu │ │ │ └── account_menu.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── sizes.xml │ │ │ └── strings.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountmanager │ │ │ └── presentation │ │ │ ├── SnapshotAccountPrimaryViewTest.kt │ │ │ └── viewmodel │ │ │ └── AccountSwitcherViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.accountmanager.presentation_SnapshotAccountPrimaryViewTest_accountPrimaryView filled with data_default.png │ │ ├── me.proton.core.accountmanager.presentation_SnapshotAccountPrimaryViewTest_accountPrimaryViewDialogDisabled.png │ │ ├── me.proton.core.accountmanager.presentation_SnapshotAccountPrimaryViewTest_accountPrimaryViewDialogEnabled.png │ │ └── me.proton.core.accountmanager.presentation_SnapshotAccountPrimaryViewTest_empty accountPrimaryView_default.png └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── accountmanager │ └── test │ └── robot │ ├── AccountSettingsRobot.kt │ └── SignOutDialogRobot.kt ├── account-recovery ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountrecovery │ │ └── dagger │ │ └── CoreAccountRecoveryModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── accountrecovery │ │ │ │ └── data │ │ │ │ ├── IsAccountRecoveryEnabledImpl.kt │ │ │ │ ├── IsAccountRecoveryResetEnabledImpl.kt │ │ │ │ ├── api │ │ │ │ ├── AccountRecoveryApi.kt │ │ │ │ ├── request │ │ │ │ │ ├── CancelRecoveryAttemptRequest.kt │ │ │ │ │ └── ResetPasswordRequest.kt │ │ │ │ └── response │ │ │ │ │ └── CancelRecoveryAttemptResponse.kt │ │ │ │ └── repository │ │ │ │ └── AccountRecoveryRepositoryImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountrecovery │ │ └── data │ │ ├── IsAccountRecoveryEnabledImplTest.kt │ │ ├── IsAccountRecoveryResetEnabledImplTest.kt │ │ └── repository │ │ └── AccountRecoveryRepositoryImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountrecovery │ │ │ └── domain │ │ │ ├── IsAccountRecoveryEnabled.kt │ │ │ ├── IsAccountRecoveryResetEnabled.kt │ │ │ ├── repository │ │ │ └── AccountRecoveryRepository.kt │ │ │ └── usecase │ │ │ ├── CancelRecovery.kt │ │ │ ├── ObserveUserRecovery.kt │ │ │ ├── ObserveUserRecoverySelfInitiated.kt │ │ │ ├── ObserveUserRecoveryState.kt │ │ │ └── StartRecovery.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── accountrecovery │ │ └── domain │ │ └── usecase │ │ ├── CancelRecoveryTest.kt │ │ ├── ObserveUserRecoverySelfInitiatedTest.kt │ │ ├── ObserveUserRecoveryStateTest.kt │ │ └── StartRecoveryTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountrecovery │ │ │ └── presentation │ │ │ └── compose │ │ │ └── dialog │ │ │ └── AccountRecoveryDialogTest.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountrecovery │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── AccountRecoveryNotificationSetup.kt │ │ │ ├── LogTag.kt │ │ │ ├── dialog │ │ │ ├── AccountRecoveryDialog.kt │ │ │ └── PasswordResetDialog.kt │ │ │ ├── entity │ │ │ └── AccountRecoveryDialogInput.kt │ │ │ ├── ui │ │ │ ├── AccountRecoveryDialogActivity.kt │ │ │ ├── AccountRecoveryDialogRoutes.kt │ │ │ └── PasswordResetDialogActivity.kt │ │ │ ├── view │ │ │ └── AccountRecoveryInfo.kt │ │ │ └── viewmodel │ │ │ ├── AccountRecoveryDialogViewModel.kt │ │ │ ├── AccountRecoveryInfoViewModel.kt │ │ │ └── PasswordResetDialogViewModel.kt │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── accountrecovery │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── AccountRecoveryDialogSnapshotMockTest.kt │ │ │ ├── AccountRecoveryDialogSnapshotTest.kt │ │ │ ├── AccountRecoveryNotificationSetupTest.kt │ │ │ ├── dialog │ │ │ └── PasswordResetDialogSnapshotTest.kt │ │ │ ├── view │ │ │ └── AccountRecoveryInfoSnapshotTest.kt │ │ │ └── viewmodel │ │ │ ├── AccountRecoveryDialogViewModelTest.kt │ │ │ ├── AccountRecoveryInfoViewModelTest.kt │ │ │ └── PasswordResetDialogViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.accountrecovery.presentation.compose.dialog_PasswordResetDialogSnapshotTest_passwordResetDialogViewModelStateLoading.png │ │ ├── me.proton.core.accountrecovery.presentation.compose.dialog_PasswordResetDialogSnapshotTest_passwordResetDialogViewModelStateReady.png │ │ ├── me.proton.core.accountrecovery.presentation.compose.view_AccountRecoveryInfoSnapshotTest_userRecoveryInfoCancelled.png │ │ ├── me.proton.core.accountrecovery.presentation.compose.view_AccountRecoveryInfoSnapshotTest_userRecoveryInfoGrace.png │ │ ├── me.proton.core.accountrecovery.presentation.compose.view_AccountRecoveryInfoSnapshotTest_userRecoveryInfoGraceCollapsed.png │ │ ├── me.proton.core.accountrecovery.presentation.compose.view_AccountRecoveryInfoSnapshotTest_userRecoveryInfoInsecure.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogCancellationTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogGracePeriodTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogOnLoadingTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogPasswordChangeWindowTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogRecoveryEndedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogRecoveryWindowTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryDialogWithPaddingModifier.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryOnCancellationProgressErrorOccurredTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryOnCancellationProgressTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryOnErrorTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotMockTest_baseAccountRecoveryStateClosedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryCancellationTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryGracePeriodTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryInvalidPasswordTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryPasswordPeriodTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateClosedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateErrorTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateLoadingTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateOpenedCancellationHappenedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateOpenedGracePeriodStartedProcessingTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateOpenedPasswordChangeStartedSelfInitiatedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateOpenedPasswordChangeStartedTest.png │ │ ├── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryStateOpenedRecoveryEndedTest.png │ │ └── me.proton.core.accountrecovery.presentation.compose_AccountRecoveryDialogSnapshotTest_accountRecoveryWindowEndingTest.png ├── presentation │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── res │ │ ├── drawable │ │ ├── ic_recovery_cancelled.xml │ │ ├── ic_recovery_pending.xml │ │ └── ic_recovery_unsecure.xml │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ └── strings.xml └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── accountrecovery │ └── test │ ├── MinimalAccountRecoveryNotificationTest.kt │ ├── TestApi.kt │ ├── fake │ ├── FakeIsAccountRecoveryEnabled.kt │ └── FakeIsAccountRecoveryResetEnabled.kt │ └── robot │ ├── AccountRecoveryGracePeriodRobot.kt │ ├── CancelResetDialogRobot.kt │ └── PasswordResetDialogRobot.kt ├── account ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── account │ │ └── dagger │ │ └── CoreAccountModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── account │ │ │ └── data │ │ │ ├── db │ │ │ ├── AccountConverters.kt │ │ │ ├── AccountDao.kt │ │ │ ├── AccountDatabase.kt │ │ │ ├── AccountMetadataDao.kt │ │ │ ├── SessionDao.kt │ │ │ └── SessionDetailsDao.kt │ │ │ ├── entity │ │ │ ├── AccountEntity.kt │ │ │ ├── AccountMetadataEntity.kt │ │ │ ├── SessionDetailsEntity.kt │ │ │ └── SessionEntity.kt │ │ │ ├── extension │ │ │ ├── Account.kt │ │ │ └── Session.kt │ │ │ └── repository │ │ │ └── AccountRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── account │ │ └── data │ │ ├── db │ │ └── AccountConvertersTest.kt │ │ └── repository │ │ └── AccountRepositoryImplTest.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── account │ └── domain │ ├── entity │ ├── Account.kt │ ├── AccountState.kt │ ├── AccountType.kt │ └── SessionState.kt │ └── repository │ └── AccountRepository.kt ├── auth-fido ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── fido │ │ └── dagger │ │ └── CoreAuthFidoModule.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── fido │ │ └── domain │ │ ├── entity │ │ ├── Fido2AuthenticationExtensionsClientInputs.kt │ │ ├── Fido2AuthenticationOptions.kt │ │ ├── Fido2PublicKeyCredentialDescriptor.kt │ │ ├── Fido2PublicKeyCredentialRequestOptions.kt │ │ ├── Fido2RegisteredKey.kt │ │ └── SecondFactorProof.kt │ │ ├── ext │ │ └── Fido2AuthenticationExtensionsClientInputsExt.kt │ │ └── usecase │ │ └── PerformTwoFaWithSecurityKey.kt └── play │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── fido │ │ └── play │ │ ├── di │ │ └── CoreAuthFidoDataPlayModule.kt │ │ └── usecase │ │ └── PerformTwoFaWithSecurityKeyImpl.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── auth │ └── fido │ └── play │ └── usecase │ └── PerformTwoFaWithSecurityKeyImplTest.kt ├── auth ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── dagger │ │ └── CoreAuthModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── auth │ │ │ │ └── data │ │ │ │ ├── AuthDeviceEventListener.kt │ │ │ │ ├── MissingScopeListenerImpl.kt │ │ │ │ ├── api │ │ │ │ ├── AuthDeviceApi.kt │ │ │ │ ├── AuthenticationApi.kt │ │ │ │ ├── fido2 │ │ │ │ │ ├── AuthenticationOptionsData.kt │ │ │ │ │ ├── Fido2RegisteredKeyData.kt │ │ │ │ │ ├── PublicKeyCredentialDescriptorData.kt │ │ │ │ │ └── PublicKeyCredentialRequestOptionsResponse.kt │ │ │ │ ├── request │ │ │ │ │ ├── ActivateDeviceRequest.kt │ │ │ │ │ ├── AssociateDeviceRequest.kt │ │ │ │ │ ├── AuthInfoRequest.kt │ │ │ │ │ ├── CreateDeviceRequest.kt │ │ │ │ │ ├── EmailValidationRequest.kt │ │ │ │ │ ├── ForkSessionRequest.kt │ │ │ │ │ ├── LoginLessRequest.kt │ │ │ │ │ ├── LoginRequest.kt │ │ │ │ │ ├── LoginSsoRequest.kt │ │ │ │ │ ├── PhoneValidationRequest.kt │ │ │ │ │ ├── RefreshSessionRequest.kt │ │ │ │ │ ├── RequestSessionRequest.kt │ │ │ │ │ └── SecondFactorRequest.kt │ │ │ │ └── response │ │ │ │ │ ├── AssociateDeviceResponse.kt │ │ │ │ │ ├── AuthDevicesResponse.kt │ │ │ │ │ ├── AuthInfoResponse.kt │ │ │ │ │ ├── CreateDeviceResponse.kt │ │ │ │ │ ├── ForkSessionResponse.kt │ │ │ │ │ ├── GetForkedSessionResponse.kt │ │ │ │ │ ├── LoginResponse.kt │ │ │ │ │ ├── ModulusResponse.kt │ │ │ │ │ ├── PendingMemberDevicesResponse.kt │ │ │ │ │ ├── SRPAuthenticationResponse.kt │ │ │ │ │ ├── ScopesResponse.kt │ │ │ │ │ ├── SecondFactorInfoResponse.kt │ │ │ │ │ ├── SecondFactorResponse.kt │ │ │ │ │ ├── SessionForksResponse.kt │ │ │ │ │ ├── SessionResponse.kt │ │ │ │ │ └── UnprivatizationInfoResponse.kt │ │ │ │ ├── dao │ │ │ │ ├── AuthDeviceDao.kt │ │ │ │ ├── DeviceSecretDao.kt │ │ │ │ └── MemberDeviceDao.kt │ │ │ │ ├── db │ │ │ │ ├── AuthConverters.kt │ │ │ │ └── AuthDatabase.kt │ │ │ │ ├── entity │ │ │ │ ├── AuthDeviceEntity.kt │ │ │ │ ├── DeviceSecretEntity.kt │ │ │ │ └── MemberDeviceEntity.kt │ │ │ │ ├── event │ │ │ │ └── MemberDeviceEventListener.kt │ │ │ │ ├── feature │ │ │ │ ├── IsCommonPasswordCheckEnabledImpl.kt │ │ │ │ ├── IsCredentialLessEnabledImpl.kt │ │ │ │ ├── IsFido2EnabledImpl.kt │ │ │ │ ├── IsLoginTwoStepEnabledImpl.kt │ │ │ │ ├── IsSsoCustomTabEnabledImpl.kt │ │ │ │ └── IsSsoEnabledImpl.kt │ │ │ │ └── repository │ │ │ │ ├── AuthDeviceLocalDataSourceImpl.kt │ │ │ │ ├── AuthDeviceRemoteDataSourceImpl.kt │ │ │ │ ├── AuthDeviceRepositoryImpl.kt │ │ │ │ ├── AuthRepositoryImpl.kt │ │ │ │ ├── DeleteAuthDeviceWorker.kt │ │ │ │ ├── DeviceSecretRepositoryImpl.kt │ │ │ │ ├── MemberDeviceLocalDataSourceImpl.kt │ │ │ │ ├── MemberDeviceRemoteDataSourceImpl.kt │ │ │ │ └── MemberDeviceRepositoryImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── data │ │ ├── MissingScopeListenerImplTest.kt │ │ ├── api │ │ ├── fido2 │ │ │ ├── Fido2AuthenticationExtensionsClientInputsExtTest.kt │ │ │ └── PublicKeyCredentialRequestOptionsResponseKtTest.kt │ │ └── response │ │ │ └── SecondFactorInfoResponseTest.kt │ │ ├── event │ │ └── MemberDeviceEventListenerTest.kt │ │ ├── repository │ │ ├── AuthRepositoryImplTest.kt │ │ └── AuthSignupRepositoryImplTest.kt │ │ └── usecase │ │ ├── IsCommonPasswordCheckEnabledImplTest.kt │ │ ├── IsCredentialLessEnabledTest.kt │ │ ├── IsSsoCustomTabEnabledImplTest.kt │ │ └── IsSsoEnabledImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── auth │ │ │ └── domain │ │ │ ├── LogTag.kt │ │ │ ├── LoginFlow.kt │ │ │ ├── LoginState.kt │ │ │ ├── entity │ │ │ ├── AuthDevice.kt │ │ │ ├── AuthInfo.kt │ │ │ ├── AuthIntent.kt │ │ │ ├── BillingDetails.kt │ │ │ ├── CreatedDevice.kt │ │ │ ├── DeviceSecret.kt │ │ │ ├── EncryptedAuthSecret.kt │ │ │ ├── MemberDevice.kt │ │ │ ├── Modulus.kt │ │ │ ├── ScopeInfo.kt │ │ │ ├── ServerProof.kt │ │ │ ├── SessionDetailsExt.kt │ │ │ ├── SessionForkPayloadWithKey.kt │ │ │ ├── SessionForks.kt │ │ │ ├── SessionInfo.kt │ │ │ └── UnprivatizationInfo.kt │ │ │ ├── exception │ │ │ └── InvalidServerAuthenticationException.kt │ │ │ ├── feature │ │ │ ├── IsCommonPasswordCheckEnabled.kt │ │ │ ├── IsCredentialLessEnabled.kt │ │ │ ├── IsFido2Enabled.kt │ │ │ ├── IsLoginTwoStepEnabled.kt │ │ │ ├── IsSsoCustomTabEnabled.kt │ │ │ └── IsSsoEnabled.kt │ │ │ ├── repository │ │ │ ├── AuthDeviceLocalDataSource.kt │ │ │ ├── AuthDeviceRemoteDataSource.kt │ │ │ ├── AuthDeviceRepository.kt │ │ │ ├── AuthRepository.kt │ │ │ ├── DeviceSecretRepository.kt │ │ │ ├── MemberDeviceLocalDataSource.kt │ │ │ ├── MemberDeviceRemoteDataSource.kt │ │ │ └── MemberDeviceRepository.kt │ │ │ ├── testing │ │ │ └── LoginTestHelper.kt │ │ │ └── usecase │ │ │ ├── AccountAvailability.kt │ │ │ ├── CreateLoginLessSession.kt │ │ │ ├── CreateLoginSession.kt │ │ │ ├── CreateLoginSessionFromFork.kt │ │ │ ├── CreateLoginSsoSession.kt │ │ │ ├── ForkSession.kt │ │ │ ├── GetAuthInfoAuto.kt │ │ │ ├── GetAuthInfoSrp.kt │ │ │ ├── GetAuthInfoSso.kt │ │ │ ├── GetPrimaryUser.kt │ │ │ ├── LoginChallengeConfig.kt │ │ │ ├── PerformLogin.kt │ │ │ ├── PerformLoginLess.kt │ │ │ ├── PerformLoginSso.kt │ │ │ ├── PerformSecondFactor.kt │ │ │ ├── PostLoginAccountSetup.kt │ │ │ ├── PostLoginLessAccountSetup.kt │ │ │ ├── PostLoginSsoAccountSetup.kt │ │ │ ├── RecoverableErrors.kt │ │ │ ├── SetupAccountCheck.kt │ │ │ ├── SetupExternalAddressKeys.kt │ │ │ ├── SetupInternalAddress.kt │ │ │ ├── SetupPrimaryKeys.kt │ │ │ ├── UnlockUserPrimaryKey.kt │ │ │ ├── UserCheckAction.kt │ │ │ ├── ValidateServerProof.kt │ │ │ ├── fork │ │ │ ├── DecryptPassphrasePayload.kt │ │ │ └── GetEncryptedPassphrasePayload.kt │ │ │ ├── scopes │ │ │ ├── ObtainLockedScope.kt │ │ │ ├── ObtainPasswordScope.kt │ │ │ └── RemoveSecurityScopes.kt │ │ │ ├── signup │ │ │ ├── PerformCreateExternalEmailUser.kt │ │ │ ├── PerformCreateUser.kt │ │ │ ├── SetCreateAccountSuccess.kt │ │ │ ├── SignupChallengeConfig.kt │ │ │ ├── ValidateEmail.kt │ │ │ └── ValidatePhone.kt │ │ │ └── sso │ │ │ ├── ActivateAuthDevice.kt │ │ │ ├── AssociateAuthDevice.kt │ │ │ ├── ChangeBackupPassword.kt │ │ │ ├── CheckDeviceSecret.kt │ │ │ ├── CheckOtherDevices.kt │ │ │ ├── CreateAuthDevice.kt │ │ │ ├── Crockford32.kt │ │ │ ├── DecryptEncryptedSecret.kt │ │ │ ├── DeleteAuthDeviceRemote.kt │ │ │ ├── GenerateConfirmationCode.kt │ │ │ ├── GenerateDeviceSecret.kt │ │ │ ├── GetEncryptedSecret.kt │ │ │ ├── RejectAuthDevice.kt │ │ │ ├── RejectMemberDevice.kt │ │ │ ├── ValidateConfirmationCode.kt │ │ │ └── VerifyUnprivatization.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── auth │ │ └── domain │ │ └── usecase │ │ ├── AccountAvailabilityTest.kt │ │ ├── AssociateAuthDeviceTest.kt │ │ ├── CreateLoginLessSessionTest.kt │ │ ├── CreateLoginSessionTest.kt │ │ ├── CreateLoginSsoSessionTest.kt │ │ ├── ForkSessionTest.kt │ │ ├── GetAuthSrpTest.kt │ │ ├── GetAuthSsoTest.kt │ │ ├── GetPrimaryUserTest.kt │ │ ├── PerformLoginApiErrorTest.kt │ │ ├── PerformLoginSsoTest.kt │ │ ├── PerformLoginSuccessApiResultsTest.kt │ │ ├── PerformLoginTest.kt │ │ ├── PerformSecondFactorTest.kt │ │ ├── PostLoginAccountSetupTest.kt │ │ ├── PostLoginLessAccountSetupTest.kt │ │ ├── PostLoginSsoAccountSetupTest.kt │ │ ├── SetupAccountCheckTest.kt │ │ ├── SetupPrimaryKeysTest.kt │ │ ├── UnlockUserPrimaryKeyTest.kt │ │ ├── ValidateServerProofTest.kt │ │ ├── fork │ │ └── GetEncryptedPassphrasePayloadTest.kt │ │ ├── scopes │ │ ├── ObtainLockedScopeTest.kt │ │ └── ObtainPasswordScopeTest.kt │ │ └── signup │ │ ├── PerformCreateExternalEmailUserTest.kt │ │ ├── PerformCreateUserTest.kt │ │ ├── ValidateEmailTest.kt │ │ └── ValidatePhoneTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── auth │ │ │ │ └── presentation │ │ │ │ └── compose │ │ │ │ ├── ChangePasswordDialog.kt │ │ │ │ ├── DeviceApprovalRoutes.kt │ │ │ │ ├── DeviceSecretOperation.kt │ │ │ │ ├── DeviceSecretRoutes.kt │ │ │ │ ├── DeviceSecretScreen.kt │ │ │ │ ├── DeviceSecretViewModel.kt │ │ │ │ ├── DeviceSecretViewState.kt │ │ │ │ ├── ExternalAccountNotSupportedDialog.kt │ │ │ │ ├── LoginInputPasswordOperation.kt │ │ │ │ ├── LoginInputPasswordScreen.kt │ │ │ │ ├── LoginInputPasswordState.kt │ │ │ │ ├── LoginInputPasswordViewModel.kt │ │ │ │ ├── LoginInputUsernameOperation.kt │ │ │ │ ├── LoginInputUsernameScreen.kt │ │ │ │ ├── LoginInputUsernameState.kt │ │ │ │ ├── LoginInputUsernameViewModel.kt │ │ │ │ ├── LoginRoutes.kt │ │ │ │ ├── LoginScaffold.kt │ │ │ │ └── sso │ │ │ │ ├── AccessResultScreen.kt │ │ │ │ ├── AuthDeviceData.kt │ │ │ │ ├── AuthDeviceList.kt │ │ │ │ ├── BackupPasswordChangeOperation.kt │ │ │ │ ├── BackupPasswordChangeScreen.kt │ │ │ │ ├── BackupPasswordChangeState.kt │ │ │ │ ├── BackupPasswordChangeViewModel.kt │ │ │ │ ├── BackupPasswordInputOperation.kt │ │ │ │ ├── BackupPasswordInputScreen.kt │ │ │ │ ├── BackupPasswordInputState.kt │ │ │ │ ├── BackupPasswordInputViewModel.kt │ │ │ │ ├── BackupPasswordSetupData.kt │ │ │ │ ├── BackupPasswordSetupOperation.kt │ │ │ │ ├── BackupPasswordSetupScreen.kt │ │ │ │ ├── BackupPasswordSetupState.kt │ │ │ │ ├── BackupPasswordSetupViewModel.kt │ │ │ │ ├── ConfirmationDigits.kt │ │ │ │ ├── MemberApprovalData.kt │ │ │ │ ├── MemberApprovalOperation.kt │ │ │ │ ├── MemberApprovalScreen.kt │ │ │ │ ├── MemberApprovalState.kt │ │ │ │ ├── MemberApprovalViewModel.kt │ │ │ │ ├── PasswordFormError.kt │ │ │ │ ├── RequestAdminHelpData.kt │ │ │ │ ├── RequestAdminHelpOperation.kt │ │ │ │ ├── RequestAdminHelpScreen.kt │ │ │ │ ├── RequestAdminHelpState.kt │ │ │ │ ├── RequestAdminHelpViewModel.kt │ │ │ │ ├── WaitingAdminOperation.kt │ │ │ │ ├── WaitingAdminScreen.kt │ │ │ │ ├── WaitingAdminState.kt │ │ │ │ ├── WaitingAdminViewModel.kt │ │ │ │ ├── WaitingMemberOperation.kt │ │ │ │ ├── WaitingMemberScreen.kt │ │ │ │ ├── WaitingMemberState.kt │ │ │ │ └── WaitingMemberViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── default_org_logo.xml │ │ │ ├── ic_access_denied.xml │ │ │ └── ic_access_granted.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── auth │ │ │ └── presentation │ │ │ └── compose │ │ │ └── sso │ │ │ ├── AccessResultScreenTest.kt │ │ │ ├── BackupPasswordChangeScreenTest.kt │ │ │ ├── BackupPasswordInputScreenTest.kt │ │ │ ├── BackupPasswordInputViewModelTest.kt │ │ │ ├── BackupPasswordSetupScreenTest.kt │ │ │ ├── BackupPasswordSetupViewModelTest.kt │ │ │ ├── MemberApprovalScreenTest.kt │ │ │ ├── RequestAdminHelpScreenTest.kt │ │ │ ├── WaitingAdminScreenTest.kt │ │ │ └── WaitingMemberScreenTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.auth.presentation.compose.sso_AccessResultScreenTest_access denied screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_AccessResultScreenTest_access granted screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordChangeScreenTest_idle screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordChangeScreenTest_password too short.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordChangeScreenTest_passwords do not match.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordInputScreenTest_initial screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordInputScreenTest_invalid password.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordInputScreenTest_loading screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordSetupScreenTest_data loaded screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordSetupScreenTest_loading screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordSetupScreenTest_password too short.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordSetupScreenTest_passwords do not match.png │ │ ├── me.proton.core.auth.presentation.compose.sso_BackupPasswordSetupScreenTest_passwords too common.png │ │ ├── me.proton.core.auth.presentation.compose.sso_MemberApprovalScreenTest_signInRequestedForApprovalScreenTest.png │ │ ├── me.proton.core.auth.presentation.compose.sso_RequestAdminHelpScreenTest_ask admin access data loaded screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_RequestAdminHelpScreenTest_ask admin access loading screen.png │ │ ├── me.proton.core.auth.presentation.compose.sso_WaitingAdminScreenTest_shareConfirmationCodeWithAdminScreenTest.png │ │ └── me.proton.core.auth.presentation.compose.sso_WaitingMemberScreenTest_signInSentForApprovalScreenTest.png ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── auth │ │ │ │ └── presentation │ │ │ │ ├── AuthOrchestrator.kt │ │ │ │ ├── DefaultHelpOptionHandler.kt │ │ │ │ ├── DefaultUserCheck.kt │ │ │ │ ├── DeviceApprovalNotificationSetup.kt │ │ │ │ ├── HelpOptionHandler.kt │ │ │ │ ├── MissingScopeInitializer.kt │ │ │ │ ├── MissingScopeObserver.kt │ │ │ │ ├── MissingScopeOrchestrator.kt │ │ │ │ ├── MissingScopeStateHandler.kt │ │ │ │ ├── alert │ │ │ │ ├── AlertUtils.kt │ │ │ │ ├── CancelCreateAccountDialog.kt │ │ │ │ ├── ConfirmPasswordInputDialog.kt │ │ │ │ ├── TwoFAInputDialog.kt │ │ │ │ └── confirmpass │ │ │ │ │ ├── ActivityResultContracts.kt │ │ │ │ │ ├── ConfirmPasswordDialog.kt │ │ │ │ │ └── ConfirmPasswordDialogViewController.kt │ │ │ │ ├── entity │ │ │ │ ├── AddAccountInput.kt │ │ │ │ ├── AddAccountResult.kt │ │ │ │ ├── AuthHelpInput.kt │ │ │ │ ├── AuthHelpResult.kt │ │ │ │ ├── ChooseAddressInput.kt │ │ │ │ ├── ChooseAddressResult.kt │ │ │ │ ├── DeviceSecretResult.kt │ │ │ │ ├── LoginInput.kt │ │ │ │ ├── LoginResult.kt │ │ │ │ ├── LoginSsoInput.kt │ │ │ │ ├── LoginSsoResult.kt │ │ │ │ ├── PasswordInput.kt │ │ │ │ ├── SecondFactorInput.kt │ │ │ │ ├── SecondFactorProofEntity.kt │ │ │ │ ├── SecondFactorResult.kt │ │ │ │ ├── SessionResult.kt │ │ │ │ ├── TwoFAMechanisms.kt │ │ │ │ ├── TwoPassModeInput.kt │ │ │ │ ├── TwoPassModeResult.kt │ │ │ │ ├── confirmpass │ │ │ │ │ ├── ConfirmPasswordInput.kt │ │ │ │ │ └── ConfirmPasswordResult.kt │ │ │ │ └── signup │ │ │ │ │ ├── RecoveryMethodType.kt │ │ │ │ │ ├── SignUpInput.kt │ │ │ │ │ ├── SignUpResult.kt │ │ │ │ │ └── SubscriptionDetails.kt │ │ │ │ ├── observability │ │ │ │ ├── UnlockResultExt.kt │ │ │ │ └── UserCheckResultExt.kt │ │ │ │ ├── telemetry │ │ │ │ └── ProductMetricsDelegateAuth.kt │ │ │ │ ├── testing │ │ │ │ └── ProtonTestEntryPoint.kt │ │ │ │ ├── ui │ │ │ │ ├── ActivityResultContracts.kt │ │ │ │ ├── AddAccountActivity.kt │ │ │ │ ├── AddAccountFragment.kt │ │ │ │ ├── AuthActivity.kt │ │ │ │ ├── AuthHelpActivity.kt │ │ │ │ ├── ChooseAddressActivity.kt │ │ │ │ ├── ConfirmPasswordActivity.kt │ │ │ │ ├── CredentialLessWelcomeFragment.kt │ │ │ │ ├── DeviceApprovalActivity.kt │ │ │ │ ├── DeviceSecretActivity.kt │ │ │ │ ├── LoginActivity.kt │ │ │ │ ├── LoginSsoActivity.kt │ │ │ │ ├── LoginTwoStepActivity.kt │ │ │ │ ├── SecondFactorActivity.kt │ │ │ │ ├── TwoPassModeActivity.kt │ │ │ │ ├── Utils.kt │ │ │ │ ├── WebPageListenerActivity.kt │ │ │ │ └── signup │ │ │ │ │ ├── ChooseExternalEmailFragment.kt │ │ │ │ │ ├── ChooseInternalEmailFragment.kt │ │ │ │ │ ├── ChoosePasswordFragment.kt │ │ │ │ │ ├── ChooseUsernameFragment.kt │ │ │ │ │ ├── CreatingUserFragment.kt │ │ │ │ │ ├── FragmentOrchestrator.kt │ │ │ │ │ ├── PrivacyPolicyDialogFragment.kt │ │ │ │ │ ├── RecoveryEmailFragment.kt │ │ │ │ │ ├── RecoveryMethodFragment.kt │ │ │ │ │ ├── RecoverySMSFragment.kt │ │ │ │ │ ├── SignupActivity.kt │ │ │ │ │ ├── SignupFinishedFragment.kt │ │ │ │ │ ├── SignupFragment.kt │ │ │ │ │ └── TermsConditionsDialogFragment.kt │ │ │ │ ├── util │ │ │ │ └── TextViewExt.kt │ │ │ │ └── viewmodel │ │ │ │ ├── AddAccountViewModel.kt │ │ │ │ ├── CancelCreateAccountDialogViewModel.kt │ │ │ │ ├── ChooseAddressViewModel.kt │ │ │ │ ├── ConfirmPasswordDialogViewModel.kt │ │ │ │ ├── CredentialLessViewModel.kt │ │ │ │ ├── LoginSsoViewModel.kt │ │ │ │ ├── LoginViewModel.kt │ │ │ │ ├── SecondFactorViewModel.kt │ │ │ │ ├── TwoFAInputDialogViewModel.kt │ │ │ │ ├── TwoPassModeViewModel.kt │ │ │ │ └── signup │ │ │ │ ├── ChooseExternalEmailViewModel.kt │ │ │ │ ├── ChooseInternalEmailViewModel.kt │ │ │ │ ├── ChooseUsernameViewModel.kt │ │ │ │ ├── RecoveryMethodViewModel.kt │ │ │ │ ├── RecoverySMSViewModel.kt │ │ │ │ ├── SignupViewModel.kt │ │ │ │ └── TermsConditionsViewModel.kt │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── vpn_certified_no_logs.webp │ │ │ └── vpn_welcome_globe.webp │ │ │ ├── drawable-mdpi │ │ │ ├── vpn_certified_no_logs.webp │ │ │ └── vpn_welcome_globe.webp │ │ │ ├── drawable-night-nodpi │ │ │ ├── welcome_header_calendar.webp │ │ │ ├── welcome_header_drive.webp │ │ │ ├── welcome_header_mail.webp │ │ │ ├── welcome_header_pass.webp │ │ │ └── welcome_header_vpn.webp │ │ │ ├── drawable-nodpi │ │ │ ├── welcome_header_calendar.webp │ │ │ ├── welcome_header_drive.webp │ │ │ ├── welcome_header_mail.webp │ │ │ ├── welcome_header_pass.webp │ │ │ └── welcome_header_vpn.webp │ │ │ ├── drawable-v24 │ │ │ ├── vpn_certified_no_logs.xml │ │ │ └── vpn_gradient_bg.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── vpn_certified_no_logs.webp │ │ │ └── vpn_welcome_globe.webp │ │ │ ├── drawable-xxhdpi │ │ │ ├── vpn_certified_no_logs.webp │ │ │ └── vpn_welcome_globe.webp │ │ │ ├── drawable-xxxhdpi │ │ │ ├── vpn_certified_no_logs.webp │ │ │ └── vpn_welcome_globe.webp │ │ │ ├── drawable │ │ │ ├── ic_congratulations.xml │ │ │ ├── ic_fido.xml │ │ │ ├── ic_hand_key.xml │ │ │ └── vpn_gradient_bg.xml │ │ │ ├── layout │ │ │ ├── activity_2fa.xml │ │ │ ├── activity_add_account.xml │ │ │ ├── activity_auth_help.xml │ │ │ ├── activity_choose_address.xml │ │ │ ├── activity_confirm_password.xml │ │ │ ├── activity_login.xml │ │ │ ├── activity_login_sso.xml │ │ │ ├── activity_mailbox_login.xml │ │ │ ├── activity_signup.xml │ │ │ ├── content_help_item_customer_support.xml │ │ │ ├── content_help_item_forgot_password.xml │ │ │ ├── content_help_item_forgot_username.xml │ │ │ ├── content_help_item_other_issues.xml │ │ │ ├── content_help_item_sign_in_with_qr_code.xml │ │ │ ├── dialog_2fa_input.xml │ │ │ ├── dialog_cancel_creation.xml │ │ │ ├── dialog_confirm_password.xml │ │ │ ├── dialog_enter_password.xml │ │ │ ├── fragment_add_account.xml │ │ │ ├── fragment_creating_user.xml │ │ │ ├── fragment_credential_less_welcome.xml │ │ │ ├── fragment_privacy_policy.xml │ │ │ ├── fragment_recovery_email.xml │ │ │ ├── fragment_recovery_sms.xml │ │ │ ├── fragment_signup_choose_external_email.xml │ │ │ ├── fragment_signup_choose_internal_email.xml │ │ │ ├── fragment_signup_choose_password.xml │ │ │ ├── fragment_signup_choose_username.xml │ │ │ ├── fragment_signup_finished.xml │ │ │ ├── fragment_signup_recovery.xml │ │ │ ├── fragment_terms_conditions.xml │ │ │ └── list_item_domain.xml │ │ │ ├── menu │ │ │ ├── login_menu.xml │ │ │ └── recovery_menu.xml │ │ │ ├── raw │ │ │ └── create_account_animation.json │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-h540dp │ │ │ └── sizes.xml │ │ │ ├── values-h720dp │ │ │ └── sizes.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── config.xml │ │ │ ├── ids.xml │ │ │ ├── links.xml │ │ │ ├── public.xml │ │ │ ├── sizes.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── auth │ │ │ └── presentation │ │ │ ├── AuthOrchestratorTest.kt │ │ │ ├── DefaultHelpOptionHandlerTest.kt │ │ │ ├── DefaultUserCheckTest.kt │ │ │ ├── SnapshotAddAccountThemeTest.kt │ │ │ ├── SnapshotProtonThemeTest.kt │ │ │ ├── alert │ │ │ └── confirmpass │ │ │ │ └── ConfirmPasswordDialogViewTest.kt │ │ │ ├── util │ │ │ └── TextViewExtKtTest.kt │ │ │ └── viewmodel │ │ │ ├── AddAccountViewModelTest.kt │ │ │ ├── ChooseAddressViewModelTest.kt │ │ │ ├── ConfirmPasswordDialogViewModelTest.kt │ │ │ ├── CredentialLessViewModelTest.kt │ │ │ ├── LoginSsoViewModelTest.kt │ │ │ ├── LoginViewModelTest.kt │ │ │ ├── SecondFactorViewModelTest.kt │ │ │ ├── TwoPassModeViewModelTest.kt │ │ │ └── signup │ │ │ ├── ChooseExternalEmailViewModelTest.kt │ │ │ ├── ChooseInternalEmailViewModelTest.kt │ │ │ ├── ChooseUsernameViewModelTest.kt │ │ │ ├── RecoveryMethodViewModelTest.kt │ │ │ ├── RecoverySMSViewModelTest.kt │ │ │ ├── SignupViewModelTest.kt │ │ │ └── TermsConditionsViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_both 2fa methods - one-time code selected.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_both 2fa methods - security key selected.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_fido2 only.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_idle state.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_loading state.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_no second factor methods.png │ │ ├── me.proton.core.auth.presentation.alert.confirmpass_ConfirmPasswordDialogViewTest_totp only.png │ │ ├── me.proton.core.auth.presentation_SnapshotAddAccountThemeTest_addAccountLayout.png │ │ ├── me.proton.core.auth.presentation_SnapshotProtonThemeTest_authHelpLayout[0].png │ │ ├── me.proton.core.auth.presentation_SnapshotProtonThemeTest_authHelpLayout[1].png │ │ ├── me.proton.core.auth.presentation_SnapshotProtonThemeTest_authHelpWithQrLayout[0].png │ │ └── me.proton.core.auth.presentation_SnapshotProtonThemeTest_authHelpWithQrLayout[1].png └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── auth │ └── test │ ├── BaseConvertExternalToInternalAccountTests.kt │ ├── BaseConvertedAccountTests.kt │ ├── BaseConvertedAccountWithSeededUserTests.kt │ ├── BaseExternalAccountSignupTests.kt │ ├── BaseUsernameAccountLoginTests.kt │ ├── BaseUsernameAccountSignupTests.kt │ ├── MinimalExternalRegistrationTest.kt │ ├── MinimalExternalRegistrationWithSubscriptionTest.kt │ ├── MinimalInternalRegistrationTest.kt │ ├── MinimalInternalRegistrationWithSubscriptionTest.kt │ ├── MinimalSignInExternalTests.kt │ ├── MinimalSignInGuestTests.kt │ ├── MinimalSignInInternalTests.kt │ ├── MinimalSignUpExternalTests.kt │ ├── MinimalSignUpInternalTests.kt │ ├── fake │ ├── FakeIsCommonPasswordCheckEnabled.kt │ ├── FakeIsCredentialLessEnabled.kt │ ├── FakeIsFido2Enabled.kt │ ├── FakeIsLoginTwoStepEnabled.kt │ ├── FakeIsSsoCustomTabEnabled.kt │ └── FakeIsSsoEnabled.kt │ ├── flow │ ├── SignInFlow.kt │ └── SignUpFlow.kt │ ├── robot │ ├── AddAccountRobot.kt │ ├── CredentialLessWelcomeRobot.kt │ ├── dialog │ │ └── PasswordAnd2FARobot.kt │ ├── login │ │ ├── IdentityProviderRobot.kt │ │ ├── LoginHelpRobot.kt │ │ ├── LoginLegacyRobot.kt │ │ ├── LoginRobot.kt │ │ ├── LoginSsoRobot.kt │ │ ├── LoginTwoStepRobot.kt │ │ └── TwoPassRobot.kt │ └── signup │ │ ├── ChooseInternalAddressRobot.kt │ │ ├── CongratsRobot.kt │ │ ├── ForExternalRobot.kt │ │ ├── ForInternalRobot.kt │ │ ├── ForUsernameRobot.kt │ │ ├── RecoveryMethodRobot.kt │ │ ├── SetPasswordRobot.kt │ │ ├── SignUpRobot.kt │ │ ├── SignupExternal.kt │ │ └── SignupInternal.kt │ ├── rule │ └── AcceptExternalRule.kt │ └── usecase │ ├── WaitForNoPrimaryAccount.kt │ └── WaitForPrimaryAccount.kt ├── biometric ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── biometric │ │ └── dagger │ │ ├── CoreBiometricActivityModule.kt │ │ └── CoreBiometricModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── biometric │ │ │ └── data │ │ │ ├── BiometricAuthenticatorExt.kt │ │ │ ├── CheckBiometricAuthAvailabilityImpl.kt │ │ │ └── StrongAuthenticatorsResolver.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── biometric │ │ └── data │ │ ├── BiometricAuthenticatorExtKtTest.kt │ │ ├── CheckBiometricAuthAvailabilityImplTest.kt │ │ └── StrongAuthenticatorsResolverTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── biometric │ │ └── domain │ │ ├── AuthenticatorsResolver.kt │ │ ├── BiometricAuthErrorCode.kt │ │ ├── BiometricAuthLauncher.kt │ │ ├── BiometricAuthResult.kt │ │ ├── BiometricAuthenticator.kt │ │ ├── CheckBiometricAuthAvailability.kt │ │ └── PrepareBiometricAuth.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── biometric │ │ └── presentation │ │ ├── BiometricAuthLauncherImpl.kt │ │ └── PrepareBiometricAuthImpl.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── biometric │ └── presentation │ └── BiometricAuthLauncherImplTest.kt ├── challenge ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── challenge │ │ └── dagger │ │ └── CoreChallengeModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── challenge │ │ │ └── data │ │ │ ├── ChallengeManagerImpl.kt │ │ │ ├── db │ │ │ ├── ChallengeConverters.kt │ │ │ ├── ChallengeDatabase.kt │ │ │ └── ChallengeFramesDao.kt │ │ │ ├── entity │ │ │ └── ChallengeFrameEntity.kt │ │ │ ├── frame │ │ │ ├── ChallengeFrame.kt │ │ │ └── FrameType.kt │ │ │ └── repository │ │ │ └── ChallengeRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── challenge │ │ └── data │ │ ├── ChallengeManagerImplTest.kt │ │ └── repository │ │ └── ChallengeRepositoryImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── challenge │ │ │ └── domain │ │ │ ├── ChallengeConfig.kt │ │ │ ├── ChallengeManager.kt │ │ │ ├── ChallengeUtils.kt │ │ │ ├── entity │ │ │ └── ChallengeFrameDetails.kt │ │ │ └── repository │ │ │ └── ChallengeRepository.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── challenge │ │ └── domain │ │ ├── ChallengeManagerKtTest.kt │ │ └── ChallengeUtilsKtTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── challenge │ │ └── presentation │ │ └── compose │ │ ├── LocalClipManager.kt │ │ └── ModifierPayload.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── challenge │ │ │ └── presentation │ │ │ ├── ProtonCopyPasteEditText.kt │ │ │ ├── ProtonMetadataInput.kt │ │ │ └── ProtonMetadataInputWatcher.kt │ └── res │ │ ├── layout │ │ └── proton_metadata_input.xml │ │ └── values │ │ └── attrs.xml │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── challenge │ └── presentation │ └── ProtonMetadataInputWatcherTest.kt ├── ci ├── danger │ └── conventional_commits.rb ├── script │ ├── prepareRelease.sh │ └── pushDashboards.sh ├── templates-shared │ ├── appetize-integration.yml │ └── github-sync.yml └── templates │ ├── base-job.gitlab-ci.yml │ ├── checkout-core.gitlab-ci.yml │ ├── git.gitlab-ci.yml │ └── tools.gitlab-ci.yml ├── config ├── CodeStyle.xml ├── Inspections.xml └── detekt │ └── config.yml ├── configuration ├── build.gradle.kts ├── configurator │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-playstore.png │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── configuration │ │ │ └── configurator │ │ │ ├── App.kt │ │ │ ├── ConfigContentProvider.kt │ │ │ ├── di │ │ │ ├── ApplicationModule.kt │ │ │ ├── ConfigurationModule.kt │ │ │ └── NetworkModule.kt │ │ │ ├── domain │ │ │ ├── ConfigurationUseCase.kt │ │ │ ├── EnvironmentConfigurationUseCase.kt │ │ │ ├── FeatureFlagsConfigurationUseCase.kt │ │ │ └── FeatureFlagsUseCase.kt │ │ │ ├── entity │ │ │ ├── AppConfig.kt │ │ │ ├── Configuration.kt │ │ │ └── FeatureFlagConfiguration.kt │ │ │ ├── extension │ │ │ └── QuarkCommand.kt │ │ │ ├── featureflag │ │ │ └── data │ │ │ │ ├── FeatureFlagsCacheManager.kt │ │ │ │ └── api │ │ │ │ ├── FeatureFlagsApi.kt │ │ │ │ └── FeatureFlagsResponse.kt │ │ │ ├── network │ │ │ └── RetrofitInstance.kt │ │ │ ├── presentation │ │ │ ├── ConfigurationActivity.kt │ │ │ ├── components │ │ │ │ ├── configuration │ │ │ │ │ ├── ConfigurationScreen.kt │ │ │ │ │ └── SearchableConfigurationTextField.kt │ │ │ │ ├── featureflags │ │ │ │ │ ├── CustomFeatureFlagsScreens.kt │ │ │ │ │ ├── FeatureFlagItem.kt │ │ │ │ │ ├── FeatureFlagsApplicationsScreen.kt │ │ │ │ │ ├── FeatureFlagsMainScreen.kt │ │ │ │ │ └── FeatureFlagsScreen.kt │ │ │ │ ├── quark │ │ │ │ │ ├── QuarkAccountUpdateUserScreen.kt │ │ │ │ │ ├── QuarkCreateUserScreen.kt │ │ │ │ │ ├── QuarkDriveUpdateUserScreen.kt │ │ │ │ │ ├── QuarkEnvironmentManagementScreen.kt │ │ │ │ │ ├── QuarkMailUpdateUserScreen.kt │ │ │ │ │ ├── QuarkMainScreen.kt │ │ │ │ │ └── QuarkUpdateUserScreen.kt │ │ │ │ └── shared │ │ │ │ │ ├── DropdownField.kt │ │ │ │ │ ├── ProtonSearchableOutlinedTextField.kt │ │ │ │ │ └── UserEnvirenmentText.kt │ │ │ └── viewModel │ │ │ │ ├── AccountUpdateUserViewModel.kt │ │ │ │ ├── ConfigurationScreenViewModel.kt │ │ │ │ ├── CreateUserViewModel.kt │ │ │ │ ├── DriveUpdateUserViewModel.kt │ │ │ │ ├── EnvironmentManagementViewModel.kt │ │ │ │ ├── FeatureFlagsViewModel.kt │ │ │ │ ├── MailUserViewModel.kt │ │ │ │ ├── UpdateUserViewModel.kt │ │ │ │ └── UserSharedData.kt │ │ │ └── quark │ │ │ └── entity │ │ │ └── ConfiguratorQuarkCommands.kt │ │ └── res │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── ic_launcher_background.xml │ │ └── strings.xml ├── dagger-content-resolver │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── configuration │ │ └── dagger │ │ └── ContentResolverEnvironmentConfigModule.kt ├── dagger-staticdefaults │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── configuration │ │ └── dagger │ │ └── StaticEnvironmentConfigModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── configuration │ │ │ ├── BundleConfigProviderTest.kt │ │ │ └── ContentResolverConfigManagerTest.kt │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── configuration │ │ │ ├── ContentResolverConfigManager.kt │ │ │ ├── EnvironmentConfiguration.kt │ │ │ ├── FeatureFlagsConfiguration.kt │ │ │ ├── entity │ │ │ ├── ConfigContract.kt │ │ │ └── EnvironmentConfigFieldProvider.kt │ │ │ ├── extension │ │ │ └── EnvironmentConfiguration.kt │ │ │ └── provider │ │ │ ├── BundleConfigFieldProvider.kt │ │ │ ├── MapConfigFieldProvider.kt │ │ │ └── StaticClassConfigFieldProvider.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── configuration │ │ ├── ContentResolverConfigManagerTest.kt │ │ ├── EnvironmentConfigurationTest.kt │ │ ├── ExtensionsTest.kt │ │ ├── MapConfigFieldProviderTest.kt │ │ └── StaticClassConfigFieldProviderTest.kt └── presentation │ └── src │ └── main │ └── res │ ├── values-b+es+419 │ └── strings.xml │ ├── values-be │ └── strings.xml │ ├── values-ca │ └── strings.xml │ ├── values-cs │ └── strings.xml │ ├── values-da │ └── strings.xml │ ├── values-de │ └── strings.xml │ ├── values-el │ └── strings.xml │ ├── values-es-rES │ └── strings.xml │ ├── values-es-rMX │ └── strings.xml │ ├── values-fa │ └── strings.xml │ ├── values-fr │ └── strings.xml │ ├── values-hr │ └── strings.xml │ ├── values-hu │ └── strings.xml │ ├── values-in │ └── strings.xml │ ├── values-is │ └── strings.xml │ ├── values-it │ └── strings.xml │ ├── values-ja │ └── strings.xml │ ├── values-ka │ └── strings.xml │ ├── values-kab │ └── strings.xml │ ├── values-ko │ └── strings.xml │ ├── values-nb-rNO │ └── strings.xml │ ├── values-nl │ └── strings.xml │ ├── values-pl │ └── strings.xml │ ├── values-pt-rBR │ └── strings.xml │ ├── values-pt-rPT │ └── strings.xml │ ├── values-ro │ └── strings.xml │ ├── values-ru │ └── strings.xml │ ├── values-sk │ └── strings.xml │ ├── values-sl │ └── strings.xml │ ├── values-sv-rSE │ └── strings.xml │ ├── values-tr │ └── strings.xml │ ├── values-uk │ └── strings.xml │ ├── values-zh-rCN │ └── strings.xml │ └── values-zh-rTW │ └── strings.xml ├── contact ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── contact │ │ └── dagger │ │ └── CoreContactsModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── contact │ │ │ └── data │ │ │ ├── ContactEmailsEventListener.kt │ │ │ ├── ContactEventListener.kt │ │ │ ├── api │ │ │ ├── ContactApi.kt │ │ │ ├── ContactRemoteDataSourceImpl.kt │ │ │ ├── request │ │ │ │ ├── CreateContactsRequest.kt │ │ │ │ └── DeleteContactsRequest.kt │ │ │ ├── resource │ │ │ │ ├── ContactCardResource.kt │ │ │ │ ├── ContactCardsResource.kt │ │ │ │ ├── ContactEmailResource.kt │ │ │ │ ├── ContactResource.kt │ │ │ │ ├── ContactWithCardsResource.kt │ │ │ │ └── ShortContactResource.kt │ │ │ └── response │ │ │ │ ├── CreateContactResponse.kt │ │ │ │ ├── CreateContactsResponse.kt │ │ │ │ ├── DeleteContactResponse.kt │ │ │ │ ├── DeleteContactResponseWrapper.kt │ │ │ │ ├── DeleteContactsResponse.kt │ │ │ │ ├── GetContactEmailsResponse.kt │ │ │ │ ├── GetContactResponse.kt │ │ │ │ ├── GetContactsResponse.kt │ │ │ │ └── MutateContactResponse.kt │ │ │ ├── local │ │ │ └── db │ │ │ │ ├── ContactConverters.kt │ │ │ │ ├── ContactDatabase.kt │ │ │ │ ├── ContactLocalDataSourceImpl.kt │ │ │ │ ├── dao │ │ │ │ ├── ContactCardDao.kt │ │ │ │ ├── ContactDao.kt │ │ │ │ ├── ContactEmailDao.kt │ │ │ │ └── ContactEmailLabelDao.kt │ │ │ │ └── entity │ │ │ │ ├── ContactCardEntity.kt │ │ │ │ ├── ContactEmailEntity.kt │ │ │ │ ├── ContactEmailLabelEntity.kt │ │ │ │ ├── ContactEntity.kt │ │ │ │ └── relation │ │ │ │ ├── ContactEmailWithLabelsRelation.kt │ │ │ │ ├── ContactWithMailsAndCardsRelation.kt │ │ │ │ └── ContactWithMailsRelation.kt │ │ │ └── repository │ │ │ └── ContactRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── contact │ │ └── tests │ │ ├── ConsistencyTests.kt │ │ ├── ContactDatabaseTests.kt │ │ ├── ForeignKeyTests.kt │ │ ├── SampleData.kt │ │ ├── TestDatabase.kt │ │ └── TransactionTests.kt └── domain │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── contact │ │ └── domain │ │ ├── CryptoUtils.kt │ │ ├── CryptoUtilsImpl.kt │ │ ├── VCardCrypto.kt │ │ ├── VCardUtils.kt │ │ ├── entity │ │ ├── Contact.kt │ │ ├── ContactCard.kt │ │ ├── ContactEmail.kt │ │ ├── ContactEmailId.kt │ │ ├── ContactId.kt │ │ ├── ContactWithCards.kt │ │ └── DecryptedVCard.kt │ │ ├── repository │ │ ├── ContactLocalDataSource.kt │ │ ├── ContactRemoteDataSource.kt │ │ └── ContactRepository.kt │ │ └── usecase │ │ └── UpdateContactRemote.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── contact │ └── domain │ ├── CryptoUtilsTests.kt │ └── VCardUtilsTests.kt ├── coreexample ├── .gitignore ├── build.gradle.kts ├── ci │ └── process_report.py ├── hilt-tests │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── android │ │ └── core │ │ └── coreexample │ │ └── hilttests │ │ ├── di │ │ ├── AndroidTestComponent.kt │ │ └── ApiClients.kt │ │ ├── login │ │ ├── ConvertExternalToInternalAccountTests.kt │ │ ├── ExternalAccountSupportedLoginTests.kt │ │ ├── ExternalAccountUnsupportedLoginTests.kt │ │ ├── InternalLoginWithAccountSetupTests.kt │ │ └── VpnUsernameAccountLoginTests.kt │ │ ├── mocks │ │ └── AndroidTestApiClient.kt │ │ ├── rule │ │ └── LogsRule.kt │ │ ├── signup │ │ ├── DriveExternalAccountSignupTests.kt │ │ ├── ExternalAccountChooseUsernameTest.kt │ │ └── VpnUsernameAccountSignupTests.kt │ │ └── usecase │ │ └── PerformUiLogin.kt ├── proguard-rules.pro ├── schemas │ └── me.proton.android.core.coreexample.db.AppDatabase │ │ ├── 1.json │ │ ├── 10.json │ │ ├── 11.json │ │ ├── 12.json │ │ ├── 13.json │ │ ├── 14.json │ │ ├── 15.json │ │ ├── 16.json │ │ ├── 17.json │ │ ├── 18.json │ │ ├── 19.json │ │ ├── 2.json │ │ ├── 20.json │ │ ├── 21.json │ │ ├── 22.json │ │ ├── 23.json │ │ ├── 24.json │ │ ├── 25.json │ │ ├── 26.json │ │ ├── 27.json │ │ ├── 28.json │ │ ├── 29.json │ │ ├── 3.json │ │ ├── 30.json │ │ ├── 31.json │ │ ├── 32.json │ │ ├── 33.json │ │ ├── 34.json │ │ ├── 35.json │ │ ├── 36.json │ │ ├── 37.json │ │ ├── 38.json │ │ ├── 39.json │ │ ├── 4.json │ │ ├── 40.json │ │ ├── 42.json │ │ ├── 43.json │ │ ├── 44.json │ │ ├── 45.json │ │ ├── 46.json │ │ ├── 47.json │ │ ├── 48.json │ │ ├── 49.json │ │ ├── 5.json │ │ ├── 50.json │ │ ├── 51.json │ │ ├── 52.json │ │ ├── 53.json │ │ ├── 54.json │ │ ├── 55.json │ │ ├── 56.json │ │ ├── 57.json │ │ ├── 58.json │ │ ├── 59.json │ │ ├── 6.json │ │ ├── 60.json │ │ ├── 61.json │ │ ├── 62.json │ │ ├── 63.json │ │ ├── 7.json │ │ ├── 8.json │ │ └── 9.json └── src │ ├── androidTest │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── android │ │ ├── robot │ │ ├── BugReportRobot.kt │ │ ├── CoreexampleRobot.kt │ │ └── FeatureFlagsRobot.kt │ │ └── uitests │ │ └── tests │ │ └── performance │ │ └── LoginPerformanceTests.kt │ ├── androidTestLocalProperties │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── android │ │ ├── ProtonIAPBillingLibraryImplTest.kt │ │ ├── dbtests │ │ └── MigrationTest.kt │ │ ├── di │ │ └── AndroidTestComponent.kt │ │ ├── libtests │ │ ├── accountrecovery │ │ │ └── AccountRecoveryNotificationTest.kt │ │ ├── auth │ │ │ ├── ConvertExternalToInternalAccountTests.kt │ │ │ ├── ConvertedAccountTests.kt │ │ │ ├── SignupExternalTests.kt │ │ │ └── SignupInternalTests.kt │ │ ├── report │ │ │ └── ReportInternalTests.kt │ │ └── subscription │ │ │ ├── SubscriptionTests.kt │ │ │ └── UpgradeTests.kt │ │ └── uitests │ │ ├── extension │ │ └── ProtonRule.kt │ │ └── tests │ │ ├── BaseTest.kt │ │ ├── SmokeTest.kt │ │ ├── large │ │ ├── auth │ │ │ ├── MultipleAccountAdditionTests.kt │ │ │ └── SignupTests.kt │ │ └── usersettings │ │ │ └── PasswordManagementTest.kt │ │ └── medium │ │ ├── auth │ │ ├── AddAccountTests.kt │ │ ├── login │ │ │ ├── AccountSwitcherTests.kt │ │ │ ├── LoginTests.kt │ │ │ ├── MailboxTests.kt │ │ │ └── TwoFaTests.kt │ │ └── signup │ │ │ ├── InternalSetupTests.kt │ │ │ ├── PasswordSetupTests.kt │ │ │ ├── RecoveryMethodsSetupTests.kt │ │ │ └── UsernameSetupTests.kt │ │ ├── confirmpassword │ │ └── ConfirmPasswordTests.kt │ │ ├── crypto │ │ └── KeyStoreValidationTests.kt │ │ ├── humanverification │ │ └── HumanVerificationTests.kt │ │ ├── payments │ │ ├── DynamicExistingPaymentMethodTests.kt │ │ ├── DynamicNewCreditCardTests.kt │ │ ├── ExistingPaymentMethodTests.kt │ │ └── NewCreditCardTests.kt │ │ ├── plans │ │ ├── CurrentPlanTests.kt │ │ ├── DynamicCurrentPlanTests.kt │ │ ├── DynamicSelectPlanTests.kt │ │ ├── DynamicUpgradePlanTests.kt │ │ ├── SelectPlanForIAPTests.kt │ │ ├── SelectPlanTests.kt │ │ └── UpgradePlanTests.kt │ │ ├── reports │ │ └── BugReportsTests.kt │ │ └── usersettings │ │ ├── PasswordManagementTests.kt │ │ └── RecoveryEmailTests.kt │ ├── androidTestMock │ ├── assets │ │ ├── GET │ │ │ ├── auth │ │ │ │ └── v4 │ │ │ │ │ ├── modulus.json │ │ │ │ │ └── scopes.json │ │ │ ├── core │ │ │ │ └── v4 │ │ │ │ │ ├── addresses-no-keys.json │ │ │ │ │ ├── addresses-with-keys.json │ │ │ │ │ ├── domains │ │ │ │ │ └── available.json │ │ │ │ │ ├── events │ │ │ │ │ ├── CfPWFKv7hHURG0mJ5raWYYCcLXKvfCbFoaezy-06aqcxxvbkWdKTxkZUIcanEf7Tw4USrg2vZ_HUIi06YjILLQ==.json │ │ │ │ │ └── latest.json │ │ │ │ │ ├── features.json │ │ │ │ │ ├── keys.json │ │ │ │ │ ├── keys │ │ │ │ │ └── salts.json │ │ │ │ │ ├── organizations-none.json │ │ │ │ │ ├── users-no-keys-not-subscribed.json │ │ │ │ │ ├── users-no-keys-subscribed.json │ │ │ │ │ ├── users-with-keys-not-subscribed.json │ │ │ │ │ ├── users-with-keys-subscribed.json │ │ │ │ │ ├── users-with-saved-credits.json │ │ │ │ │ └── users │ │ │ │ │ └── available.json │ │ │ ├── mail │ │ │ │ └── v4 │ │ │ │ │ └── settings.json │ │ │ └── payments │ │ │ │ ├── v4 │ │ │ │ ├── methods-card.json │ │ │ │ ├── methods.json │ │ │ │ ├── plans.json │ │ │ │ ├── plans │ │ │ │ │ └── default.json │ │ │ │ ├── status │ │ │ │ │ ├── google-all-disabled.json │ │ │ │ │ ├── google-card-only.json │ │ │ │ │ ├── google-iap-and-card.json │ │ │ │ │ ├── google-iap-only.json │ │ │ │ │ └── google.json │ │ │ │ ├── subscription-mail-plus-google-managed.json │ │ │ │ ├── subscription-mail-plus-proton-managed.json │ │ │ │ ├── subscription-none.json │ │ │ │ └── subscription │ │ │ │ │ └── check-mail-plus.json │ │ │ │ └── v5 │ │ │ │ ├── dynamic-plans.json │ │ │ │ └── subscription-free.json │ │ └── POST │ │ │ ├── auth │ │ │ ├── v4.json │ │ │ └── v4 │ │ │ │ └── info.json │ │ │ ├── core │ │ │ └── v4 │ │ │ │ ├── keys │ │ │ │ └── setup.json │ │ │ │ └── users.json │ │ │ └── payments │ │ │ └── v4 │ │ │ ├── subscription-mail-plus-google-managed.json │ │ │ ├── subscription-mail-plus-proton-managed.json │ │ │ ├── subscription-pass-plus-google-managed.json │ │ │ ├── subscription │ │ │ └── check.json │ │ │ └── tokens.json │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── android │ │ ├── MockedQualifiers.kt │ │ ├── TestComponent.kt │ │ ├── TestWebServerDispatcher.kt │ │ ├── mocks │ │ ├── BillingClientExt.kt │ │ ├── FakeAeadCrypto.kt │ │ ├── FakeApiClient.kt │ │ ├── FakeBillingClientFactory.kt │ │ ├── FakeKeyStoreCrypto.kt │ │ ├── FakePGPCrypto.kt │ │ ├── FakeSrpChallenge.kt │ │ └── FakeSrpCrypto.kt │ │ └── mockuitests │ │ ├── BaseMockTest.kt │ │ ├── MockTestRule.kt │ │ └── giap │ │ ├── GiapUpgradeTests.kt │ │ ├── SignupWithGoogleIapNoGIAPModuleTests.kt │ │ ├── SignupWithGoogleIapTests.kt │ │ └── UnredeemedPurchaseTest.kt │ ├── debug │ └── assets │ │ └── scenarios │ │ └── auth_scenario1 │ │ ├── auth_mock1.json │ │ ├── auth_mock2.json │ │ └── auth_scenario.json │ ├── main │ ├── AndroidManifest.xml │ ├── ic_launcher-playstore.png │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── android │ │ │ └── core │ │ │ └── coreexample │ │ │ ├── Constants.kt │ │ │ ├── CoreExampleApp.kt │ │ │ ├── MainActivity.kt │ │ │ ├── MainInitializer.kt │ │ │ ├── adapter │ │ │ ├── ContactAdapter.kt │ │ │ ├── LabelAdapter.kt │ │ │ └── PushAdapter.kt │ │ │ ├── api │ │ │ ├── CoreExampleApi.kt │ │ │ ├── CoreExampleApiClient.kt │ │ │ └── CoreExampleRepository.kt │ │ │ ├── db │ │ │ ├── AppDatabase.kt │ │ │ └── AppDatabaseMigrations.kt │ │ │ ├── di │ │ │ ├── AppDatabaseModule.kt │ │ │ ├── ApplicationModule.kt │ │ │ ├── AuthModule.kt │ │ │ ├── EventManagerModule.kt │ │ │ ├── HumanVerificationModule.kt │ │ │ ├── KeyTransparencyModule.kt │ │ │ ├── NetworkModule.kt │ │ │ └── PlansModule.kt │ │ │ ├── init │ │ │ ├── AccountStateHandlerInitializer.kt │ │ │ ├── EventManagerInitializer.kt │ │ │ ├── FeatureFlagInitializer.kt │ │ │ ├── LoggerInitializer.kt │ │ │ ├── SentryInitializer.kt │ │ │ ├── StrictModeInitializer.kt │ │ │ └── WorkManagerInitializer.kt │ │ │ ├── ui │ │ │ ├── ComposeViewsActivity.kt │ │ │ ├── ContactDetailActivity.kt │ │ │ ├── ContactsActivity.kt │ │ │ ├── CreateContactActivity.kt │ │ │ ├── CreateLabelActivity.kt │ │ │ ├── CustomViewsActivity.kt │ │ │ ├── FeatureFlagsActivity.kt │ │ │ ├── LabelDetailActivity.kt │ │ │ ├── LabelsActivity.kt │ │ │ ├── PushDetailsActivity.kt │ │ │ ├── PushesActivity.kt │ │ │ └── TextStylesActivity.kt │ │ │ ├── utils │ │ │ ├── Any.kt │ │ │ ├── ClientFeatureFlags.kt │ │ │ └── Contact.kt │ │ │ └── viewmodel │ │ │ ├── AccountViewModel.kt │ │ │ ├── ActionViewModel.kt │ │ │ ├── ContactDetailViewModel.kt │ │ │ ├── ContactsViewModel.kt │ │ │ ├── CreateContactViewModel.kt │ │ │ ├── CreateLabelViewModel.kt │ │ │ ├── FeatureFlagsViewModel.kt │ │ │ ├── LabelDetailViewModel.kt │ │ │ ├── LabelsViewModel.kt │ │ │ ├── MailMessageViewModel.kt │ │ │ ├── MailSettingsViewModel.kt │ │ │ ├── MainViewModel.kt │ │ │ ├── PlansViewModel.kt │ │ │ ├── PublicAddressViewModel.kt │ │ │ ├── PushDetailsViewModel.kt │ │ │ ├── PushesViewModel.kt │ │ │ ├── ReportsViewModel.kt │ │ │ ├── SecureScopesViewModel.kt │ │ │ ├── UserAddressKeyViewModel.kt │ │ │ ├── UserKeyViewModel.kt │ │ │ └── UserSettingsViewModel.kt │ └── res │ │ ├── drawable │ │ ├── ic_launcher_background.xml │ │ └── ic_launcher_foreground.xml │ │ ├── layout │ │ ├── activity_contact_details.xml │ │ ├── activity_contacts.xml │ │ ├── activity_create_contact.xml │ │ ├── activity_create_label.xml │ │ ├── activity_custom_views.xml │ │ ├── activity_feature_flags.xml │ │ ├── activity_fragment_test.xml │ │ ├── activity_label_details.xml │ │ ├── activity_labels.xml │ │ ├── activity_logout.xml │ │ ├── activity_main.xml │ │ ├── activity_push_details.xml │ │ ├── activity_pushes.xml │ │ ├── activity_text_styles.xml │ │ ├── item_contact.xml │ │ ├── item_label.xml │ │ └── item_push.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ └── values │ │ ├── colors.xml │ │ ├── config.xml │ │ ├── sizes.xml │ │ ├── strings.xml │ │ ├── styles.xml │ │ └── themes.xml │ ├── mock │ ├── AndroidManifest.xml │ └── res │ │ └── xml │ │ └── network_security_config.xml │ └── test │ └── kotlin │ └── me │ └── proton │ └── android │ └── core │ └── coreexample │ ├── NetworkTests.kt │ └── StringResourcesTest.kt ├── country ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── country │ │ └── dagger │ │ └── CoreCountryModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── assets │ │ │ └── country_codes.json │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── country │ │ │ └── data │ │ │ ├── entity │ │ │ ├── CountriesDataModel.kt │ │ │ └── CountryDataModel.kt │ │ │ └── repository │ │ │ └── CountriesRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── country │ │ └── data │ │ └── CountriesRepositoryImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── country │ │ │ └── domain │ │ │ ├── entity │ │ │ └── Country.kt │ │ │ ├── repository │ │ │ └── CountriesRepository.kt │ │ │ └── usecase │ │ │ ├── DefaultCountry.kt │ │ │ ├── GetCountry.kt │ │ │ └── LoadCountries.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── country │ │ └── domain │ │ ├── usecase │ │ ├── DefaultCountryTest.kt │ │ ├── GetCountryTest.kt │ │ └── LoadCountriesTest.kt │ │ └── utils │ │ └── TestData.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── country │ │ │ └── presentation │ │ │ ├── entity │ │ │ └── CountryUIModel.kt │ │ │ ├── ui │ │ │ ├── CountryPickerFragment.kt │ │ │ └── Utils.kt │ │ │ └── viewmodel │ │ │ └── CountryPickerViewModel.kt │ └── res │ │ ├── drawable │ │ ├── flag_ad.xml │ │ ├── flag_ae.xml │ │ ├── flag_af.xml │ │ ├── flag_ag.xml │ │ ├── flag_ai.xml │ │ ├── flag_al.xml │ │ ├── flag_am.xml │ │ ├── flag_ao.xml │ │ ├── flag_ar.xml │ │ ├── flag_as.xml │ │ ├── flag_at.xml │ │ ├── flag_au.xml │ │ ├── flag_aw.xml │ │ ├── flag_az.xml │ │ ├── flag_ba.xml │ │ ├── flag_bb.xml │ │ ├── flag_bd.xml │ │ ├── flag_be.xml │ │ ├── flag_bf.xml │ │ ├── flag_bg.xml │ │ ├── flag_bh.xml │ │ ├── flag_bi.xml │ │ ├── flag_bj.xml │ │ ├── flag_bl.xml │ │ ├── flag_bm.xml │ │ ├── flag_bn.xml │ │ ├── flag_bo.xml │ │ ├── flag_bq.xml │ │ ├── flag_br.xml │ │ ├── flag_bs.xml │ │ ├── flag_bt.xml │ │ ├── flag_bw.xml │ │ ├── flag_by.xml │ │ ├── flag_bz.xml │ │ ├── flag_ca.xml │ │ ├── flag_cd.xml │ │ ├── flag_cf.xml │ │ ├── flag_cg.xml │ │ ├── flag_ch.xml │ │ ├── flag_ci.xml │ │ ├── flag_ck.xml │ │ ├── flag_cl.xml │ │ ├── flag_cm.xml │ │ ├── flag_cn.xml │ │ ├── flag_co.xml │ │ ├── flag_cr.xml │ │ ├── flag_cu.xml │ │ ├── flag_cv.xml │ │ ├── flag_cw.xml │ │ ├── flag_cy.xml │ │ ├── flag_cz.xml │ │ ├── flag_de.xml │ │ ├── flag_dj.xml │ │ ├── flag_dk.xml │ │ ├── flag_dm.xml │ │ ├── flag_do.xml │ │ ├── flag_dz.xml │ │ ├── flag_ec.xml │ │ ├── flag_ee.xml │ │ ├── flag_eg.xml │ │ ├── flag_eh.xml │ │ ├── flag_er.xml │ │ ├── flag_es.xml │ │ ├── flag_et.xml │ │ ├── flag_fi.xml │ │ ├── flag_fj.xml │ │ ├── flag_fk.xml │ │ ├── flag_fm.xml │ │ ├── flag_fo.xml │ │ ├── flag_fr.xml │ │ ├── flag_ga.xml │ │ ├── flag_gb.xml │ │ ├── flag_gd.xml │ │ ├── flag_ge.xml │ │ ├── flag_gf.xml │ │ ├── flag_gg.xml │ │ ├── flag_gh.xml │ │ ├── flag_gi.xml │ │ ├── flag_gl.xml │ │ ├── flag_gm.xml │ │ ├── flag_gn.xml │ │ ├── flag_gp.xml │ │ ├── flag_gq.xml │ │ ├── flag_gr.xml │ │ ├── flag_gt.xml │ │ ├── flag_gu.xml │ │ ├── flag_gw.xml │ │ ├── flag_gy.xml │ │ ├── flag_hk.xml │ │ ├── flag_hn.xml │ │ ├── flag_hr.xml │ │ ├── flag_ht.xml │ │ ├── flag_hu.xml │ │ ├── flag_id.xml │ │ ├── flag_ie.xml │ │ ├── flag_il.xml │ │ ├── flag_im.xml │ │ ├── flag_in.xml │ │ ├── flag_io.xml │ │ ├── flag_iq.xml │ │ ├── flag_ir.xml │ │ ├── flag_is.xml │ │ ├── flag_it.xml │ │ ├── flag_je.xml │ │ ├── flag_jm.xml │ │ ├── flag_jo.xml │ │ ├── flag_jp.xml │ │ ├── flag_ke.xml │ │ ├── flag_kg.xml │ │ ├── flag_kh.xml │ │ ├── flag_ki.xml │ │ ├── flag_km.xml │ │ ├── flag_kn.xml │ │ ├── flag_kp.xml │ │ ├── flag_kr.xml │ │ ├── flag_kw.xml │ │ ├── flag_ky.xml │ │ ├── flag_kz.xml │ │ ├── flag_la.xml │ │ ├── flag_lb.xml │ │ ├── flag_lc.xml │ │ ├── flag_li.xml │ │ ├── flag_lk.xml │ │ ├── flag_lr.xml │ │ ├── flag_ls.xml │ │ ├── flag_lt.xml │ │ ├── flag_lu.xml │ │ ├── flag_lv.xml │ │ ├── flag_ly.xml │ │ ├── flag_ma.xml │ │ ├── flag_mc.xml │ │ ├── flag_md.xml │ │ ├── flag_me.xml │ │ ├── flag_mf.xml │ │ ├── flag_mg.xml │ │ ├── flag_mh.xml │ │ ├── flag_mk.xml │ │ ├── flag_ml.xml │ │ ├── flag_mm.xml │ │ ├── flag_mn.xml │ │ ├── flag_mo.xml │ │ ├── flag_mp.xml │ │ ├── flag_mq.xml │ │ ├── flag_mr.xml │ │ ├── flag_ms.xml │ │ ├── flag_mt.xml │ │ ├── flag_mu.xml │ │ ├── flag_mv.xml │ │ ├── flag_mw.xml │ │ ├── flag_mx.xml │ │ ├── flag_my.xml │ │ ├── flag_mz.xml │ │ ├── flag_na.xml │ │ ├── flag_nc.xml │ │ ├── flag_ne.xml │ │ ├── flag_nf.xml │ │ ├── flag_ng.xml │ │ ├── flag_ni.xml │ │ ├── flag_nl.xml │ │ ├── flag_no.xml │ │ ├── flag_np.xml │ │ ├── flag_nr.xml │ │ ├── flag_nu.xml │ │ ├── flag_nz.xml │ │ ├── flag_om.xml │ │ ├── flag_pa.xml │ │ ├── flag_pe.xml │ │ ├── flag_pf.xml │ │ ├── flag_pg.xml │ │ ├── flag_ph.xml │ │ ├── flag_pk.xml │ │ ├── flag_pl.xml │ │ ├── flag_pm.xml │ │ ├── flag_pr.xml │ │ ├── flag_ps.xml │ │ ├── flag_pt.xml │ │ ├── flag_pw.xml │ │ ├── flag_py.xml │ │ ├── flag_qa.xml │ │ ├── flag_re.xml │ │ ├── flag_ro.xml │ │ ├── flag_rs.xml │ │ ├── flag_ru.xml │ │ ├── flag_rw.xml │ │ ├── flag_sa.xml │ │ ├── flag_sb.xml │ │ ├── flag_sc.xml │ │ ├── flag_sd.xml │ │ ├── flag_se.xml │ │ ├── flag_sg.xml │ │ ├── flag_sh.xml │ │ ├── flag_si.xml │ │ ├── flag_sk.xml │ │ ├── flag_sl.xml │ │ ├── flag_sm.xml │ │ ├── flag_sn.xml │ │ ├── flag_so.xml │ │ ├── flag_sr.xml │ │ ├── flag_ss.xml │ │ ├── flag_st.xml │ │ ├── flag_sv.xml │ │ ├── flag_sx.xml │ │ ├── flag_sy.xml │ │ ├── flag_sz.xml │ │ ├── flag_tc.xml │ │ ├── flag_td.xml │ │ ├── flag_tg.xml │ │ ├── flag_th.xml │ │ ├── flag_tj.xml │ │ ├── flag_tk.xml │ │ ├── flag_tl.xml │ │ ├── flag_tm.xml │ │ ├── flag_tn.xml │ │ ├── flag_to.xml │ │ ├── flag_tr.xml │ │ ├── flag_tt.xml │ │ ├── flag_tv.xml │ │ ├── flag_tw.xml │ │ ├── flag_tz.xml │ │ ├── flag_ua.xml │ │ ├── flag_ug.xml │ │ ├── flag_us.xml │ │ ├── flag_uy.xml │ │ ├── flag_uz.xml │ │ ├── flag_va.xml │ │ ├── flag_vc.xml │ │ ├── flag_ve.xml │ │ ├── flag_vg.xml │ │ ├── flag_vi.xml │ │ ├── flag_vn.xml │ │ ├── flag_vu.xml │ │ ├── flag_wf.xml │ │ ├── flag_ws.xml │ │ ├── flag_xk.xml │ │ ├── flag_ye.xml │ │ ├── flag_yt.xml │ │ ├── flag_za.xml │ │ ├── flag_zm.xml │ │ └── flag_zw.xml │ │ ├── layout │ │ ├── fragment_country_picker.xml │ │ └── item_country.xml │ │ ├── raw │ │ └── keep_flags.xml │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── margins.xml │ │ └── strings.xml │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── country │ └── presentation │ ├── utils │ └── TestData.kt │ └── viewmodel │ └── CountryPickerViewModelTest.kt ├── coverage └── build.gradle.kts ├── crypto-validator ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── crypto │ │ └── validator │ │ └── dagger │ │ └── CoreCryptoValidatorModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── crypto │ │ └── validator │ │ └── data │ │ └── prefs │ │ └── CryptoPrefsImpl.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── crypto │ │ └── validator │ │ └── domain │ │ └── prefs │ │ └── CryptoPrefs.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── crypto │ │ │ └── validator │ │ │ └── presentation │ │ │ ├── CryptoValidator.kt │ │ │ ├── init │ │ │ └── CryptoValidatorInitializer.kt │ │ │ ├── ui │ │ │ └── CryptoValidatorErrorDialogActivity.kt │ │ │ └── viewmodel │ │ │ └── CryptoValidatorErrorViewModel.kt │ └── res │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── donottranslate.xml │ │ └── strings.xml │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── crypto │ └── validator │ └── presentation │ ├── CryptoValidatorTest.kt │ └── viewmodel │ └── CryptoValidatorErrorViewModelTest.kt ├── crypto ├── android │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── crypto │ │ │ └── android │ │ │ ├── aead │ │ │ └── AndroidAeadCryptoAndroidTest.kt │ │ │ ├── keystore │ │ │ └── AndroidKeyStoreCryptoAndroidTest.kt │ │ │ ├── pgp │ │ │ ├── DecryptMimeMessageTest.kt │ │ │ ├── GOpenPGPCryptoTest.kt │ │ │ └── TestKey.kt │ │ │ └── srp │ │ │ ├── GOpenPGPSrpChallengeTest.kt │ │ │ └── GOpenPGPSrpCryptoTest.kt │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── crypto │ │ │ └── android │ │ │ ├── aead │ │ │ ├── AndroidAeadCrypto.kt │ │ │ └── AndroidAeadCryptoFactory.kt │ │ │ ├── context │ │ │ └── AndroidCryptoContext.kt │ │ │ ├── keystore │ │ │ ├── AndroidKeyStoreCrypto.kt │ │ │ └── CryptoConverters.kt │ │ │ ├── pgp │ │ │ ├── AttachmentProcessor.kt │ │ │ ├── DecryptMimeMessage.kt │ │ │ ├── GOpenPGPCrypto.kt │ │ │ ├── GOpenPGPUnlockedKey.kt │ │ │ ├── StreamExtensions.kt │ │ │ └── VerificationStatus.kt │ │ │ └── srp │ │ │ ├── GOpenPGPSrpChallenge.kt │ │ │ └── GOpenPGPSrpCrypto.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── crypto │ │ └── android │ │ └── keystore │ │ └── AndroidKeyStoreCryptoUnitTest.kt ├── build.gradle.kts ├── common │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── crypto │ │ │ └── common │ │ │ ├── aead │ │ │ ├── AeadCrypto.kt │ │ │ ├── AeadCryptoFactory.kt │ │ │ ├── AeadEncryptedByteArray.kt │ │ │ └── AeadEncryptedString.kt │ │ │ ├── context │ │ │ └── CryptoContext.kt │ │ │ ├── keystore │ │ │ ├── EncryptedByteArray.kt │ │ │ ├── EncryptedString.kt │ │ │ ├── KeyStoreCrypto.kt │ │ │ └── PlainByteArray.kt │ │ │ ├── pgp │ │ │ ├── Armored.kt │ │ │ ├── Base64Encoded.kt │ │ │ ├── DecryptedData.kt │ │ │ ├── DecryptedFile.kt │ │ │ ├── DecryptedMimeMessage.kt │ │ │ ├── DecryptedText.kt │ │ │ ├── EncryptedFile.kt │ │ │ ├── EncryptedMessage.kt │ │ │ ├── EncryptedPacket.kt │ │ │ ├── EncryptedSignature.kt │ │ │ ├── HashKey.kt │ │ │ ├── PGPCrypto.kt │ │ │ ├── PGPCryptoOrNull.kt │ │ │ ├── PGPHeader.kt │ │ │ ├── SessionKey.kt │ │ │ ├── Signature.kt │ │ │ ├── SignatureContext.kt │ │ │ ├── TrimString.kt │ │ │ ├── UnlockedKey.kt │ │ │ ├── VerificationStatus.kt │ │ │ ├── VerificationTime.kt │ │ │ └── exception │ │ │ │ └── CryptoException.kt │ │ │ └── srp │ │ │ ├── Auth.kt │ │ │ ├── SrpChallenge.kt │ │ │ └── SrpCrypto.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── crypto │ │ └── common │ │ └── pgp │ │ └── TrimStringKtTest.kt └── dagger │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── crypto │ └── dagger │ └── CoreCryptoModule.kt ├── data-room ├── build.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── data │ │ └── room │ │ └── db │ │ ├── BaseDao.kt │ │ ├── BaseDatabase.kt │ │ ├── CommonConverters.kt │ │ ├── Database.kt │ │ ├── extension │ │ ├── RoomDatabase.kt │ │ └── SupportSQLiteDatabase.kt │ │ └── migration │ │ └── DatabaseMigration.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── data │ └── room │ └── db │ └── CommonConvertersTest.kt ├── data ├── README.md ├── build.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── data │ │ ├── arch │ │ ├── ApiResultMapper.kt │ │ ├── StoreExtensions.kt │ │ └── StoreResponseMapper.kt │ │ ├── asset │ │ └── AssetReader.kt │ │ └── file │ │ ├── AndroidFileContext.kt │ │ └── FileContext.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── data │ ├── arch │ ├── ApiResultMapperKtTest.kt │ ├── StoreExtensionsTest.kt │ └── StoreResponseMapperKtTest.kt │ ├── asset │ └── AssetReaderKtTest.kt │ └── file │ └── AndroidFileContextTest.kt ├── device-migration ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── devicemigration │ │ └── dagger │ │ └── CoreDeviceMigrationModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── devicemigration │ │ │ │ └── data │ │ │ │ ├── feature │ │ │ │ └── IsEasyDeviceMigrationEnabledImpl.kt │ │ │ │ └── usecase │ │ │ │ └── IsEasyDeviceMigrationAvailableImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── devicemigration │ │ └── data │ │ └── usecase │ │ └── IsEasyDeviceMigrationAvailableImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── devicemigration │ │ │ └── domain │ │ │ ├── LogTag.kt │ │ │ ├── entity │ │ │ ├── ChildClientId.kt │ │ │ ├── EdmCodeResult.kt │ │ │ ├── EdmParams.kt │ │ │ └── EncryptionKey.kt │ │ │ ├── feature │ │ │ └── IsEasyDeviceMigrationEnabled.kt │ │ │ └── usecase │ │ │ ├── DecodeEdmCode.kt │ │ │ ├── EdmConstants.kt │ │ │ ├── GenerateEdmCode.kt │ │ │ ├── IsEasyDeviceMigrationAvailable.kt │ │ │ ├── ObserveEdmCode.kt │ │ │ ├── PullEdmSessionFork.kt │ │ │ └── PushEdmSessionFork.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── devicemigration │ │ └── domain │ │ └── usecase │ │ ├── DecodeEdmCodeTest.kt │ │ ├── GenerateEdmCodeTest.kt │ │ ├── ObserveEdmCodeTest.kt │ │ └── PullEdmSessionForkTest.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── AndroidManifest.xml │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── devicemigration │ │ │ └── presentation │ │ │ ├── ActivityResultContracts.kt │ │ │ ├── DeviceMigrationActivity.kt │ │ │ ├── DeviceMigrationRoutes.kt │ │ │ ├── TargetDeviceMigrationActivity.kt │ │ │ ├── TargetDeviceMigrationRoutes.kt │ │ │ ├── codeinput │ │ │ ├── ManualCodeInputEvent.kt │ │ │ ├── ManualCodeInputOperation.kt │ │ │ ├── ManualCodeInputScreen.kt │ │ │ ├── ManualCodeInputState.kt │ │ │ └── ManualCodeInputViewModel.kt │ │ │ ├── intro │ │ │ ├── SignInIntroEvent.kt │ │ │ ├── SignInIntroOperation.kt │ │ │ ├── SignInIntroScreen.kt │ │ │ ├── SignInIntroState.kt │ │ │ └── SignInIntroViewModel.kt │ │ │ ├── qr │ │ │ ├── EdmQrCaptureActivity.kt │ │ │ ├── EdmViewfinderView.kt │ │ │ ├── QrBitmapGenerator.kt │ │ │ ├── QrScanContract.kt │ │ │ ├── QrScanEncoding.kt │ │ │ ├── QrScanLauncher.kt │ │ │ └── QrScanOutput.kt │ │ │ ├── settings │ │ │ ├── SignInToAnotherDeviceItem.kt │ │ │ ├── SignInToAnotherDeviceOperation.kt │ │ │ ├── SignInToAnotherDeviceState.kt │ │ │ └── SignInToAnotherDeviceViewModel.kt │ │ │ ├── signin │ │ │ ├── SignInEvent.kt │ │ │ ├── SignInOperation.kt │ │ │ ├── SignInScreen.kt │ │ │ ├── SignInState.kt │ │ │ └── SignInViewModel.kt │ │ │ ├── success │ │ │ ├── OriginSuccessOperation.kt │ │ │ ├── OriginSuccessScreen.kt │ │ │ ├── OriginSuccessState.kt │ │ │ └── OriginSuccessViewModel.kt │ │ │ └── util │ │ │ └── ObservabilityUtils.kt │ └── res │ │ ├── drawable │ │ ├── edm_intro_qr_scan_icon.xml │ │ ├── edm_missing_camera_permission.xml │ │ ├── edm_origin_success.xml │ │ ├── edm_qr_square.xml │ │ └── edm_target_error_icon.xml │ │ ├── layout │ │ ├── activity_edm_qr_capture.xml │ │ └── edm_qr_scanner.xml │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── links.xml │ │ └── strings.xml │ └── test │ ├── kotlin │ └── me │ │ └── proton │ │ └── core │ │ └── devicemigration │ │ └── presentation │ │ ├── codeinput │ │ ├── ManualCodeInputScreenTest.kt │ │ └── ManualCodeInputViewModelTest.kt │ │ ├── intro │ │ ├── SignInIntroScreenTest.kt │ │ └── SignInIntroViewModelTest.kt │ │ ├── settings │ │ └── SignInToAnotherDeviceViewModelTest.kt │ │ ├── signin │ │ ├── SignInScreenTest.kt │ │ └── SignInViewModelTest.kt │ │ └── success │ │ ├── OriginSuccessScreenTest.kt │ │ └── OriginSuccessViewModelTest.kt │ └── snapshots │ └── images │ ├── me.proton.core.devicemigration.presentation.codeinput_ManualCodeInputScreenTest_empty code state.png │ ├── me.proton.core.devicemigration.presentation.codeinput_ManualCodeInputScreenTest_idle state.png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_idle state[0].png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_idle state[1].png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_missing permission state[0].png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_missing permission state[1].png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_verifying state[0].png │ ├── me.proton.core.devicemigration.presentation.intro_SignInIntroScreenTest_verifying state[1].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_idle state[0].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_idle state[1].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_loading state[0].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_loading state[1].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_unrecoverable error[0].png │ ├── me.proton.core.devicemigration.presentation.signin_SignInScreenTest_unrecoverable error[1].png │ ├── me.proton.core.devicemigration.presentation.success_OriginSuccessScreenTest_idle state[0].png │ ├── me.proton.core.devicemigration.presentation.success_OriginSuccessScreenTest_idle state[1].png │ ├── me.proton.core.devicemigration.presentation.success_OriginSuccessScreenTest_loading state[0].png │ └── me.proton.core.devicemigration.presentation.success_OriginSuccessScreenTest_loading state[1].png ├── domain ├── README.md ├── build.gradle.kts └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── domain │ │ ├── arch │ │ ├── DataResult.kt │ │ ├── ErrorMessageContext.kt │ │ ├── Mapper.kt │ │ └── extension │ │ │ ├── EntityListFlowUtils.kt │ │ │ └── FlowOnEachUtils.kt │ │ ├── entity │ │ ├── AppStore.kt │ │ ├── Product.kt │ │ ├── UniqueId.kt │ │ └── UserId.kt │ │ └── type │ │ └── IntEnum.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── domain │ └── arch │ ├── EntityListFlowUtilsTest.kt │ └── MapperTest.kt ├── event-manager ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── eventmanager │ │ └── dagger │ │ └── CoreEventManagerModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── eventmanager │ │ │ │ └── data │ │ │ │ ├── CoreEventManagerStarter.kt │ │ │ │ ├── EventDeserializer.kt │ │ │ │ ├── EventManagerConfigProviderImpl.kt │ │ │ │ ├── EventManagerImpl.kt │ │ │ │ ├── EventManagerProviderImpl.kt │ │ │ │ ├── EventManagerQueryMapProvider.kt │ │ │ │ ├── IsCoreEventManagerEnabledImpl.kt │ │ │ │ ├── api │ │ │ │ ├── EventApi.kt │ │ │ │ └── response │ │ │ │ │ ├── GetCalendarEventsResponse.kt │ │ │ │ │ ├── GetCalendarLatestEventIdResponse.kt │ │ │ │ │ ├── GetCoreEventsResponse.kt │ │ │ │ │ ├── GetCoreLatestEventIdResponse.kt │ │ │ │ │ ├── GetDriveEventsResponse.kt │ │ │ │ │ └── GetDriveLatestEventIdResponse.kt │ │ │ │ ├── db │ │ │ │ ├── EventManagerConverters.kt │ │ │ │ ├── EventMetadataDatabase.kt │ │ │ │ └── dao │ │ │ │ │ └── EventMetadataDao.kt │ │ │ │ ├── entity │ │ │ │ └── EventMetadataEntity.kt │ │ │ │ ├── extension │ │ │ │ ├── EventListener.kt │ │ │ │ ├── EventManager.kt │ │ │ │ ├── EventManagerConfig.kt │ │ │ │ └── EventMetadata.kt │ │ │ │ ├── repository │ │ │ │ └── EventMetadataRepositoryImpl.kt │ │ │ │ └── work │ │ │ │ ├── EventWorker.kt │ │ │ │ └── EventWorkerManagerImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── eventmanager │ │ └── data │ │ ├── CoreEventManagerStarterTest.kt │ │ ├── EventManagerApiGoal.kt │ │ ├── EventManagerConfigParametrizedTest.kt │ │ ├── EventManagerImplTest.kt │ │ ├── IsCoreEventManagerEnabledImplTest.kt │ │ ├── TestEvents.kt │ │ ├── listener │ │ ├── CalendarEventListener.kt │ │ ├── ContactEventListener.kt │ │ └── UserEventListener.kt │ │ ├── repository │ │ └── EventMetadataRepositoryImplTest.kt │ │ └── work │ │ ├── EventWorkerDoWorkTest.kt │ │ ├── EventWorkerManagerImplTest.kt │ │ ├── EventWorkerManagerRepeatIntervalBackgroundTest.kt │ │ └── EventWorkerTest.kt └── domain │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── eventmanager │ │ └── domain │ │ ├── EventListener.kt │ │ ├── EventManager.kt │ │ ├── EventManagerConfig.kt │ │ ├── EventManagerConfigProvider.kt │ │ ├── EventManagerProvider.kt │ │ ├── IsCoreEventManagerEnabled.kt │ │ ├── LogTag.kt │ │ ├── TransactionHandler.kt │ │ ├── entity │ │ ├── Event.kt │ │ ├── EventId.kt │ │ ├── EventIdResponse.kt │ │ ├── EventMetadata.kt │ │ └── EventsResponse.kt │ │ ├── extension │ │ ├── EventListener.kt │ │ ├── EventManager.kt │ │ └── EventManagerConfig.kt │ │ ├── repository │ │ └── EventMetadataRepository.kt │ │ └── work │ │ └── EventWorkerManager.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── eventmanager │ └── domain │ ├── EventListenerTest.kt │ └── EventManagerKtTest.kt ├── feature-flag ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── featureflag │ │ └── dagger │ │ └── CoreFeatureFlagModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── featureflag │ │ │ │ └── data │ │ │ │ ├── FeatureFlagManagerImpl.kt │ │ │ │ ├── FeatureFlagRefreshStarter.kt │ │ │ │ ├── IsFeatureFlagEnabledImpl.kt │ │ │ │ ├── db │ │ │ │ ├── FeatureFlagDao.kt │ │ │ │ └── FeatureFlagDatabase.kt │ │ │ │ ├── entity │ │ │ │ └── FeatureFlagEntity.kt │ │ │ │ ├── listener │ │ │ │ └── FeatureDisabledListenerImpl.kt │ │ │ │ ├── local │ │ │ │ ├── FeatureFlagLocalDataSourceImpl.kt │ │ │ │ └── FeatureFlagMapper.kt │ │ │ │ ├── remote │ │ │ │ ├── FeatureFlagRemoteDataSourceImpl.kt │ │ │ │ ├── FeaturesApi.kt │ │ │ │ ├── request │ │ │ │ │ └── PutFeatureFlagBody.kt │ │ │ │ ├── resource │ │ │ │ │ ├── FeatureResource.kt │ │ │ │ │ └── UnleashResources.kt │ │ │ │ ├── response │ │ │ │ │ ├── GetFeaturesResponse.kt │ │ │ │ │ ├── GetUnleashTogglesResponse.kt │ │ │ │ │ └── PutFeatureResponse.kt │ │ │ │ └── worker │ │ │ │ │ ├── FeatureFlagWorkerManagerImpl.kt │ │ │ │ │ ├── FetchFeatureIdsWorker.kt │ │ │ │ │ ├── FetchUnleashTogglesWorker.kt │ │ │ │ │ └── UpdateFeatureFlagWorker.kt │ │ │ │ └── repository │ │ │ │ └── FeatureFlagRepositoryImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── featureflag │ │ └── data │ │ ├── FeatureFlagManagerImplTest.kt │ │ ├── FeatureFlagRefreshStarterTest.kt │ │ ├── IsFeatureFlagEnabledImplTest.kt │ │ ├── listener │ │ └── FeatureDisabledListenerTest.kt │ │ ├── local │ │ └── FeatureFlagLocalDataSourceImplTest.kt │ │ ├── remote │ │ └── worker │ │ │ ├── FeatureFlagWorkerManagerImplTest.kt │ │ │ └── UpdateFeatureFlagWorkerTest.kt │ │ ├── repository │ │ ├── FeatureFlagRepositoryImplTest.kt │ │ └── TestFeatureFlagContextProvider.kt │ │ └── testdata │ │ ├── FeatureFlagTestData.kt │ │ ├── SessionIdTestData.kt │ │ └── UserIdTestData.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ ├── AndroidManifest.xml │ └── kotlin │ └── me │ └── proton │ └── core │ └── featureflag │ └── domain │ ├── FeatureFlagManager.kt │ ├── FeatureFlagOverrider.kt │ ├── FeatureFlagWorkerManager.kt │ ├── IsFeatureFlagEnabled.kt │ ├── LogTag.kt │ ├── entity │ ├── FeatureFlag.kt │ └── FeatureId.kt │ ├── repository │ ├── FeatureFlagContextProvider.kt │ ├── FeatureFlagLocalDataSource.kt │ ├── FeatureFlagRemoteDataSource.kt │ └── FeatureFlagRepository.kt │ └── usecase │ ├── FetchFeatureIdsRemote.kt │ └── FetchUnleashTogglesRemote.kt ├── gopenpgp ├── build-config.json ├── build.gradle ├── gopenpgp-sources.jar └── gopenpgp.aar ├── gradle.properties ├── gradle ├── include-core-libs.gradle.kts ├── libs.versions.toml ├── script │ └── update_verification_data.sh └── wrapper │ ├── gradle-wrapper.jar │ ├── gradle-wrapper.jar.sha256 │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── human-verification ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── humanverification │ │ └── dagger │ │ └── CoreHumanVerificationModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── humanverification │ │ │ └── data │ │ │ ├── DeviceVerificationListenerImpl.kt │ │ │ ├── DeviceVerificationProviderImpl.kt │ │ │ ├── HumanVerificationListenerImpl.kt │ │ │ ├── HumanVerificationManagerImpl.kt │ │ │ ├── HumanVerificationProviderImpl.kt │ │ │ ├── db │ │ │ ├── HumanVerificationConverters.kt │ │ │ ├── HumanVerificationDatabase.kt │ │ │ └── HumanVerificationDetailsDao.kt │ │ │ ├── entity │ │ │ └── HumanVerificationEntity.kt │ │ │ ├── repository │ │ │ └── HumanVerificationRepositoryImpl.kt │ │ │ └── utils │ │ │ └── NetworkRequestOverriderImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── humanverification │ │ └── data │ │ ├── DeviceVerificationListenerImplTest.kt │ │ ├── DeviceVerificationProviderImplTest.kt │ │ ├── HumanVerificationListenerImplTest.kt │ │ ├── HumanVerificationManagerImplTest.kt │ │ ├── db │ │ └── HumanVerificationConvertersTest.kt │ │ ├── repository │ │ └── HumanVerificationRepositoryImplTest.kt │ │ └── utils │ │ └── NetworkRequestOverriderTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── humanverification │ │ │ └── domain │ │ │ ├── HumanVerificationExternalInput.kt │ │ │ ├── HumanVerificationManager.kt │ │ │ ├── HumanVerificationWorkflowHandler.kt │ │ │ ├── LogTag.kt │ │ │ ├── entity │ │ │ └── TokenType.kt │ │ │ ├── repository │ │ │ └── HumanVerificationRepository.kt │ │ │ └── utils │ │ │ └── NetworkRequestOverrider.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── humanverification │ │ └── domain │ │ ├── HumanVerificationManagerKtTest.kt │ │ └── entity │ │ └── TokenTypeTest.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── humanverification │ │ │ │ └── presentation │ │ │ │ ├── HumanVerificationInitializer.kt │ │ │ │ ├── HumanVerificationManagerObserver.kt │ │ │ │ ├── HumanVerificationStateHandler.kt │ │ │ │ ├── LogTag.kt │ │ │ │ ├── Qualifiers.kt │ │ │ │ ├── entity │ │ │ │ ├── HumanVerificationInput.kt │ │ │ │ ├── HumanVerificationResult.kt │ │ │ │ └── HumanVerificationToken.kt │ │ │ │ ├── telemetry │ │ │ │ └── ProductMetricsDelegateHv.kt │ │ │ │ ├── ui │ │ │ │ ├── HumanVerificationActivity.kt │ │ │ │ ├── common │ │ │ │ │ ├── HumanVerificationHelpFragment.kt │ │ │ │ │ ├── HumanVerificationSharedConstants.kt │ │ │ │ │ └── HumanVerificationWebViewClient.kt │ │ │ │ └── hv3 │ │ │ │ │ ├── HV3DialogFragment.kt │ │ │ │ │ └── HV3ResponseMessage.kt │ │ │ │ ├── utils │ │ │ │ ├── HumanVerificationVersion.kt │ │ │ │ ├── UiUtils.kt │ │ │ │ └── WebResponseErrorExt.kt │ │ │ │ └── viewmodel │ │ │ │ └── hv3 │ │ │ │ ├── HV3ExtraParams.kt │ │ │ │ └── HV3ViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── background_tab_item.xml │ │ │ └── ic_drop_down.xml │ │ │ ├── layout │ │ │ ├── content_human_verification_help_manual.xml │ │ │ ├── content_human_verification_help_web.xml │ │ │ ├── dialog_human_verification_v3.xml │ │ │ └── fragment_human_verification_help.xml │ │ │ ├── menu │ │ │ └── help_menu.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── config.xml │ │ │ ├── links.xml │ │ │ ├── margins.xml │ │ │ ├── sizes.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ └── kotlin │ │ ├── me │ │ └── proton │ │ │ └── core │ │ │ └── humanverification │ │ │ └── presentation │ │ │ ├── HumanVerificationStateHandlerKtTest.kt │ │ │ ├── HumanVerificationStateHandlerTest.kt │ │ │ ├── telemetry │ │ │ └── ProductMetricsDelegateHvTest.kt │ │ │ ├── ui │ │ │ └── common │ │ │ │ └── HumanVerificationWebViewClientTest.kt │ │ │ ├── utils │ │ │ ├── UiUtilsKtTest.kt │ │ │ └── WebResponseErrorExtKtTest.kt │ │ │ └── viewmodel │ │ │ └── hv3 │ │ │ └── HV3ViewModelTest.kt │ │ └── ui │ │ └── VerificationResponseGeneralTest.kt └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── humanverification │ └── test │ └── robot │ └── HvCodeRobot.kt ├── key-transparency ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── keytransparency │ │ └── dagger │ │ └── KeyTransparencyModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── keytransparency │ │ │ └── data │ │ │ ├── TestKeys.kt │ │ │ └── usecase │ │ │ ├── VerifyEpochGolangImplTest.kt │ │ │ └── VerifyProofGolangImplTest.kt │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── keytransparency │ │ │ └── data │ │ │ ├── Qualifiers.kt │ │ │ ├── SelfAuditStarter.kt │ │ │ ├── SelfAuditWorker.kt │ │ │ ├── local │ │ │ ├── AddressChangeDao.kt │ │ │ ├── KeyTransparencyDatabase.kt │ │ │ ├── KeyTransparencyMapper.kt │ │ │ ├── SelfAuditResultDao.kt │ │ │ └── entity │ │ │ │ ├── AddressChangeEntity.kt │ │ │ │ └── SelfAuditResultEntity.kt │ │ │ ├── remote │ │ │ ├── KeyTransparencyApi.kt │ │ │ ├── request │ │ │ │ └── UploadVerifiedEpochRequest.kt │ │ │ └── response │ │ │ │ ├── EpochResponse.kt │ │ │ │ ├── EpochsResponse.kt │ │ │ │ ├── ProofPairResponse.kt │ │ │ │ └── VerifiedEpochResponse.kt │ │ │ ├── repository │ │ │ └── KeyTransparencyRepositoryImpl.kt │ │ │ └── usecase │ │ │ ├── GetHostTypeImpl.kt │ │ │ ├── IsKeyTransparencyEnabledImpl.kt │ │ │ ├── VerifyEpochGolangImpl.kt │ │ │ └── VerifyProofGolangImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── keytransparency │ │ └── data │ │ └── usecase │ │ └── GetHostTypeImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── keytransparency │ │ │ └── domain │ │ │ ├── Constants.kt │ │ │ ├── KeyTransparencyLogger.kt │ │ │ ├── KeyTransparencyParameters.kt │ │ │ ├── PublicAddressVerifierImpl.kt │ │ │ ├── RunSelfAudit.kt │ │ │ ├── SignedKeyListChangeListenerImpl.kt │ │ │ ├── entity │ │ │ ├── AddressChange.kt │ │ │ ├── Epoch.kt │ │ │ ├── EpochId.kt │ │ │ ├── Proof.kt │ │ │ ├── SelfAuditResult.kt │ │ │ ├── UserAddressAuditResult.kt │ │ │ ├── VerifiedEpoch.kt │ │ │ ├── VerifiedEpochData.kt │ │ │ └── VerifiedState.kt │ │ │ ├── exception │ │ │ ├── Check.kt │ │ │ ├── KeyTransparencyException.kt │ │ │ └── UnverifiableSKLException.kt │ │ │ ├── extensions │ │ │ └── UserAddress.kt │ │ │ ├── repository │ │ │ └── KeyTransparencyRepository.kt │ │ │ └── usecase │ │ │ ├── AuditUserAddress.kt │ │ │ ├── BootstrapInitialEpoch.kt │ │ │ ├── BuildInitialEpoch.kt │ │ │ ├── CheckAbsenceProof.kt │ │ │ ├── CheckSignedKeyListMatch.kt │ │ │ ├── CheckVerifiedEpochSignature.kt │ │ │ ├── ExcludeExternalAccounts.kt │ │ │ ├── FetchVerifiedEpoch.kt │ │ │ ├── GetCurrentTime.kt │ │ │ ├── GetHostType.kt │ │ │ ├── GetKeyTransparencyParameters.kt │ │ │ ├── GetObsolescenceTokenTimestamp.kt │ │ │ ├── GetVerificationPublicKeys.kt │ │ │ ├── IsKeyTransparencyEnabled.kt │ │ │ ├── LogKeyTransparency.kt │ │ │ ├── NormalizeEmail.kt │ │ │ ├── SelfAudit.kt │ │ │ ├── StoreAddressChange.kt │ │ │ ├── UploadVerifiedEpoch.kt │ │ │ ├── VerifyAddressChangeWasIncluded.kt │ │ │ ├── VerifyEpoch.kt │ │ │ ├── VerifyObsolescenceInclusion.kt │ │ │ ├── VerifyProof.kt │ │ │ ├── VerifyProofInEpoch.kt │ │ │ ├── VerifyPublicAddress.kt │ │ │ └── VerifySignedKeyListSignature.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── keytransparency │ │ └── domain │ │ ├── PublicAddressVerifierImplTest.kt │ │ ├── RunSelfAuditTest.kt │ │ ├── SignedKeyListChangeListenerImplTest.kt │ │ └── usecase │ │ ├── AuditUserAddressTest.kt │ │ ├── BootstrapInitialEpochTest.kt │ │ ├── BuildInitialEpochTest.kt │ │ ├── CheckAbsenceProofTest.kt │ │ ├── CheckSignedKeyListMatchTest.kt │ │ ├── CheckVerifiedEpochSignatureTest.kt │ │ ├── FetchVerifiedEpochTest.kt │ │ ├── GetObsolescenceTokenTimestampTest.kt │ │ ├── GetVerificationPublicKeysTest.kt │ │ ├── NormalizeEmailTest.kt │ │ ├── SelfAuditTest.kt │ │ ├── StoreAddressChangeTest.kt │ │ ├── UploadVerifiedEpochTest.kt │ │ ├── VerifyAddressChangeWasIncludedTest.kt │ │ ├── VerifyObsolescenceInclusionTest.kt │ │ ├── VerifyProofInEpochTest.kt │ │ ├── VerifyPublicAddressTest.kt │ │ └── VerifySignedKeyListSignatureTest.kt └── presentation │ ├── build.gradle.kts │ └── src │ └── main │ └── java │ └── me │ └── proton │ └── core │ └── keytransparency │ └── presentation │ └── init │ └── KeyTransparencyInitializer.kt ├── key ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── key │ │ └── dagger │ │ └── CoreKeyModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── key │ │ │ └── domain │ │ │ ├── KeyHolderTest.kt │ │ │ ├── TestKeyHolder.kt │ │ │ └── TestKeys.kt │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── key │ │ │ └── data │ │ │ ├── api │ │ │ ├── KeyApi.kt │ │ │ ├── request │ │ │ │ ├── CreateAddressKeyRequest.kt │ │ │ │ ├── ReactivateKeysRequest.kt │ │ │ │ ├── SetupInitialKeysRequest.kt │ │ │ │ ├── SignedKeyListRequest.kt │ │ │ │ └── UpdateKeysForPasswordChangeRequest.kt │ │ │ └── response │ │ │ │ ├── ActivePublicKeysResponse.kt │ │ │ │ ├── AddressKeyResponse.kt │ │ │ │ ├── AddressResponse.kt │ │ │ │ ├── CreateAddressKeyResponse.kt │ │ │ │ ├── KeySaltsResponse.kt │ │ │ │ ├── PublicAddressKeysResponse.kt │ │ │ │ ├── SetupInitialKeysResponse.kt │ │ │ │ ├── SignedKeyListResponse.kt │ │ │ │ ├── UserKeyResponse.kt │ │ │ │ ├── UserRecoveryResponse.kt │ │ │ │ └── UserResponse.kt │ │ │ ├── db │ │ │ ├── KeySaltDao.kt │ │ │ ├── KeySaltDatabase.kt │ │ │ ├── PublicAddressDao.kt │ │ │ ├── PublicAddressDatabase.kt │ │ │ ├── PublicAddressInfoDao.kt │ │ │ ├── PublicAddressInfoWithKeysDao.kt │ │ │ ├── PublicAddressKeyDao.kt │ │ │ ├── PublicAddressKeyDataDao.kt │ │ │ └── PublicAddressWithKeysDao.kt │ │ │ ├── entity │ │ │ ├── KeySaltEntity.kt │ │ │ ├── PublicAddressEntity.kt │ │ │ ├── PublicAddressInfoEntities.kt │ │ │ ├── PublicAddressKeyEntity.kt │ │ │ ├── PublicAddressWithKeys.kt │ │ │ └── SignedKeyListEntity.kt │ │ │ ├── extension │ │ │ ├── KeySaltMapper.kt │ │ │ ├── PublicAddressInfoMapper.kt │ │ │ └── PublicAddressMapper.kt │ │ │ └── repository │ │ │ ├── KeySaltRepositoryImpl.kt │ │ │ ├── PrivateKeyRepositoryImpl.kt │ │ │ └── PublicAddressRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── key │ │ └── data │ │ ├── TestKeys.kt │ │ ├── api │ │ └── response │ │ │ └── ActivePublicKeysResponseTest.kt │ │ ├── extension │ │ ├── KeySaltMapperKtTest.kt │ │ └── PublicAddressInfoMapperKtTest.kt │ │ └── repository │ │ ├── KeySaltRepositoryImplTest.kt │ │ ├── PrivateKeyRepositoryImplTest.kt │ │ └── PublicAddressRepositoryImplTest.kt └── domain │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── key │ │ └── domain │ │ ├── ArmoredCrypto.kt │ │ ├── KeyHolderCrypto.kt │ │ ├── LogTag.kt │ │ ├── PrivateKeyCrypto.kt │ │ ├── PublicAddressCrypto.kt │ │ ├── PublicKeyCrypto.kt │ │ ├── PublicKeyRingCrypto.kt │ │ ├── SessionKeyCrypto.kt │ │ ├── UnlockedPrivateKeyCrypto.kt │ │ ├── entity │ │ ├── key │ │ │ ├── ArmoredKey.kt │ │ │ ├── Key.kt │ │ │ ├── KeyFlags.kt │ │ │ ├── KeyId.kt │ │ │ ├── NestedPrivateKey.kt │ │ │ ├── PrivateAddressKey.kt │ │ │ ├── PrivateKey.kt │ │ │ ├── PrivateKeyRing.kt │ │ │ ├── PrivateKeySalt.kt │ │ │ ├── PublicAddress.kt │ │ │ ├── PublicAddressInfo.kt │ │ │ ├── PublicAddressKey.kt │ │ │ ├── PublicAddressKeySource.kt │ │ │ ├── PublicKey.kt │ │ │ ├── PublicKeyRing.kt │ │ │ ├── PublicSignedKeyList.kt │ │ │ └── UnlockedPrivateKey.kt │ │ └── keyholder │ │ │ ├── KeyHolder.kt │ │ │ ├── KeyHolderContext.kt │ │ │ └── KeyHolderPrivateKey.kt │ │ ├── extension │ │ ├── GetPublicKeyRing.kt │ │ ├── KeyHolderPrivateKey.kt │ │ ├── KeyHolderPrivateKeyList.kt │ │ ├── NestedPrivateKey.kt │ │ ├── PrivateKeySalt.kt │ │ ├── PublicKeyRing.kt │ │ └── UpdatePrivateKey.kt │ │ └── repository │ │ ├── KeySaltRepository.kt │ │ ├── PrivateKeyRepository.kt │ │ ├── PublicAddressRepository.kt │ │ └── PublicAddressVerifier.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── key │ └── domain │ ├── ArmoredCryptoKtTest.kt │ ├── CryptoExtensionsTest.kt │ ├── KeyHolderApiGoal.kt │ ├── KeyHolderCryptoKtTest.kt │ ├── PublicAddressKeyCryptoTest.kt │ ├── PublicKeyCryptoTest.kt │ ├── SessionKeyCryptoKtTest.kt │ ├── TestCryptoContext.kt │ ├── TestExtensions.kt │ ├── TestKeyHolder.kt │ ├── entity │ └── key │ │ ├── ArmoredKeyTest.kt │ │ ├── PublicAddressKeyTest.kt │ │ └── PublicAddressTest.kt │ ├── extension │ ├── NestedPrivateKeyKtTest.kt │ ├── PublicKeyRingKtTest.kt │ └── UpdatePrivateKeyKtTest.kt │ └── repository │ └── PublicAddressRepositoryKtTest.kt ├── label ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── label │ │ └── dagger │ │ └── CoreLabelModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── label │ │ │ └── data │ │ │ ├── LabelEventListener.kt │ │ │ ├── local │ │ │ ├── LabelConverters.kt │ │ │ ├── LabelDao.kt │ │ │ ├── LabelDatabase.kt │ │ │ ├── LabelEntity.kt │ │ │ ├── LabelLocalDataSourceImpl.kt │ │ │ └── LabelMapper.kt │ │ │ ├── remote │ │ │ ├── LabelApi.kt │ │ │ ├── LabelRemoteDataSourceImpl.kt │ │ │ ├── request │ │ │ │ ├── CreateLabelRequest.kt │ │ │ │ └── UpdateLabelRequest.kt │ │ │ ├── resource │ │ │ │ └── LabelResource.kt │ │ │ ├── response │ │ │ │ ├── GetLabelsResponse.kt │ │ │ │ └── SingleLabelResponse.kt │ │ │ └── worker │ │ │ │ ├── DeleteLabelWorker.kt │ │ │ │ ├── FetchLabelWorker.kt │ │ │ │ └── UpdateLabelWorker.kt │ │ │ └── repository │ │ │ └── LabelRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ ├── contact │ │ └── tests │ │ │ ├── ConsistencyTests.kt │ │ │ ├── LabelDatabaseTests.kt │ │ │ ├── SampleData.kt │ │ │ ├── TestDatabase.kt │ │ │ └── TransactionTests.kt │ │ └── label │ │ └── data │ │ └── remote │ │ └── resource │ │ └── LabelResourceMapperTest.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── label │ └── domain │ ├── entity │ ├── Label.kt │ ├── LabelId.kt │ └── LabelType.kt │ ├── repository │ ├── LabelLocalDataSource.kt │ ├── LabelRemoteDataSource.kt │ └── LabelRepository.kt │ └── usecase │ ├── DeleteLabelRemote.kt │ ├── FetchLabelRemote.kt │ └── UpdateLabelRemote.kt ├── lint ├── build.gradle.kts.backup └── src │ ├── main │ └── kotlin │ │ └── ch │ │ └── protonmail │ │ └── libs │ │ └── lint │ │ ├── DetectorIssueProvider.kt │ │ ├── ProtonIssueRegistry.kt │ │ ├── categories │ │ └── Category.kt │ │ └── detectors │ │ ├── HardcodedCoroutineDispatcherDetector.kt │ │ ├── NoSerialNameAnnotationDetector.kt │ │ ├── NotConstantStringDetector.kt │ │ └── UsesCleartextTrafficManifestDetector.kt │ └── test │ └── kotlin │ └── ch │ └── protonmail │ └── libs │ └── lint │ └── detectors │ ├── HardcodedCoroutineDispactherDetectorTest.kt │ ├── NoSerialNameAnnotationDetectorTest.kt │ ├── NotConstantStringDetectorTest.kt │ └── testUtils │ └── LintTest.kt ├── mail-message ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── mailmessage │ │ └── dagger │ │ └── CoreMailMessageModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── mailmessage │ │ └── data │ │ ├── api │ │ ├── MailMessageApi.kt │ │ ├── request │ │ │ └── SendDirectRequest.kt │ │ └── response │ │ │ └── SendDirectResponse.kt │ │ ├── extension │ │ ├── EmailMessageMapper.kt │ │ └── EmailPackageMapper.kt │ │ └── repository │ │ └── EmailMessageRepositoryImpl.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── mailmessage │ └── domain │ ├── KeyHolderCrypto.kt │ ├── entity │ ├── Email.kt │ ├── EmailReceipt.kt │ ├── EncryptedAttachment.kt │ ├── EncryptedEmail.kt │ ├── EncryptedPackage.kt │ └── Filename.kt │ ├── repository │ └── EmailMessageRepository.kt │ └── usecase │ ├── GenerateEmailPackage.kt │ ├── GetRecipientPublicAddresses.kt │ └── SendEmailDirect.kt ├── mail-send-preferences ├── build.gradle.kts ├── dagger │ └── build.gradle.kts ├── data │ └── build.gradle.kts └── domain │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── mailsendpreferences │ │ └── domain │ │ ├── model │ │ └── SendPreferences.kt │ │ └── usecase │ │ ├── CreateSendPreferences.kt │ │ └── ObtainSendPreferences.kt │ └── test │ └── kotlin │ └── me.proton.core.mailsendpreferences.domain │ └── usecase │ └── ObtainSendPreferencesTests.kt ├── mail-settings ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── mailsettings │ │ └── dagger │ │ └── CoreMailSettingsModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── mailsettings │ │ │ └── data │ │ │ ├── MailSettingsEventListener.kt │ │ │ ├── api │ │ │ ├── MailSettingsApi.kt │ │ │ ├── request │ │ │ │ └── MailSettingsRequests.kt │ │ │ └── response │ │ │ │ └── MailSettingsResponse.kt │ │ │ ├── db │ │ │ ├── MailSettingsDatabase.kt │ │ │ └── dao │ │ │ │ └── MailSettingsDao.kt │ │ │ ├── entity │ │ │ └── MailSettingsEntity.kt │ │ │ ├── extension │ │ │ └── MailSettingsMapper.kt │ │ │ ├── repository │ │ │ └── MailSettingsRepositoryImpl.kt │ │ │ └── worker │ │ │ ├── SettingsProperty.kt │ │ │ └── UpdateSettingsWorker.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── mailsettings │ │ └── data │ │ ├── extension │ │ └── MailSettingsMapperTests.kt │ │ ├── repository │ │ └── MailSettingsRepositoryTests.kt │ │ ├── testdata │ │ └── MailSettingsTestData.kt │ │ └── worker │ │ └── UpdateSettingsWorkerTest.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── mailsettings │ └── domain │ ├── entity │ ├── MailMobileSettings.kt │ └── MailSettings.kt │ └── repository │ └── MailSettingsRepository.kt ├── metrics ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── metrics │ │ └── dagger │ │ └── CoreMetricsModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── metrics │ │ │ └── data │ │ │ ├── MetricsManagerImpl.kt │ │ │ ├── remote │ │ │ ├── MetricsApi.kt │ │ │ ├── request │ │ │ │ └── MetricsRequest.kt │ │ │ └── worker │ │ │ │ └── PostMetricsWorker.kt │ │ │ └── repository │ │ │ └── MetricsRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── metrics │ │ └── data │ │ ├── MetricsManagerImplTest.kt │ │ ├── remote │ │ └── worker │ │ │ └── PostMetricsWorkerTest.kt │ │ └── repository │ │ └── MetricsRepositoryImplTest.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── metrics │ └── domain │ ├── MetricsManager.kt │ ├── entity │ └── Metrics.kt │ └── repository │ └── MetricsRepository.kt ├── network ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── network │ │ └── dagger │ │ └── CoreNetworkModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── network │ │ │ └── data │ │ │ ├── ApiManagerFactory.kt │ │ │ ├── ApiProvider.kt │ │ │ ├── ApiResultUtils.kt │ │ │ ├── ByteArrayConverter.kt │ │ │ ├── HeadersUtils.kt │ │ │ ├── LoggingUtils.kt │ │ │ ├── NetworkManagerImpl.kt │ │ │ ├── NetworkPrefsImpl.kt │ │ │ ├── Pinning.kt │ │ │ ├── ProtonApiBackend.kt │ │ │ ├── ProtonCookieStore.kt │ │ │ ├── client │ │ │ ├── ClientIdProviderImpl.kt │ │ │ ├── ClientVersionValidatorImpl.kt │ │ │ └── ExtraHeaderProviderImpl.kt │ │ │ ├── cookie │ │ │ ├── CookieExt.kt │ │ │ ├── CookieStorage.kt │ │ │ ├── DiskCookieStorage.kt │ │ │ ├── MemoryCookieStorage.kt │ │ │ └── SerializableCookie.kt │ │ │ ├── di │ │ │ ├── Constants.kt │ │ │ └── Qualifiers.kt │ │ │ ├── doh │ │ │ ├── DnsOverHttpsProviderRFC8484.kt │ │ │ └── DnsOverHttpsRetrofitApi.kt │ │ │ ├── interceptor │ │ │ ├── CacheOverrideInterceptor.kt │ │ │ ├── DoHCookieInterceptor.kt │ │ │ ├── ServerErrorInterceptor.kt │ │ │ └── ServerTimeInterceptor.kt │ │ │ ├── mapper │ │ │ └── EntityMapper.kt │ │ │ ├── protonApi │ │ │ ├── BaseRetrofitApi.kt │ │ │ ├── GenericResponse.kt │ │ │ └── ProtonSerializationUtils.kt │ │ │ └── server │ │ │ └── ServerCacheInterceptor.kt │ │ └── test │ │ ├── java │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── network │ │ │ └── data │ │ │ ├── ApiManagerTests.kt │ │ │ ├── DohProviderTests.kt │ │ │ ├── HumanVerificationTests.kt │ │ │ ├── NetworkManagerTests.kt │ │ │ ├── PinningTests.kt │ │ │ ├── ProtonApiBackendTests.kt │ │ │ ├── TestApiClient.kt │ │ │ ├── client │ │ │ ├── ClientIdProviderImplTest.kt │ │ │ └── ClientVersionValidatorTests.kt │ │ │ ├── cookie │ │ │ ├── CookieStorageTest.kt │ │ │ └── ProtonCookieStoreTest.kt │ │ │ ├── protonApi │ │ │ └── ErrorDetailsTest.kt │ │ │ └── util │ │ │ ├── MockClient.kt │ │ │ ├── MockNetworkManager.kt │ │ │ ├── TestRetrofitApi.kt │ │ │ └── TestUtils.kt │ │ └── resources │ │ └── test.jks ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── network │ │ │ └── domain │ │ │ ├── ApiBackend.kt │ │ │ ├── ApiClient.kt │ │ │ ├── ApiErrorHandler.kt │ │ │ ├── ApiManager.kt │ │ │ ├── ApiManagerImpl.kt │ │ │ ├── ApiResult.kt │ │ │ ├── CacheOverride.kt │ │ │ ├── DohProvider.kt │ │ │ ├── HttpResponseCodes.kt │ │ │ ├── LogTag.kt │ │ │ ├── NetworkManager.kt │ │ │ ├── NetworkPrefs.kt │ │ │ ├── ResponseCodes.kt │ │ │ ├── ThrowableExt.kt │ │ │ ├── TimeoutOverride.kt │ │ │ ├── client │ │ │ ├── ClientId.kt │ │ │ ├── ClientIdProvider.kt │ │ │ ├── ClientVersionValidator.kt │ │ │ └── ExtraHeaderProvider.kt │ │ │ ├── deviceverification │ │ │ ├── DeviceVerificationListener.kt │ │ │ ├── DeviceVerificationMethods.kt │ │ │ └── DeviceVerificationProvider.kt │ │ │ ├── feature │ │ │ └── FeatureDisabledListener.kt │ │ │ ├── handlers │ │ │ ├── DeviceVerificationNeededHandler.kt │ │ │ ├── DohApiHandler.kt │ │ │ ├── FeatureDisabledHandler.kt │ │ │ ├── HumanVerificationInvalidHandler.kt │ │ │ ├── HumanVerificationNeededHandler.kt │ │ │ ├── MissingScopeHandler.kt │ │ │ ├── ProtonForceUpdateHandler.kt │ │ │ └── TokenErrorHandler.kt │ │ │ ├── humanverification │ │ │ ├── HumanVerificationAvailableMethods.kt │ │ │ ├── HumanVerificationDetails.kt │ │ │ ├── HumanVerificationListener.kt │ │ │ ├── HumanVerificationProvider.kt │ │ │ ├── HumanVerificationState.kt │ │ │ └── VerificationMethod.kt │ │ │ ├── interceptor │ │ │ └── InterceptorInfo.kt │ │ │ ├── scopes │ │ │ ├── MissingScopeListener.kt │ │ │ ├── MissingScopeResult.kt │ │ │ ├── MissingScopeState.kt │ │ │ ├── MissingScopes.kt │ │ │ └── Scope.kt │ │ │ ├── server │ │ │ ├── ServerClock.kt │ │ │ ├── ServerTimeListener.kt │ │ │ └── ServerTimeManager.kt │ │ │ ├── serverconnection │ │ │ └── DohAlternativesListener.kt │ │ │ └── session │ │ │ ├── Session.kt │ │ │ ├── SessionId.kt │ │ │ ├── SessionListener.kt │ │ │ └── SessionProvider.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── network │ │ └── domain │ │ ├── ApiClientKtTest.kt │ │ ├── ApiResultIsUnauthorizedTest.kt │ │ ├── ApiResultRetryTest.kt │ │ ├── ApiResultTest.kt │ │ ├── DeviceVerificationHandlerTest.kt │ │ ├── HumanVerificationHandlerTest.kt │ │ ├── ServerClockTest.kt │ │ ├── handlers │ │ ├── MissingScopeHandlerTest.kt │ │ ├── ProtonForceUpdateHandlerTest.kt │ │ └── TokenErrorHandlerTest.kt │ │ └── session │ │ └── ClientIdTest.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── AndroidManifest.xml │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── network │ │ └── presentation │ │ ├── CertificateTransparency.kt │ │ ├── UnAuthSessionFetcher.kt │ │ ├── init │ │ └── UnAuthSessionFetcherInitializer.kt │ │ ├── ui │ │ ├── ProtonWebViewActivity.kt │ │ └── webview │ │ │ ├── ProtonWebViewClient.kt │ │ │ └── SSLCertificate.kt │ │ └── util │ │ ├── ErrorMessageContextImpl.kt │ │ └── ErrorUtils.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── network │ └── presentation │ ├── UnAuthSessionFetcherTest.kt │ └── util │ └── ErrorUtilsTest.kt ├── notification ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── notification │ │ └── dagger │ │ └── CoreNotificationModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── notification │ │ │ └── data │ │ │ ├── NotificationEventListener.kt │ │ │ ├── local │ │ │ ├── NotificationLocalDataSourceImpl.kt │ │ │ └── db │ │ │ │ ├── NotificationConverters.kt │ │ │ │ ├── NotificationDao.kt │ │ │ │ ├── NotificationDatabase.kt │ │ │ │ └── NotificationEntity.kt │ │ │ ├── remote │ │ │ ├── NotificationApi.kt │ │ │ ├── NotificationRemoteDataSourceImpl.kt │ │ │ └── response │ │ │ │ ├── GetNotificationsResponse.kt │ │ │ │ ├── NotificationPayloadResponse.kt │ │ │ │ └── NotificationResponse.kt │ │ │ └── repository │ │ │ └── NotificationRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── notification │ │ └── data │ │ ├── NotificationEventListenerTest.kt │ │ ├── local │ │ ├── NotificationLocalDataSourceImplTest.kt │ │ └── NotificationPayloadTest.kt │ │ ├── remote │ │ └── NotificationRemoteDataSourceImplTest.kt │ │ └── repository │ │ ├── NotificationRepositoryImplTest.kt │ │ └── testing │ │ ├── TestDatabase.kt │ │ └── test_entities.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── notification │ │ │ └── domain │ │ │ ├── ProtonNotificationManager.kt │ │ │ ├── entity │ │ │ └── Notification.kt │ │ │ ├── repository │ │ │ ├── NotificationLocalDataSource.kt │ │ │ ├── NotificationRemoteDataSource.kt │ │ │ └── NotificationRepository.kt │ │ │ └── usecase │ │ │ ├── CancelNotificationView.kt │ │ │ ├── ConfigureNotificationChannel.kt │ │ │ ├── GetNotificationChannelId.kt │ │ │ ├── IsNotificationsEnabled.kt │ │ │ ├── IsNotificationsPermissionRequestEnabled.kt │ │ │ ├── IsNotificationsPermissionShowRationale.kt │ │ │ ├── ObservePushNotifications.kt │ │ │ ├── ReplaceNotificationViews.kt │ │ │ └── ShowNotificationView.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── notification │ │ └── domain │ │ └── ProtonNotificationManagerTest.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── notification │ │ │ │ └── presentation │ │ │ │ ├── NotificationDataStoreProvider.kt │ │ │ │ ├── NotificationDeeplink.kt │ │ │ │ ├── NotificationSetup.kt │ │ │ │ ├── deeplink │ │ │ │ ├── DeeplinkActivity.kt │ │ │ │ ├── DeeplinkBroadcastReceiver.kt │ │ │ │ ├── DeeplinkIntentProvider.kt │ │ │ │ ├── DeeplinkManager.kt │ │ │ │ └── HandleDeeplinkIntent.kt │ │ │ │ ├── internal │ │ │ │ ├── GetAndroidSdkLevel.kt │ │ │ │ ├── GetNotificationId.kt │ │ │ │ ├── GetNotificationTag.kt │ │ │ │ └── HasNotificationPermission.kt │ │ │ │ ├── ui │ │ │ │ └── NotificationPermissionActivity.kt │ │ │ │ ├── usecase │ │ │ │ ├── CancelNotificationViewImpl.kt │ │ │ │ ├── ConfigureNotificationChannelImpl.kt │ │ │ │ ├── GetNotificationChannelIdImpl.kt │ │ │ │ ├── IsNotificationsEnabledImpl.kt │ │ │ │ ├── IsNotificationsPermissionRequestEnabledImpl.kt │ │ │ │ ├── IsNotificationsPermissionShowRationaleImpl.kt │ │ │ │ ├── ObservePushNotificationsImpl.kt │ │ │ │ ├── ReplaceNotificationViewsImpl.kt │ │ │ │ └── ShowNotificationViewImpl.kt │ │ │ │ └── viewmodel │ │ │ │ └── NotificationPermissionViewModel.kt │ │ └── res │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── config.xml │ │ │ ├── public.xml │ │ │ └── strings.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── notification │ │ └── presentation │ │ ├── NotificationSetupTest.kt │ │ ├── deeplink │ │ └── DeeplinkManagerTest.kt │ │ ├── internal │ │ ├── GetNotificationIdTest.kt │ │ ├── GetNotificationTagTest.kt │ │ └── HasNotificationPermissionTest.kt │ │ ├── usecase │ │ ├── CancelNotificationViewImplTest.kt │ │ ├── ConfigureNotificationChannelImplTest.kt │ │ ├── GetNotificationChannelIdImplTest.kt │ │ ├── IsNotificationEnabledImplTest.kt │ │ ├── IsNotificationsPermissionRequestEnabledTest.kt │ │ ├── IsNotificationsPermissionShowRationaleTest.kt │ │ ├── ObservePushNotificationsImplTest.kt │ │ ├── ReplaceNotificationViewsImplTest.kt │ │ ├── ShowNotificationViewImplKtTest.kt │ │ └── ShowNotificationViewImplTest.kt │ │ └── viewmodel │ │ └── NotificationPermissionViewModelTest.kt └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── notification │ └── test │ ├── deeplink │ └── TestDeeplinkIntentProvider.kt │ └── fake │ └── FakeIsNotificationsEnabled.kt ├── observability ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── observability │ │ └── dagger │ │ └── CoreObservabilityModule.kt ├── dashboard │ ├── android-checkout.json │ ├── android-hv.json │ ├── android-recovery.json │ ├── android-sign-in.json │ ├── android-sign-up.json │ ├── android-sli.json │ └── android-vpn.json ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── observability │ │ │ │ └── data │ │ │ │ ├── IsObservabilityEnabledImpl.kt │ │ │ │ ├── ObservabilityRepositoryImpl.kt │ │ │ │ ├── api │ │ │ │ ├── ObservabilityApi.kt │ │ │ │ └── request │ │ │ │ │ └── DataMetricsRequest.kt │ │ │ │ ├── db │ │ │ │ ├── ObservabilityDao.kt │ │ │ │ └── ObservabilityDatabase.kt │ │ │ │ ├── entity │ │ │ │ ├── Mapper.kt │ │ │ │ └── ObservabilityEventEntity.kt │ │ │ │ ├── usecase │ │ │ │ └── SendObservabilityEventsImpl.kt │ │ │ │ └── worker │ │ │ │ ├── ObservabilityWorker.kt │ │ │ │ └── ObservabilityWorkerManagerImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── observability │ │ └── data │ │ ├── IsObservabilityEnabledImplTest.kt │ │ ├── ObservabilityDataSerializationTest.kt │ │ ├── ObservabilityRepositoryImplTest.kt │ │ ├── testing │ │ └── test_entities.kt │ │ ├── usecase │ │ └── SendObservabilityEventsTest.kt │ │ └── worker │ │ ├── ObservabilityWorkerManagerImplTest.kt │ │ └── ObservabilityWorkerTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── observability │ │ │ │ └── domain │ │ │ │ ├── LogTag.kt │ │ │ │ ├── ObservabilityContext.kt │ │ │ │ ├── ObservabilityManager.kt │ │ │ │ ├── ObservabilityRepository.kt │ │ │ │ ├── ObservabilityWorkerManager.kt │ │ │ │ ├── entity │ │ │ │ ├── ObservabilityEvent.kt │ │ │ │ └── SchemaId.kt │ │ │ │ ├── metrics │ │ │ │ ├── AccountRecoveryCancellationTotal.kt │ │ │ │ ├── AccountRecoveryResetTotal.kt │ │ │ │ ├── AccountRecoveryScreenViewTotal.kt │ │ │ │ ├── AccountRecoveryStartTotal.kt │ │ │ │ ├── CheckoutBillingSubscribeTotal.kt │ │ │ │ ├── CheckoutCardBillingCreatePaymentTokenTotal.kt │ │ │ │ ├── CheckoutCardBillingValidatePlanTotal.kt │ │ │ │ ├── CheckoutGetDynamicPlansTotal.kt │ │ │ │ ├── CheckoutGetDynamicSubscriptionTotal.kt │ │ │ │ ├── CheckoutGetSubscriptionTotal.kt │ │ │ │ ├── CheckoutGiapBillingAcknowledgeTotal.kt │ │ │ │ ├── CheckoutGiapBillingCreatePaymentTokenTotal.kt │ │ │ │ ├── CheckoutGiapBillingLaunchBillingTotal.kt │ │ │ │ ├── CheckoutGiapBillingProductQueryTotal.kt │ │ │ │ ├── CheckoutGiapBillingPurchaseTotal.kt │ │ │ │ ├── CheckoutGiapBillingQuerySubscriptionsTotal.kt │ │ │ │ ├── CheckoutGiapBillingUnredeemedTotalV1.kt │ │ │ │ ├── CheckoutGiapBillingValidatePlanTotal.kt │ │ │ │ ├── CheckoutPaymentMethodsCreatePaymentTokenTotal.kt │ │ │ │ ├── CheckoutPaymentMethodsGetPaymentMethodsTotal.kt │ │ │ │ ├── CheckoutPaymentMethodsSubscribeTotal.kt │ │ │ │ ├── CheckoutPaymentMethodsValidatePlanTotal.kt │ │ │ │ ├── CheckoutScreenViewTotal.kt │ │ │ │ ├── ConfirmPasswordFidoLaunchResultTotal.kt │ │ │ │ ├── ConfirmPasswordFidoSignResultTotal.kt │ │ │ │ ├── ConfirmPasswordSubmissionTotal.kt │ │ │ │ ├── CoreObservabilityData.kt │ │ │ │ ├── EdmDecodeQrCodeTotal.kt │ │ │ │ ├── EdmForkGetTotal.kt │ │ │ │ ├── EdmForkPullTotal.kt │ │ │ │ ├── EdmForkPushTotal.kt │ │ │ │ ├── EdmPostLoginTotal.kt │ │ │ │ ├── EdmScreenViewTotal.kt │ │ │ │ ├── FeatureFlagAwaitTotal.kt │ │ │ │ ├── FeatureFlagGetAllTotal.kt │ │ │ │ ├── FeatureFlagGetValueTotal.kt │ │ │ │ ├── FeatureFlagRefreshRequestTotal.kt │ │ │ │ ├── HvPageLoadTotal.kt │ │ │ │ ├── HvResultTotal.kt │ │ │ │ ├── HvScreenViewTotal.kt │ │ │ │ ├── LoginAuthWithSsoTotal.kt │ │ │ │ ├── LoginEaToIaFetchDomainsTotal.kt │ │ │ │ ├── LoginEaToIaUnlockUserTotalV1.kt │ │ │ │ ├── LoginEaToIaUserCheckTotalV1.kt │ │ │ │ ├── LoginEaToIaUsernameAvailabilityTotal.kt │ │ │ │ ├── LoginObtainSsoChallengeTokenTotal.kt │ │ │ │ ├── LoginScreenViewTotal.kt │ │ │ │ ├── LoginSecondFactorFidoLaunchResultTotal.kt │ │ │ │ ├── LoginSecondFactorFidoSignResultTotal.kt │ │ │ │ ├── LoginSecondFactorSubmissionTotal.kt │ │ │ │ ├── LoginSsoActivateDeviceTotal.kt │ │ │ │ ├── LoginSsoAssociateDeviceTotal.kt │ │ │ │ ├── LoginSsoChangePasswordTotal.kt │ │ │ │ ├── LoginSsoCreateDeviceTotal.kt │ │ │ │ ├── LoginSsoDeviceSecretScreenStateTotal.kt │ │ │ │ ├── LoginSsoGetUnprivatizationTotal.kt │ │ │ │ ├── LoginSsoIdentityProviderPageLoadTotal.kt │ │ │ │ ├── LoginSsoIdentityProviderResultTotal.kt │ │ │ │ ├── LoginSsoInputPasswordTotal.kt │ │ │ │ ├── LoginSsoLoadOrganizationTotal.kt │ │ │ │ ├── LoginSsoMemberApprovalScreenStateTotal.kt │ │ │ │ ├── LoginSsoRejectDeviceTotal.kt │ │ │ │ ├── LoginSsoRequestAdminHelpTotal.kt │ │ │ │ ├── LoginSsoSetupPrimaryKeysTotal.kt │ │ │ │ ├── LoginSsoVerifyUnprivatizationTotal.kt │ │ │ │ ├── ObservabilityData.kt │ │ │ │ ├── SessionForcedLogoutTotalV1.kt │ │ │ │ ├── SessionGetUnAuthTokenOpportunisticTotalV1.kt │ │ │ │ ├── SessionGetUnAuthTokenTotal.kt │ │ │ │ ├── SessionRefreshTokenTotal.kt │ │ │ │ ├── SignupAccountCreationTotal.kt │ │ │ │ ├── SignupEmailAvailabilityTotal.kt │ │ │ │ ├── SignupFetchDomainsTotal.kt │ │ │ │ ├── SignupLoginTotal.kt │ │ │ │ ├── SignupScreenViewTotalV1.kt │ │ │ │ ├── SignupUnlockUserTotalV1.kt │ │ │ │ ├── SignupUserCheckTotalV1.kt │ │ │ │ ├── SignupUsernameAvailabilityTotal.kt │ │ │ │ ├── TwoFaDialogFidoLaunchResultTotal.kt │ │ │ │ ├── TwoFaDialogFidoSignResultTotal.kt │ │ │ │ └── common │ │ │ │ │ ├── AccountTypeLabels.kt │ │ │ │ │ ├── CreatePaymentToken.kt │ │ │ │ │ ├── EmptyStatusLabels.kt │ │ │ │ │ ├── FidoLaunchLabels.kt │ │ │ │ │ ├── FidoLaunchStatus.kt │ │ │ │ │ ├── FidoSignLabels.kt │ │ │ │ │ ├── FidoSignStatus.kt │ │ │ │ │ ├── GiapLabels.kt │ │ │ │ │ ├── GiapStatus.kt │ │ │ │ │ ├── HttpApiStatus.kt │ │ │ │ │ ├── HttpStatusLabels.kt │ │ │ │ │ ├── ResultExt.kt │ │ │ │ │ ├── TwoFaDialogScreenId.kt │ │ │ │ │ ├── UnlockUserLabels.kt │ │ │ │ │ ├── UnlockUserStatus.kt │ │ │ │ │ ├── UserCheckLabels.kt │ │ │ │ │ ├── UserCheckStatus.kt │ │ │ │ │ └── UsernameAvailability.kt │ │ │ │ └── usecase │ │ │ │ ├── IsObservabilityEnabled.kt │ │ │ │ ├── ProcessObservabilityEvents.kt │ │ │ │ └── SendObservabilityEvents.kt │ │ └── resources │ │ │ └── META-INF │ │ │ └── proguard │ │ │ └── core-observability.pro │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── observability │ │ └── domain │ │ ├── ObservabilityContextTest.kt │ │ ├── ObservabilityManagerTest.kt │ │ ├── ObservabilityMetricsTest.kt │ │ ├── metrics │ │ ├── CheckoutGetDynamicPlansTotalTest.kt │ │ ├── CheckoutGetDynamicSubscriptionTotalTest.kt │ │ ├── ConfirmPasswordSubmissionTotalTest.kt │ │ ├── LoginSecondFactorSubmissionTotalTest.kt │ │ ├── SignupAccountCreationTotalKtTest.kt │ │ ├── SignupLoginTotalTest.kt │ │ └── common │ │ │ ├── CreatePaymentTokenKtTest.kt │ │ │ ├── HttpApiStatusKtTest.kt │ │ │ └── UsernameAvailabilityKtTest.kt │ │ └── usecase │ │ └── ProcessObservabilityEventsTest.kt └── tools │ ├── build.gradle.kts │ └── src │ └── main │ └── java │ └── me │ └── proton │ └── core │ └── observability │ └── tools │ └── ObservabilityTools.kt ├── pass-validator ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── passvalidator │ │ └── dagger │ │ └── CorePasswordValidatorModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── passvalidator │ │ │ │ └── data │ │ │ │ ├── LogTag.kt │ │ │ │ ├── api │ │ │ │ ├── PasswordPolicyApi.kt │ │ │ │ └── response │ │ │ │ │ └── PasswordPoliciesResponse.kt │ │ │ │ ├── entity │ │ │ │ ├── PasswordPolicy.kt │ │ │ │ └── PasswordValidatorTokenImpl.kt │ │ │ │ ├── feature │ │ │ │ └── IsPasswordPolicyEnabled.kt │ │ │ │ ├── repository │ │ │ │ └── PasswordPolicyRepository.kt │ │ │ │ ├── usecase │ │ │ │ ├── ObservePasswordPolicyValidators.kt │ │ │ │ └── ValidatePasswordImpl.kt │ │ │ │ └── validator │ │ │ │ ├── CommonPasswordValidator.kt │ │ │ │ ├── MinLengthPasswordValidator.kt │ │ │ │ ├── PasswordPolicyValidator.kt │ │ │ │ └── PasswordValidator.kt │ │ └── res │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── config.xml │ │ │ ├── public.xml │ │ │ └── strings.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── passvalidator │ │ └── data │ │ ├── api │ │ └── response │ │ │ └── PasswordPolicyResourceMappingTest.kt │ │ ├── feature │ │ └── IsPasswordPolicyEnabledTest.kt │ │ ├── repository │ │ └── PasswordPolicyRepositoryTest.kt │ │ ├── usecase │ │ ├── ObservePasswordPolicyValidatorsTest.kt │ │ └── ValidatePasswordImplTest.kt │ │ ├── util │ │ └── FakeData.kt │ │ └── validator │ │ ├── CommonPasswordValidatorTest.kt │ │ ├── MinLengthPasswordValidatorTest.kt │ │ └── PasswordPolicyValidatorTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── passvalidator │ │ └── domain │ │ ├── entity │ │ ├── PasswordValidationType.kt │ │ ├── PasswordValidatorResult.kt │ │ └── PasswordValidatorToken.kt │ │ └── usecase │ │ └── ValidatePassword.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── passvalidator │ │ │ └── presentation │ │ │ └── report │ │ │ ├── PasswordPolicyReport.kt │ │ │ ├── PasswordPolicyReportOperation.kt │ │ │ ├── PasswordPolicyReportState.kt │ │ │ └── PasswordPolicyReportViewModel.kt │ └── res │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ └── strings.xml │ └── test │ ├── kotlin │ └── me │ │ └── proton │ │ └── core │ │ └── passvalidator │ │ └── presentation │ │ └── report │ │ ├── PasswordPolicyReportTest.kt │ │ └── PasswordPolicyReportViewModelTest.kt │ └── snapshots │ └── images │ ├── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_hidden state[0].png │ ├── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_hidden state[1].png │ ├── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_idle state[0].png │ ├── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_idle state[1].png │ ├── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_loading state[0].png │ └── me.proton.core.passvalidator.presentation.report_PasswordPolicyReportTest_loading state[1].png ├── payment-iap ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── paymentiap │ │ └── dagger │ │ └── CorePaymentIapModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── paymentiap │ │ │ └── data │ │ │ ├── BillingClientFactoryImpl.kt │ │ │ ├── GooglePurchaseStateHandler.kt │ │ │ ├── GoogleServicesUtilsImpl.kt │ │ │ ├── repository │ │ │ └── GoogleBillingRepositoryImpl.kt │ │ │ ├── usecase │ │ │ ├── AcknowledgeGooglePlayPurchaseImpl.kt │ │ │ ├── FindGooglePurchaseForPaymentOrderIdImpl.kt │ │ │ ├── FindUnacknowledgedGooglePurchaseImpl.kt │ │ │ ├── GetStorePriceImpl.kt │ │ │ └── PrepareGiapPurchaseImpl.kt │ │ │ └── worker │ │ │ ├── AcknowledgePurchaseWorker.kt │ │ │ └── DeletePurchaseWorker.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── paymentiap │ │ └── data │ │ ├── BillingClientFactoryImplTest.kt │ │ ├── repository │ │ ├── ConnectedBillingClientTest.kt │ │ └── GoogleBillingRepositoryImplTest.kt │ │ └── usecase │ │ ├── AcknowledgeGooglePlayPurchaseImplTest.kt │ │ ├── FindUnacknowledgedGooglePurchaseImplTest.kt │ │ ├── GetStorePriceImplTest.kt │ │ └── PrepareGiapPurchaseImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── paymentiap │ │ └── domain │ │ ├── BillingClientFactory.kt │ │ ├── GoogleBillingExtensions.kt │ │ ├── LogTag.kt │ │ ├── ObservabilityExt.kt │ │ ├── entity │ │ ├── GoogleBillingFlowParamsWrapper.kt │ │ ├── GoogleBillingResultWrapper.kt │ │ ├── GoogleProductDetailsWrapper.kt │ │ ├── GoogleProductPrice.kt │ │ └── GooglePurchaseWrapper.kt │ │ └── usecase │ │ └── ConvertToObservabilityGiapStatusImpl.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── paymentiap │ │ │ │ └── presentation │ │ │ │ ├── GooglePurchaseHandlerInitializer.kt │ │ │ │ ├── LogTag.kt │ │ │ │ ├── entity │ │ │ │ └── GooglePlanShortDetails.kt │ │ │ │ ├── ui │ │ │ │ ├── BaseBillingIAPFragment.kt │ │ │ │ └── BillingIAPFragment.kt │ │ │ │ ├── usecase │ │ │ │ ├── LaunchGiapBillingFlowImpl.kt │ │ │ │ └── PerformGiapPurchaseImpl.kt │ │ │ │ ├── view │ │ │ │ └── PlanShortDetailsView.kt │ │ │ │ └── viewmodel │ │ │ │ └── BillingIAPViewModel.kt │ │ └── res │ │ │ ├── layout │ │ │ ├── fragment_billing_iap.xml │ │ │ └── plan_short_details.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── paymentiap │ │ └── presentation │ │ ├── entity │ │ └── MockPurchase.kt │ │ ├── usecase │ │ ├── CreatePaymentTokenForGooglePurchaseImplTest.kt │ │ ├── LaunchGiapBillingFlowImplTest.kt │ │ └── PerformGiapPurchaseImplTest.kt │ │ └── viewmodel │ │ └── BillingIAPViewModelTest.kt └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── paymentiap │ └── test │ └── robot │ ├── GPBottomSheetPaymentMethodsRobot.kt │ ├── GPBottomSheetSubscribeErrorRobot.kt │ ├── GPBottomSheetSubscribeRobot.kt │ ├── GoogleIAPRobot.kt │ ├── PlayStoreAccountViewRobot.kt │ ├── PlayStoreCancelSubscriptionBottomSheetRobot.kt │ ├── PlayStoreHomeRobot.kt │ ├── PlayStoreManageSubscriptionRobot.kt │ ├── PlayStorePauseSubscriptionBottomSheetRobot.kt │ ├── PlayStorePaymentsAndSubscriptionsRobot.kt │ ├── PlayStoreSubscriptionsRobot.kt │ ├── PlayStoreWhatsMakingYouCancelRobot.kt │ └── SharedRobotResources.kt ├── payment ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── payment │ │ └── dagger │ │ └── CorePaymentModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── payment │ │ │ └── data │ │ │ └── ProtonIAPBillingLibraryImplTest.kt │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── payment │ │ │ │ └── data │ │ │ │ ├── IsMobileUpgradesEnabledImpl.kt │ │ │ │ ├── IsOmnichannelEnabledImpl.kt │ │ │ │ ├── IsPaymentsV5EnabledImpl.kt │ │ │ │ ├── PaymentManagerImpl.kt │ │ │ │ ├── ProtonIAPBillingLibraryImpl.kt │ │ │ │ ├── PurchaseManagerImpl.kt │ │ │ │ ├── api │ │ │ │ ├── PaymentsApi.kt │ │ │ │ ├── request │ │ │ │ │ ├── CardDetailsBody.kt │ │ │ │ │ ├── CreateOmnichannelPaymentToken.kt │ │ │ │ │ ├── CreatePaymentToken.kt │ │ │ │ │ ├── IAPDetailsBody.kt │ │ │ │ │ ├── OmnichannelPayment.kt │ │ │ │ │ ├── OmnichannelPaymentDetails.kt │ │ │ │ │ └── PaymentTypeEntity.kt │ │ │ │ └── response │ │ │ │ │ ├── CreatePaymentTokenResponse.kt │ │ │ │ │ ├── PaymentMethod.kt │ │ │ │ │ ├── PaymentMethodDetails.kt │ │ │ │ │ ├── PaymentMethodResponse.kt │ │ │ │ │ ├── PaymentMethodsResponse.kt │ │ │ │ │ ├── PaymentStatusResponse.kt │ │ │ │ │ ├── PaymentStatusV5Response.kt │ │ │ │ │ ├── PaymentToken.kt │ │ │ │ │ ├── PaymentTokenStatusResponse.kt │ │ │ │ │ └── PlanResponse.kt │ │ │ │ ├── local │ │ │ │ ├── db │ │ │ │ │ ├── PaymentDatabase.kt │ │ │ │ │ └── dao │ │ │ │ │ │ ├── GooglePurchaseDao.kt │ │ │ │ │ │ └── PurchaseDao.kt │ │ │ │ └── entity │ │ │ │ │ ├── GooglePurchaseEntity.kt │ │ │ │ │ └── PurchaseEntity.kt │ │ │ │ └── repository │ │ │ │ ├── GooglePurchaseRepositoryImpl.kt │ │ │ │ ├── PaymentsRepositoryImpl.kt │ │ │ │ └── PurchaseRepositoryImpl.kt │ │ └── res │ │ │ └── values │ │ │ └── config.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── payment │ │ │ └── data │ │ │ ├── PaymentManagerImplTest.kt │ │ │ ├── api │ │ │ └── PaymentsApiTest.kt │ │ │ └── repository │ │ │ ├── GooglePurchaseRepositoryImplTest.kt │ │ │ └── PaymentsRepositoryImplTest.kt │ │ └── resources │ │ └── GET │ │ └── payments │ │ └── v4 │ │ └── tokens.json ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── payment │ │ │ └── domain │ │ │ ├── Const.kt │ │ │ ├── LogTag.kt │ │ │ ├── PaymentManager.kt │ │ │ ├── PurchaseManager.kt │ │ │ ├── PurchaseManagerExtensions.kt │ │ │ ├── ThrowableExtensions.kt │ │ │ ├── entity │ │ │ ├── Card.kt │ │ │ ├── Coupon.kt │ │ │ ├── Currency.kt │ │ │ ├── GoogleBillingFlowParams.kt │ │ │ ├── GoogleBillingResponseCode.kt │ │ │ ├── GoogleBillingResult.kt │ │ │ ├── GoogleProductDetails.kt │ │ │ ├── GooglePurchase.kt │ │ │ ├── PaymentMethod.kt │ │ │ ├── PaymentStatus.kt │ │ │ ├── PaymentTokenEntity.kt │ │ │ ├── PaymentTokenResult.kt │ │ │ ├── PaymentTokens.kt │ │ │ ├── PaymentType.kt │ │ │ ├── ProductId.kt │ │ │ ├── ProductPrice.kt │ │ │ ├── Purchase.kt │ │ │ ├── SubscriptionCycle.kt │ │ │ └── SubscriptionStatus.kt │ │ │ ├── extension │ │ │ ├── GoogleBillingRepository.kt │ │ │ ├── ObservabilityPaymentType.kt │ │ │ └── PurchaseRepository.kt │ │ │ ├── features │ │ │ ├── IsMobileUpgradesEnabled.kt │ │ │ ├── IsOmnichannelEnabled.kt │ │ │ └── IsPaymentsV5Enabled.kt │ │ │ ├── repository │ │ │ ├── GoogleBillingRepository.kt │ │ │ ├── GooglePurchaseRepository.kt │ │ │ ├── PaymentsRepository.kt │ │ │ └── PurchaseRepository.kt │ │ │ └── usecase │ │ │ ├── AcknowledgeGooglePlayPurchase.kt │ │ │ ├── ConvertToObservabilityGiapStatus.kt │ │ │ ├── CreateOmnichannelPaymentToken.kt │ │ │ ├── CreatePaymentToken.kt │ │ │ ├── CreatePaymentTokenForGooglePurchase.kt │ │ │ ├── CreatePaymentTokenForGooglePurchaseImpl.kt │ │ │ ├── FindGooglePurchaseForPaymentOrderId.kt │ │ │ ├── FindUnacknowledgedGooglePurchase.kt │ │ │ ├── GetAvailablePaymentMethods.kt │ │ │ ├── GetAvailablePaymentProviders.kt │ │ │ ├── GetPaymentStatus.kt │ │ │ ├── GetPaymentTokenStatus.kt │ │ │ ├── GetPreferredPaymentProvider.kt │ │ │ ├── GetStorePrice.kt │ │ │ ├── GoogleServicesUtils.kt │ │ │ ├── LaunchGiapBillingFlow.kt │ │ │ ├── PollPaymentTokenStatus.kt │ │ │ ├── PrepareGiapPurchase.kt │ │ │ └── ProtonIAPBillingLibrary.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── payment │ │ └── domain │ │ ├── FakeIsMobileUpgradesEnabled.kt │ │ └── usecase │ │ ├── CreatePaymentTokenTest.kt │ │ ├── CreatePaymentTokenWithExistingPaymentMethodTestWithNewCreditCard.kt │ │ ├── CreatePaymentTokenWithNewCreditCardTest.kt │ │ ├── GetAvailablePaymentMethodsTest.kt │ │ ├── GetAvailablePaymentProvidersTest.kt │ │ ├── GetPaymentStatusTest.kt │ │ ├── GetPaymentTokenStatusTest.kt │ │ └── GetPreferredPaymentProviderTest.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── payment │ │ │ │ └── presentation │ │ │ │ ├── ActivePaymentProvider.kt │ │ │ │ ├── LogTag.kt │ │ │ │ ├── PaymentsOrchestrator.kt │ │ │ │ ├── Utils.kt │ │ │ │ ├── entity │ │ │ │ ├── BillingInput.kt │ │ │ │ ├── BillingResult.kt │ │ │ │ ├── CurrentSubscribedPlanDetails.kt │ │ │ │ ├── PaymentOptionUIModel.kt │ │ │ │ ├── PaymentOptionsInput.kt │ │ │ │ ├── PaymentOptionsResult.kt │ │ │ │ ├── PaymentTokenApprovalInput.kt │ │ │ │ ├── PaymentTokenApprovalResult.kt │ │ │ │ ├── PlanShortDetails.kt │ │ │ │ └── SecureEndpoint.kt │ │ │ │ ├── ui │ │ │ │ ├── ActivityResultContracts.kt │ │ │ │ ├── BillingActivity.kt │ │ │ │ ├── BillingFragment.kt │ │ │ │ ├── PaymentOptionsActivity.kt │ │ │ │ ├── PaymentTokenApprovalActivity.kt │ │ │ │ ├── PaymentsActivity.kt │ │ │ │ └── Utils.kt │ │ │ │ ├── view │ │ │ │ ├── PlanShortDetailsView.kt │ │ │ │ └── ProtonPaymentButton.kt │ │ │ │ └── viewmodel │ │ │ │ ├── BillingCommonViewModel.kt │ │ │ │ ├── BillingViewModel.kt │ │ │ │ ├── PaymentOptionsViewModel.kt │ │ │ │ ├── PaymentTokenApprovalViewModel.kt │ │ │ │ └── ProtonPaymentButtonViewModel.kt │ │ └── res │ │ │ ├── color │ │ │ ├── btn_gpay_background_selector.xml │ │ │ └── btn_gpay_text_selector.xml │ │ │ ├── drawable │ │ │ ├── ic_card_amex.xml │ │ │ ├── ic_card_discover.xml │ │ │ ├── ic_card_master.xml │ │ │ ├── ic_card_visa.xml │ │ │ ├── ic_gpay.xml │ │ │ ├── ic_gpay_logo.xml │ │ │ └── ic_paypal.xml │ │ │ ├── layout │ │ │ ├── activity_billing.xml │ │ │ ├── activity_payment_options.xml │ │ │ ├── activity_payment_token_approval.xml │ │ │ ├── fragment_billing.xml │ │ │ ├── item_payment_method.xml │ │ │ └── plan_short_details.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── sizes.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── payment │ │ │ └── presentation │ │ │ ├── PaymentsOrchestratorKtTest.kt │ │ │ ├── PaymentsOrchestratorTest.kt │ │ │ ├── ui │ │ │ └── ResultContractsTest.kt │ │ │ ├── view │ │ │ ├── PlanShortDetailsViewTest.kt │ │ │ └── ProtonPaymentButtonTest.kt │ │ │ └── viewmodel │ │ │ ├── BillingViewModelTest.kt │ │ │ ├── ObservabilityPaymentTypeKtTest.kt │ │ │ ├── PaymentOptionsViewModelTest.kt │ │ │ ├── PaymentTokenApprovalViewModelTest.kt │ │ │ └── ProtonPaymentButtonViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_initial empty state.png │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_set monthly plan.png │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_set other plan.png │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_set plan.png │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_set two years plan.png │ │ ├── me.proton.core.payment.presentation.view_PlanShortDetailsViewTest_set yearly plan.png │ │ ├── me.proton.core.payment.presentation.view_ProtonPaymentButtonTest_disabled state.png │ │ ├── me.proton.core.payment.presentation.view_ProtonPaymentButtonTest_initial empty state.png │ │ ├── me.proton.core.payment.presentation.view_ProtonPaymentButtonTest_loading state.png │ │ └── me.proton.core.payment.presentation.view_ProtonPaymentButtonTest_mail plus plan with giap provider.png └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── payment │ └── test │ └── FakeIsPaymentsV5Enabled.kt ├── plan ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── plan │ │ └── dagger │ │ └── CorePlanModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── plan │ │ │ │ └── data │ │ │ │ ├── IsSplitStorageEnabledImpl.kt │ │ │ │ ├── PlanIconsEndpointProviderImpl.kt │ │ │ │ ├── PurchaseStateHandler.kt │ │ │ │ ├── api │ │ │ │ ├── PlansApi.kt │ │ │ │ ├── request │ │ │ │ │ ├── CheckSubscription.kt │ │ │ │ │ └── CreateSubscription.kt │ │ │ │ └── response │ │ │ │ │ ├── CheckSubscriptionResponse.kt │ │ │ │ │ ├── CouponEntity.kt │ │ │ │ │ ├── DefaultPlanResponse.kt │ │ │ │ │ ├── DynamicDecorationResource.kt │ │ │ │ │ ├── DynamicEntitlementResource.kt │ │ │ │ │ ├── DynamicOfferResource.kt │ │ │ │ │ ├── DynamicPlanInstanceResource.kt │ │ │ │ │ ├── DynamicPlanResource.kt │ │ │ │ │ ├── DynamicPlansResponse.kt │ │ │ │ │ ├── DynamicPriceResource.kt │ │ │ │ │ ├── DynamicSubscriptionResponse.kt │ │ │ │ │ ├── DynamicSubscriptionsResponse.kt │ │ │ │ │ ├── PlanResponse.kt │ │ │ │ │ ├── PlansResponse.kt │ │ │ │ │ ├── SubscriptionItemResponse.kt │ │ │ │ │ └── SubscriptionResponse.kt │ │ │ │ ├── repository │ │ │ │ └── PlansRepositoryImpl.kt │ │ │ │ ├── usecase │ │ │ │ ├── GetSessionUserIdForPaymentApi.kt │ │ │ │ ├── ObserveUserCurrencyImpl.kt │ │ │ │ └── PerformSubscribeImpl.kt │ │ │ │ └── worker │ │ │ │ ├── CheckProtonTokenApprovalWorker.kt │ │ │ │ ├── CreateProtonTokenWorker.kt │ │ │ │ └── SubscribePurchaseWorker.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── plan │ │ │ └── data │ │ │ ├── PlanIconsEndpointProviderImplTest.kt │ │ │ ├── api │ │ │ ├── PlansApiTest.kt │ │ │ └── response │ │ │ │ ├── DynamicDecorationResourceTest.kt │ │ │ │ ├── DynamicEntitlementResourceTest.kt │ │ │ │ ├── DynamicOfferResourceTest.kt │ │ │ │ ├── DynamicPlanInstanceResourceTest.kt │ │ │ │ ├── DynamicPlanResourceTest.kt │ │ │ │ ├── DynamicPlansResponseTest.kt │ │ │ │ └── DynamicPriceResourceTest.kt │ │ │ ├── entity │ │ │ └── sample_data.kt │ │ │ ├── repository │ │ │ └── PlansRepositoryImplTest.kt │ │ │ └── usecase │ │ │ ├── GetSessionUserIdForPaymentApiTest.kt │ │ │ ├── ObserveUserCurrencyTest.kt │ │ │ └── PerformSubscribeTest.kt │ │ └── resources │ │ ├── GET │ │ └── payments │ │ │ └── v4 │ │ │ ├── dynamic-subscription.json │ │ │ └── subscription.json │ │ └── POST │ │ └── payments │ │ └── v4 │ │ └── subscription.json ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── plan │ │ │ └── domain │ │ │ ├── ClientPlanFilter.kt │ │ │ ├── IsSplitStorageEnabled.kt │ │ │ ├── LogTag.kt │ │ │ ├── PlanIconsEndpointProvider.kt │ │ │ ├── Qualifiers.kt │ │ │ ├── entity │ │ │ ├── DynamicDecoration.kt │ │ │ ├── DynamicEntitlement.kt │ │ │ ├── DynamicPlan.kt │ │ │ ├── DynamicPlanInstance.kt │ │ │ ├── DynamicPlanOffer.kt │ │ │ ├── DynamicPlanPrice.kt │ │ │ ├── DynamicPlanVendor.kt │ │ │ ├── DynamicPlans.kt │ │ │ ├── DynamicSubscription.kt │ │ │ ├── Plan.kt │ │ │ ├── PlanDuration.kt │ │ │ ├── PlanVendorData.kt │ │ │ ├── Subscription.kt │ │ │ └── SubscriptionManagement.kt │ │ │ ├── repository │ │ │ └── PlansRepository.kt │ │ │ └── usecase │ │ │ ├── CanUpgrade.kt │ │ │ ├── CanUpgradeFromMobile.kt │ │ │ ├── GetCurrentSubscription.kt │ │ │ ├── GetDynamicPlans.kt │ │ │ ├── GetDynamicPlansAdjustedPrices.kt │ │ │ ├── GetDynamicSubscription.kt │ │ │ ├── GetDynamicSubscriptionAdjustedPrices.kt │ │ │ ├── GetProductIdForCurrentSubscription.kt │ │ │ ├── HasUserCredits.kt │ │ │ ├── ObserveUserCurrency.kt │ │ │ ├── PerformGiapPurchase.kt │ │ │ ├── PerformSubscribe.kt │ │ │ └── ValidateSubscriptionPlan.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── plan │ │ └── domain │ │ ├── entity │ │ ├── DynamicDecorationEnumMappingTest.kt │ │ ├── DynamicPlanEnumMappingTest.kt │ │ ├── DynamicPlanTest.kt │ │ ├── DynamicPlanTypeTest.kt │ │ └── sample_data.kt │ │ └── usecase │ │ ├── CanUpgradeFromMobileTest.kt │ │ ├── CanUpgradeTest.kt │ │ ├── GetCurrentSubscriptionTest.kt │ │ ├── GetDynamicPlansAdjustedPricesTest.kt │ │ ├── GetDynamicPlansTest.kt │ │ ├── GetDynamicSubscriptionAdjustedPricesTest.kt │ │ ├── GetDynamicSubscriptionTest.kt │ │ └── ValidateSubscriptionPlanTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── plan │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── component │ │ │ └── UpgradeStorageInfo.kt │ │ │ ├── usecase │ │ │ ├── ObserveStorageUsage.kt │ │ │ └── ShouldUpgradeStorage.kt │ │ │ └── viewmodel │ │ │ └── UpgradeStorageInfoViewModel.kt │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── plan │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── component │ │ │ └── UpgradeStorageInfoTest.kt │ │ │ ├── usecase │ │ │ ├── ObserveStorageUsageTest.kt │ │ │ └── ShouldUpgradeStorageTest.kt │ │ │ └── viewmodel │ │ │ └── UpgradeStorageInfoViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_driveStorageUsageIsHigh.png │ │ ├── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_driveStorageUsageIsHighDarkTheme.png │ │ ├── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_mailStorageUsageIsHigh.png │ │ ├── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_mailStorageUsageIsHighDarkTheme.png │ │ ├── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_mailStorageUsageIsHighWithDividers.png │ │ └── me.proton.core.plan.presentation.compose.component_UpgradeStorageInfoTest_viewIsHidden.png ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── plan │ │ │ │ └── presentation │ │ │ │ ├── LogTag.kt │ │ │ │ ├── PlansOrchestrator.kt │ │ │ │ ├── PurchaseHandlerInitializer.kt │ │ │ │ ├── UnredeemedPurchaseInitializer.kt │ │ │ │ ├── entity │ │ │ │ ├── DynamicPlanFilter.kt │ │ │ │ ├── DynamicPlanFilters.kt │ │ │ │ ├── DynamicSelectedPlan.kt │ │ │ │ ├── DynamicUser.kt │ │ │ │ ├── PlanCurrency.kt │ │ │ │ ├── PlanCycle.kt │ │ │ │ ├── PlanDetailsItem.kt │ │ │ │ ├── PlanInput.kt │ │ │ │ ├── PlanSubscription.kt │ │ │ │ ├── PlanType.kt │ │ │ │ ├── SelectedPlan.kt │ │ │ │ ├── SubscribedPlan.kt │ │ │ │ ├── SubscriptionManagement.kt │ │ │ │ ├── UnredeemedGooglePurchase.kt │ │ │ │ ├── UnredeemedGooglePurchaseStatus.kt │ │ │ │ ├── UnredeemedPurchaseResult.kt │ │ │ │ └── UpgradeResult.kt │ │ │ │ ├── ui │ │ │ │ ├── ActivityResultContracts.kt │ │ │ │ ├── BasePlansFragment.kt │ │ │ │ ├── CycleAdapter.kt │ │ │ │ ├── DynamicPlanListFragment.kt │ │ │ │ ├── DynamicPlanSelectionFragment.kt │ │ │ │ ├── DynamicSelectPlanActivity.kt │ │ │ │ ├── DynamicSelectPlanFragment.kt │ │ │ │ ├── DynamicSubscriptionFragment.kt │ │ │ │ ├── DynamicUpgradePlanActivity.kt │ │ │ │ ├── DynamicUpgradePlanFragment.kt │ │ │ │ ├── FragmentOrchestrator.kt │ │ │ │ ├── ManageSubscriptionNoAppDialog.kt │ │ │ │ ├── ManageSubscriptionOtherAppDialog.kt │ │ │ │ └── UnredeemedPurchaseActivity.kt │ │ │ │ ├── usecase │ │ │ │ ├── CheckUnredeemedGooglePurchase.kt │ │ │ │ ├── ComposeAutoRenewText.kt │ │ │ │ ├── LoadStorageUsageState.kt │ │ │ │ ├── ObserveUserId.kt │ │ │ │ └── RedeemGooglePurchase.kt │ │ │ │ ├── view │ │ │ │ ├── DynamicEntitlement.kt │ │ │ │ ├── DynamicEntitlementDescriptionView.kt │ │ │ │ ├── DynamicEntitlementProgressView.kt │ │ │ │ ├── DynamicPlanCardView.kt │ │ │ │ ├── DynamicPlanView.kt │ │ │ │ ├── EntitlementImageLoader.kt │ │ │ │ ├── PlanContentItemView.kt │ │ │ │ ├── PlanItemFeatures.kt │ │ │ │ ├── PlanItemView.kt │ │ │ │ ├── PlanViewUtils.kt │ │ │ │ ├── PlansListView.kt │ │ │ │ └── StorageNearlyFullCardView.kt │ │ │ │ └── viewmodel │ │ │ │ ├── DynamicPlanListViewModel.kt │ │ │ │ ├── DynamicPlanSelectionViewModel.kt │ │ │ │ ├── DynamicSelectPlanViewModel.kt │ │ │ │ ├── DynamicSubscriptionViewModel.kt │ │ │ │ ├── DynamicUpgradePlanViewModel.kt │ │ │ │ └── UnredeemedPurchaseViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── background_current_plan.xml │ │ │ ├── background_plan_list_item.xml │ │ │ ├── background_plan_list_item_opened.xml │ │ │ ├── background_plan_promo_offer.xml │ │ │ ├── background_plan_promo_percentage.xml │ │ │ └── divider_horizontal_dynamic_plans.xml │ │ │ ├── layout │ │ │ ├── activity_dynamic_select_plan.xml │ │ │ ├── activity_dynamic_upgrade_plan.xml │ │ │ ├── activity_unredeemed_purchase.xml │ │ │ ├── bottom_sheet_manage_subscription_no_app.xml │ │ │ ├── bottom_sheet_manage_subscription_other_app.xml │ │ │ ├── connectivity_issue_view.xml │ │ │ ├── dynamic_entitlement_description_view.xml │ │ │ ├── dynamic_entitlement_storage_view.xml │ │ │ ├── dynamic_plan_cardview.xml │ │ │ ├── dynamic_plan_view.xml │ │ │ ├── fragment_dynamic_plan_list.xml │ │ │ ├── fragment_dynamic_plan_selection.xml │ │ │ ├── fragment_dynamic_select_plan.xml │ │ │ ├── fragment_dynamic_subscription.xml │ │ │ ├── fragment_dynamic_upgrade_plan.xml │ │ │ ├── plan_content_item.xml │ │ │ ├── plan_item.xml │ │ │ ├── plan_list_view_item.xml │ │ │ ├── plan_spinner_item.xml │ │ │ ├── plans_list_view.xml │ │ │ ├── proton_payment_button.xml │ │ │ └── storage_nearly_full.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── plans_layouts.xml │ │ │ ├── plans_mapping.xml │ │ │ ├── sizes.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── plan │ │ │ └── presentation │ │ │ ├── PlansOrchestratorTest.kt │ │ │ ├── SnapshotDynamicSubscriptionTest.kt │ │ │ ├── entity │ │ │ ├── PlanCycleTest.kt │ │ │ ├── PlanPromotionPercentageTest.kt │ │ │ └── sample_data.kt │ │ │ ├── usecase │ │ │ ├── CheckUnredeemedGooglePurchaseTest.kt │ │ │ ├── LoadStorageUsageStateTest.kt │ │ │ └── ObserveUserIdTest.kt │ │ │ ├── view │ │ │ ├── PlanItemCurrentFeaturesTest.kt │ │ │ ├── PlanItemFeaturesKtTest.kt │ │ │ ├── PlanViewUtilsKtTest.kt │ │ │ └── StorageNearlyFullCardViewTest.kt │ │ │ └── viewmodel │ │ │ ├── DynamicPlanListViewModelTest.kt │ │ │ ├── DynamicPlanSelectionViewModelTest.kt │ │ │ ├── DynamicSelectPlanViewModelTest.kt │ │ │ ├── DynamicSubscriptionViewModelTest.kt │ │ │ ├── DynamicUpgradePlanViewModelTest.kt │ │ │ └── FilterPlansByCycleTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_driveStorageFull.png │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_driveStorageNearlyFull.png │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_initialState.png │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_mailStorageFull.png │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_mailStorageNearlyFull.png │ │ ├── me.proton.core.plan.presentation.view_StorageNearlyFullCardViewTest_storageNearlyFullUpgradeUnavailable.png │ │ ├── me.proton.core.plan.presentation_SnapshotDynamicSubscriptionTest_dynamicPlanEntitlementDescriptionView.png │ │ ├── me.proton.core.plan.presentation_SnapshotDynamicSubscriptionTest_dynamicPlanEntitlementStorageView.png │ │ ├── me.proton.core.plan.presentation_SnapshotDynamicSubscriptionTest_dynamicPlanEntitlementStorageViewError.png │ │ ├── me.proton.core.plan.presentation_SnapshotDynamicSubscriptionTest_dynamicPlanEntitlementStorageViewWarning.png │ │ └── me.proton.core.plan.presentation_SnapshotDynamicSubscriptionTest_dynamicPlanView.png └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── plan │ └── test │ ├── MinimalCustomUpsellSubscriptionTest.kt │ ├── MinimalSubscriptionTests.kt │ ├── MinimalUpgradeFreeUserTest.kt │ ├── MinimalUpgradeTests.kt │ ├── Plans.kt │ ├── PurchaseHelpers.kt │ └── robot │ ├── SubscriptionRobot.kt │ └── UnredeemedPurchaseRobot.kt ├── plugins ├── .gitignore ├── CHANGELOG.md ├── README.md ├── build.gradle.kts ├── core │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── BuildConfigValue.kt │ │ ├── Dependencies.kt │ │ ├── PluginDependenciesSpecExt.kt │ │ ├── me │ │ └── proton │ │ │ └── core │ │ │ └── gradle │ │ │ ├── convention │ │ │ ├── BuildConvention.kt │ │ │ ├── android │ │ │ │ ├── AndroidConvention.kt │ │ │ │ ├── AndroidConventionSettings.kt │ │ │ │ └── ComposeUiConvention.kt │ │ │ ├── dagger │ │ │ │ ├── DaggerConvention.kt │ │ │ │ └── DaggerConventionSettings.kt │ │ │ ├── java │ │ │ │ └── JavaConvention.kt │ │ │ └── kotlin │ │ │ │ ├── KotlinConvention.kt │ │ │ │ └── KotlinConventionSettings.kt │ │ │ ├── defaults.kt │ │ │ └── plugin │ │ │ ├── BuildConventionPlugin.kt │ │ │ ├── PluginIds.kt │ │ │ ├── ProjectExt.kt │ │ │ ├── RootProjectPlugin.kt │ │ │ ├── android │ │ │ ├── AndroidAppPlugin.kt │ │ │ ├── AndroidLibraryPlugin.kt │ │ │ ├── AndroidTestPlugin.kt │ │ │ ├── AndroidUiLibraryPlugin.kt │ │ │ ├── BaseAndroidPlugin.kt │ │ │ └── ComposeUiLibraryPlugin.kt │ │ │ ├── dagger │ │ │ └── DaggerPlugin.kt │ │ │ ├── kotlin │ │ │ └── KotlinLibraryPlugin.kt │ │ │ └── pluginExtensions.kt │ │ ├── modules.kt │ │ ├── repositories.kt │ │ └── versionsConfig.kt ├── coverage │ ├── README.md │ ├── build.gradle.kts │ ├── src │ │ ├── functionalTest │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── gradle │ │ │ │ └── plugins │ │ │ │ └── coverage │ │ │ │ └── ProtonCoveragePluginFunctionalTest.kt │ │ └── main │ │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── gradle │ │ │ └── plugins │ │ │ └── coverage │ │ │ ├── PluginIds.kt │ │ │ ├── ProjectExt.kt │ │ │ ├── ProtonCoverageCommonConfigPlugin.kt │ │ │ ├── ProtonCoverageExtension.kt │ │ │ ├── ProtonCoveragePlugin.kt │ │ │ ├── ProtonGlobalCoveragePlugin.kt │ │ │ └── rules │ │ │ ├── androidRules.kt │ │ │ ├── commonRules.kt │ │ │ ├── daggerRules.kt │ │ │ ├── kotlinParcelizeRules.kt │ │ │ ├── kotlinSerializationRules.kt │ │ │ └── roomDbRules.kt │ └── tech-design.svg ├── detekt │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── ProtonDetektPlugin.kt │ │ └── format │ │ ├── GitlabQualityReport.kt │ │ └── SarifQualityReport.kt ├── environment-configuration │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── configuration │ │ ├── EnvironmentConfig.kt │ │ ├── EnvironmentConfigSettings.kt │ │ ├── ProtonEnvironmentConfigurationPlugin.kt │ │ ├── extensions │ │ ├── ApplicationBuildType.kt │ │ ├── BaseFlavor.kt │ │ ├── EnvironmentConfig.kt │ │ ├── ExtraPropertiesExtension.kt │ │ └── Project.kt │ │ └── util │ │ └── Helpers.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── include-core-build │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── ProtonIncludeCoreBuildExtension.kt │ │ ├── ProtonIncludeCoreBuildPlugin.kt │ │ └── Utils.kt ├── jacoco │ ├── README.md │ ├── build.gradle.kts │ ├── scripts │ │ └── cover2cover.py │ └── src │ │ └── main │ │ └── kotlin │ │ └── jacoco │ │ ├── ProtonJacocoPlugin.kt │ │ └── extensions │ │ ├── ProtonCoverageMultiModuleExtension.kt │ │ └── ProtonCoverageTaskExtension.kt ├── mock-proxy │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── mockproxy │ │ └── MockFilesPullerPlugin.kt ├── publish-core-libraries │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── ParentProjectPublishTools.kt │ │ ├── ProtonPublishLibrariesPlugin.kt │ │ ├── PublishLibraryExtension.kt │ │ └── SubProjectPublishTools.kt ├── publish-core-plugins │ ├── .gitignore │ ├── build.gradle.kts │ ├── gradle.properties │ ├── publish-plugin │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ ├── ProtonPublishPluginsPlugin.kt │ │ │ └── PublishPluginExtension.kt │ └── settings.gradle.kts ├── settings.gradle.kts ├── shared │ └── src │ │ └── main │ │ └── kotlin │ │ ├── CommandResultValueSource.kt │ │ └── Utils.kt └── tests │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ ├── ProtonTestsExtension.kt │ └── ProtonTestsPlugin.kt ├── presentation-compose-tv ├── build.gradle.kts └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── presentation │ └── compose │ └── tv │ └── theme │ └── ProtonThemeTv.kt ├── presentation-compose ├── build.gradle.kts └── src │ ├── androidTest │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── compose │ │ └── ProtonSettingsComposableTest.kt │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── compose │ │ ├── activity │ │ ├── CameraLauncher.kt │ │ ├── DocumentLauncher.kt │ │ ├── FilePickerLauncher.kt │ │ ├── KeepScreenOn.kt │ │ └── RememberLauncher.kt │ │ ├── autofill │ │ └── ModifierAutofill.kt │ │ ├── component │ │ ├── BoxWithNotificationDot.kt │ │ ├── DeferredCircularProgressIndicator.kt │ │ ├── HyperlinkText.kt │ │ ├── ProtonAlertDialog.kt │ │ ├── ProtonBackButton.kt │ │ ├── ProtonBottomNavigation.kt │ │ ├── ProtonButton.kt │ │ ├── ProtonCenteredProgress.kt │ │ ├── ProtonCloseButton.kt │ │ ├── ProtonErrorMessage.kt │ │ ├── ProtonListItem.kt │ │ ├── ProtonListSectionTitle.kt │ │ ├── ProtonModalBottomSheetLayout.kt │ │ ├── ProtonOutlinedTextField.kt │ │ ├── ProtonPasswordOutlinedTextFieldWithError.kt │ │ ├── ProtonSettings.kt │ │ ├── ProtonSidebar.kt │ │ ├── ProtonSidebarLazy.kt │ │ ├── ProtonSnackbar.kt │ │ ├── ProtonTextFieldError.kt │ │ ├── RowWithComposables.kt │ │ ├── VerticalSpacer.kt │ │ ├── appbar │ │ │ └── ProtonTopAppBar.kt │ │ └── bottomsheet │ │ │ ├── BottomSheetContent.kt │ │ │ ├── BottomSheetEntry.kt │ │ │ ├── BottomSheetHeader.kt │ │ │ ├── ModalBottomSheet.kt │ │ │ ├── ModalBottomSheetContentState.kt │ │ │ └── ModalBottomSheetViewState.kt │ │ ├── effect │ │ └── Effect.kt │ │ ├── flow │ │ └── RememberFlow.kt │ │ ├── navigation │ │ └── NavBackStackEntry.kt │ │ ├── theme │ │ ├── Colors.kt │ │ ├── ColorsThemeCompat.kt │ │ ├── Dimension.kt │ │ ├── Shape.kt │ │ ├── Theme.kt │ │ └── Typography.kt │ │ ├── util │ │ ├── ColorUtils.kt │ │ ├── EffectUtils.kt │ │ ├── LaunchOnScreenView.kt │ │ └── StringFormatUtils.kt │ │ └── viewmodel │ │ ├── BaseViewModel.kt │ │ ├── ConstantProperty.kt │ │ └── OptionalViewModel.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── compose │ ├── effect │ └── EffectTest.kt │ └── viewmodel │ └── BaseViewModelTest.kt ├── presentation ├── README.md ├── build.gradle.kts └── src │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ └── ignis_10k.txt │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── presentation │ │ │ ├── LogTag.kt │ │ │ ├── app │ │ │ ├── ActivityProvider.kt │ │ │ ├── AppLifecycleObserver.kt │ │ │ └── AppLifecycleProvider.kt │ │ │ ├── savedstate │ │ │ ├── MutableSharedFlowSavedState.kt │ │ │ └── SavedState.kt │ │ │ ├── ui │ │ │ ├── CustomViewUtils.kt │ │ │ ├── ProtonActivity.kt │ │ │ ├── ProtonDialogFragment.kt │ │ │ ├── ProtonFragment.kt │ │ │ ├── ProtonSecureActivity.kt │ │ │ ├── ProtonSecureFragment.kt │ │ │ ├── ProtonViewBindingActivity.kt │ │ │ ├── adapter │ │ │ │ ├── ClickableAdapter.kt │ │ │ │ ├── FilterableAdapter.kt │ │ │ │ ├── ProtonAdapter.kt │ │ │ │ └── SelectableAdapter.kt │ │ │ ├── alert │ │ │ │ ├── ForceUpdateActivity.kt │ │ │ │ ├── ForceUpdateDialog.kt │ │ │ │ ├── FragmentDialogResultLauncher.kt │ │ │ │ └── ProtonCancellableAlertDialog.kt │ │ │ ├── view │ │ │ │ ├── CompoundButtonPositionHelper.kt │ │ │ │ ├── Loadable.kt │ │ │ │ ├── MultipleClickListener.kt │ │ │ │ ├── MultipleFocusChangeListener.kt │ │ │ │ ├── MultipleMenuItemClickListener.kt │ │ │ │ ├── ProtonAutoCompleteInput.kt │ │ │ │ ├── ProtonButton.kt │ │ │ │ ├── ProtonCheckbox.kt │ │ │ │ ├── ProtonInput.kt │ │ │ │ ├── ProtonMaterialToolbar.kt │ │ │ │ ├── ProtonNavigationButton.kt │ │ │ │ ├── ProtonProgressButton.kt │ │ │ │ ├── ProtonRadioButton.kt │ │ │ │ └── ProtonTextInputEditText.kt │ │ │ └── webview │ │ │ │ └── ProtonWebView.kt │ │ │ ├── utils │ │ │ ├── BackPressedExtensions.kt │ │ │ ├── ComponentExtensions.kt │ │ │ ├── EmptyActivityLifecycleCallbacks.kt │ │ │ ├── ErrorUtils.kt │ │ │ ├── InvalidPasswordProvider.kt │ │ │ ├── LocaleUtils.kt │ │ │ ├── NumberUtils.kt │ │ │ ├── OnBackPressedCallbacks.kt │ │ │ ├── OnUiComponentCreatedListener.kt │ │ │ ├── ScreenContentProtector.kt │ │ │ ├── ScreenViewExtensions.kt │ │ │ ├── Snackbar.kt │ │ │ ├── StringBox.kt │ │ │ ├── ToastUtils.kt │ │ │ ├── UiUtils.kt │ │ │ ├── ValidationUtils.kt │ │ │ ├── ViewBindingUtils.kt │ │ │ └── ViewUtils.kt │ │ │ └── viewmodel │ │ │ ├── ProtonViewModel.kt │ │ │ └── ViewModelResult.kt │ └── res │ │ ├── animator │ │ └── rotation.xml │ │ ├── color │ │ ├── btn_background_checkable_selector.xml │ │ ├── btn_background_selector.xml │ │ ├── btn_secondary_background_selector.xml │ │ ├── btn_stroke_color_selector.xml │ │ ├── btn_stroke_toggle_color_selector.xml │ │ ├── btn_text_outlined_selector.xml │ │ ├── btn_text_selector.xml │ │ ├── cardview_checkable_background_color.xml │ │ ├── cardview_checkable_foreground_color.xml │ │ ├── cardview_checkable_stroke_color.xml │ │ ├── check_box_selector.xml │ │ ├── icon_norm_selector.xml │ │ ├── input_outlined_stroke_color.xml │ │ ├── linear_progress_track_color.xml │ │ ├── radio_button_selector.xml │ │ ├── ripple_norm.xml │ │ ├── ripple_norm_tab.xml │ │ ├── switch_thumb_selector.xml │ │ ├── switch_track_selector.xml │ │ ├── text_norm_selector.xml │ │ ├── text_selectable_selector.xml │ │ └── text_weak_selector.xml │ │ ├── drawable-anydpi-v24 │ │ ├── ic_logo_calendar_no_bg_scaled.xml │ │ ├── ic_logo_drive_no_bg_scaled.xml │ │ ├── ic_logo_mail_no_bg_scaled.xml │ │ ├── ic_logo_pass_no_bg_scaled.xml │ │ └── ic_logo_vpn_no_bg_scaled.xml │ │ ├── drawable-hdpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable-ldpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable-mdpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable-night │ │ └── logo_proton_with_effect.xml │ │ ├── drawable-xhdpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable-xxhdpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable-xxxhdpi │ │ ├── ic_logo_calendar_no_bg_scaled.webp │ │ ├── ic_logo_drive_no_bg_scaled.webp │ │ ├── ic_logo_mail_no_bg_scaled.webp │ │ ├── ic_logo_pass_no_bg_scaled.png │ │ └── ic_logo_vpn_no_bg_scaled.webp │ │ ├── drawable │ │ ├── background_dialog_rounded_corners.xml │ │ ├── background_list_item_rounded_corners.xml │ │ ├── default_edit_text.xml │ │ ├── default_edit_text_active.xml │ │ ├── default_edit_text_disabled.xml │ │ ├── default_edit_text_error.xml │ │ ├── default_search_edit_text.xml │ │ ├── ic_animated_loading.xml │ │ ├── ic_animated_loading_inverted.xml │ │ ├── ic_animated_loading_secondary.xml │ │ ├── ic_arrow_back.xml │ │ ├── ic_arrow_forward.xml │ │ ├── ic_arrow_left.xml │ │ ├── ic_arrow_right.xml │ │ ├── ic_baseline_check.xml │ │ ├── ic_baseline_more_vert.xml │ │ ├── ic_book_contacts.xml │ │ ├── ic_calendar_checkmark.xml │ │ ├── ic_chevron_down_spinner.xml │ │ ├── ic_close.xml │ │ ├── ic_envelope.xml │ │ ├── ic_globe_language.xml │ │ ├── ic_info_circle.xml │ │ ├── ic_label.xml │ │ ├── ic_loading.xml │ │ ├── ic_loading_inverted.xml │ │ ├── ic_loading_secondary.xml │ │ ├── ic_logo_background_shape.xml │ │ ├── ic_logo_background_vector.xml │ │ ├── ic_logo_calendar.xml │ │ ├── ic_logo_calendar_no_bg.xml │ │ ├── ic_logo_drive.xml │ │ ├── ic_logo_drive_no_bg.xml │ │ ├── ic_logo_mail.xml │ │ ├── ic_logo_mail_no_bg.xml │ │ ├── ic_logo_pass_no_bg.xml │ │ ├── ic_logo_proton.xml │ │ ├── ic_logo_vpn.xml │ │ ├── ic_logo_vpn_no_bg.xml │ │ ├── ic_person_add.xml │ │ ├── ic_placeholder_connectivity_issues.xml │ │ ├── ic_proton_alias.xml │ │ ├── ic_proton_archive_box.xml │ │ ├── ic_proton_arrow_down.xml │ │ ├── ic_proton_arrow_down_arrow_up.xml │ │ ├── ic_proton_arrow_down_circle.xml │ │ ├── ic_proton_arrow_down_circle_filled.xml │ │ ├── ic_proton_arrow_down_line.xml │ │ ├── ic_proton_arrow_down_to_square.xml │ │ ├── ic_proton_arrow_in_to_rectangle.xml │ │ ├── ic_proton_arrow_left.xml │ │ ├── ic_proton_arrow_left_and_up.xml │ │ ├── ic_proton_arrow_out_from_rectangle.xml │ │ ├── ic_proton_arrow_out_square.xml │ │ ├── ic_proton_arrow_over_square.xml │ │ ├── ic_proton_arrow_right.xml │ │ ├── ic_proton_arrow_right_arrow_left.xml │ │ ├── ic_proton_arrow_rotate_right.xml │ │ ├── ic_proton_arrow_up.xml │ │ ├── ic_proton_arrow_up_and_left.xml │ │ ├── ic_proton_arrow_up_big_line.xml │ │ ├── ic_proton_arrow_up_bounce_left.xml │ │ ├── ic_proton_arrow_up_circle_line.xml │ │ ├── ic_proton_arrow_up_from_square.xml │ │ ├── ic_proton_arrow_up_line.xml │ │ ├── ic_proton_arrows_cross.xml │ │ ├── ic_proton_arrows_from_center.xml │ │ ├── ic_proton_arrows_left_right.xml │ │ ├── ic_proton_arrows_rotate.xml │ │ ├── ic_proton_arrows_swap_right.xml │ │ ├── ic_proton_arrows_switch.xml │ │ ├── ic_proton_arrows_to_center.xml │ │ ├── ic_proton_arrows_up_and_left.xml │ │ ├── ic_proton_at.xml │ │ ├── ic_proton_backspace.xml │ │ ├── ic_proton_bag_percent.xml │ │ ├── ic_proton_bell.xml │ │ ├── ic_proton_bolt.xml │ │ ├── ic_proton_bookmark.xml │ │ ├── ic_proton_bookmark_filled.xml │ │ ├── ic_proton_brand_android.xml │ │ ├── ic_proton_brand_apple.xml │ │ ├── ic_proton_brand_chrome.xml │ │ ├── ic_proton_brand_firefox.xml │ │ ├── ic_proton_brand_linux.xml │ │ ├── ic_proton_brand_paypal.xml │ │ ├── ic_proton_brand_proton.xml │ │ ├── ic_proton_brand_proton_authenticator.xml │ │ ├── ic_proton_brand_proton_calendar.xml │ │ ├── ic_proton_brand_proton_drive.xml │ │ ├── ic_proton_brand_proton_mail.xml │ │ ├── ic_proton_brand_proton_pass.xml │ │ ├── ic_proton_brand_proton_vpn.xml │ │ ├── ic_proton_brand_tor.xml │ │ ├── ic_proton_brand_twitter.xml │ │ ├── ic_proton_brand_windows.xml │ │ ├── ic_proton_brand_wireguard.xml │ │ ├── ic_proton_briefcase.xml │ │ ├── ic_proton_broom.xml │ │ ├── ic_proton_bug.xml │ │ ├── ic_proton_buildings.xml │ │ ├── ic_proton_calendar_3day.xml │ │ ├── ic_proton_calendar_cells.xml │ │ ├── ic_proton_calendar_checkmark.xml │ │ ├── ic_proton_calendar_day.xml │ │ ├── ic_proton_calendar_grid.xml │ │ ├── ic_proton_calendar_month.xml │ │ ├── ic_proton_calendar_row.xml │ │ ├── ic_proton_calendar_today.xml │ │ ├── ic_proton_calendar_week.xml │ │ ├── ic_proton_camera.xml │ │ ├── ic_proton_card_identity.xml │ │ ├── ic_proton_chart_line.xml │ │ ├── ic_proton_check_circle_full.xml │ │ ├── ic_proton_check_triple.xml │ │ ├── ic_proton_checkmark.xml │ │ ├── ic_proton_checkmark_circle.xml │ │ ├── ic_proton_checkmark_circle_filled.xml │ │ ├── ic_proton_checkmark_triple.xml │ │ ├── ic_proton_chevron_down.xml │ │ ├── ic_proton_chevron_down_filled.xml │ │ ├── ic_proton_chevron_left.xml │ │ ├── ic_proton_chevron_left_filled.xml │ │ ├── ic_proton_chevron_right.xml │ │ ├── ic_proton_chevron_right_filled.xml │ │ ├── ic_proton_chevron_square_left.xml │ │ ├── ic_proton_chevron_square_right.xml │ │ ├── ic_proton_chevron_tiny_down.xml │ │ ├── ic_proton_chevron_tiny_right.xml │ │ ├── ic_proton_chevron_up.xml │ │ ├── ic_proton_chevron_up_filled.xml │ │ ├── ic_proton_chevrons_left.xml │ │ ├── ic_proton_chevrons_right.xml │ │ ├── ic_proton_circle.xml │ │ ├── ic_proton_circle_checkmark.xml │ │ ├── ic_proton_circle_filled.xml │ │ ├── ic_proton_circle_half_filled.xml │ │ ├── ic_proton_circle_slash.xml │ │ ├── ic_proton_circles_lock.xml │ │ ├── ic_proton_clock.xml │ │ ├── ic_proton_clock_filled.xml │ │ ├── ic_proton_clock_paper_plane.xml │ │ ├── ic_proton_clock_rotate_left.xml │ │ ├── ic_proton_cloud.xml │ │ ├── ic_proton_code.xml │ │ ├── ic_proton_cog_wheel.xml │ │ ├── ic_proton_cog_wheel_filled.xml │ │ ├── ic_proton_credit_card.xml │ │ ├── ic_proton_cross.xml │ │ ├── ic_proton_cross_big.xml │ │ ├── ic_proton_cross_circle.xml │ │ ├── ic_proton_cross_circle_filled.xml │ │ ├── ic_proton_cross_small.xml │ │ ├── ic_proton_drive.xml │ │ ├── ic_proton_earth.xml │ │ ├── ic_proton_earth_filled.xml │ │ ├── ic_proton_emoji.xml │ │ ├── ic_proton_empty_circle.xml │ │ ├── ic_proton_envelope.xml │ │ ├── ic_proton_envelope_arrow_up_and_right.xml │ │ ├── ic_proton_envelope_cross.xml │ │ ├── ic_proton_envelope_dot.xml │ │ ├── ic_proton_envelope_magnifying_glass.xml │ │ ├── ic_proton_envelope_open.xml │ │ ├── ic_proton_envelope_open_text.xml │ │ ├── ic_proton_envelopes.xml │ │ ├── ic_proton_eraser.xml │ │ ├── ic_proton_exclamation_circle.xml │ │ ├── ic_proton_exclamation_circle_filled.xml │ │ ├── ic_proton_exclamation_triangle_filled.xml │ │ ├── ic_proton_eye.xml │ │ ├── ic_proton_eye_slash.xml │ │ ├── ic_proton_file.xml │ │ ├── ic_proton_file_arrow_in.xml │ │ ├── ic_proton_file_arrow_in_up.xml │ │ ├── ic_proton_file_arrow_out.xml │ │ ├── ic_proton_file_attachment_16.xml │ │ ├── ic_proton_file_attachment_24.xml │ │ ├── ic_proton_file_attachment_48.xml │ │ ├── ic_proton_file_image.xml │ │ ├── ic_proton_file_image_16.xml │ │ ├── ic_proton_file_image_24.xml │ │ ├── ic_proton_file_image_48.xml │ │ ├── ic_proton_file_lines.xml │ │ ├── ic_proton_file_pdf.xml │ │ ├── ic_proton_file_pdf_16.xml │ │ ├── ic_proton_file_pdf_24.xml │ │ ├── ic_proton_file_pdf_48.xml │ │ ├── ic_proton_file_rar_zip_16.xml │ │ ├── ic_proton_file_rar_zip_24.xml │ │ ├── ic_proton_file_rar_zip_48.xml │ │ ├── ic_proton_file_shapes.xml │ │ ├── ic_proton_file_type_audio_24.xml │ │ ├── ic_proton_file_type_default_24.xml │ │ ├── ic_proton_file_type_excel_24.xml │ │ ├── ic_proton_file_type_image_24.xml │ │ ├── ic_proton_file_type_pdf_24.xml │ │ ├── ic_proton_file_type_powerpoint_24.xml │ │ ├── ic_proton_file_type_text_24.xml │ │ ├── ic_proton_file_type_unknown_24.xml │ │ ├── ic_proton_file_type_video_24.xml │ │ ├── ic_proton_file_type_word_24.xml │ │ ├── ic_proton_file_type_zip_24.xml │ │ ├── ic_proton_file_word_16.xml │ │ ├── ic_proton_file_word_24.xml │ │ ├── ic_proton_file_word_48.xml │ │ ├── ic_proton_filing_cabinet.xml │ │ ├── ic_proton_filter.xml │ │ ├── ic_proton_fingerprint.xml │ │ ├── ic_proton_fire.xml │ │ ├── ic_proton_fire_slash.xml │ │ ├── ic_proton_folder.xml │ │ ├── ic_proton_folder_arrow_in.xml │ │ ├── ic_proton_folder_arrow_in_filled.xml │ │ ├── ic_proton_folder_arrow_up.xml │ │ ├── ic_proton_folder_filled.xml │ │ ├── ic_proton_folder_open.xml │ │ ├── ic_proton_folder_open_filled.xml │ │ ├── ic_proton_folder_plus.xml │ │ ├── ic_proton_folders.xml │ │ ├── ic_proton_folders_filled.xml │ │ ├── ic_proton_forward.xml │ │ ├── ic_proton_gift.xml │ │ ├── ic_proton_globe.xml │ │ ├── ic_proton_grid_2.xml │ │ ├── ic_proton_grid_3.xml │ │ ├── ic_proton_hamburger.xml │ │ ├── ic_proton_heart.xml │ │ ├── ic_proton_hook.xml │ │ ├── ic_proton_hourglass.xml │ │ ├── ic_proton_house.xml │ │ ├── ic_proton_house_filled.xml │ │ ├── ic_proton_image.xml │ │ ├── ic_proton_inbox.xml │ │ ├── ic_proton_infinite.xml │ │ ├── ic_proton_info_circle.xml │ │ ├── ic_proton_info_circle_filled.xml │ │ ├── ic_proton_key.xml │ │ ├── ic_proton_key_skeleton.xml │ │ ├── ic_proton_language.xml │ │ ├── ic_proton_life_ring.xml │ │ ├── ic_proton_lightbulb.xml │ │ ├── ic_proton_lines_horizontal.xml │ │ ├── ic_proton_lines_long_to_small.xml │ │ ├── ic_proton_lines_vertical.xml │ │ ├── ic_proton_link.xml │ │ ├── ic_proton_link_pen.xml │ │ ├── ic_proton_link_slash.xml │ │ ├── ic_proton_list_bullets.xml │ │ ├── ic_proton_list_numbers.xml │ │ ├── ic_proton_lock.xml │ │ ├── ic_proton_lock_check_filled.xml │ │ ├── ic_proton_lock_exclamation_filled.xml │ │ ├── ic_proton_lock_filled.xml │ │ ├── ic_proton_lock_layers.xml │ │ ├── ic_proton_lock_open.xml │ │ ├── ic_proton_lock_open_check_filled.xml │ │ ├── ic_proton_lock_open_check_filled_1.xml │ │ ├── ic_proton_lock_open_check_filled_2.xml │ │ ├── ic_proton_lock_open_exclamation_filled.xml │ │ ├── ic_proton_lock_open_filled.xml │ │ ├── ic_proton_lock_open_filled_2.xml │ │ ├── ic_proton_lock_open_pen_filled.xml │ │ ├── ic_proton_lock_pen_filled.xml │ │ ├── ic_proton_locks.xml │ │ ├── ic_proton_locks_filled.xml │ │ ├── ic_proton_low_dash.xml │ │ ├── ic_proton_magic_proton_wand.xml │ │ ├── ic_proton_magnifier.xml │ │ ├── ic_proton_mailbox.xml │ │ ├── ic_proton_map.xml │ │ ├── ic_proton_map_pin.xml │ │ ├── ic_proton_menu_sign_out.xml │ │ ├── ic_proton_minus.xml │ │ ├── ic_proton_minus_circle.xml │ │ ├── ic_proton_minus_circle_filled.xml │ │ ├── ic_proton_mobile.xml │ │ ├── ic_proton_mobile_plus.xml │ │ ├── ic_proton_money_bills.xml │ │ ├── ic_proton_moon.xml │ │ ├── ic_proton_note.xml │ │ ├── ic_proton_notepad_checklist.xml │ │ ├── ic_proton_paint_roller.xml │ │ ├── ic_proton_palette.xml │ │ ├── ic_proton_paper_clip.xml │ │ ├── ic_proton_paper_clip_vertical.xml │ │ ├── ic_proton_paper_plane.xml │ │ ├── ic_proton_paper_plane_clock.xml │ │ ├── ic_proton_paper_plane_horizontal.xml │ │ ├── ic_proton_pause.xml │ │ ├── ic_proton_pause_filled.xml │ │ ├── ic_proton_pen.xml │ │ ├── ic_proton_pen_sparks.xml │ │ ├── ic_proton_pen_square.xml │ │ ├── ic_proton_pencil.xml │ │ ├── ic_proton_phone.xml │ │ ├── ic_proton_pin_filled.xml │ │ ├── ic_proton_pin_slash_filled.xml │ │ ├── ic_proton_play.xml │ │ ├── ic_proton_play_filled.xml │ │ ├── ic_proton_plus.xml │ │ ├── ic_proton_plus_circle.xml │ │ ├── ic_proton_plus_circle_filled.xml │ │ ├── ic_proton_power_off.xml │ │ ├── ic_proton_presentation_screen.xml │ │ ├── ic_proton_printer.xml │ │ ├── ic_proton_qr_code.xml │ │ ├── ic_proton_question_circle.xml │ │ ├── ic_proton_question_circle_filled.xml │ │ ├── ic_proton_reply.xml │ │ ├── ic_proton_reply_all.xml │ │ ├── ic_proton_robot.xml │ │ ├── ic_proton_rocket.xml │ │ ├── ic_proton_servers.xml │ │ ├── ic_proton_servers_filled.xml │ │ ├── ic_proton_shield.xml │ │ ├── ic_proton_shield_2_bolt.xml │ │ ├── ic_proton_shield_filled.xml │ │ ├── ic_proton_shield_half_filled.xml │ │ ├── ic_proton_side_panel_left.xml │ │ ├── ic_proton_side_panel_right.xml │ │ ├── ic_proton_sliders.xml │ │ ├── ic_proton_speech_bubble.xml │ │ ├── ic_proton_squares.xml │ │ ├── ic_proton_squares_in_square.xml │ │ ├── ic_proton_star.xml │ │ ├── ic_proton_star_filled.xml │ │ ├── ic_proton_star_slash.xml │ │ ├── ic_proton_storage.xml │ │ ├── ic_proton_sun.xml │ │ ├── ic_proton_swipe_left.xml │ │ ├── ic_proton_switch_off.xml │ │ ├── ic_proton_switch_on.xml │ │ ├── ic_proton_switch_on_lock.xml │ │ ├── ic_proton_tag.xml │ │ ├── ic_proton_tag_filled.xml │ │ ├── ic_proton_tag_plus.xml │ │ ├── ic_proton_tags.xml │ │ ├── ic_proton_text_align_center.xml │ │ ├── ic_proton_text_align_justify.xml │ │ ├── ic_proton_text_align_left.xml │ │ ├── ic_proton_text_align_right.xml │ │ ├── ic_proton_text_bold.xml │ │ ├── ic_proton_text_italic.xml │ │ ├── ic_proton_text_quote.xml │ │ ├── ic_proton_text_underline.xml │ │ ├── ic_proton_three_dots_horizontal.xml │ │ ├── ic_proton_three_dots_vertical.xml │ │ ├── ic_proton_trash.xml │ │ ├── ic_proton_trash_clock.xml │ │ ├── ic_proton_trash_cross.xml │ │ ├── ic_proton_trash_cross_filled.xml │ │ ├── ic_proton_tv.xml │ │ ├── ic_proton_user.xml │ │ ├── ic_proton_user_arrow_left.xml │ │ ├── ic_proton_user_arrow_right.xml │ │ ├── ic_proton_user_circle.xml │ │ ├── ic_proton_user_filled.xml │ │ ├── ic_proton_user_plus.xml │ │ ├── ic_proton_users.xml │ │ ├── ic_proton_users_filled.xml │ │ ├── ic_proton_users_merge.xml │ │ ├── ic_proton_users_plus.xml │ │ ├── ic_proton_vault.xml │ │ ├── ic_proton_verified_badge.xml │ │ ├── ic_proton_wallet.xml │ │ ├── ic_proton_window_image.xml │ │ ├── ic_proton_window_terminal.xml │ │ ├── ic_proton_wrench.xml │ │ ├── ic_remove_account.xml │ │ ├── ic_shield.xml │ │ ├── ic_sign_in.xml │ │ ├── ic_sign_out.xml │ │ ├── ic_sliders_two.xml │ │ ├── ic_star_filled.xml │ │ ├── ic_storage.xml │ │ ├── ic_user.xml │ │ ├── logo_calendar_dark.xml │ │ ├── logo_calendar_light.xml │ │ ├── logo_calendar_with_text_dark.xml │ │ ├── logo_calendar_with_text_light.xml │ │ ├── logo_drive_dark.xml │ │ ├── logo_drive_light.xml │ │ ├── logo_drive_with_text_dark.xml │ │ ├── logo_drive_with_text_light.xml │ │ ├── logo_mail_dark.xml │ │ ├── logo_mail_light.xml │ │ ├── logo_mail_with_text_dark.xml │ │ ├── logo_mail_with_text_light.xml │ │ ├── logo_pass_with_text_dark.xml │ │ ├── logo_pass_with_text_light.xml │ │ ├── logo_proton_brand.xml │ │ ├── logo_proton_dark.xml │ │ ├── logo_proton_footer.xml │ │ ├── logo_proton_light.xml │ │ ├── logo_proton_with_effect.xml │ │ ├── logo_vpn_dark.xml │ │ ├── logo_vpn_light.xml │ │ ├── logo_vpn_with_text_dark.xml │ │ ├── logo_vpn_with_text_light.xml │ │ ├── nav_view_item_background.xml │ │ ├── nav_view_item_with_divider.xml │ │ ├── snackbar_background_error.xml │ │ ├── snackbar_background_norm.xml │ │ ├── snackbar_background_success.xml │ │ ├── snackbar_background_warning.xml │ │ └── spinner_background.xml │ │ ├── layout-ldrtl │ │ └── proton_dialog_singlechoice_item.xml │ │ ├── layout │ │ ├── proton_autocomplete_input.xml │ │ ├── proton_dialog_singlechoice_item.xml │ │ ├── proton_input.xml │ │ ├── proton_nav_view_section_header.xml │ │ ├── proton_toast.xml │ │ └── proton_webview_activity.xml │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-large │ │ ├── bools.xml │ │ └── themes.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-night │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── drawables.xml │ │ └── themes.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-v27 │ │ └── colors.xml │ │ ├── values-v28 │ │ └── ripples.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ ├── accessibility_strings.xml │ │ ├── attrs.xml │ │ ├── bools.xml │ │ ├── colors.xml │ │ ├── config.xml │ │ ├── drawables.xml │ │ ├── ids.xml │ │ ├── links.xml │ │ ├── margins.xml │ │ ├── ripples.xml │ │ ├── sizes.xml │ │ ├── strings.xml │ │ ├── styles-alerts.xml │ │ ├── styles.xml │ │ └── themes.xml │ └── test │ ├── kotlin │ └── me │ │ └── proton │ │ └── core │ │ └── presentation │ │ ├── SnapshotProtonThemeTest.kt │ │ ├── app │ │ └── AppLifecycleProviderTest.kt │ │ ├── savedstate │ │ ├── MutableSharedFlowSavedStateTest.kt │ │ └── SavedStateTest.kt │ │ ├── ui │ │ ├── adapter │ │ │ └── ProtonAdapterTest.kt │ │ └── view │ │ │ ├── ProtonInputAttributesTest.kt │ │ │ ├── ProtonInputTest.kt │ │ │ ├── ProtonProgressButtonAttributesTest.kt │ │ │ └── ProtonProgressButtonTest.kt │ │ └── utils │ │ ├── BackPressedExtensionsKtTest.kt │ │ ├── InputValidationResultTest.kt │ │ ├── InvalidPasswordProviderTest.kt │ │ ├── MultipleClickListenerTest.kt │ │ ├── MultipleFocusChangeListenerTest.kt │ │ ├── ScreenViewExtensionsKtTest.kt │ │ ├── StringBoxTest.kt │ │ └── ValidationUtilsKtTest.kt │ └── snapshots │ └── images │ ├── me.proton.core.presentation_SnapshotProtonThemeTest_protonProgressButtonIdle.png │ └── me.proton.core.presentation_SnapshotProtonThemeTest_protonProgressButtonLoading.png ├── proguard-rules ├── build.gradle.kts └── src │ └── main │ └── resources │ └── META-INF │ └── proguard │ ├── certificatetransparency.pro │ ├── core-libs.pro │ ├── dontwarn.pro │ ├── kotlin-serialization.pro │ └── retrofit2.pro ├── push ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── push │ │ └── hilt │ │ └── PushModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── push │ │ │ └── data │ │ │ ├── PushEventListener.kt │ │ │ ├── local │ │ │ ├── PushLocalDataSourceImpl.kt │ │ │ └── db │ │ │ │ ├── PushConverters.kt │ │ │ │ ├── PushDao.kt │ │ │ │ ├── PushDatabase.kt │ │ │ │ └── PushEntity.kt │ │ │ ├── remote │ │ │ ├── PushApi.kt │ │ │ ├── PushRemoteDataSourceImpl.kt │ │ │ ├── resource │ │ │ │ └── PushResource.kt │ │ │ ├── response │ │ │ │ └── GetPushesResponse.kt │ │ │ └── worker │ │ │ │ ├── DeletePushWorker.kt │ │ │ │ └── FetchPushesWorker.kt │ │ │ └── repository │ │ │ └── PushRepositoryImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── push │ │ └── data │ │ ├── PushEventListenerTest.kt │ │ ├── local │ │ └── PushLocalDataSourceImplTest.kt │ │ ├── remote │ │ └── worker │ │ │ └── DeletePushWorkerTest.kt │ │ ├── repository │ │ └── PushRepositoryImplTest.kt │ │ └── testing │ │ ├── TestDatabase.kt │ │ └── test_entities.kt └── domain │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── push │ └── domain │ ├── entity │ └── Push.kt │ ├── local │ └── PushLocalDataSource.kt │ ├── remote │ └── PushRemoteDataSource.kt │ ├── repository │ └── PushRepository.kt │ └── usecase │ ├── DeletePushRemote.kt │ └── FetchPushesRemote.kt ├── renovate.json ├── report ├── README.md ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── report │ │ │ └── dagger │ │ │ └── AppUtilsTest.kt │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── report │ │ └── dagger │ │ ├── AppUtils.kt │ │ └── CoreReportModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── report │ │ │ └── data │ │ │ ├── SendBugReportImpl.kt │ │ │ ├── api │ │ │ └── ReportApi.kt │ │ │ ├── repository │ │ │ └── ReportRepositoryImpl.kt │ │ │ └── work │ │ │ └── BugReportWorker.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── report │ │ └── data │ │ ├── SendBugReportImplTest.kt │ │ ├── repository │ │ └── ReportRepositoryImplTest.kt │ │ ├── test_data.kt │ │ └── work │ │ └── BugReportWorkerTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── report │ │ │ └── domain │ │ │ ├── entity │ │ │ ├── BugReport.kt │ │ │ ├── BugReportExtra.kt │ │ │ └── BugReportMeta.kt │ │ │ ├── provider │ │ │ └── BugReportLogProvider.kt │ │ │ ├── repository │ │ │ └── ReportRepository.kt │ │ │ └── usecase │ │ │ └── SendBugReport.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── report │ │ └── domain │ │ └── entity │ │ └── BugReportValidationTest.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── report │ │ │ │ └── presentation │ │ │ │ ├── ReportOrchestrator.kt │ │ │ │ ├── entity │ │ │ │ ├── BugReportInput.kt │ │ │ │ ├── BugReportOutput.kt │ │ │ │ └── internal_entities.kt │ │ │ │ ├── ui │ │ │ │ └── BugReportActivity.kt │ │ │ │ └── viewmodel │ │ │ │ └── BugReportViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── core_report_ic_paper_plane.xml │ │ │ ├── layout │ │ │ └── core_report_activity_bug_report.xml │ │ │ ├── menu │ │ │ └── core_report_bug_menu.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ └── strings.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── report │ │ └── presentation │ │ └── viewmodel │ │ └── BugReportViewModelTest.kt └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── report │ └── test │ ├── MinimalReportExternalTests.kt │ ├── MinimalReportInternalTests.kt │ ├── flow │ └── ReportFlow.kt │ └── robot │ └── ReportRobot.kt ├── settings.gradle.kts ├── telemetry ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── telemetry │ │ └── dagger │ │ └── CoreTelemetryModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── telemetry │ │ │ └── data │ │ │ ├── api │ │ │ ├── TelemetryApi.kt │ │ │ └── request │ │ │ │ └── DataStatsMultipleRequest.kt │ │ │ ├── db │ │ │ ├── TelemetryDao.kt │ │ │ └── TelemetryDatabase.kt │ │ │ ├── entity │ │ │ ├── Mapper.kt │ │ │ └── TelemetryEventEntity.kt │ │ │ ├── repository │ │ │ ├── TelemetryLocalDataSourceImpl.kt │ │ │ ├── TelemetryRemoteDataSourceImpl.kt │ │ │ └── TelemetryRepositoryImpl.kt │ │ │ ├── usecase │ │ │ └── IsTelemetryEnabledImpl.kt │ │ │ └── worker │ │ │ ├── TelemetryWorker.kt │ │ │ └── TelemetryWorkerManagerImpl.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── telemetry │ │ └── data │ │ ├── repository │ │ ├── TelemetryLocalDataSourceImplTest.kt │ │ ├── TelemetryRemoteDataSourceImplTest.kt │ │ └── TelemetryRepositoryImplTest.kt │ │ ├── usecase │ │ └── IsTelemetryEnabledImplTest.kt │ │ └── worker │ │ ├── TelemetryWorkerManagerImplTest.kt │ │ └── TelemetryWorkerTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── telemetry │ │ │ └── domain │ │ │ ├── LogTag.kt │ │ │ ├── TelemetryContext.kt │ │ │ ├── TelemetryManager.kt │ │ │ ├── TelemetryWorkerManager.kt │ │ │ ├── entity │ │ │ ├── TelemetryEvent.kt │ │ │ └── TelemetryPriority.kt │ │ │ ├── repository │ │ │ ├── TelemetryLocalDataSource.kt │ │ │ ├── TelemetryRemoteDataSource.kt │ │ │ └── TelemetryRepository.kt │ │ │ └── usecase │ │ │ ├── IsTelemetryEnabled.kt │ │ │ └── ProcessTelemetryEvents.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── telemetry │ │ └── domain │ │ ├── TelemetryContextTest.kt │ │ ├── TelemetryManagerTest.kt │ │ └── usecase │ │ └── ProcessTelemetryEventsTest.kt └── presentation │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── telemetry │ │ └── presentation │ │ ├── ProductMetricsDelegate.kt │ │ ├── ProductMetricsDelegateOwner.kt │ │ ├── ScreenMeasurements.kt │ │ ├── ViewMeasurements.kt │ │ ├── annotation │ │ ├── MenuItemClicked.kt │ │ ├── ProductMetrics.kt │ │ ├── ScreenClosed.kt │ │ ├── ScreenDisplayed.kt │ │ ├── ViewClicked.kt │ │ └── ViewFocused.kt │ │ ├── compose │ │ ├── LocalProductMetricsDelegateOwner.kt │ │ ├── MeasureOnScreenClosed.kt │ │ ├── MeasureOnScreenDisplayed.kt │ │ ├── MeasureOnViewClicked.kt │ │ ├── MeasureOnViewFocused.kt │ │ └── MeasureOperation.kt │ │ └── usecase │ │ └── SetupProductMetrics.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── telemetry │ └── presentation │ ├── ScreenMeasurementsKtTest.kt │ ├── ViewMeasurementsKtTest.kt │ └── usecase │ └── SetupProductMetricsTest.kt ├── test ├── android │ ├── build.gradle.kts │ ├── instrumented │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── test │ │ │ └── android │ │ │ ├── FusionExtensions.kt │ │ │ ├── NestedScrollViewExtensions.kt │ │ │ ├── ProtonHiltTestRunner.kt │ │ │ ├── README.md │ │ │ ├── ToastingRunListener.kt │ │ │ ├── actions │ │ │ ├── BetterScrollToAction.kt │ │ │ └── ClickableSpanClickAction.kt │ │ │ ├── instrumented │ │ │ ├── ConditionWatcher.kt │ │ │ ├── FusionConfig.kt │ │ │ ├── ProtonTest.kt │ │ │ ├── Robot.kt │ │ │ ├── matchers │ │ │ │ ├── InputFieldMatcher.kt │ │ │ │ ├── SystemUI.kt │ │ │ │ └── ToastOverlayMatcher.kt │ │ │ ├── rules │ │ │ │ └── RetryRule.kt │ │ │ ├── ui │ │ │ │ ├── compose │ │ │ │ │ ├── NodeBuilder.kt │ │ │ │ │ ├── OnAllNodes.kt │ │ │ │ │ └── OnNode.kt │ │ │ │ └── espresso │ │ │ │ │ ├── Actions.kt │ │ │ │ │ ├── OnDevice.kt │ │ │ │ │ ├── OnIntent.kt │ │ │ │ │ ├── OnListView.kt │ │ │ │ │ ├── OnRecyclerView.kt │ │ │ │ │ ├── OnRootView.kt │ │ │ │ │ └── OnView.kt │ │ │ └── utils │ │ │ │ ├── ActivityProvider.kt │ │ │ │ ├── FileUtils.kt │ │ │ │ ├── Shell.kt │ │ │ │ ├── StringUtils.kt │ │ │ │ └── WaitUntil.kt │ │ │ └── robots │ │ │ ├── CoreRobot.kt │ │ │ ├── CoreVerify.kt │ │ │ ├── WithUiDevice.kt │ │ │ ├── auth │ │ │ ├── AccountSwitcherRobot.kt │ │ │ ├── AddAccountRobot.kt │ │ │ ├── login │ │ │ │ ├── HelpRobot.kt │ │ │ │ ├── LoginRobot.kt │ │ │ │ ├── MailboxPasswordRobot.kt │ │ │ │ └── TwoFaRobot.kt │ │ │ └── signup │ │ │ │ ├── ChooseExternalEmailRobot.kt │ │ │ │ ├── ChooseInternalEmailRobot.kt │ │ │ │ ├── ChooseUsernameRobot.kt │ │ │ │ ├── CreatingUserRobot.kt │ │ │ │ ├── PasswordSetupRobot.kt │ │ │ │ ├── RecoveryMethodsRobot.kt │ │ │ │ └── SignupRobot.kt │ │ │ ├── confirmpassword │ │ │ └── ConfirmPasswordRobot.kt │ │ │ ├── humanverification │ │ │ ├── BaseHVRobot.kt │ │ │ ├── HV3Robot.kt │ │ │ └── HVRobot.kt │ │ │ ├── other │ │ │ ├── CountryRobot.kt │ │ │ └── KeyStoreErrorRobot.kt │ │ │ ├── payments │ │ │ ├── AddCreditCardRobot.kt │ │ │ ├── ExistingPaymentMethodsRobot.kt │ │ │ └── PaymentRobot.kt │ │ │ ├── plans │ │ │ └── SelectPlanRobot.kt │ │ │ └── settings │ │ │ ├── PasswordManagementRobot.kt │ │ │ └── RecoveryEmailRobot.kt │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── android │ │ ├── ArchTest.kt │ │ ├── BaseStringResourcesTest.kt │ │ ├── ExecutorsTest.kt │ │ ├── api │ │ └── TestApiManager.kt │ │ ├── lifecycle │ │ └── TestLifecycle.kt │ │ └── mocks │ │ └── MockSharedPreferences.kt ├── kotlin │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── test │ │ │ └── kotlin │ │ │ ├── Assertions.kt │ │ │ ├── BuildRetrofitApi.kt │ │ │ ├── CoroutinesTest.kt │ │ │ ├── MockWebServerExt.kt │ │ │ ├── TestBuilders.kt │ │ │ ├── TestDispatchersProvider.kt │ │ │ ├── TestScope.kt │ │ │ └── TurbineUtils.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── kotlin │ │ └── CoroutinesTestTest.kt ├── mock-proxy │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ ├── assets │ │ │ └── scenarios │ │ │ │ └── auth_scenario1 │ │ │ │ ├── auth_mock1.json │ │ │ │ ├── auth_mock2.json │ │ │ │ └── auth_scenario.json │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── test │ │ │ └── mockproxy │ │ │ └── MockProxyTest.kt │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── scenarios │ │ │ └── auth_scenario1 │ │ │ ├── auth_mock1.json │ │ │ ├── auth_mock2.json │ │ │ ├── auth_mock3.json │ │ │ └── auth_scenario.json │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── mockproxy │ │ ├── Constants.kt │ │ ├── MockApi.kt │ │ ├── MockClient.kt │ │ ├── MockObjects.kt │ │ ├── MockParser.kt │ │ └── TrafficParameters.kt ├── performance │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── performance │ │ ├── LogcatFilter.kt │ │ ├── MeasureBlock.kt │ │ ├── MeasurementConfig.kt │ │ ├── MeasurementContext.kt │ │ ├── MeasurementProfile.kt │ │ ├── MeasurementRule.kt │ │ ├── README.md │ │ ├── annotation │ │ └── Measure.kt │ │ ├── client │ │ ├── LokiApi.kt │ │ └── LokiClient.kt │ │ └── measurement │ │ ├── AppSizeMeasurement.kt │ │ ├── DurationMeasurement.kt │ │ └── Measurement.kt ├── quark │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── test │ │ │ └── quark │ │ │ ├── BaseTest.kt │ │ │ ├── QuarkCommandTests.kt │ │ │ └── UserTests.kt │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── test │ │ │ └── quark │ │ │ ├── Quark.kt │ │ │ ├── data │ │ │ ├── Card.kt │ │ │ ├── Plan.kt │ │ │ └── User.kt │ │ │ ├── response │ │ │ ├── CreateUserAddressQuarkResponse.kt │ │ │ ├── CreateUserQuarkResponse.kt │ │ │ ├── FixtureDoctrineLoadResponse.kt │ │ │ └── FixtureLoadResponse.kt │ │ │ ├── util │ │ │ └── StringExt.kt │ │ │ └── v2 │ │ │ ├── OnQuarkResponse.kt │ │ │ ├── QuarkCommand.kt │ │ │ ├── command │ │ │ ├── DriveCommands.kt │ │ │ ├── JailCommands.kt │ │ │ ├── PaymentsCommands.kt │ │ │ ├── SettingsCommand.kt │ │ │ ├── SystemCommands.kt │ │ │ └── UserCommands.kt │ │ │ └── extension │ │ │ └── QuarkCommand.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── test │ │ └── quark │ │ └── v2 │ │ ├── QuarkCommandBuilderTests.kt │ │ └── QuarkCommandTests.kt └── rule │ ├── README.md │ ├── api │ └── test-rule.api │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── test │ └── rule │ ├── AuthenticationRule.kt │ ├── DeviceSettingsRule.kt │ ├── EnvironmentConfigRule.kt │ ├── MockTestRule.kt │ ├── ProtonRule.kt │ ├── QuarkTestDataRule.kt │ ├── TestExecutionWatcher.kt │ ├── annotation │ ├── AnnotationTestData.kt │ ├── EnvironmentConfig.kt │ ├── MockTest.kt │ ├── PrepareUser.kt │ ├── TestUserData.kt │ └── payments │ │ ├── TestPaymentMethods.kt │ │ └── TestSubscriptionData.kt │ ├── di │ └── TestEnvironmentConfigModule.kt │ ├── entity │ ├── HiltConfig.kt │ ├── TestConfig.kt │ └── UserConfig.kt │ └── extension │ ├── QuarkCommand.kt │ └── TestRule.kt ├── tools ├── README.md ├── build.gradle.kts ├── conventional-commits │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── java │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── conventionalcommits │ │ │ │ ├── CommitFooter.java │ │ │ │ ├── ConventionalCommit.java │ │ │ │ └── ConventionalCommitParser.java │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── conventionalcommits │ │ │ ├── App.kt │ │ │ ├── command │ │ │ ├── BaseCommand.kt │ │ │ ├── ChangelogCommand.kt │ │ │ ├── NextVersionCommand.kt │ │ │ ├── VerifyCommitCommand.kt │ │ │ ├── common_options.kt │ │ │ ├── defaults.kt │ │ │ └── repository.kt │ │ │ ├── ext │ │ │ └── JGitExtensions.kt │ │ │ └── usecase │ │ │ ├── GetCommits.kt │ │ │ ├── GetConventionalCommits.kt │ │ │ ├── GetLatestTag.kt │ │ │ ├── GetVersionTags.kt │ │ │ └── ProposeNextVersion.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── conventionalcommits │ │ ├── ConventionalCommitParserTest.kt │ │ └── command │ │ ├── CommitValidatorTest.kt │ │ ├── RenderCommitTest.kt │ │ ├── RenderPartialChangelogTest.kt │ │ └── UpdateChangelogTest.kt ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle.kts ├── user-recovery ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── userrecovery │ │ └── dagger │ │ └── CoreDeviceRecoveryModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── userrecovery │ │ │ │ └── data │ │ │ │ ├── CanUserDeviceRecoverImpl.kt │ │ │ │ ├── IsDeviceRecoveryEnabledImpl.kt │ │ │ │ ├── dao │ │ │ │ └── DeviceRecoveryDao.kt │ │ │ │ ├── db │ │ │ │ └── DeviceRecoveryDatabase.kt │ │ │ │ ├── entity │ │ │ │ └── RecoveryFileEntity.kt │ │ │ │ ├── repository │ │ │ │ └── DeviceRecoveryRepositoryImpl.kt │ │ │ │ ├── usecase │ │ │ │ ├── DeleteRecoveryFiles.kt │ │ │ │ ├── ObserveUserDeviceRecovery.kt │ │ │ │ ├── ObserveUsersWithInactiveKeysForRecovery.kt │ │ │ │ ├── ObserveUsersWithRecoverySecretButNoFile.kt │ │ │ │ ├── ObserveUsersWithoutRecoverySecret.kt │ │ │ │ ├── RecoverInactivePrivateKeys.kt │ │ │ │ └── StoreRecoveryFile.kt │ │ │ │ └── worker │ │ │ │ ├── RecoverInactivePrivateKeysWorker.kt │ │ │ │ ├── SetRecoverySecretWorker.kt │ │ │ │ └── UserRecoveryWorkerManagerImpl.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── userrecovery │ │ └── data │ │ ├── IsDeviceRecoveryEnabledImplTest.kt │ │ ├── entity │ │ └── RecoveryFileEntityKtTest.kt │ │ ├── mock │ │ └── EntityMocks.kt │ │ ├── usecase │ │ ├── ObserveUserDeviceRecoveryTest.kt │ │ ├── ObserveUsersWithInactiveKeysForRecoveryTest.kt │ │ ├── ObserveUsersWithRecoverySecretButNoFileTest.kt │ │ ├── ObserveUsersWithoutRecoverySecretTest.kt │ │ ├── RecoverInactivePrivateKeysTest.kt │ │ └── StoreRecoveryFileTest.kt │ │ └── worker │ │ ├── RecoverInactivePrivateKeysWorkerTest.kt │ │ ├── SetRecoverySecretWorkerTest.kt │ │ └── UserRecoveryWorkerManagerImplTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── userrecovery │ │ │ └── domain │ │ │ ├── CanUserDeviceRecover.kt │ │ │ ├── IsDeviceRecoveryEnabled.kt │ │ │ ├── LogTag.kt │ │ │ ├── entity │ │ │ └── RecoveryFile.kt │ │ │ ├── repository │ │ │ └── DeviceRecoveryRepository.kt │ │ │ ├── usecase │ │ │ ├── GetExistingVerifiedRecoverySecret.kt │ │ │ ├── GetRecoveryFile.kt │ │ │ ├── GetRecoveryInactiveUserKeys.kt │ │ │ ├── GetRecoveryPrivateKeys.kt │ │ │ ├── GetRecoverySecret.kt │ │ │ ├── GetUnlockedUserKeys.kt │ │ │ ├── SetRecoverySecretRemote.kt │ │ │ └── ShowDeviceRecoveryNotification.kt │ │ │ └── worker │ │ │ └── UserRecoveryWorkerManager.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── userrecovery │ │ └── domain │ │ └── usecase │ │ ├── BaseUserKeysTest.kt │ │ ├── GetExistingVerifiedRecoverySecretTest.kt │ │ ├── GetRecoveryFileTest.kt │ │ ├── GetRecoveryInactiveUserKeysTest.kt │ │ ├── GetRecoveryPrivateKeysTest.kt │ │ ├── GetUnlockedUserKeysTest.kt │ │ └── SetRecoverySecretRemoteTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── userrecovery │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── DeviceRecoveryDeeplink.kt │ │ │ ├── DeviceRecoveryDialogActivity.kt │ │ │ ├── DeviceRecoveryHandler.kt │ │ │ ├── DeviceRecoveryInitializer.kt │ │ │ ├── DeviceRecoveryNotificationSetup.kt │ │ │ ├── usecase │ │ │ └── ShowDeviceRecoveryNotificationImpl.kt │ │ │ ├── view │ │ │ └── DeviceRecoveryDialog.kt │ │ │ └── viewmodel │ │ │ └── DeviceRecoveryDialogViewModel.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── userrecovery │ │ └── presentation │ │ └── compose │ │ └── DeviceRecoveryHandlerTest.kt ├── presentation │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── res │ │ ├── values-b+es+419 │ │ └── strings.xml │ │ ├── values-be │ │ └── strings.xml │ │ ├── values-ca │ │ └── strings.xml │ │ ├── values-cs │ │ └── strings.xml │ │ ├── values-da │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-el │ │ └── strings.xml │ │ ├── values-es-rES │ │ └── strings.xml │ │ ├── values-es-rMX │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fi │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-is │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ka │ │ └── strings.xml │ │ ├── values-kab │ │ └── strings.xml │ │ ├── values-ko │ │ └── strings.xml │ │ ├── values-nb-rNO │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sk │ │ └── strings.xml │ │ ├── values-sl │ │ └── strings.xml │ │ ├── values-sv-rSE │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ └── values │ │ └── strings.xml └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── userrecovery │ └── test │ └── MinimalUserRecoveryTest.kt ├── user-settings ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── usersettings │ │ └── dagger │ │ ├── CoreDeviceSettingsModule.kt │ │ └── CoreUserSettingsModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── usersettings │ │ │ └── data │ │ │ ├── UserSettingsEventListener.kt │ │ │ ├── api │ │ │ ├── OrganizationApi.kt │ │ │ ├── UserSettingsApi.kt │ │ │ ├── UserSettingsRemoteDataSourceImpl.kt │ │ │ ├── request │ │ │ │ ├── SetRecoverySecretRequest.kt │ │ │ │ ├── SetUsernameRequest.kt │ │ │ │ ├── UpdateCrashReportsRequest.kt │ │ │ │ ├── UpdateLoginPasswordRequest.kt │ │ │ │ ├── UpdateRecoveryEmailRequest.kt │ │ │ │ └── UpdateTelemetryRequest.kt │ │ │ └── response │ │ │ │ ├── OrganizationKeysResponse.kt │ │ │ │ ├── OrganizationResponse.kt │ │ │ │ ├── OrganizationSettingsResponse.kt │ │ │ │ ├── OrganizationSignatureResponse.kt │ │ │ │ ├── SingleOrganizationResponse.kt │ │ │ │ ├── SingleUserSettingsResponse.kt │ │ │ │ ├── UpdateUserSettingsResponse.kt │ │ │ │ └── UserSettingsResponse.kt │ │ │ ├── db │ │ │ ├── OrganizationDatabase.kt │ │ │ ├── UserSettingsConverters.kt │ │ │ ├── UserSettingsDatabase.kt │ │ │ ├── UserSettingsLocalDataSourceImpl.kt │ │ │ └── dao │ │ │ │ ├── OrganizationDao.kt │ │ │ │ ├── OrganizationKeysDao.kt │ │ │ │ └── UserSettingsDao.kt │ │ │ ├── entity │ │ │ ├── OrganizationEntity.kt │ │ │ ├── OrganizationKeysEntity.kt │ │ │ └── UserSettingsEntity.kt │ │ │ ├── extension │ │ │ ├── OrganizationMapper.kt │ │ │ ├── UserSettingsMapper.kt │ │ │ ├── UserSettingsProperty.kt │ │ │ └── UserSettingsPropertySerializable.kt │ │ │ ├── local │ │ │ ├── DeviceSettingsLocalDataSource.kt │ │ │ ├── DeviceSettingsLocalDataSourceImpl.kt │ │ │ └── LocalSettingsDataStoreProvider.kt │ │ │ ├── repository │ │ │ ├── DeviceSettingsRepositoryImpl.kt │ │ │ ├── OrganizationRepositoryImpl.kt │ │ │ └── UserSettingsRepositoryImpl.kt │ │ │ └── worker │ │ │ ├── FetchUserSettingsWorker.kt │ │ │ ├── UpdateUserSettingsWorker.kt │ │ │ └── UserSettingsPropertySerializable.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── usersettings │ │ └── data │ │ ├── api │ │ └── UserSettingsRemoteDataSourceImplTest.kt │ │ ├── repository │ │ ├── OrganizationKeysRepositoryImplTest.kt │ │ ├── OrganizationRepositoryImplTest.kt │ │ └── UserSettingsRepositoryImplTest.kt │ │ └── worker │ │ ├── FetchUserSettingsWorkerTest.kt │ │ └── UpdateUserSettingsWorkerTest.kt ├── domain │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── usersettings │ │ │ └── domain │ │ │ ├── DeviceSettingsHandler.kt │ │ │ ├── LogTag.kt │ │ │ ├── UsersSettingsHandler.kt │ │ │ ├── entity │ │ │ ├── DeviceSettings.kt │ │ │ ├── Organization.kt │ │ │ ├── OrganizationKeys.kt │ │ │ ├── OrganizationSettings.kt │ │ │ ├── OrganizationSignature.kt │ │ │ ├── UserSettings.kt │ │ │ └── UserSettingsProperty.kt │ │ │ ├── repository │ │ │ ├── DeviceSettingsRepository.kt │ │ │ ├── OrganizationRepository.kt │ │ │ ├── UserSettingsLocalDataSource.kt │ │ │ ├── UserSettingsRemoteDataSource.kt │ │ │ └── UserSettingsRepository.kt │ │ │ └── usecase │ │ │ ├── GetOrganization.kt │ │ │ ├── GetUserSettings.kt │ │ │ ├── IsSessionAccountRecoverySettingEnabled.kt │ │ │ ├── IsUserSettingEnabled.kt │ │ │ ├── ObserveDeviceSettings.kt │ │ │ ├── ObserveRegisteredSecurityKeys.kt │ │ │ ├── ObserveUserSettings.kt │ │ │ ├── PerformResetUserPassword.kt │ │ │ ├── PerformUpdateCrashReports.kt │ │ │ ├── PerformUpdateLoginPassword.kt │ │ │ ├── PerformUpdateRecoveryEmail.kt │ │ │ ├── PerformUpdateTelemetry.kt │ │ │ ├── PerformUpdateUserPassword.kt │ │ │ ├── SetupUsername.kt │ │ │ ├── UpdateDeviceSettings.kt │ │ │ └── UpdateUserSettingsRemote.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── usersettings │ │ └── domain │ │ ├── UsersSettingsHandlerTest.kt │ │ └── usecase │ │ ├── GetOrganizationTest.kt │ │ ├── GetUserSettingsTest.kt │ │ ├── IsUserSettingEnabledTest.kt │ │ ├── ObserveRegisteredSecurityKeysTest.kt │ │ ├── ObserveUserSettingsTest.kt │ │ ├── PerformResetUserPasswordTest.kt │ │ ├── PerformUpdateCrashReportsTest.kt │ │ ├── PerformUpdateLoginPasswordTest.kt │ │ ├── PerformUpdateRecoveryEmailTest.kt │ │ ├── PerformUpdateTelemetryTest.kt │ │ └── PerformUpdateUserPasswordTest.kt ├── presentation-compose │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── usersettings │ │ │ │ └── presentation │ │ │ │ └── compose │ │ │ │ ├── SecurityKeysRoutes.kt │ │ │ │ ├── view │ │ │ │ ├── CrashReportSettingToggleItem.kt │ │ │ │ ├── SecurityKeysList.kt │ │ │ │ ├── SecurityKeysScreen.kt │ │ │ │ └── TelemetrySettingToggleItem.kt │ │ │ │ └── viewmodel │ │ │ │ ├── SecurityKeysInfoViewModel.kt │ │ │ │ └── UserSettingsViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_proton_security_key.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── links.xml │ │ │ └── strings.xml │ │ └── test │ │ ├── kotlin │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── usersettings │ │ │ └── presentation │ │ │ └── compose │ │ │ ├── view │ │ │ ├── SecurityKeysListKtTest.kt │ │ │ └── SecurityKeysScreenKtTest.kt │ │ │ └── viewmodel │ │ │ └── SecurityKeysInfoViewModelTest.kt │ │ └── snapshots │ │ └── images │ │ ├── me.proton.core.usersettings.presentation.compose.view_SecurityKeysListKtTest_securityKeysError.png │ │ ├── me.proton.core.usersettings.presentation.compose.view_SecurityKeysListKtTest_securityKeysList.png │ │ ├── me.proton.core.usersettings.presentation.compose.view_SecurityKeysListKtTest_securityKeysLoading.png │ │ └── me.proton.core.usersettings.presentation.compose.view_SecurityKeysScreenKtTest_securityKeysScreen.png ├── presentation │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── usersettings │ │ │ │ └── presentation │ │ │ │ ├── UserSettingsOrchestrator.kt │ │ │ │ ├── entity │ │ │ │ ├── PasswordManagementResult.kt │ │ │ │ ├── SettingsInput.kt │ │ │ │ ├── TwoFaDialogArguments.kt │ │ │ │ └── UpdateRecoveryEmailResult.kt │ │ │ │ ├── ui │ │ │ │ ├── ActivityResultContracts.kt │ │ │ │ ├── FragmentOrchestrator.kt │ │ │ │ ├── PasswordManagementActivity.kt │ │ │ │ ├── PasswordManagementFragment.kt │ │ │ │ ├── SecurityKeysActivity.kt │ │ │ │ ├── ShowPasswordLauncher.kt │ │ │ │ ├── TwoFaInputActivity.kt │ │ │ │ ├── UpdateRecoveryEmailActivity.kt │ │ │ │ └── UpdateRecoveryEmailFragment.kt │ │ │ │ └── viewmodel │ │ │ │ ├── PasswordManagementViewModel.kt │ │ │ │ └── UpdateRecoveryEmailViewModel.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_proton_security_key.xml │ │ │ ├── layout │ │ │ ├── activity_password_management.xml │ │ │ ├── activity_update_recovery_email.xml │ │ │ ├── fragment_password_management.xml │ │ │ └── fragment_update_recovery_email.xml │ │ │ ├── values-b+es+419 │ │ │ └── strings.xml │ │ │ ├── values-be │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-cs │ │ │ └── strings.xml │ │ │ ├── values-da │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-el │ │ │ └── strings.xml │ │ │ ├── values-es-rES │ │ │ └── strings.xml │ │ │ ├── values-es-rMX │ │ │ └── strings.xml │ │ │ ├── values-fa │ │ │ └── strings.xml │ │ │ ├── values-fi │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-hr │ │ │ └── strings.xml │ │ │ ├── values-hu │ │ │ └── strings.xml │ │ │ ├── values-in │ │ │ └── strings.xml │ │ │ ├── values-is │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-ja │ │ │ └── strings.xml │ │ │ ├── values-ka │ │ │ └── strings.xml │ │ │ ├── values-kab │ │ │ └── strings.xml │ │ │ ├── values-ko │ │ │ └── strings.xml │ │ │ ├── values-nb-rNO │ │ │ └── strings.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sk │ │ │ └── strings.xml │ │ │ ├── values-sl │ │ │ └── strings.xml │ │ │ ├── values-sv-rSE │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ └── values │ │ │ ├── links.xml │ │ │ └── strings.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── usersettings │ │ └── presentation │ │ └── viewmodel │ │ ├── PasswordManagementViewModelTest.kt │ │ └── UpdateRecoveryEmailViewModelTest.kt └── test │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ └── me │ └── proton │ └── core │ └── usersettings │ └── test │ ├── MinimalUserSettingsTest.kt │ ├── flow │ ├── PasswordManagementFlow.kt │ └── UpdateRecoveryEmailFlow.kt │ └── robot │ ├── PasswordManagementRobot.kt │ └── UpdateRecoveryEmailRobot.kt ├── user ├── build.gradle.kts ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── user │ │ └── dagger │ │ └── CoreUserManagerModule.kt ├── data │ ├── build.gradle.kts │ └── src │ │ ├── androidTest │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── user │ │ │ └── data │ │ │ ├── GenerateSignedKeyListTests.kt │ │ │ ├── TestAccountManagerDatabase.kt │ │ │ ├── TestAccounts.kt │ │ │ ├── TestAddresses.kt │ │ │ ├── TestKeys.kt │ │ │ ├── TestSessionListener.kt │ │ │ ├── TestUsers.kt │ │ │ ├── UserAddressKeySecretProviderTest.kt │ │ │ ├── UserManagerImplTests.kt │ │ │ ├── UserManagerPasswordTests.kt │ │ │ ├── db │ │ │ └── UserConvertersTest.kt │ │ │ └── repository │ │ │ ├── UserAddressRepositoryImplTests.kt │ │ │ └── UserRepositoryImplTests.kt │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── user │ │ │ └── data │ │ │ ├── UserAddressEventListener.kt.kt │ │ │ ├── UserAddressKeySecretProvider.kt │ │ │ ├── UserAddressManagerImpl.kt │ │ │ ├── UserEventListener.kt │ │ │ ├── UserManagerImpl.kt │ │ │ ├── UserSpaceEventListener.kt │ │ │ ├── api │ │ │ ├── AddressApi.kt │ │ │ ├── DomainApi.kt │ │ │ ├── UserApi.kt │ │ │ ├── request │ │ │ │ ├── ChallengeFrameType.kt │ │ │ │ ├── CreateAddressRequest.kt │ │ │ │ ├── CreateExternalUserRequest.kt │ │ │ │ ├── CreateUserRequest.kt │ │ │ │ ├── UnlockPasswordRequest.kt │ │ │ │ ├── UnlockRequest.kt │ │ │ │ ├── UpdateAddressRequest.kt │ │ │ │ └── UpdateOrderRequest.kt │ │ │ └── response │ │ │ │ ├── AvailableDomainsResponse.kt │ │ │ │ └── CreateAddressResponse.kt │ │ │ ├── db │ │ │ ├── AddressDatabase.kt │ │ │ ├── AddressKeyDatabase.kt │ │ │ ├── UserConverters.kt │ │ │ ├── UserDatabase.kt │ │ │ ├── UserKeyDatabase.kt │ │ │ └── dao │ │ │ │ ├── AddressDao.kt │ │ │ │ ├── AddressKeyDao.kt │ │ │ │ ├── AddressWithKeysDao.kt │ │ │ │ ├── UserDao.kt │ │ │ │ ├── UserKeyDao.kt │ │ │ │ └── UserWithKeysDao.kt │ │ │ ├── entity │ │ │ ├── AddressEntity.kt │ │ │ ├── AddressKeyEntity.kt │ │ │ ├── AddressWithKeys.kt │ │ │ ├── UserEntity.kt │ │ │ ├── UserKeyEntity.kt │ │ │ ├── UserRecoveryEntity.kt │ │ │ └── UserWithKeys.kt │ │ │ ├── extension │ │ │ ├── AddressMapper.kt │ │ │ ├── UserKeyMapper.kt │ │ │ ├── UserMapper.kt │ │ │ └── UserRecoveryMapper.kt │ │ │ ├── repository │ │ │ ├── DomainRepositoryImpl.kt │ │ │ ├── UserAddressRemoteDataSourceImpl.kt │ │ │ ├── UserAddressRepositoryImpl.kt │ │ │ ├── UserLocalDataSourceImpl.kt │ │ │ ├── UserRemoteDataSourceImpl.kt │ │ │ └── UserRepositoryImpl.kt │ │ │ └── usecase │ │ │ └── GenerateSignedKeyList.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── user │ │ └── data │ │ ├── UserAddressManagerImplTest.kt │ │ ├── UserManagerImplTest.kt │ │ ├── UserSpaceEventListenerTest.kt │ │ └── repository │ │ ├── DomainRepositoryImplTest.kt │ │ ├── UserLocalDataSourceImplTest.kt │ │ └── UserRemoteDataSourceImplTest.kt └── domain │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── user │ │ └── domain │ │ ├── Constants.kt │ │ ├── SignedKeyListChangeListener.kt │ │ ├── UserAddressCrypto.kt │ │ ├── UserAddressManager.kt │ │ ├── UserManager.kt │ │ ├── entity │ │ ├── CreateUserType.kt │ │ ├── DisplayName.kt │ │ ├── Domain.kt │ │ ├── Email.kt │ │ ├── User.kt │ │ ├── UserAddress.kt │ │ ├── UserAddressKey.kt │ │ ├── UserKey.kt │ │ └── UserRecovery.kt │ │ ├── extension │ │ ├── User.kt │ │ ├── UserAddressKey.kt │ │ ├── UserAddressList.kt │ │ ├── UserId.kt │ │ └── UserPlan.kt │ │ ├── repository │ │ ├── DomainRepository.kt │ │ ├── PassphraseRepository.kt │ │ ├── UserAddressRemoteDataSource.kt │ │ ├── UserAddressRepository.kt │ │ ├── UserLocalDataSource.kt │ │ ├── UserRemoteDataSource.kt │ │ └── UserRepository.kt │ │ └── usecase │ │ ├── GetUser.kt │ │ └── ObserveUser.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── user │ └── domain │ ├── UserKeysApiGoal.kt │ ├── extension │ ├── DisplayNameTest.kt │ ├── EmailTest.kt │ ├── UserAddressKeyTest.kt │ ├── UserAddressListTest.kt │ ├── UserIdKtTest.kt │ ├── UserKtTest.kt │ ├── UserPlanTest.kt │ └── UserTest.kt │ └── usecase │ ├── GetUserTest.kt │ └── ObserveUserTest.kt └── util ├── android ├── dagger │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── dagger │ │ └── CoreAndroidModule.kt ├── datetime │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── util │ │ │ └── android │ │ │ └── datetime │ │ │ ├── Clock.kt │ │ │ ├── DateTimeFormat.kt │ │ │ ├── DurationFormat.kt │ │ │ └── qualifiers.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── datetime │ │ └── DurationFormatTest.kt ├── device │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── device │ │ ├── DeviceMetadata.kt │ │ └── DeviceUtils.kt ├── sentry │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ ├── kotlin │ │ │ └── me │ │ │ │ └── proton │ │ │ │ └── core │ │ │ │ └── util │ │ │ │ └── android │ │ │ │ └── sentry │ │ │ │ ├── CrashEventTimberTagDecorator.kt │ │ │ │ ├── CustomSentryTagsProcessor.kt │ │ │ │ ├── GetInstallationId.kt │ │ │ │ ├── IsAccountSentryLoggingEnabled.kt │ │ │ │ ├── SentryHub.kt │ │ │ │ ├── SentryHubBuilder.kt │ │ │ │ ├── TimberLogger.kt │ │ │ │ ├── TimberLoggerIntegration.kt │ │ │ │ ├── TimberLoggerSentryTree.kt │ │ │ │ ├── TimberSentryTags.kt │ │ │ │ ├── TimberTagEventFilter.kt │ │ │ │ └── project │ │ │ │ └── AccountSentryHubBuilder.kt │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── public.xml │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── sentry │ │ ├── CrashEventTimberTagDecoratorTest.kt │ │ ├── CustomSentryTagsProcessorTest.kt │ │ ├── GetInstallationIdTest.kt │ │ ├── IsAccountSentryLoggingEnabledTest.kt │ │ ├── SentryHubBuilderTest.kt │ │ ├── SentryHubTest.kt │ │ ├── ThreadLocalValueTest.kt │ │ ├── TimberTagEventFilterTest.kt │ │ └── project │ │ └── AccountSentryHubBuilderTest.kt ├── shared-preferences │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── kotlin │ │ │ └── me │ │ │ └── proton │ │ │ └── core │ │ │ └── util │ │ │ └── android │ │ │ └── sharedpreferences │ │ │ ├── PreferencesFactory.kt │ │ │ ├── PreferencesProperty.kt │ │ │ ├── PreferencesProvider.kt │ │ │ ├── delegationExtensions.kt │ │ │ ├── extensions.kt │ │ │ ├── internal │ │ │ └── SerializableTestClass.kt │ │ │ └── observe.kt │ │ └── test │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── sharedpreferences │ │ ├── ObserveTest.kt │ │ ├── PreferencesDelegationTest.kt │ │ ├── PreferencesProviderTest.kt │ │ ├── PreferencesUtilsTest.kt │ │ └── SerializableTest.kt ├── strict-mode │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── strictmode │ │ └── Extensions.kt └── work-manager │ ├── build.gradle.kts │ └── src │ ├── main │ └── kotlin │ │ └── me │ │ └── proton │ │ └── core │ │ └── util │ │ └── android │ │ └── workmanager │ │ ├── ObserveExtensions.kt │ │ ├── SerializationExtensions.kt │ │ ├── WorkRequestObserver.kt │ │ ├── activity │ │ ├── Extensions.kt │ │ └── WorkManagerActivity.kt │ │ ├── builder │ │ └── Extensions.kt │ │ └── fragment │ │ ├── Extensions.kt │ │ └── WorkManagerFragment.kt │ └── test │ └── kotlin │ └── me │ └── proton │ └── core │ └── util │ └── android │ └── workmanager │ └── SerializationExtensionsTest.kt └── kotlin ├── build.gradle.kts └── src ├── main └── kotlin │ └── me │ └── proton │ └── core │ └── util │ └── kotlin │ ├── BitFlags.kt │ ├── CollectionUtils.kt │ ├── CoroutinesUtils.kt │ ├── EntityMapper.kt │ ├── FlowUtils.kt │ ├── HashUtils.kt │ ├── Invokable.kt │ ├── KotlinUtils.kt │ ├── Logger.kt │ ├── LoggingHandler.kt │ ├── MapUtils.kt │ ├── NumberUtils.kt │ ├── ProtonCoreConfig.kt │ ├── Retry.kt │ ├── RunCatching.kt │ ├── SerializationUtils.kt │ ├── StringUtils.kt │ ├── Unsupported.kt │ ├── WhenExensions.kt │ ├── annotation │ └── ExcludeFromCoverage.kt │ └── coroutine │ └── ResultCoroutineContext.kt └── test └── kotlin └── me └── proton └── core └── util ├── kotlin ├── CollectionUtilsTest.kt ├── FlowUtilsTest.kt ├── HashUtilsTest.kt ├── KotlinUtilsTest.kt ├── MapUtilsTest.kt ├── RetryKtTest.kt ├── SerializationUtilsTest.kt ├── StringUtilsKtTest.kt ├── StringUtilsTest.kt └── coroutine │ ├── ManagerContext.kt │ └── ResultCoroutineContextTest.kt └── testutil └── RunOnlyOnJava1_8.kt /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.gitattributes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.gitlab-ci.yml -------------------------------------------------------------------------------- /.gitleaks.toml: -------------------------------------------------------------------------------- 1 | [extend] 2 | path = "/etc/gitleaks/proton.toml" 3 | -------------------------------------------------------------------------------- /.gitleaksignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.gitleaksignore -------------------------------------------------------------------------------- /.grype.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | ProtonCore -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/codeStyles/Project.xml -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/codeStyles/codeStyleConfig.xml -------------------------------------------------------------------------------- /.idea/copyright/ProtonCore.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/copyright/ProtonCore.xml -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/copyright/profiles_settings.xml -------------------------------------------------------------------------------- /.idea/detekt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/detekt.xml -------------------------------------------------------------------------------- /.idea/dictionaries/project.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/dictionaries/project.xml -------------------------------------------------------------------------------- /.idea/externalDependencies.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/externalDependencies.xml -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/inspectionProfiles/Project_Default.xml -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/inspectionProfiles/profiles_settings.xml -------------------------------------------------------------------------------- /.idea/kotlinScripting.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/kotlinScripting.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/All.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/All.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Large.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Large.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Large__Firebase_.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Large__Firebase_.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Medium.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Medium.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Medium__Firebase_.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Medium__Firebase_.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Smoke.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Smoke.xml -------------------------------------------------------------------------------- /.idea/runConfigurations/Smoke__Firebase_.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/runConfigurations/Smoke__Firebase_.xml -------------------------------------------------------------------------------- /.idea/saveactions_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/saveactions_settings.xml -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.idea/vcs.xml -------------------------------------------------------------------------------- /.locale-state.metadata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.locale-state.metadata -------------------------------------------------------------------------------- /.semgrep.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/.semgrep.yml -------------------------------------------------------------------------------- /.semgrepignore: -------------------------------------------------------------------------------- 1 | /.gradle/ 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/CODEOWNERS -------------------------------------------------------------------------------- /Dangerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/Dangerfile -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/Gemfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/README.md -------------------------------------------------------------------------------- /account-manager/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/README.md -------------------------------------------------------------------------------- /account-manager/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/dagger/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/data-db/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/data-db/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/data/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/domain/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/presentation/build.gradle.kts -------------------------------------------------------------------------------- /account-manager/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-manager/test/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/dagger/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/data/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /account-recovery/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /account-recovery/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/domain/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/presentation/build.gradle.kts -------------------------------------------------------------------------------- /account-recovery/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account-recovery/test/build.gradle.kts -------------------------------------------------------------------------------- /account/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account/build.gradle.kts -------------------------------------------------------------------------------- /account/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account/dagger/build.gradle.kts -------------------------------------------------------------------------------- /account/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account/data/build.gradle.kts -------------------------------------------------------------------------------- /account/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/account/domain/build.gradle.kts -------------------------------------------------------------------------------- /auth-fido/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth-fido/build.gradle.kts -------------------------------------------------------------------------------- /auth-fido/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth-fido/dagger/build.gradle.kts -------------------------------------------------------------------------------- /auth-fido/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth-fido/domain/build.gradle.kts -------------------------------------------------------------------------------- /auth-fido/play/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth-fido/play/build.gradle.kts -------------------------------------------------------------------------------- /auth/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/README.md -------------------------------------------------------------------------------- /auth/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/build.gradle.kts -------------------------------------------------------------------------------- /auth/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/dagger/build.gradle.kts -------------------------------------------------------------------------------- /auth/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/data/build.gradle.kts -------------------------------------------------------------------------------- /auth/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /auth/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /auth/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/domain/build.gradle.kts -------------------------------------------------------------------------------- /auth/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /auth/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/build.gradle.kts -------------------------------------------------------------------------------- /auth/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/drawable/ic_fido.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/drawable/ic_fido.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/layout/activity_2fa.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/layout/activity_2fa.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/menu/login_menu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/menu/login_menu.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/menu/recovery_menu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/menu/recovery_menu.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-be/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ca/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ca/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-cs/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-da/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-da/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-de/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-el/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-el/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-fa/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-fa/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-fi/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-fi/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-fr/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-h540dp/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-h540dp/sizes.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-h720dp/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-h720dp/sizes.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-hi/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-hr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-hr/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-hu/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-in/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-in/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-is/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-is/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-it/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ja/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ka/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ka/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-kab/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-kab/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ko/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-nl/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-pl/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ro/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ro/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-ru/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-sk/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-sk/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-sl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-sl/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-tr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-tr/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values-uk/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values-uk/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/config.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/ids.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/links.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/links.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/public.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/sizes.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /auth/presentation/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/presentation/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /auth/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/auth/test/build.gradle.kts -------------------------------------------------------------------------------- /biometric/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/biometric/build.gradle.kts -------------------------------------------------------------------------------- /biometric/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/biometric/dagger/build.gradle.kts -------------------------------------------------------------------------------- /biometric/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/biometric/data/build.gradle.kts -------------------------------------------------------------------------------- /biometric/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/biometric/domain/build.gradle.kts -------------------------------------------------------------------------------- /biometric/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/biometric/presentation/build.gradle.kts -------------------------------------------------------------------------------- /challenge/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/build.gradle.kts -------------------------------------------------------------------------------- /challenge/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/dagger/build.gradle.kts -------------------------------------------------------------------------------- /challenge/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/data/build.gradle.kts -------------------------------------------------------------------------------- /challenge/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/domain/build.gradle.kts -------------------------------------------------------------------------------- /challenge/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /challenge/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/presentation/build.gradle.kts -------------------------------------------------------------------------------- /challenge/presentation/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/challenge/presentation/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /ci/danger/conventional_commits.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/danger/conventional_commits.rb -------------------------------------------------------------------------------- /ci/script/prepareRelease.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/script/prepareRelease.sh -------------------------------------------------------------------------------- /ci/script/pushDashboards.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/script/pushDashboards.sh -------------------------------------------------------------------------------- /ci/templates-shared/appetize-integration.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates-shared/appetize-integration.yml -------------------------------------------------------------------------------- /ci/templates-shared/github-sync.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates-shared/github-sync.yml -------------------------------------------------------------------------------- /ci/templates/base-job.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates/base-job.gitlab-ci.yml -------------------------------------------------------------------------------- /ci/templates/checkout-core.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates/checkout-core.gitlab-ci.yml -------------------------------------------------------------------------------- /ci/templates/git.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates/git.gitlab-ci.yml -------------------------------------------------------------------------------- /ci/templates/tools.gitlab-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/ci/templates/tools.gitlab-ci.yml -------------------------------------------------------------------------------- /config/CodeStyle.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/config/CodeStyle.xml -------------------------------------------------------------------------------- /config/Inspections.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/config/Inspections.xml -------------------------------------------------------------------------------- /config/detekt/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/config/detekt/config.yml -------------------------------------------------------------------------------- /configuration/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/build.gradle.kts -------------------------------------------------------------------------------- /configuration/configurator/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/configurator/build.gradle.kts -------------------------------------------------------------------------------- /configuration/dagger-content-resolver/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/dagger-content-resolver/build.gradle.kts -------------------------------------------------------------------------------- /configuration/dagger-staticdefaults/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/dagger-staticdefaults/build.gradle.kts -------------------------------------------------------------------------------- /configuration/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/data/build.gradle.kts -------------------------------------------------------------------------------- /configuration/data/src/androidTest/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/configuration/data/src/androidTest/AndroidManifest.xml -------------------------------------------------------------------------------- /contact/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/contact/build.gradle.kts -------------------------------------------------------------------------------- /contact/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/contact/dagger/build.gradle.kts -------------------------------------------------------------------------------- /contact/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/contact/data/build.gradle.kts -------------------------------------------------------------------------------- /contact/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/contact/domain/build.gradle.kts -------------------------------------------------------------------------------- /coreexample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | test-key-store.jks 3 | -------------------------------------------------------------------------------- /coreexample/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/build.gradle.kts -------------------------------------------------------------------------------- /coreexample/ci/process_report.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/ci/process_report.py -------------------------------------------------------------------------------- /coreexample/hilt-tests/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/hilt-tests/build.gradle.kts -------------------------------------------------------------------------------- /coreexample/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/proguard-rules.pro -------------------------------------------------------------------------------- /coreexample/src/androidTestMock/assets/GET/core/v4/users/available.json: -------------------------------------------------------------------------------- 1 | { 2 | "Code": 1000 3 | } 4 | -------------------------------------------------------------------------------- /coreexample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /coreexample/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/activity_contacts.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/activity_contacts.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/activity_labels.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/activity_labels.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/activity_logout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/activity_logout.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/activity_pushes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/activity_pushes.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/item_contact.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/item_contact.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/item_label.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/item_label.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/layout/item_push.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/layout/item_push.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /coreexample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /coreexample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /coreexample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /coreexample/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/config.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/values/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/sizes.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /coreexample/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/main/res/values/themes.xml -------------------------------------------------------------------------------- /coreexample/src/mock/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coreexample/src/mock/AndroidManifest.xml -------------------------------------------------------------------------------- /country/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/build.gradle.kts -------------------------------------------------------------------------------- /country/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/dagger/build.gradle.kts -------------------------------------------------------------------------------- /country/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/data/build.gradle.kts -------------------------------------------------------------------------------- /country/data/src/main/assets/country_codes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/data/src/main/assets/country_codes.json -------------------------------------------------------------------------------- /country/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/domain/build.gradle.kts -------------------------------------------------------------------------------- /country/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/build.gradle.kts -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ad.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ad.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ae.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ae.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_af.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_af.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ag.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ag.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ai.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ai.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_al.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_al.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_am.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_am.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ao.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ao.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ar.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ar.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_as.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_as.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_at.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_at.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_au.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_au.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_aw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_aw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_az.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_az.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ba.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ba.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bb.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bb.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bd.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bd.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_be.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_be.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bi.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bi.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bj.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bj.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bo.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bq.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bq.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_br.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_br.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bs.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_by.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_by.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_bz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_bz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ca.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ca.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cd.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cd.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ch.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ch.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ci.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ci.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ck.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ck.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_co.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_co.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cv.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cy.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cy.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_cz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_cz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_de.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_de.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_dj.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_dj.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_dk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_dk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_dm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_dm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_do.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_do.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_dz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_dz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ec.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ec.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ee.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ee.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_eg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_eg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_eh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_eh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_er.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_er.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_es.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_es.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_et.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_et.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fi.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fi.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fj.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fj.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fo.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_fr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_fr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ga.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ga.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gb.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gb.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gd.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gd.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ge.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ge.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gi.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gi.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gp.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gp.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gq.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gq.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_gy.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_gy.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_hk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_hk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_hn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_hn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_hr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_hr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ht.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ht.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_hu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_hu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_id.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_id.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ie.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ie.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_il.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_il.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_im.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_im.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_in.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_in.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_io.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_io.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_iq.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_iq.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ir.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ir.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_is.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_is.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_it.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_it.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_je.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_je.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_jm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_jm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_jo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_jo.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_jp.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_jp.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ke.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ke.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ki.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ki.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_km.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_km.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kp.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kp.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ky.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ky.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_kz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_kz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_la.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_la.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lb.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lb.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_li.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_li.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ls.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ls.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_lv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_lv.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ly.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ly.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ma.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ma.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_md.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_md.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_me.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_me.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ml.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ml.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mo.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mp.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mp.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mq.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mq.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ms.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ms.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mv.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mx.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mx.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_my.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_my.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_mz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_mz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_na.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_na.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ne.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ne.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ng.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ng.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ni.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ni.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_no.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_no.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_np.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_np.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_nz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_nz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_om.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_om.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pa.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pa.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pe.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pe.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ph.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ph.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ps.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ps.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_pw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_pw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_py.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_py.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_qa.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_qa.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_re.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_re.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ro.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ro.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_rs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_rs.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ru.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ru.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_rw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_rw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sa.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sa.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sb.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sb.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sd.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sd.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_se.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_se.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sh.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sh.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_si.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_si.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_so.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_so.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ss.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ss.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_st.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_st.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sv.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sx.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sx.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sy.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sy.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_sz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_sz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_td.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_td.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_th.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_th.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tj.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tj.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tl.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tl.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_to.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_to.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tr.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tr.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tv.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_tz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_tz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ua.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ua.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ug.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ug.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_us.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_us.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_uy.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_uy.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_uz.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_uz.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_va.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_va.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_vc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_vc.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ve.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ve.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_vg.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_vg.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_vi.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_vi.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_vn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_vn.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_vu.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_vu.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_wf.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_wf.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ws.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ws.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_xk.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_xk.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_ye.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_ye.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_yt.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_yt.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_za.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_za.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_zm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_zm.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/drawable/flag_zw.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/drawable/flag_zw.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/raw/keep_flags.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/raw/keep_flags.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/values/margins.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/values/margins.xml -------------------------------------------------------------------------------- /country/presentation/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/country/presentation/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /coverage/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/coverage/build.gradle.kts -------------------------------------------------------------------------------- /crypto-validator/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/README.md -------------------------------------------------------------------------------- /crypto-validator/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/build.gradle.kts -------------------------------------------------------------------------------- /crypto-validator/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/dagger/build.gradle.kts -------------------------------------------------------------------------------- /crypto-validator/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/data/build.gradle.kts -------------------------------------------------------------------------------- /crypto-validator/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/domain/build.gradle.kts -------------------------------------------------------------------------------- /crypto-validator/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto-validator/presentation/build.gradle.kts -------------------------------------------------------------------------------- /crypto/android/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto/android/build.gradle.kts -------------------------------------------------------------------------------- /crypto/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto/build.gradle.kts -------------------------------------------------------------------------------- /crypto/common/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto/common/build.gradle.kts -------------------------------------------------------------------------------- /crypto/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/crypto/dagger/build.gradle.kts -------------------------------------------------------------------------------- /data-room/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/data-room/build.gradle.kts -------------------------------------------------------------------------------- /data/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/data/README.md -------------------------------------------------------------------------------- /data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/data/build.gradle.kts -------------------------------------------------------------------------------- /device-migration/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/build.gradle.kts -------------------------------------------------------------------------------- /device-migration/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/dagger/build.gradle.kts -------------------------------------------------------------------------------- /device-migration/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/data/build.gradle.kts -------------------------------------------------------------------------------- /device-migration/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /device-migration/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /device-migration/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/domain/build.gradle.kts -------------------------------------------------------------------------------- /device-migration/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/device-migration/presentation/build.gradle.kts -------------------------------------------------------------------------------- /domain/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/domain/README.md -------------------------------------------------------------------------------- /domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/domain/build.gradle.kts -------------------------------------------------------------------------------- /event-manager/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/build.gradle.kts -------------------------------------------------------------------------------- /event-manager/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/dagger/build.gradle.kts -------------------------------------------------------------------------------- /event-manager/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/data/build.gradle.kts -------------------------------------------------------------------------------- /event-manager/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /event-manager/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /event-manager/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/event-manager/domain/build.gradle.kts -------------------------------------------------------------------------------- /feature-flag/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/build.gradle.kts -------------------------------------------------------------------------------- /feature-flag/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/dagger/build.gradle.kts -------------------------------------------------------------------------------- /feature-flag/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/data/build.gradle.kts -------------------------------------------------------------------------------- /feature-flag/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /feature-flag/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /feature-flag/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/domain/build.gradle.kts -------------------------------------------------------------------------------- /feature-flag/domain/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/feature-flag/domain/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /gopenpgp/build-config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gopenpgp/build-config.json -------------------------------------------------------------------------------- /gopenpgp/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gopenpgp/build.gradle -------------------------------------------------------------------------------- /gopenpgp/gopenpgp-sources.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gopenpgp/gopenpgp-sources.jar -------------------------------------------------------------------------------- /gopenpgp/gopenpgp.aar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gopenpgp/gopenpgp.aar -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/include-core-libs.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/include-core-libs.gradle.kts -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/script/update_verification_data.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/script/update_verification_data.sh -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar.sha256: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/wrapper/gradle-wrapper.jar.sha256 -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/gradlew.bat -------------------------------------------------------------------------------- /human-verification/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/README.md -------------------------------------------------------------------------------- /human-verification/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/build.gradle.kts -------------------------------------------------------------------------------- /human-verification/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/dagger/build.gradle.kts -------------------------------------------------------------------------------- /human-verification/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/data/build.gradle.kts -------------------------------------------------------------------------------- /human-verification/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/domain/build.gradle.kts -------------------------------------------------------------------------------- /human-verification/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/presentation/build.gradle.kts -------------------------------------------------------------------------------- /human-verification/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/human-verification/test/build.gradle.kts -------------------------------------------------------------------------------- /key-transparency/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/README.md -------------------------------------------------------------------------------- /key-transparency/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/build.gradle.kts -------------------------------------------------------------------------------- /key-transparency/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/dagger/build.gradle.kts -------------------------------------------------------------------------------- /key-transparency/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/data/build.gradle.kts -------------------------------------------------------------------------------- /key-transparency/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/domain/build.gradle.kts -------------------------------------------------------------------------------- /key-transparency/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key-transparency/presentation/build.gradle.kts -------------------------------------------------------------------------------- /key/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key/build.gradle.kts -------------------------------------------------------------------------------- /key/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key/dagger/build.gradle.kts -------------------------------------------------------------------------------- /key/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key/data/build.gradle.kts -------------------------------------------------------------------------------- /key/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/key/domain/build.gradle.kts -------------------------------------------------------------------------------- /label/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/label/build.gradle.kts -------------------------------------------------------------------------------- /label/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/label/dagger/build.gradle.kts -------------------------------------------------------------------------------- /label/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/label/data/build.gradle.kts -------------------------------------------------------------------------------- /label/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/label/domain/build.gradle.kts -------------------------------------------------------------------------------- /lint/build.gradle.kts.backup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/lint/build.gradle.kts.backup -------------------------------------------------------------------------------- /mail-message/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-message/build.gradle.kts -------------------------------------------------------------------------------- /mail-message/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-message/dagger/build.gradle.kts -------------------------------------------------------------------------------- /mail-message/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-message/data/build.gradle.kts -------------------------------------------------------------------------------- /mail-message/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-message/domain/build.gradle.kts -------------------------------------------------------------------------------- /mail-send-preferences/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-send-preferences/build.gradle.kts -------------------------------------------------------------------------------- /mail-send-preferences/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-send-preferences/dagger/build.gradle.kts -------------------------------------------------------------------------------- /mail-send-preferences/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-send-preferences/data/build.gradle.kts -------------------------------------------------------------------------------- /mail-send-preferences/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-send-preferences/domain/build.gradle.kts -------------------------------------------------------------------------------- /mail-settings/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-settings/build.gradle.kts -------------------------------------------------------------------------------- /mail-settings/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-settings/dagger/build.gradle.kts -------------------------------------------------------------------------------- /mail-settings/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-settings/data/build.gradle.kts -------------------------------------------------------------------------------- /mail-settings/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/mail-settings/domain/build.gradle.kts -------------------------------------------------------------------------------- /metrics/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/metrics/build.gradle.kts -------------------------------------------------------------------------------- /metrics/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/metrics/dagger/build.gradle.kts -------------------------------------------------------------------------------- /metrics/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/metrics/data/build.gradle.kts -------------------------------------------------------------------------------- /metrics/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/metrics/domain/build.gradle.kts -------------------------------------------------------------------------------- /network/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/README.md -------------------------------------------------------------------------------- /network/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/build.gradle.kts -------------------------------------------------------------------------------- /network/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/dagger/build.gradle.kts -------------------------------------------------------------------------------- /network/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/data/build.gradle.kts -------------------------------------------------------------------------------- /network/data/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/data/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /network/data/src/test/resources/test.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/data/src/test/resources/test.jks -------------------------------------------------------------------------------- /network/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/domain/build.gradle.kts -------------------------------------------------------------------------------- /network/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/presentation/build.gradle.kts -------------------------------------------------------------------------------- /network/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/network/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /notification/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/build.gradle.kts -------------------------------------------------------------------------------- /notification/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/dagger/build.gradle.kts -------------------------------------------------------------------------------- /notification/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/data/build.gradle.kts -------------------------------------------------------------------------------- /notification/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/domain/build.gradle.kts -------------------------------------------------------------------------------- /notification/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/presentation/build.gradle.kts -------------------------------------------------------------------------------- /notification/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /notification/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/notification/test/build.gradle.kts -------------------------------------------------------------------------------- /observability/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/README.md -------------------------------------------------------------------------------- /observability/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/build.gradle.kts -------------------------------------------------------------------------------- /observability/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dagger/build.gradle.kts -------------------------------------------------------------------------------- /observability/dashboard/android-checkout.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-checkout.json -------------------------------------------------------------------------------- /observability/dashboard/android-hv.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-hv.json -------------------------------------------------------------------------------- /observability/dashboard/android-recovery.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-recovery.json -------------------------------------------------------------------------------- /observability/dashboard/android-sign-in.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-sign-in.json -------------------------------------------------------------------------------- /observability/dashboard/android-sign-up.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-sign-up.json -------------------------------------------------------------------------------- /observability/dashboard/android-sli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-sli.json -------------------------------------------------------------------------------- /observability/dashboard/android-vpn.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/dashboard/android-vpn.json -------------------------------------------------------------------------------- /observability/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/data/build.gradle.kts -------------------------------------------------------------------------------- /observability/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /observability/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /observability/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/domain/build.gradle.kts -------------------------------------------------------------------------------- /observability/tools/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/observability/tools/build.gradle.kts -------------------------------------------------------------------------------- /pass-validator/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/build.gradle.kts -------------------------------------------------------------------------------- /pass-validator/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/dagger/build.gradle.kts -------------------------------------------------------------------------------- /pass-validator/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/build.gradle.kts -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values-be/strings.xml -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values-ca/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values-ca/strings.xml -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values-cs/strings.xml -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /pass-validator/data/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/data/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /pass-validator/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/domain/build.gradle.kts -------------------------------------------------------------------------------- /pass-validator/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/pass-validator/presentation/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/dagger/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/data/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/domain/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/presentation/build.gradle.kts -------------------------------------------------------------------------------- /payment-iap/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment-iap/test/build.gradle.kts -------------------------------------------------------------------------------- /payment/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/README.md -------------------------------------------------------------------------------- /payment/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/build.gradle.kts -------------------------------------------------------------------------------- /payment/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/dagger/build.gradle.kts -------------------------------------------------------------------------------- /payment/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/data/build.gradle.kts -------------------------------------------------------------------------------- /payment/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /payment/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/domain/build.gradle.kts -------------------------------------------------------------------------------- /payment/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/presentation/build.gradle.kts -------------------------------------------------------------------------------- /payment/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /payment/presentation/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/presentation/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /payment/presentation/src/main/res/values/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/presentation/src/main/res/values/sizes.xml -------------------------------------------------------------------------------- /payment/presentation/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/presentation/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /payment/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/payment/test/build.gradle.kts -------------------------------------------------------------------------------- /plan/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/README.md -------------------------------------------------------------------------------- /plan/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/build.gradle.kts -------------------------------------------------------------------------------- /plan/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/dagger/build.gradle.kts -------------------------------------------------------------------------------- /plan/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/data/build.gradle.kts -------------------------------------------------------------------------------- /plan/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /plan/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /plan/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/domain/build.gradle.kts -------------------------------------------------------------------------------- /plan/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /plan/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/build.gradle.kts -------------------------------------------------------------------------------- /plan/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /plan/presentation/src/main/res/layout/plan_item.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/res/layout/plan_item.xml -------------------------------------------------------------------------------- /plan/presentation/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /plan/presentation/src/main/res/values/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/res/values/sizes.xml -------------------------------------------------------------------------------- /plan/presentation/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /plan/presentation/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/presentation/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /plan/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plan/test/build.gradle.kts -------------------------------------------------------------------------------- /plugins/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /plugins/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/CHANGELOG.md -------------------------------------------------------------------------------- /plugins/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/README.md -------------------------------------------------------------------------------- /plugins/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/build.gradle.kts -------------------------------------------------------------------------------- /plugins/core/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/build.gradle.kts -------------------------------------------------------------------------------- /plugins/core/src/main/kotlin/BuildConfigValue.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/src/main/kotlin/BuildConfigValue.kt -------------------------------------------------------------------------------- /plugins/core/src/main/kotlin/Dependencies.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/src/main/kotlin/Dependencies.kt -------------------------------------------------------------------------------- /plugins/core/src/main/kotlin/modules.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/src/main/kotlin/modules.kt -------------------------------------------------------------------------------- /plugins/core/src/main/kotlin/repositories.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/src/main/kotlin/repositories.kt -------------------------------------------------------------------------------- /plugins/core/src/main/kotlin/versionsConfig.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/core/src/main/kotlin/versionsConfig.kt -------------------------------------------------------------------------------- /plugins/coverage/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/coverage/README.md -------------------------------------------------------------------------------- /plugins/coverage/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/coverage/build.gradle.kts -------------------------------------------------------------------------------- /plugins/coverage/tech-design.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/coverage/tech-design.svg -------------------------------------------------------------------------------- /plugins/detekt/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/detekt/build.gradle.kts -------------------------------------------------------------------------------- /plugins/environment-configuration/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/environment-configuration/build.gradle.kts -------------------------------------------------------------------------------- /plugins/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/gradle.properties -------------------------------------------------------------------------------- /plugins/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /plugins/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /plugins/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/gradlew -------------------------------------------------------------------------------- /plugins/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/gradlew.bat -------------------------------------------------------------------------------- /plugins/include-core-build/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/include-core-build/build.gradle.kts -------------------------------------------------------------------------------- /plugins/include-core-build/src/main/kotlin/Utils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/include-core-build/src/main/kotlin/Utils.kt -------------------------------------------------------------------------------- /plugins/jacoco/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/jacoco/README.md -------------------------------------------------------------------------------- /plugins/jacoco/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/jacoco/build.gradle.kts -------------------------------------------------------------------------------- /plugins/jacoco/scripts/cover2cover.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/jacoco/scripts/cover2cover.py -------------------------------------------------------------------------------- /plugins/mock-proxy/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/mock-proxy/build.gradle.kts -------------------------------------------------------------------------------- /plugins/publish-core-libraries/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/publish-core-libraries/build.gradle.kts -------------------------------------------------------------------------------- /plugins/publish-core-plugins/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /plugins/publish-core-plugins/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/publish-core-plugins/build.gradle.kts -------------------------------------------------------------------------------- /plugins/publish-core-plugins/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/publish-core-plugins/gradle.properties -------------------------------------------------------------------------------- /plugins/publish-core-plugins/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/publish-core-plugins/settings.gradle.kts -------------------------------------------------------------------------------- /plugins/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/settings.gradle.kts -------------------------------------------------------------------------------- /plugins/shared/src/main/kotlin/Utils.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/shared/src/main/kotlin/Utils.kt -------------------------------------------------------------------------------- /plugins/tests/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/tests/build.gradle.kts -------------------------------------------------------------------------------- /plugins/tests/src/main/kotlin/ProtonTestsPlugin.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/plugins/tests/src/main/kotlin/ProtonTestsPlugin.kt -------------------------------------------------------------------------------- /presentation-compose-tv/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation-compose-tv/build.gradle.kts -------------------------------------------------------------------------------- /presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /presentation/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/README.md -------------------------------------------------------------------------------- /presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/build.gradle.kts -------------------------------------------------------------------------------- /presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /presentation/src/main/assets/ignis_10k.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/assets/ignis_10k.txt -------------------------------------------------------------------------------- /presentation/src/main/res/animator/rotation.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/animator/rotation.xml -------------------------------------------------------------------------------- /presentation/src/main/res/color/ripple_norm.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/color/ripple_norm.xml -------------------------------------------------------------------------------- /presentation/src/main/res/color/ripple_norm_tab.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/color/ripple_norm_tab.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_close.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_close.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_envelope.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_envelope.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_label.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_label.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_loading.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_loading.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_logo_mail.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_logo_mail.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_logo_vpn.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_logo_vpn.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_proton_at.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_proton_at.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_proton_tv.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_proton_tv.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_shield.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_shield.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_sign_in.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_sign_in.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_sign_out.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_sign_out.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_storage.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_storage.xml -------------------------------------------------------------------------------- /presentation/src/main/res/drawable/ic_user.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/drawable/ic_user.xml -------------------------------------------------------------------------------- /presentation/src/main/res/layout/proton_input.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/layout/proton_input.xml -------------------------------------------------------------------------------- /presentation/src/main/res/layout/proton_toast.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/layout/proton_toast.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-be/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-be/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ca/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ca/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-cs/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-cs/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-da/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-da/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-de/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-el/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-el/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-es-rES/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-es-rES/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-es-rMX/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-es-rMX/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-fa/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-fa/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-fi/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-fi/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-fr/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-hi/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-hr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-hr/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-hu/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-hu/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-in/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-in/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-is/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-is/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-it/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ja/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ka/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ka/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-kab/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-kab/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ko/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-large/bools.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-large/bools.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-large/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-large/themes.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-nb-rNO/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-nb-rNO/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-night/bools.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-night/bools.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-night/colors.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-night/themes.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-nl/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-pl/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-pt-rBR/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-pt-rPT/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-pt-rPT/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ro/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ro/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-ru/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-sk/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-sk/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-sl/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-sl/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-sv-rSE/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-sv-rSE/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-tr/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-tr/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-uk/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-uk/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-v27/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-v27/colors.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-v28/ripples.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-v28/ripples.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-zh-rCN/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values-zh-rTW/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/attrs.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/bools.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/bools.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/config.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/drawables.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/drawables.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/ids.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/links.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/links.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/margins.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/margins.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/ripples.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/ripples.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/sizes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/sizes.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/styles-alerts.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/styles-alerts.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /presentation/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/presentation/src/main/res/values/themes.xml -------------------------------------------------------------------------------- /proguard-rules/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/proguard-rules/build.gradle.kts -------------------------------------------------------------------------------- /push/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/push/build.gradle.kts -------------------------------------------------------------------------------- /push/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/push/dagger/build.gradle.kts -------------------------------------------------------------------------------- /push/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/push/data/build.gradle.kts -------------------------------------------------------------------------------- /push/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/push/domain/build.gradle.kts -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/renovate.json -------------------------------------------------------------------------------- /report/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/README.md -------------------------------------------------------------------------------- /report/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/build.gradle.kts -------------------------------------------------------------------------------- /report/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/dagger/build.gradle.kts -------------------------------------------------------------------------------- /report/dagger/src/androidTest/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/dagger/src/androidTest/AndroidManifest.xml -------------------------------------------------------------------------------- /report/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/data/build.gradle.kts -------------------------------------------------------------------------------- /report/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/domain/build.gradle.kts -------------------------------------------------------------------------------- /report/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/presentation/build.gradle.kts -------------------------------------------------------------------------------- /report/presentation/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/presentation/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /report/presentation/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/presentation/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /report/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/report/test/build.gradle.kts -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /telemetry/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/telemetry/build.gradle.kts -------------------------------------------------------------------------------- /telemetry/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/telemetry/dagger/build.gradle.kts -------------------------------------------------------------------------------- /telemetry/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/telemetry/data/build.gradle.kts -------------------------------------------------------------------------------- /telemetry/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/telemetry/domain/build.gradle.kts -------------------------------------------------------------------------------- /telemetry/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/telemetry/presentation/build.gradle.kts -------------------------------------------------------------------------------- /test/android/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/android/build.gradle.kts -------------------------------------------------------------------------------- /test/android/instrumented/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/android/instrumented/build.gradle.kts -------------------------------------------------------------------------------- /test/kotlin/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/kotlin/build.gradle.kts -------------------------------------------------------------------------------- /test/mock-proxy/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /test/mock-proxy/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/mock-proxy/README.md -------------------------------------------------------------------------------- /test/mock-proxy/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/mock-proxy/build.gradle.kts -------------------------------------------------------------------------------- /test/mock-proxy/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/mock-proxy/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /test/performance/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/performance/build.gradle.kts -------------------------------------------------------------------------------- /test/quark/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/quark/build.gradle.kts -------------------------------------------------------------------------------- /test/quark/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/quark/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /test/rule/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/rule/README.md -------------------------------------------------------------------------------- /test/rule/api/test-rule.api: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/rule/api/test-rule.api -------------------------------------------------------------------------------- /test/rule/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/test/rule/build.gradle.kts -------------------------------------------------------------------------------- /tools/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/README.md -------------------------------------------------------------------------------- /tools/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/build.gradle.kts -------------------------------------------------------------------------------- /tools/conventional-commits/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/conventional-commits/build.gradle.kts -------------------------------------------------------------------------------- /tools/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /tools/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /tools/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/gradlew -------------------------------------------------------------------------------- /tools/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/gradlew.bat -------------------------------------------------------------------------------- /tools/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/tools/settings.gradle.kts -------------------------------------------------------------------------------- /user-recovery/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/dagger/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/data/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/data/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/data/src/main/res/values/config.xml -------------------------------------------------------------------------------- /user-recovery/data/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/data/src/main/res/values/public.xml -------------------------------------------------------------------------------- /user-recovery/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/domain/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/presentation/build.gradle.kts -------------------------------------------------------------------------------- /user-recovery/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-recovery/test/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/dagger/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/data/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/domain/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/presentation-compose/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/presentation-compose/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/presentation/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/presentation/build.gradle.kts -------------------------------------------------------------------------------- /user-settings/test/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user-settings/test/build.gradle.kts -------------------------------------------------------------------------------- /user/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user/build.gradle.kts -------------------------------------------------------------------------------- /user/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user/dagger/build.gradle.kts -------------------------------------------------------------------------------- /user/data/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user/data/build.gradle.kts -------------------------------------------------------------------------------- /user/domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/user/domain/build.gradle.kts -------------------------------------------------------------------------------- /util/android/dagger/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/dagger/build.gradle.kts -------------------------------------------------------------------------------- /util/android/datetime/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/datetime/build.gradle.kts -------------------------------------------------------------------------------- /util/android/device/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/device/build.gradle.kts -------------------------------------------------------------------------------- /util/android/sentry/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/sentry/build.gradle.kts -------------------------------------------------------------------------------- /util/android/sentry/src/main/res/values/config.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/sentry/src/main/res/values/config.xml -------------------------------------------------------------------------------- /util/android/sentry/src/main/res/values/public.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/sentry/src/main/res/values/public.xml -------------------------------------------------------------------------------- /util/android/shared-preferences/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/shared-preferences/build.gradle.kts -------------------------------------------------------------------------------- /util/android/strict-mode/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/strict-mode/build.gradle.kts -------------------------------------------------------------------------------- /util/android/work-manager/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/android/work-manager/build.gradle.kts -------------------------------------------------------------------------------- /util/kotlin/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ProtonMail/protoncore_android/HEAD/util/kotlin/build.gradle.kts --------------------------------------------------------------------------------