From 83303a1b981c88f956a2884cfec4d1729ea4e636 Mon Sep 17 00:00:00 2001
From: a
Date: Mon, 11 May 2026 20:27:45 -0700
Subject: [PATCH] package rename refactor
---
README.md | 136 +++++-----
app/build.gradle | 8 +-
app/proguard-rules.pro | 24 +-
.../app/App.java | 8 +-
.../app/Logger.java | 2 +-
.../app/RedactingDebugTree.java | 2 +-
.../app/api/read/ApiCallback.java | 2 +-
.../app/api/read/ApiClient.java | 14 +-
.../app/api/read/ApiException.java | 2 +-
.../app/api/read/ApiResponse.java | 2 +-
.../app/api/read/Configuration.java | 2 +-
.../app/api/read/GzipRequestInterceptor.java | 2 +-
.../app/api/read/JSON.java | 2 +-
.../app/api/read/Pair.java | 2 +-
.../app/api/read/ProgressRequestBody.java | 2 +-
.../app/api/read/ProgressResponseBody.java | 2 +-
.../app/api/read/StringUtil.java | 2 +-
.../app/api/read/api/AccountsApi.java | 26 +-
.../app/api/read/auth/ApiKeyAuth.java | 4 +-
.../app/api/read/auth/Authentication.java | 4 +-
.../app/api/read/auth/HttpBasicAuth.java | 4 +-
.../AccountPendingTransactionSummary.java | 2 +-
...ountPendingTransactionSummaryResponse.java | 2 +-
.../read/model/AccountTokenListResponse.java | 2 +-
.../api/read/model/AccountTokenSummary.java | 2 +-
.../read/model/AccountTransactionSummary.java | 2 +-
.../AccountTransactionSummaryResponse.java | 2 +-
.../app/api/read/model/Balance.java | 2 +-
.../app/api/read/model/BalanceResponse.java | 2 +-
.../api/read/model/ErrorResponseModel.java | 2 +-
.../app/api/read/model/Receipt.java | 2 +-
.../app/api/read/model/TransactionType.java | 2 +-
.../read/AccountBalanceRestTask.java | 14 +-
.../read/AccountPendingTxnRestTask.java | 12 +-
.../asynctask/read/AccountTxnRestTask.java | 12 +-
.../read/ListAccountTokensRestTask.java | 12 +-
.../app/backup/BackupExecutor.java | 34 +--
.../app/backup/CloudBackupManager.java | 10 +-
.../app/backup/WalletBackupAgent.java | 4 +-
.../app/bridge/BridgeCallback.java | 2 +-
.../app/bridge/QuantumCoinJSBridge.java | 2 +-
.../app/bridge/WebViewManager.java | 28 +-
.../app/entity/ErrorEnvelope.java | 2 +-
.../app/entity/ServiceException.java | 2 +-
.../app/events/NetworkChangeBroadcaster.java | 6 +-
.../interact/BlockchainNetworkInteract.java | 2 +-
.../app/interact/JsonInteract.java | 2 +-
.../app/interact/KeyInteract.java | 6 +-
.../app/keystorage/Aead.java | 2 +-
.../AndroidKeystoreGenerationCounter.java | 2 +-
.../keystorage/DefaultSecureRandomSource.java | 2 +-
.../app/keystorage/MacUtil.java | 2 +-
.../app/keystorage/SecureRandomSource.java | 2 +-
.../app/keystorage/SecureStorage.java | 24 +-
.../keystorage/TooManyAttemptsException.java | 4 +-
.../app/keystorage/UnlockCoordinator.java | 26 +-
.../keystorage/WrongPasswordException.java | 2 +-
.../app/model/BlockchainNetwork.java | 2 +-
.../app/networking/NetworkSnapshot.java | 4 +-
.../app/networking/UrlBuilder.java | 4 +-
.../app/security/BundleIntegrity.java | 4 +-
.../app/security/CredentialIdentifier.java | 2 +-
.../app/security/ScreenCaptureGuard.java | 2 +-
.../app/security/TamperGate.java | 4 +-
.../app/security/TamperGatePolicy.java | 4 +-
.../app/security/TlsPinning.java | 2 +-
.../app/security/UnlockAttemptLimiter.java | 8 +-
.../generated/GeneratedBundleHash.java | 2 +-
.../app/services/IKeyService.java | 4 +-
.../app/services/KeyService.java | 6 +-
.../app/storage/AtomicSlotWriter.java | 2 +-
.../app/strongbox/StrongboxFileCodec.java | 10 +-
.../app/strongbox/StrongboxPadding.java | 2 +-
.../app/strongbox/StrongboxPayload.java | 6 +-
.../strongbox/StrongboxRedundancyState.java | 2 +-
.../app/strongbox/WalletEntryCodec.java | 4 +-
.../app/tokens/RecognizedTokens.java | 2 +-
.../tokens/StablecoinImpersonatorFilter.java | 4 +-
.../app/utils/AccountTransactionUi.java | 6 +-
.../app/utils/CoinUtils.java | 2 +-
.../app/utils/GlobalMethods.java | 14 +-
.../app/utils/GridAutoFitLayoutManager.java | 2 +-
.../app/utils/NetworkPersistence.java | 12 +-
.../app/utils/PrefConnect.java | 4 +-
.../app/utils/SecureClipboard.java | 6 +-
.../app/utils/Utility.java | 2 +-
.../app/ux/SnapshotRedactor.java | 2 +-
.../app/view/activities/HomeActivity.java | 136 +++++-----
.../AccountPendingTransactionAdapter.java | 18 +-
.../adapter/AccountTransactionAdapter.java | 18 +-
.../adapter/BlockchainNetworkAdapter.java | 8 +-
.../adapter/SeedWordAutoCompleteAdapter.java | 2 +-
.../app/view/adapter/TokenAdapter.java | 12 +-
.../app/view/adapter/WalletAdapter.java | 14 +-
.../app/view/dialog/BackupPasswordDialog.java | 56 ++--
.../view/dialog/TransactionReviewDialog.java | 14 +-
.../app/view/dialog/UnlockDialogs.java | 4 +-
.../app/view/dialog/WaitDialog.java | 4 +-
.../fragment/AccountTransactionsFragment.java | 30 +--
.../view/fragment/BackupOptionsFragment.java | 14 +-
.../BlockchainNetworkAddFragment.java | 32 +--
.../BlockchainNetworkDialogFragment.java | 50 ++--
.../fragment/BlockchainNetworkFragment.java | 10 +-
.../app/view/fragment/HomeMainFragment.java | 28 +-
.../app/view/fragment/HomeStartFragment.java | 8 +-
.../app/view/fragment/HomeWalletFragment.java | 244 +++++++++---------
.../MessageInformationDialogFragment.java | 8 +-
.../app/view/fragment/ReceiveFragment.java | 12 +-
.../view/fragment/RevealWalletFragment.java | 22 +-
.../app/view/fragment/SendFragment.java | 98 +++----
.../app/view/fragment/SettingsFragment.java | 20 +-
.../app/view/fragment/WalletsFragment.java | 50 ++--
.../widget/VerticalScrollIndicatorView.java | 2 +-
.../viewmodel/BlockchainNetworkViewModel.java | 6 +-
.../app/viewmodel/JsonViewModel.java | 6 +-
.../app/viewmodel/KeyViewModel.java | 14 +-
.../layout/account_transactions_fragment.xml | 4 +-
.../main/res/layout/home_main_fragment.xml | 4 +-
.../app/ExampleUnitTest.java | 2 +-
.../app/LoggerFacadeLockdownTest.java | 6 +-
.../app/RedactingDebugTreeTest.java | 2 +-
.../app/api/read/ApiDecodingTest.java | 18 +-
.../AccountBalanceRestTaskHardeningTest.java | 10 +-
.../backup/BackupExecutorExportPathTest.java | 2 +-
.../backup/CloudBackupManagerScanTest.java | 2 +-
.../app/bridge/SendBridgeContractTest.java | 4 +-
.../app/bridge/SendSurfaceLockdownTest.java | 2 +-
.../app/interact/JsonInteractParityTest.java | 2 +-
.../AddNetworkPersistsToStrongboxTest.java | 8 +-
.../app/keystorage/MacUtilTest.java | 2 +-
.../UrlBuilderHostInvariantTest.java | 4 +-
.../networking/UrlBuilderLockdownTest.java | 2 +-
.../app/networking/UrlBuilderTest.java | 2 +-
.../BackupRestoreLimiterRecordingTest.java | 4 +-
...redentialIdentifierUsernameParityTest.java | 2 +-
.../TlsPinningConnectionSpecTest.java | 2 +-
.../security/UnlockAttemptLimiterTest.java | 2 +-
.../WalletCreationPasswordWhitespaceTest.java | 8 +-
.../DeterministicSecureRandomSource.java | 4 +-
.../DeterministicSecureRandomSourceTest.java | 2 +-
...trongboxFileCodecScryptValidationTest.java | 2 +-
.../app/strongbox/StrongboxPaddingTest.java | 2 +-
.../app/strongbox/StrongboxPayloadV3Test.java | 2 +-
.../StrongboxPortabilityVectorTest.java | 6 +-
.../app/strongbox/WalletEntryCodecTest.java | 4 +-
.../StablecoinImpersonatorFilterTest.java | 10 +-
.../app/utils/CoinUtilsCapsTest.java | 2 +-
.../SecureClipboardSeedGateLockdownTest.java | 4 +-
.../HomeWalletFragmentRestoreConfirmTest.java | 20 +-
tests/fixtures/strongbox-v3-vectors/INDEX.md | 2 +-
150 files changed, 857 insertions(+), 857 deletions(-)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/App.java (90%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/Logger.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/RedactingDebugTree.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ApiCallback.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ApiClient.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ApiException.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ApiResponse.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/Configuration.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/GzipRequestInterceptor.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/JSON.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/Pair.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ProgressRequestBody.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ProgressResponseBody.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/StringUtil.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/api/AccountsApi.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/auth/ApiKeyAuth.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/auth/Authentication.java (87%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/auth/HttpBasicAuth.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountPendingTransactionSummary.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountPendingTransactionSummaryResponse.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountTokenListResponse.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountTokenSummary.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountTransactionSummary.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/AccountTransactionSummaryResponse.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/Balance.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/BalanceResponse.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/ErrorResponseModel.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/Receipt.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/model/TransactionType.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/asynctask/read/AccountBalanceRestTask.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/asynctask/read/AccountPendingTxnRestTask.java (91%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/asynctask/read/AccountTxnRestTask.java (91%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/asynctask/read/ListAccountTokensRestTask.java (90%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/backup/BackupExecutor.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/backup/CloudBackupManager.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/backup/WalletBackupAgent.java (85%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/bridge/BridgeCallback.java (71%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/bridge/QuantumCoinJSBridge.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/bridge/WebViewManager.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/entity/ErrorEnvelope.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/entity/ServiceException.java (82%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/events/NetworkChangeBroadcaster.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/interact/BlockchainNetworkInteract.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/interact/JsonInteract.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/interact/KeyInteract.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/Aead.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/AndroidKeystoreGenerationCounter.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/DefaultSecureRandomSource.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/MacUtil.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/SecureRandomSource.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/SecureStorage.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/TooManyAttemptsException.java (86%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/UnlockCoordinator.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/WrongPasswordException.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/model/BlockchainNetwork.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/networking/NetworkSnapshot.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/networking/UrlBuilder.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/BundleIntegrity.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/CredentialIdentifier.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/ScreenCaptureGuard.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/TamperGate.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/TamperGatePolicy.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/TlsPinning.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/UnlockAttemptLimiter.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/security/generated/GeneratedBundleHash.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/services/IKeyService.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/services/KeyService.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/storage/AtomicSlotWriter.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxFileCodec.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxPadding.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxPayload.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxRedundancyState.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/WalletEntryCodec.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/tokens/RecognizedTokens.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/tokens/StablecoinImpersonatorFilter.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/AccountTransactionUi.java (91%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/CoinUtils.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/GlobalMethods.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/GridAutoFitLayoutManager.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/NetworkPersistence.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/PrefConnect.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/SecureClipboard.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/utils/Utility.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/ux/SnapshotRedactor.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/activities/HomeActivity.java (93%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/AccountPendingTransactionAdapter.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/AccountTransactionAdapter.java (93%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/BlockchainNetworkAdapter.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/SeedWordAutoCompleteAdapter.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/TokenAdapter.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/adapter/WalletAdapter.java (93%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/dialog/BackupPasswordDialog.java (92%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/dialog/TransactionReviewDialog.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/dialog/UnlockDialogs.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/dialog/WaitDialog.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/AccountTransactionsFragment.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/BackupOptionsFragment.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/BlockchainNetworkAddFragment.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/BlockchainNetworkDialogFragment.java (90%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/BlockchainNetworkFragment.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/HomeMainFragment.java (96%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/HomeStartFragment.java (98%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/HomeWalletFragment.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/MessageInformationDialogFragment.java (94%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/ReceiveFragment.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/RevealWalletFragment.java (97%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/SendFragment.java (95%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/SettingsFragment.java (93%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/WalletsFragment.java (90%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/view/widget/VerticalScrollIndicatorView.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/viewmodel/BlockchainNetworkViewModel.java (91%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/viewmodel/JsonViewModel.java (99%)
rename app/src/main/java/com/{quantumcoinwallet => quantumcoin}/app/viewmodel/KeyViewModel.java (92%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/ExampleUnitTest.java (90%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/LoggerFacadeLockdownTest.java (96%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/RedactingDebugTreeTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/api/read/ApiDecodingTest.java (91%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java (95%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/backup/BackupExecutorExportPathTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/backup/CloudBackupManagerScanTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/bridge/SendBridgeContractTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/bridge/SendSurfaceLockdownTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/interact/JsonInteractParityTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/AddNetworkPersistsToStrongboxTest.java (96%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/keystorage/MacUtilTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/networking/UrlBuilderHostInvariantTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/networking/UrlBuilderLockdownTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/networking/UrlBuilderTest.java (96%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/security/BackupRestoreLimiterRecordingTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/security/CredentialIdentifierUsernameParityTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/security/TlsPinningConnectionSpecTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/security/UnlockAttemptLimiterTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/security/WalletCreationPasswordWhitespaceTest.java (95%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/DeterministicSecureRandomSource.java (96%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/DeterministicSecureRandomSourceTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxFileCodecScryptValidationTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxPaddingTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxPayloadV3Test.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/StrongboxPortabilityVectorTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/strongbox/WalletEntryCodecTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/tokens/StablecoinImpersonatorFilterTest.java (97%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/utils/CoinUtilsCapsTest.java (98%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/utils/SecureClipboardSeedGateLockdownTest.java (99%)
rename app/src/test/java/com/{quantumcoinwallet => quantumcoin}/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java (98%)
diff --git a/README.md b/README.md
index 298cbb1..d7247f3 100644
--- a/README.md
+++ b/README.md
@@ -62,7 +62,7 @@ signed transaction is reproducible across both clients.
- **Multiple wallets per install.** Stored in a single
layered-encrypted strongbox; each wallet is addressable via the
Wallets screen
- ([`view/fragment/WalletsFragment.java`](app/src/main/java/com/quantumcoinwallet/app/view/fragment/WalletsFragment.java)).
+ ([`view/fragment/WalletsFragment.java`](app/src/main/java/com/quantumcoin/app/view/fragment/WalletsFragment.java)).
- **New wallet creation** with a 32-word seed phrase
(`QuantumCoinSDK.Wallet.createRandom` →
`SeedWordsSDK.getWordListFromSeedArray`). Seed verification quiz
@@ -73,7 +73,7 @@ signed transaction is reproducible across both clients.
- **Restore from `.wallet` backup file** — single file or a folder
via the Storage Access Framework; batched password prompt walks
through every wallet in the picked location
- ([`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java)).
+ ([`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java)).
- **Reveal seed words** (gated by tap-to-reveal +
`setImportantForAccessibility(NO_HIDE_DESCENDANTS)` so
TalkBack never reads the words aloud, plus
@@ -93,18 +93,18 @@ signed transaction is reproducible across both clients.
Tokens** tabs; impersonator filter blocks any token whose
symbol or name resembles a stablecoin unless the contract is
on the recognized allow-list
- ([`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java),
- [`tokens/StablecoinImpersonatorFilter.java`](app/src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java)).
+ ([`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java),
+ [`tokens/StablecoinImpersonatorFilter.java`](app/src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java)).
- **Transaction review dialog** with checksum-cased addresses,
fee summary, and explicit contract-address row for token sends
- ([`view/fragment/SendFragment.java`](app/src/main/java/com/quantumcoinwallet/app/view/fragment/SendFragment.java)).
+ ([`view/fragment/SendFragment.java`](app/src/main/java/com/quantumcoin/app/view/fragment/SendFragment.java)).
- **QR-code scanning** for recipient addresses via CameraX +
ML Kit Barcode Scanning (`android.permission.CAMERA` declared in
`AndroidManifest.xml`).
- **Receive screen** with a `quantumcoin:` URI QR code and a
centred copy-to-clipboard control with 30-second auto-clear
- ([`view/fragment/ReceiveFragment.java`](app/src/main/java/com/quantumcoinwallet/app/view/fragment/ReceiveFragment.java),
- [`utils/SecureClipboard.java`](app/src/main/java/com/quantumcoinwallet/app/utils/SecureClipboard.java)).
+ ([`view/fragment/ReceiveFragment.java`](app/src/main/java/com/quantumcoin/app/view/fragment/ReceiveFragment.java),
+ [`utils/SecureClipboard.java`](app/src/main/java/com/quantumcoin/app/utils/SecureClipboard.java)).
### Network configuration
@@ -116,12 +116,12 @@ signed transaction is reproducible across both clients.
re-asserted at "Submit" time via a `NetworkSnapshot` so a
network switch in the middle of the signing flow aborts rather
than producing a mis-bound transaction
- ([`networking/NetworkSnapshot.java`](app/src/main/java/com/quantumcoinwallet/app/networking/NetworkSnapshot.java)).
+ ([`networking/NetworkSnapshot.java`](app/src/main/java/com/quantumcoin/app/networking/NetworkSnapshot.java)).
- **Live network-change notifications** via `LocalBroadcastManager`
push the new active network into every visible Fragment without
an Activity restart; the broadcaster is process-local by design
so other apps cannot observe or forge network-state events
- ([`events/NetworkChangeBroadcaster.java`](app/src/main/java/com/quantumcoinwallet/app/events/NetworkChangeBroadcaster.java)).
+ ([`events/NetworkChangeBroadcaster.java`](app/src/main/java/com/quantumcoin/app/events/NetworkChangeBroadcaster.java)).
### Backup and restore
@@ -135,7 +135,7 @@ signed transaction is reproducible across both clients.
`Uri` permission grant; an explicit "submitted to cloud, sync
may take time" dialog runs after cloud writes so the user
knows the file isn't yet on the provider's servers
- ([`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java)).
+ ([`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java)).
- **Restore from cloud folder** enumerates `.wallet` files in the
remembered folder and runs the same batched-decrypt loop the
file restore uses.
@@ -147,7 +147,7 @@ signed transaction is reproducible across both clients.
immediately calls `BackupManager.dataChanged()` so the include
rule takes effect on the next backup cycle without waiting for
the next strongbox write
- ([`backup/WalletBackupAgent.java`](app/src/main/java/com/quantumcoinwallet/app/backup/WalletBackupAgent.java)).
+ ([`backup/WalletBackupAgent.java`](app/src/main/java/com/quantumcoin/app/backup/WalletBackupAgent.java)).
- **Cross-platform backup compatibility.** Per-wallet exported
`.wallet` files are produced by the shared
`quantumcoin-bundle.js` `Wallet.encryptSync` call on both
@@ -166,8 +166,8 @@ signed transaction is reproducible across both clients.
- English (`en_us`) localization with 230+ keys
([`app/src/main/res/raw/en_us.json`](app/src/main/res/raw/en_us.json),
- [`interact/JsonInteract.java`](app/src/main/java/com/quantumcoinwallet/app/interact/JsonInteract.java),
- [`viewmodel/JsonViewModel.java`](app/src/main/java/com/quantumcoinwallet/app/viewmodel/JsonViewModel.java)).
+ [`interact/JsonInteract.java`](app/src/main/java/com/quantumcoin/app/interact/JsonInteract.java),
+ [`viewmodel/JsonViewModel.java`](app/src/main/java/com/quantumcoin/app/viewmodel/JsonViewModel.java)).
- TalkBack / accessibility deliberately suppressed on the four
seed-handling surfaces (reveal, new-seed, verify, restore) via
`setImportantForAccessibility(NO_HIDE_DESCENDANTS)` so the
@@ -197,12 +197,12 @@ contract.
- **AES-256-GCM** for every encrypted-at-rest blob, in a single
Java owner so there is one review surface for AEAD usage
- ([`keystorage/Aead.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java)).
+ ([`keystorage/Aead.java`](app/src/main/java/com/quantumcoin/app/keystorage/Aead.java)).
- **scrypt KDF** at `N=2^18, r=8, p=1, keyLen=32` — runs inside
the shared JS bundle so the Android and iOS wallets derive
identical keys for identical passwords. Min-bound enforced at
the bridge boundary so a future debug-weakened call fails loud
- ([`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java),
+ ([`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java),
[`app/src/main/assets/bridge.html`](app/src/main/assets/bridge.html) `scryptDerive`).
- **Brute-force lockout** with a stair-step backoff
(typo-tolerant for the first four attempts; 30 s, 60 s, 2 min,
@@ -220,8 +220,8 @@ contract.
flows in `HomeWalletFragment` (`STRONGBOX_UNLOCK` and
`BACKUP_DECRYPT` channels) so an attacker cannot bypass the
rate limit by mounting attempts through the restore dialog
- ([`security/UnlockAttemptLimiter.java`](app/src/main/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiter.java),
- [`view/fragment/HomeWalletFragment.java`](app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragment.java)
+ ([`security/UnlockAttemptLimiter.java`](app/src/main/java/com/quantumcoin/app/security/UnlockAttemptLimiter.java),
+ [`view/fragment/HomeWalletFragment.java`](app/src/main/java/com/quantumcoin/app/view/fragment/HomeWalletFragment.java)
`attemptBatchDecrypt` / `performRestoreFromUri`).
- **Tamper gate** — multi-signal root / debugger-attached / Frida
detector. Requires ≥2 independent root signals before flagging;
@@ -230,7 +230,7 @@ contract.
(`QuantumCoinJSBridge.sendTransaction`) calls
`TamperGate.assertSafeToSign()` before the private key reaches
the bridge
- ([`security/TamperGate.java`](app/src/main/java/com/quantumcoinwallet/app/security/TamperGate.java)).
+ ([`security/TamperGate.java`](app/src/main/java/com/quantumcoin/app/security/TamperGate.java)).
- **JS bundle SHA-256 pin** — the bundle owns every signing
primitive, so its bytes are hashed at build time by the
`embedBundleHash` Gradle task, embedded in
@@ -238,7 +238,7 @@ contract.
and inherits the APK signature), re-hashed at runtime, and the
bridge refuses to initialize on mismatch
([`app/build.gradle`](app/build.gradle) `embedBundleHash`,
- [`security/BundleIntegrity.java`](app/src/main/java/com/quantumcoinwallet/app/security/BundleIntegrity.java)).
+ [`security/BundleIntegrity.java`](app/src/main/java/com/quantumcoin/app/security/BundleIntegrity.java)).
- **Binary key channel** between Java and JS — private/public key
bytes stage as `Uint8Array` via a synchronous custom-scheme
pull rather than base64 strings, so JS can `.fill(0)` them
@@ -247,8 +247,8 @@ contract.
`pullPayloadBinary`) is grep-guarded by a CI test that fails
the build if a sensitive arg is ever passed inline through
`evaluateJavascript`
- ([`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java),
- [`app/src/test/java/com/quantumcoinwallet/app/bridge/SendSurfaceLockdownTest.java`](app/src/test/java/com/quantumcoinwallet/app/bridge/SendSurfaceLockdownTest.java)).
+ ([`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java),
+ [`app/src/test/java/com/quantumcoin/app/bridge/SendSurfaceLockdownTest.java`](app/src/test/java/com/quantumcoin/app/bridge/SendSurfaceLockdownTest.java)).
- **Strict TLS 1.3-only floor on every Java/Kotlin TLS client.**
`TlsPinning.applyTo(...)` installs an explicit
`ConnectionSpec` built from `RESTRICTED_TLS` and narrowed to
@@ -260,7 +260,7 @@ contract.
floor that guarantees the platform `SSLEngine` can negotiate
TLS 1.3 natively, so the strict requirement never starves a
legitimate device
- ([`security/TlsPinning.java`](app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java) `TLS_1_3_ONLY`,
+ ([`security/TlsPinning.java`](app/src/main/java/com/quantumcoin/app/security/TlsPinning.java) `TLS_1_3_ONLY`,
[`app/build.gradle`](app/build.gradle) `minSdk`).
- **Post-quantum hybrid key exchange (Android 14+).** The strict
spec inherits the cipher-suite allow-list from `RESTRICTED_TLS`
@@ -288,7 +288,7 @@ contract.
the RPC would hard-code centralization that the project
explicitly rejects. Baseline TLS chain validation still applies
on every endpoint
- ([`security/TlsPinning.java`](app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java)).
+ ([`security/TlsPinning.java`](app/src/main/java/com/quantumcoin/app/security/TlsPinning.java)).
- **Strict hostname verification** on every `ApiClient` HTTPS
request. The `ApiClient.applySslSettings()` builder
intentionally does NOT call `.hostnameVerifier(...)` — by
@@ -297,7 +297,7 @@ contract.
`OkHostnameVerifier.INSTANCE` (strict RFC 2818 / RFC 6125
hostname matching against SubjectAlternativeName entries). A
Javadoc-grade audit comment in
- [`ApiClient.java`](app/src/main/java/com/quantumcoinwallet/app/api/read/ApiClient.java)
+ [`ApiClient.java`](app/src/main/java/com/quantumcoin/app/api/read/ApiClient.java)
documents the contract and bans any future
`NoopHostnameVerifier`-style regression.
- **Network-security config** declares `usesCleartextTraffic=false`
@@ -310,7 +310,7 @@ contract.
- **Two-slot rotating writer** for the strongbox file, so a power
cut between rename and journal-flush still leaves a valid
previous-good slot
- ([`storage/AtomicSlotWriter.java`](app/src/main/java/com/quantumcoinwallet/app/storage/AtomicSlotWriter.java)).
+ ([`storage/AtomicSlotWriter.java`](app/src/main/java/com/quantumcoin/app/storage/AtomicSlotWriter.java)).
- **`FileChannel.force(true)`** on every persisted file (the
Android equivalent of iOS `F_FULLFSYNC`) so bytes reach the
storage media, not just the page cache. The parent directory
@@ -324,12 +324,12 @@ contract.
- **File-level MAC** with a UI-block hash binding so an attacker
who swaps slot files' UI prefs cannot re-bind them under the
original MAC
- ([`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java)).
+ ([`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java)).
- **Anti-rollback generation counter** — every successful unlock
validates a monotonic generation HMAC bound to an
AndroidKeystore-resident key, so a slot file copied off the
device and replayed is rejected at the next unlock
- ([`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java)).
+ ([`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java)).
- **App-private `Context.getFilesDir()/strongbox/`** for every
slot file. Auto-Backup inclusion is governed explicitly by
[`app/src/main/res/xml/backup_rules.xml`](app/src/main/res/xml/backup_rules.xml)
@@ -339,7 +339,7 @@ contract.
encrypted file size leaks no information about the wallet
count. The bucket is sized to comfortably hold ≥256 wallets
with PQC private/public key pairs (≈10 KiB each)
- ([`strongbox/StrongboxPadding.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPadding.java)).
+ ([`strongbox/StrongboxPadding.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPadding.java)).
### UI hardening
@@ -348,28 +348,28 @@ contract.
Callbacks.onActivityPaused` / removed in `onActivityResumed`,
so the system-captured Recents card never contains seed words,
balances, or addresses
- ([`ux/SnapshotRedactor.java`](app/src/main/java/com/quantumcoinwallet/app/ux/SnapshotRedactor.java)).
+ ([`ux/SnapshotRedactor.java`](app/src/main/java/com/quantumcoin/app/ux/SnapshotRedactor.java)).
- **`FLAG_SECURE` audit** across every Activity that may render a
seed phrase, so the OS refuses to include the screen in
screenshots, screen recordings, and casts
- ([`view/activities/HomeActivity.java`](app/src/main/java/com/quantumcoinwallet/app/view/activities/HomeActivity.java)).
+ ([`view/activities/HomeActivity.java`](app/src/main/java/com/quantumcoin/app/view/activities/HomeActivity.java)).
- **Screen-capture observer** uses `DisplayManager` to detect
secondary displays / mirroring and exposes an `isCapturing`
signal that seed surfaces consult on every API level (no API
33+ requirement)
- ([`security/ScreenCaptureGuard.java`](app/src/main/java/com/quantumcoinwallet/app/security/ScreenCaptureGuard.java)).
+ ([`security/ScreenCaptureGuard.java`](app/src/main/java/com/quantumcoin/app/security/ScreenCaptureGuard.java)).
- **Clipboard auto-expiry** for copied seed phrases (30s
countdown; cleared on view-disappear); copied addresses go
through the same `SecureClipboard` facade so a future blanket
policy change has one entry point
- ([`utils/SecureClipboard.java`](app/src/main/java/com/quantumcoinwallet/app/utils/SecureClipboard.java)).
+ ([`utils/SecureClipboard.java`](app/src/main/java/com/quantumcoin/app/utils/SecureClipboard.java)).
- **Token impersonation defenses** — recognized-token allow-list
by **contract address** (not name/symbol), plus a stablecoin
impersonator hard-suppressor that blocks any token whose label
resembles `USDT` / `USDC` / `Tether` / etc. unless its
contract is on the allow-list
- ([`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java),
- [`tokens/StablecoinImpersonatorFilter.java`](app/src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java)).
+ ([`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java),
+ [`tokens/StablecoinImpersonatorFilter.java`](app/src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java)).
- **Network-snapshot capture at Review time** — the chain id and
RPC endpoint the user confirmed are re-asserted at Submit time
via `NetworkSnapshot`; a network switch mid-flight aborts
@@ -377,12 +377,12 @@ contract.
- **Logger facade** — every direct `android.util.Log.*` and
`Timber.tag(...).*` call in security-sensitive files is routed
through a single
- [`Logger`](app/src/main/java/com/quantumcoinwallet/app/Logger.java)
+ [`Logger`](app/src/main/java/com/quantumcoin/app/Logger.java)
facade. Release builds drop VERBOSE/DEBUG/INFO entirely and
replace WARN/ERROR payload with an `evt` marker; debug builds
apply address / tx-hash / long-hex / base64 redaction before
the message reaches logcat. A CI grep guard
- ([`LoggerFacadeLockdownTest`](app/src/test/java/com/quantumcoinwallet/app/LoggerFacadeLockdownTest.java))
+ ([`LoggerFacadeLockdownTest`](app/src/test/java/com/quantumcoin/app/LoggerFacadeLockdownTest.java))
fails the build if a stray direct `Log.*` call slips into a
security-sensitive file.
@@ -423,11 +423,11 @@ invariant tests.
| Layer | Responsibility | Source |
| --- | --- | --- |
-| L1 — Storage | Two-slot atomic-rotate with deep verify | [`storage/AtomicSlotWriter.java`](app/src/main/java/com/quantumcoinwallet/app/storage/AtomicSlotWriter.java) |
-| L2 — Schema | Outer file envelope, file-level MAC, padding | [`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java), [`strongbox/StrongboxPadding.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPadding.java) |
-| L3 — Crypto | AES-256-GCM (JCE), HMAC-SHA-256 (JCE), HKDF-SHA-256 (BouncyCastle), scrypt (JS SDK) | [`keystorage/Aead.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java), [`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java), bridge `scryptDerive` ([`assets/bridge.html`](app/src/main/assets/bridge.html)) |
-| L4 — Unlock coordinator | scrypt → unwrap mainKey → install snapshot; re-derive per write; zeroize | [`keystorage/UnlockCoordinator.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java) |
-| L5 — Strongbox accessor | In-memory typed snapshot, inner checksum, per-wallet wire codec | [`keystorage/SecureStorage.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureStorage.java), [`strongbox/StrongboxPayload.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPayload.java), [`strongbox/WalletEntryCodec.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodec.java) |
+| L1 — Storage | Two-slot atomic-rotate with deep verify | [`storage/AtomicSlotWriter.java`](app/src/main/java/com/quantumcoin/app/storage/AtomicSlotWriter.java) |
+| L2 — Schema | Outer file envelope, file-level MAC, padding | [`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java), [`strongbox/StrongboxPadding.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPadding.java) |
+| L3 — Crypto | AES-256-GCM (JCE), HMAC-SHA-256 (JCE), HKDF-SHA-256 (BouncyCastle), scrypt (JS SDK) | [`keystorage/Aead.java`](app/src/main/java/com/quantumcoin/app/keystorage/Aead.java), [`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java), bridge `scryptDerive` ([`assets/bridge.html`](app/src/main/assets/bridge.html)) |
+| L4 — Unlock coordinator | scrypt → unwrap mainKey → install snapshot; re-derive per write; zeroize | [`keystorage/UnlockCoordinator.java`](app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java) |
+| L5 — Strongbox accessor | In-memory typed snapshot, inner checksum, per-wallet wire codec | [`keystorage/SecureStorage.java`](app/src/main/java/com/quantumcoin/app/keystorage/SecureStorage.java), [`strongbox/StrongboxPayload.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPayload.java), [`strongbox/WalletEntryCodec.java`](app/src/main/java/com/quantumcoin/app/strongbox/WalletEntryCodec.java) |
### 2. On-disk slot layout (L1)
@@ -447,7 +447,7 @@ invariant tests.
The slot file is a single canonical UTF-8 JSON object built by
the hand-rolled `canonicalize` / `writeCanonical` serializer in
-[`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java)
+[`strongbox/StrongboxFileCodec.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java)
to guarantee the same sorted-key byte sequence iOS produces with
`JSONSerialization(opts:[.sortedKeys])`. There are no fixed
binary offsets at the slot layer.
@@ -493,9 +493,9 @@ indirectly via `uiBlockHash = SHA-256(canonical(ui))`.
| Primitive | Parameters | Source |
| --- | --- | --- |
-| AEAD | AES-256-GCM via `javax.crypto.Cipher.getInstance("AES/GCM/NoPadding")`. Nonce 12 bytes, random per seal (`SecureRandom.nextBytes`). Tag 16 bytes (128 bits). AAD: empty | [`keystorage/Aead.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java) |
-| KDF | scrypt with `N = 262144 (2^18)`, `r = 8`, `p = 1`, `dkLen = 32`. Salt 32 bytes generated by `SecureRandom.nextBytes` at strongbox bootstrap, persisted in `kdf.salt`, then reused for the lifetime of the strongbox. The scrypt implementation is the JS SDK's `scryptSync` invoked through the bridge | [`keystorage/UnlockCoordinator.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java) `deriveKeyViaScrypt`, [`assets/bridge.html`](app/src/main/assets/bridge.html) `scryptDerive` |
-| File MAC | HMAC-SHA-256 (32-byte tag) via JCE `javax.crypto.Mac` | [`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java) |
+| AEAD | AES-256-GCM via `javax.crypto.Cipher.getInstance("AES/GCM/NoPadding")`. Nonce 12 bytes, random per seal (`SecureRandom.nextBytes`). Tag 16 bytes (128 bits). AAD: empty | [`keystorage/Aead.java`](app/src/main/java/com/quantumcoin/app/keystorage/Aead.java) |
+| KDF | scrypt with `N = 262144 (2^18)`, `r = 8`, `p = 1`, `dkLen = 32`. Salt 32 bytes generated by `SecureRandom.nextBytes` at strongbox bootstrap, persisted in `kdf.salt`, then reused for the lifetime of the strongbox. The scrypt implementation is the JS SDK's `scryptSync` invoked through the bridge | [`keystorage/UnlockCoordinator.java`](app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java) `deriveKeyViaScrypt`, [`assets/bridge.html`](app/src/main/assets/bridge.html) `scryptDerive` |
+| File MAC | HMAC-SHA-256 (32-byte tag) via JCE `javax.crypto.Mac` | [`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java) |
| MAC-key derivation | `macKey = HKDF-SHA-256(IKM = mainKey, salt = kdf.salt, info = "integrity-v2", L = 32)` via BouncyCastle `HKDFBytesGenerator` (RFC 5869 Extract+Expand). BouncyCastle is FIPS 140-2 certified and eliminates hand-rolled Extract+Expand loops. Byte-exact compatible with iOS CryptoKit `HKDF` | constant `MacUtil.INTEGRITY_INFO_LABEL` |
`mainKey` is a fresh 32-byte value produced once at strongbox
@@ -519,7 +519,7 @@ unpad(7816-4) ──► canonicalJSON(StrongboxPayload)
- `derivedKey` is materialised inside every `unlock` and every
`persist` call. It is wiped via
`Arrays.fill(derivedKey, (byte) 0);` in a `finally` block in
- the same scope ([`UnlockCoordinator.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java)).
+ the same scope ([`UnlockCoordinator.java`](app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java)).
- `mainKey` is materialised on each unlock and on each persist.
It is wiped in the same `finally` block. It is **never**
stored on a field after the function exits — the persist
@@ -544,7 +544,7 @@ The 4 MiB bucket comfortably holds ≥256 wallets with
Dilithium-class private keys (≈7.5 KiB raw) and public keys
(≈2.5 KiB raw). Round-trip and bucket-fill invariants are
tested in
-[`strongbox/StrongboxPaddingTest.java`](app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java)
+[`strongbox/StrongboxPaddingTest.java`](app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java)
and the `WalletEntryCodecTest` 256-wallet packing test.
### 7. Plaintext payload (L5)
@@ -555,7 +555,7 @@ shape. The shape is unified across Android and iOS: same field
names, same ordering rules, same encoding of the per-wallet
binary blobs. Canonical sorted keys are used for the inner
checksum compute (`disableHtmlEscaping`, `serializeNulls` per
-[`strongbox/StrongboxPayload.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPayload.java));
+[`strongbox/StrongboxPayload.java`](app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPayload.java));
the AEAD seal does not require a canonical encoding because the
AEAD tag commits to the byte sequence.
@@ -611,9 +611,9 @@ Each entry inside `wallets[]` is a base64-wrapped
length-prefixed binary blob. **All multi-byte integers are
big-endian.** This format is shared byte-for-byte with the iOS
wallet — see
-[`strongbox/WalletEntryCodec.java`](app/src/main/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodec.java)
+[`strongbox/WalletEntryCodec.java`](app/src/main/java/com/quantumcoin/app/strongbox/WalletEntryCodec.java)
and the round-trip + 256-wallet packing tests in
-[`strongbox/WalletEntryCodecTest.java`](app/src/test/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodecTest.java).
+[`strongbox/WalletEntryCodecTest.java`](app/src/test/java/com/quantumcoin/app/strongbox/WalletEntryCodecTest.java).
| Offset | Field | Width | Encoding |
| --- | --- | --- | --- |
@@ -645,7 +645,7 @@ base64 wrap and length-prefixes raw bytes directly.
| --- | --- |
| In-slot field | `generation` integer in the outer JSON (incremented by exactly +1 per `writeNewGeneration`) |
| Out-of-band binding | HMAC-SHA-256 over the 8-byte big-endian counter under an AndroidKeystore-resident, non-extractable key (alias `qc-strongbox-generation-counter-hmac-v1`). The counter+tag pair is persisted as `":"` in `SharedPreferences` file `qc_strongbox_counter_v1`, key `STRONGBOX_GENERATION_COUNTER` |
-| Implementation | [`keystorage/AndroidKeystoreGenerationCounter.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/AndroidKeystoreGenerationCounter.java); StrongBox-backed when `setIsStrongBoxBacked(true)` succeeds (API ≥ 28), software-Keystore otherwise |
+| Implementation | [`keystorage/AndroidKeystoreGenerationCounter.java`](app/src/main/java/com/quantumcoin/app/keystorage/AndroidKeystoreGenerationCounter.java); StrongBox-backed when `setIsStrongBoxBacked(true)` succeeds (API ≥ 28), software-Keystore otherwise |
| On unlock | `UnlockCoordinator` rejects the slot if `slotGeneration < storedCounter` AFTER verifying the stored tag matches the stored counter under the Keystore key |
| Heal-forward | A first-launch device with no stored counter seeds it from the slot's `generation` so a fresh restore-from-Auto-Backup is accepted; subsequent rollback attempts are rejected. The pref file is excluded from Auto-Backup so a migrated device always re-seeds from the restored slot |
@@ -664,14 +664,14 @@ delay; 5 → 30 s; 6 → 60 s; 7 → 120 s; ≥8 capped at 300 s. The
limiter is consulted at strongbox-unlock and at backup-decrypt
on the same shared counter so the restore dialog cannot be used
to bypass the unlock-dialog rate limit. Source:
-[`security/UnlockAttemptLimiter.java`](app/src/main/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiter.java).
+[`security/UnlockAttemptLimiter.java`](app/src/main/java/com/quantumcoin/app/security/UnlockAttemptLimiter.java).
### 11. Out-of-strongbox metadata (`PrefConnect`)
The non-secret app preferences live in app-private
`SharedPreferences` file
`DP_QUANTUM_COIN_WALLET_APP_PREF.xml`, managed by
-[`utils/PrefConnect.java`](app/src/main/java/com/quantumcoinwallet/app/utils/PrefConnect.java).
+[`utils/PrefConnect.java`](app/src/main/java/com/quantumcoin/app/utils/PrefConnect.java).
The allowlist:
| Key | Reason it is here, not in the strongbox |
@@ -708,7 +708,7 @@ device migration; on the new device the counter is heal-forwarded
from the restored slot's `generation` field).
The runtime gate in
-[`backup/WalletBackupAgent.java`](app/src/main/java/com/quantumcoinwallet/app/backup/WalletBackupAgent.java)
+[`backup/WalletBackupAgent.java`](app/src/main/java/com/quantumcoin/app/backup/WalletBackupAgent.java)
inspects `BACKUP_ENABLED_KEY` before delegating to
`super.onFullBackup`, so even with `android:allowBackup="true"`
in the manifest nothing leaves the device unless the user
@@ -721,7 +721,7 @@ is a different format. It is produced and consumed by the
shared `QuantumCoinSDK.Wallet.encryptSync` /
`Wallet.decryptSync` calls in `quantumcoin-bundle.js`, called
from
-[`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java).
+[`bridge/QuantumCoinJSBridge.java`](app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java).
It is a Web3-Secret-Storage-style JSON blob (scrypt KDF, AES +
MAC, address-bound) keyed by a user-supplied **backup
password** that is collected separately from the strongbox
@@ -729,7 +729,7 @@ password and may legitimately differ. The `.wallet` envelope is
byte-equivalent across iOS and Android (both call the same JS
SDK), which is why the per-wallet backup file format **is**
cross-platform restorable. See
-[`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java)
+[`backup/CloudBackupManager.java`](app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java)
for the file naming and folder enumeration; the JSON shape
itself is owned by the SDK package.
@@ -737,7 +737,7 @@ itself is owned by the SDK package.
The binding portability contract is the seeded vector suite:
-- Android: `app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPortabilityVectorTest.java`
+- Android: `app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPortabilityVectorTest.java`
- iOS: `QuantumCoinWalletTests/StrongboxLayerTests.swift`
- Shared seed note: `tests/fixtures/strongbox-v3-vectors/INDEX.md`
@@ -890,9 +890,9 @@ the one shipped by the iOS wallet at
| Library | Used for |
| --- | --- |
| `androidx.appcompat` / `material` / `constraintlayout` / `recyclerview` / `cardview` | Every screen, every dialog |
-| `androidx.webkit` + `WebView` | The single in-process `WebView` that hosts `bridge.html` ([`bridge/WebViewManager.java`](app/src/main/java/com/quantumcoinwallet/app/bridge/WebViewManager.java)) |
-| Java `javax.crypto` (AES-GCM) + `java.security` (SHA-256, HMAC) | AES-256-GCM seal/open, hashing, file MAC ([`keystorage/Aead.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java)) |
-| BouncyCastle (`org.bouncycastle:bcprov-jdk18on`) | FIPS 140-2 certified HKDF-SHA-256 implementation (RFC 5869 Extract+Expand) for MAC-key derivation. Eliminates hand-rolled cryptography. Byte-exact compatible with iOS CryptoKit ([`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java)) |
+| `androidx.webkit` + `WebView` | The single in-process `WebView` that hosts `bridge.html` ([`bridge/WebViewManager.java`](app/src/main/java/com/quantumcoin/app/bridge/WebViewManager.java)) |
+| Java `javax.crypto` (AES-GCM) + `java.security` (SHA-256, HMAC) | AES-256-GCM seal/open, hashing, file MAC ([`keystorage/Aead.java`](app/src/main/java/com/quantumcoin/app/keystorage/Aead.java)) |
+| BouncyCastle (`org.bouncycastle:bcprov-jdk18on`) | FIPS 140-2 certified HKDF-SHA-256 implementation (RFC 5869 Extract+Expand) for MAC-key derivation. Eliminates hand-rolled cryptography. Byte-exact compatible with iOS CryptoKit ([`keystorage/MacUtil.java`](app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java)) |
| AndroidKeystore | Generation-counter HMAC key, brute-force-lockout key |
| `com.squareup.okhttp3` + `com.google.code.gson` + `io.gsonfire` + `io.swagger:swagger-annotations` | Read-only scan-API client (no signing primitives in Java) |
| `androidx.camera:camera-*` + `com.google.mlkit:barcode-scanning` | Camera-based QR scanning |
@@ -900,7 +900,7 @@ the one shipped by the iOS wallet at
| `androidx.lifecycle:lifecycle-viewmodel` | Per-screen ViewModels |
| `androidx.localbroadcastmanager` | Process-local network-change pub/sub (no cross-app signal) |
| `androidx.documentfile` | Storage-Access-Framework backup folder enumeration |
-| `com.jakewharton.timber` | Logger backend (wrapped behind the in-house [`Logger`](app/src/main/java/com/quantumcoinwallet/app/Logger.java) facade) |
+| `com.jakewharton.timber` | Logger backend (wrapped behind the in-house [`Logger`](app/src/main/java/com/quantumcoin/app/Logger.java) facade) |
### Build tooling
@@ -972,7 +972,7 @@ the one shipped by the iOS wallet at
The strict layering is enforced by the storage / crypto / bridge
separation in code review and by invariant tests in
-[`app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java`](app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java)
+[`app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java`](app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java)
and the broader test suite. The only structurally-permitted
writers of wallet-meaningful state are the
`SecureStorage` accessor and the `UnlockCoordinator` re-encrypt
@@ -1017,7 +1017,7 @@ contract documented in
│ │ ├── values/, values-night/ Themes, colors, strings, dark mode
│ │ └── xml/ backup_rules, data_extraction_rules,
│ │ network_security_config
- │ └── java/com/quantumcoinwallet/app/
+ │ └── java/com/quantumcoin/app/
│ ├── App.java Application boot + tamper gate plant
│ ├── Logger.java Logger facade (release-safe)
│ ├── RedactingDebugTree.java Timber tree with redaction regex set
@@ -1048,7 +1048,7 @@ contract documented in
│ │ ├── fragment/ 13 top-level Fragments
│ │ └── widget/ Custom views
│ └── viewmodel/ Per-screen ViewModels
- └── test/java/com/quantumcoinwallet/app/ 29 test classes, 183 tests
+ └── test/java/com/quantumcoin/app/ 29 test classes, 183 tests
```
Counts (at the time of writing): 113 Java source files in
@@ -1098,7 +1098,7 @@ cd quantum-coin-wallet-android
The first build runs the `embedBundleHash` Gradle task, which
writes
-[`app/src/main/java/com/quantumcoinwallet/app/security/generated/GeneratedBundleHash.java`](app/src/main/java/com/quantumcoinwallet/app/security/generated/GeneratedBundleHash.java)
+[`app/src/main/java/com/quantumcoin/app/security/generated/GeneratedBundleHash.java`](app/src/main/java/com/quantumcoin/app/security/generated/GeneratedBundleHash.java)
so the SHA-256 of `quantumcoin-bundle.js` is embedded in
`classes.dex`. **The generated file IS committed** so the constant
can be diffed alongside the bundle bytes in the same PR; the build
@@ -1162,7 +1162,7 @@ to confirm cross-platform bundle parity in the same commit.
```
The test target lives in
-[`app/src/test/java/com/quantumcoinwallet/app/`](app/src/test/java/com/quantumcoinwallet/app).
+[`app/src/test/java/com/quantumcoin/app/`](app/src/test/java/com/quantumcoin/app).
It contains 29 test classes and 183 unit tests:
| Suite | Coverage |
@@ -1248,7 +1248,7 @@ configuration stays resolvable in IDE syncs).
+ strict default hostname verification still apply on RPC
traffic (so a downgrade-to-TLS-1.2 attacker is rejected even
on user-chosen RPC endpoints). See
- [`security/TlsPinning.java`](app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java)
+ [`security/TlsPinning.java`](app/src/main/java/com/quantumcoin/app/security/TlsPinning.java)
for the full coverage map.
- **Defending an unlocked, rooted, attacker-owned device with a
Frida-class hook injected before the wallet process loads.**
@@ -1265,7 +1265,7 @@ configuration stays resolvable in IDE syncs).
shipping list to a classical signature scheme would
contradict the project's cryptographic posture; see the
Javadoc on
- [`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java)
+ [`tokens/RecognizedTokens.java`](app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java)
for the rationale.
- **Investment, custody, or financial advice of any kind.**
diff --git a/app/build.gradle b/app/build.gradle
index ad0968a..6b53e38 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,11 +3,11 @@ plugins {
}
android {
- namespace 'com.quantumcoinwallet.app'
+ namespace 'com.quantumcoin.app'
compileSdk 35
defaultConfig {
- applicationId "com.quantumcoinwallet.app"
+ applicationId "com.quantumcoin.app"
// Strict TLS 1.3 enforcement: minSdk is 29 (Android 10) so the
// platform's `SSLEngine` ships with native TLS 1.3 support.
// The TlsPinning layer installs an explicit TLS-1.3-only
@@ -122,7 +122,7 @@ android {
// ---------------------------------------------------------------
task embedBundleHash {
def bundleFile = file("$projectDir/src/main/assets/quantumcoin-bundle.js")
- def outputDir = file("$projectDir/src/main/java/com/quantumcoinwallet/app/security/generated")
+ def outputDir = file("$projectDir/src/main/java/com/quantumcoin/app/security/generated")
def outputFile = file("$outputDir/GeneratedBundleHash.java")
inputs.file bundleFile
@@ -157,7 +157,7 @@ task embedBundleHash {
def bytesBlock = bytesLines.join('\n')
outputFile.text = """\
-package com.quantumcoinwallet.app.security.generated;
+package com.quantumcoin.app.security.generated;
// AUTO-GENERATED at build time by the embedBundleHash Gradle task in
// app/build.gradle. DO NOT EDIT. Any local changes will be overwritten
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 0f7ca96..559c43b 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -16,7 +16,7 @@
-keepclassmembers class * {
@android.webkit.JavascriptInterface ;
}
--keep class com.quantumcoinwallet.app.bridge.** { *; }
+-keep class com.quantumcoin.app.bridge.** { *; }
# -----------------------------------------------------------
# Gson model classes (reflection-based (de)serialization)
@@ -28,14 +28,14 @@
-keep class sun.misc.Unsafe { *; }
# Preserve all model classes used with Gson (serialized/deserialized via reflection).
--keep class com.quantumcoinwallet.app.model.** { *; }
--keepclassmembers class com.quantumcoinwallet.app.model.** { ; (...); }
+-keep class com.quantumcoin.app.model.** { *; }
+-keepclassmembers class com.quantumcoin.app.model.** { ; (...); }
--keep class com.quantumcoinwallet.app.api.read.model.** { *; }
--keepclassmembers class com.quantumcoinwallet.app.api.read.model.** { ; (...); }
+-keep class com.quantumcoin.app.api.read.model.** { *; }
+-keepclassmembers class com.quantumcoin.app.api.read.model.** { ; (...); }
--keep class com.quantumcoinwallet.app.entity.** { *; }
--keepclassmembers class com.quantumcoinwallet.app.entity.** { ; (...); }
+-keep class com.quantumcoin.app.entity.** { *; }
+-keepclassmembers class com.quantumcoin.app.entity.** { ; (...); }
# Fields annotated with @SerializedName must survive obfuscation.
-keepclassmembers class * {
@@ -59,7 +59,7 @@
-dontwarn org.openjsse.**
# Swagger/OpenAPI generated client uses reflection for auth/JSON adapters.
--keep class com.quantumcoinwallet.app.api.read.** { *; }
+-keep class com.quantumcoin.app.api.read.** { *; }
-keep class io.swagger.annotations.** { *; }
-dontwarn io.swagger.**
@@ -81,19 +81,19 @@
-keep class androidx.camera.** { *; }
# ViewBinding: generated binding classes.
--keep class com.quantumcoinwallet.app.databinding.** { *; }
+-keep class com.quantumcoin.app.databinding.** { *; }
# -----------------------------------------------------------
# Reflection-loaded Application class
# -----------------------------------------------------------
--keep public class com.quantumcoinwallet.app.App
+-keep public class com.quantumcoin.app.App
# -----------------------------------------------------------
# BackupAgent (declared in manifest via android:backupAgent).
# Manifest-declared components must survive R8.
# -----------------------------------------------------------
--keep public class com.quantumcoinwallet.app.backup.WalletBackupAgent
--keepclassmembers class com.quantumcoinwallet.app.backup.WalletBackupAgent { (...); }
+-keep public class com.quantumcoin.app.backup.WalletBackupAgent
+-keepclassmembers class com.quantumcoin.app.backup.WalletBackupAgent { (...); }
# -----------------------------------------------------------
# Parcelables + Serializables (Android standard keep rules).
diff --git a/app/src/main/java/com/quantumcoinwallet/app/App.java b/app/src/main/java/com/quantumcoin/app/App.java
similarity index 90%
rename from app/src/main/java/com/quantumcoinwallet/app/App.java
rename to app/src/main/java/com/quantumcoin/app/App.java
index a233a76..2041712 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/App.java
+++ b/app/src/main/java/com/quantumcoin/app/App.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import android.app.Application;
import android.util.Log;
@@ -30,8 +30,8 @@ public void onCreate() {
// sensitive surfaces (seed / address strip) react to a live
// recording or cast session.
try {
- com.quantumcoinwallet.app.ux.SnapshotRedactor.install(this);
- com.quantumcoinwallet.app.security.ScreenCaptureGuard.install(getApplicationContext());
+ com.quantumcoin.app.ux.SnapshotRedactor.install(this);
+ com.quantumcoin.app.security.ScreenCaptureGuard.install(getApplicationContext());
} catch (Throwable t) {
Timber.tag("App").w(t, "snapshot/capture install");
}
@@ -46,7 +46,7 @@ public void onCreate() {
new Thread(new Runnable() {
@Override public void run() {
try {
- com.quantumcoinwallet.app.backup.CloudBackupManager
+ com.quantumcoin.app.backup.CloudBackupManager
.cleanupStaleStagedExports(getApplicationContext());
} catch (Throwable t) {
Timber.tag("App").w(t, "stale-tmp sweep");
diff --git a/app/src/main/java/com/quantumcoinwallet/app/Logger.java b/app/src/main/java/com/quantumcoin/app/Logger.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/Logger.java
rename to app/src/main/java/com/quantumcoin/app/Logger.java
index bd5b0b5..ea69afa 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/Logger.java
+++ b/app/src/main/java/com/quantumcoin/app/Logger.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import android.util.Log;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/RedactingDebugTree.java b/app/src/main/java/com/quantumcoin/app/RedactingDebugTree.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/RedactingDebugTree.java
rename to app/src/main/java/com/quantumcoin/app/RedactingDebugTree.java
index 4f1e4bc..ceaed0c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/RedactingDebugTree.java
+++ b/app/src/main/java/com/quantumcoin/app/RedactingDebugTree.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import java.util.regex.Pattern;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiCallback.java b/app/src/main/java/com/quantumcoin/app/api/read/ApiCallback.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ApiCallback.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ApiCallback.java
index 3ddc845..7d038fb 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiCallback.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ApiCallback.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import java.util.Map;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiClient.java b/app/src/main/java/com/quantumcoin/app/api/read/ApiClient.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ApiClient.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ApiClient.java
index 98a2920..8456e09 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiClient.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ApiClient.java
@@ -8,7 +8,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import okhttp3.*;
import okhttp3.internal.http.HttpMethod;
@@ -41,10 +41,10 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import com.quantumcoinwallet.app.api.read.auth.Authentication;
-import com.quantumcoinwallet.app.api.read.auth.HttpBasicAuth;
-import com.quantumcoinwallet.app.api.read.auth.ApiKeyAuth;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.auth.Authentication;
+import com.quantumcoin.app.api.read.auth.HttpBasicAuth;
+import com.quantumcoin.app.api.read.auth.ApiKeyAuth;
+import com.quantumcoin.app.utils.GlobalMethods;
public class ApiClient {
@@ -103,7 +103,7 @@ private void init() {
// user-defined custom networks (those still get baseline
// CA-validated TLS via the system trust store). See
// TlsPinning's file header for the full coverage rationale.
- httpClient = com.quantumcoinwallet.app.security.TlsPinning
+ httpClient = com.quantumcoin.app.security.TlsPinning
.applyTo(new OkHttpClient.Builder())
.build();
@@ -365,7 +365,7 @@ public boolean isDebugging() {
* @return ApiClient
*/
public ApiClient setDebugging(boolean debugging) {
- if (!com.quantumcoinwallet.app.BuildConfig.DEBUG) {
+ if (!com.quantumcoin.app.BuildConfig.DEBUG) {
this.debugging = false;
return this;
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiException.java b/app/src/main/java/com/quantumcoin/app/api/read/ApiException.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ApiException.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ApiException.java
index 5020ebd..fcb166c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiException.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ApiException.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import java.util.Map;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiResponse.java b/app/src/main/java/com/quantumcoin/app/api/read/ApiResponse.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ApiResponse.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ApiResponse.java
index 5702e93..415dbc3 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ApiResponse.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ApiResponse.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import java.util.List;
import java.util.Map;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/Configuration.java b/app/src/main/java/com/quantumcoin/app/api/read/Configuration.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/Configuration.java
rename to app/src/main/java/com/quantumcoin/app/api/read/Configuration.java
index 4cb2e44..09b891b 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/Configuration.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/Configuration.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-04-28T20:27:13.465275500-07:00[America/Los_Angeles]")
public class Configuration {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/GzipRequestInterceptor.java b/app/src/main/java/com/quantumcoin/app/api/read/GzipRequestInterceptor.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/GzipRequestInterceptor.java
rename to app/src/main/java/com/quantumcoin/app/api/read/GzipRequestInterceptor.java
index 8797136..1a4783e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/GzipRequestInterceptor.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/GzipRequestInterceptor.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import okhttp3.*;
import okio.Buffer;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/JSON.java b/app/src/main/java/com/quantumcoin/app/api/read/JSON.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/JSON.java
rename to app/src/main/java/com/quantumcoin/app/api/read/JSON.java
index 2c022da..65d0a5b 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/JSON.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/JSON.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/Pair.java b/app/src/main/java/com/quantumcoin/app/api/read/Pair.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/Pair.java
rename to app/src/main/java/com/quantumcoin/app/api/read/Pair.java
index d3f85f4..d9f5705 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/Pair.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/Pair.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-04-28T20:27:13.465275500-07:00[America/Los_Angeles]")
public class Pair {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressRequestBody.java b/app/src/main/java/com/quantumcoin/app/api/read/ProgressRequestBody.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressRequestBody.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ProgressRequestBody.java
index cebab9a..e27b28f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressRequestBody.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ProgressRequestBody.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import okhttp3.MediaType;
import okhttp3.RequestBody;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressResponseBody.java b/app/src/main/java/com/quantumcoin/app/api/read/ProgressResponseBody.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressResponseBody.java
rename to app/src/main/java/com/quantumcoin/app/api/read/ProgressResponseBody.java
index 3b0bc64..81d655f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/ProgressResponseBody.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/ProgressResponseBody.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import okhttp3.MediaType;
import okhttp3.ResponseBody;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/StringUtil.java b/app/src/main/java/com/quantumcoin/app/api/read/StringUtil.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/StringUtil.java
rename to app/src/main/java/com/quantumcoin/app/api/read/StringUtil.java
index 6de84dd..a5dd17f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/StringUtil.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/StringUtil.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-04-28T20:27:13.465275500-07:00[America/Los_Angeles]")
public class StringUtil {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/api/AccountsApi.java b/app/src/main/java/com/quantumcoin/app/api/read/api/AccountsApi.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/api/AccountsApi.java
rename to app/src/main/java/com/quantumcoin/app/api/read/api/AccountsApi.java
index c9ce254..dcfbf5c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/api/AccountsApi.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/api/AccountsApi.java
@@ -11,26 +11,26 @@
*/
-package com.quantumcoinwallet.app.api.read.api;
+package com.quantumcoin.app.api.read.api;
-import com.quantumcoinwallet.app.api.read.ApiCallback;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.ApiResponse;
-import com.quantumcoinwallet.app.api.read.Configuration;
-import com.quantumcoinwallet.app.api.read.Pair;
-import com.quantumcoinwallet.app.api.read.ProgressRequestBody;
-import com.quantumcoinwallet.app.api.read.ProgressResponseBody;
+import com.quantumcoin.app.api.read.ApiCallback;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.ApiResponse;
+import com.quantumcoin.app.api.read.Configuration;
+import com.quantumcoin.app.api.read.Pair;
+import com.quantumcoin.app.api.read.ProgressRequestBody;
+import com.quantumcoin.app.api.read.ProgressResponseBody;
import com.google.gson.reflect.TypeToken;
import java.io.IOException;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummaryResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenListResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummaryResponse;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummaryResponse;
+import com.quantumcoin.app.api.read.model.AccountTokenListResponse;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummaryResponse;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
import java.lang.reflect.Type;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/ApiKeyAuth.java b/app/src/main/java/com/quantumcoin/app/api/read/auth/ApiKeyAuth.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/auth/ApiKeyAuth.java
rename to app/src/main/java/com/quantumcoin/app/api/read/auth/ApiKeyAuth.java
index af7e483..591ba68 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/ApiKeyAuth.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/auth/ApiKeyAuth.java
@@ -11,9 +11,9 @@
*/
-package com.quantumcoinwallet.app.api.read.auth;
+package com.quantumcoin.app.api.read.auth;
-import com.quantumcoinwallet.app.api.read.Pair;
+import com.quantumcoin.app.api.read.Pair;
import java.util.Map;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/Authentication.java b/app/src/main/java/com/quantumcoin/app/api/read/auth/Authentication.java
similarity index 87%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/auth/Authentication.java
rename to app/src/main/java/com/quantumcoin/app/api/read/auth/Authentication.java
index 6d73b7a..4c26183 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/Authentication.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/auth/Authentication.java
@@ -11,9 +11,9 @@
*/
-package com.quantumcoinwallet.app.api.read.auth;
+package com.quantumcoin.app.api.read.auth;
-import com.quantumcoinwallet.app.api.read.Pair;
+import com.quantumcoin.app.api.read.Pair;
import java.util.Map;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/HttpBasicAuth.java b/app/src/main/java/com/quantumcoin/app/api/read/auth/HttpBasicAuth.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/auth/HttpBasicAuth.java
rename to app/src/main/java/com/quantumcoin/app/api/read/auth/HttpBasicAuth.java
index 4122e10..1b55f62 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/auth/HttpBasicAuth.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/auth/HttpBasicAuth.java
@@ -11,9 +11,9 @@
*/
-package com.quantumcoinwallet.app.api.read.auth;
+package com.quantumcoin.app.api.read.auth;
-import com.quantumcoinwallet.app.api.read.Pair;
+import com.quantumcoin.app.api.read.Pair;
import okhttp3.Credentials;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummary.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummary.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummary.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummary.java
index 230e2c1..c96aa6e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummary.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummary.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummaryResponse.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummaryResponse.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummaryResponse.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummaryResponse.java
index e3aac01..a987fbc 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountPendingTransactionSummaryResponse.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountPendingTransactionSummaryResponse.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenListResponse.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenListResponse.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenListResponse.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenListResponse.java
index bbc675f..061b912 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenListResponse.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenListResponse.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenSummary.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenSummary.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenSummary.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenSummary.java
index c362bd4..4143d3d 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTokenSummary.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTokenSummary.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummary.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummary.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummary.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummary.java
index d1618f2..8a4755d 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummary.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummary.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummaryResponse.java b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummaryResponse.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummaryResponse.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummaryResponse.java
index 91a3366..e046ac4 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/AccountTransactionSummaryResponse.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/AccountTransactionSummaryResponse.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/Balance.java b/app/src/main/java/com/quantumcoin/app/api/read/model/Balance.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/Balance.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/Balance.java
index 84edf32..3f2d684 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/Balance.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/Balance.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/BalanceResponse.java b/app/src/main/java/com/quantumcoin/app/api/read/model/BalanceResponse.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/BalanceResponse.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/BalanceResponse.java
index 8520af9..8cb1054 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/BalanceResponse.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/BalanceResponse.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/ErrorResponseModel.java b/app/src/main/java/com/quantumcoin/app/api/read/model/ErrorResponseModel.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/ErrorResponseModel.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/ErrorResponseModel.java
index 9c5de98..0cb6750 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/ErrorResponseModel.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/ErrorResponseModel.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/Receipt.java b/app/src/main/java/com/quantumcoin/app/api/read/model/Receipt.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/Receipt.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/Receipt.java
index 3976b07..bf847d1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/Receipt.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/Receipt.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/TransactionType.java b/app/src/main/java/com/quantumcoin/app/api/read/model/TransactionType.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/api/read/model/TransactionType.java
rename to app/src/main/java/com/quantumcoin/app/api/read/model/TransactionType.java
index 4c7c16c..8c3a8b9 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/api/read/model/TransactionType.java
+++ b/app/src/main/java/com/quantumcoin/app/api/read/model/TransactionType.java
@@ -11,7 +11,7 @@
*/
-package com.quantumcoinwallet.app.api.read.model;
+package com.quantumcoin.app.api.read.model;
import java.io.IOException;
import com.google.gson.TypeAdapter;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTask.java b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTask.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTask.java
rename to app/src/main/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTask.java
index 973aa99..f39c495 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTask.java
+++ b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTask.java
@@ -1,16 +1,16 @@
-package com.quantumcoinwallet.app.asynctask.read;
+package com.quantumcoin.app.asynctask.read;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.api.AccountsApi;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
-import com.quantumcoinwallet.app.entity.ServiceException;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.api.AccountsApi;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.entity.ServiceException;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountPendingTxnRestTask.java b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountPendingTxnRestTask.java
similarity index 91%
rename from app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountPendingTxnRestTask.java
rename to app/src/main/java/com/quantumcoin/app/asynctask/read/AccountPendingTxnRestTask.java
index d617621..8b2ab5f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountPendingTxnRestTask.java
+++ b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountPendingTxnRestTask.java
@@ -1,15 +1,15 @@
-package com.quantumcoinwallet.app.asynctask.read;
+package com.quantumcoin.app.asynctask.read;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.api.AccountsApi;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummaryResponse;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.api.AccountsApi;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummaryResponse;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountTxnRestTask.java b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountTxnRestTask.java
similarity index 91%
rename from app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountTxnRestTask.java
rename to app/src/main/java/com/quantumcoin/app/asynctask/read/AccountTxnRestTask.java
index a9de95c..c1f8135 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/AccountTxnRestTask.java
+++ b/app/src/main/java/com/quantumcoin/app/asynctask/read/AccountTxnRestTask.java
@@ -1,15 +1,15 @@
-package com.quantumcoinwallet.app.asynctask.read;
+package com.quantumcoin.app.asynctask.read;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.api.AccountsApi;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummaryResponse;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.api.AccountsApi;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummaryResponse;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/ListAccountTokensRestTask.java b/app/src/main/java/com/quantumcoin/app/asynctask/read/ListAccountTokensRestTask.java
similarity index 90%
rename from app/src/main/java/com/quantumcoinwallet/app/asynctask/read/ListAccountTokensRestTask.java
rename to app/src/main/java/com/quantumcoin/app/asynctask/read/ListAccountTokensRestTask.java
index 1da2dc3..af12d3e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/asynctask/read/ListAccountTokensRestTask.java
+++ b/app/src/main/java/com/quantumcoin/app/asynctask/read/ListAccountTokensRestTask.java
@@ -1,15 +1,15 @@
-package com.quantumcoinwallet.app.asynctask.read;
+package com.quantumcoin.app.asynctask.read;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.api.AccountsApi;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenListResponse;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.api.AccountsApi;
+import com.quantumcoin.app.api.read.model.AccountTokenListResponse;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/backup/BackupExecutor.java b/app/src/main/java/com/quantumcoin/app/backup/BackupExecutor.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/backup/BackupExecutor.java
rename to app/src/main/java/com/quantumcoin/app/backup/BackupExecutor.java
index c6bf560..63cfa76 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/backup/BackupExecutor.java
+++ b/app/src/main/java/com/quantumcoin/app/backup/BackupExecutor.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.backup;
+package com.quantumcoin.app.backup;
import android.app.Activity;
import android.content.DialogInterface;
@@ -12,12 +12,12 @@
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.Logger;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.Logger;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONObject;
@@ -160,9 +160,9 @@ public void onClick(DialogInterface dialog, int which) {
* cloud folder or launches the document-tree picker. */
public void startCloudBackup(final String walletAddress,
final String walletPassword) {
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.show(
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.show(
host.requireContext(), vm, walletAddress,
- new com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog
+ new com.quantumcoin.app.view.dialog.BackupPasswordDialog
.OnBackupPasswordListener() {
@Override
public void onPasswordSelected(final String backupPassword) {
@@ -178,9 +178,9 @@ public void onCanceled() { }
* flow except the SAF launcher is the create-document picker. */
public void startFileExport(final String walletAddress,
final String walletPassword) {
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.show(
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.show(
host.requireContext(), vm, walletAddress,
- new com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog
+ new com.quantumcoin.app.view.dialog.BackupPasswordDialog
.OnBackupPasswordListener() {
@Override
public void onPasswordSelected(final String backupPassword) {
@@ -199,7 +199,7 @@ public void onCanceled() { }
private void encryptAndStartCloudBackup(final String walletAddress,
final String unlockPassword,
final String backupPassword) {
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(host.requireContext(), vm.getWaitWalletSaveByLangValues());
new Thread(new Runnable() {
@Override
@@ -335,7 +335,7 @@ public void run() {
private void encryptAndPickExportLocation(final String walletAddress,
final String unlockPassword,
final String backupPassword) {
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(host.requireContext(), vm.getWaitWalletSaveByLangValues());
new Thread(new Runnable() {
@Override
@@ -565,8 +565,8 @@ public void onClick(DialogInterface d, int w) {
private void markActivityUnlocked() {
try {
Activity act = host.getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act).markUnlockedNow();
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act).markUnlockedNow();
}
} catch (Exception ignore) { }
}
@@ -574,8 +574,8 @@ private void markActivityUnlocked() {
private void setSuppressNextResumeLock(boolean suppress) {
try {
Activity act = host.getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act)
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act)
.setSuppressNextResumeLock(suppress);
}
} catch (Exception ignore) { }
diff --git a/app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java b/app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java
rename to app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java
index 56c08c6..39acddc 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/backup/CloudBackupManager.java
+++ b/app/src/main/java/com/quantumcoin/app/backup/CloudBackupManager.java
@@ -1,15 +1,15 @@
-package com.quantumcoinwallet.app.backup;
+package com.quantumcoin.app.backup;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
-import com.quantumcoinwallet.app.Logger;
+import com.quantumcoin.app.Logger;
import androidx.documentfile.provider.DocumentFile;
-import com.quantumcoinwallet.app.bridge.QuantumCoinJSBridge;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.bridge.QuantumCoinJSBridge;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONArray;
import org.json.JSONObject;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/backup/WalletBackupAgent.java b/app/src/main/java/com/quantumcoin/app/backup/WalletBackupAgent.java
similarity index 85%
rename from app/src/main/java/com/quantumcoinwallet/app/backup/WalletBackupAgent.java
rename to app/src/main/java/com/quantumcoin/app/backup/WalletBackupAgent.java
index 3a3c17d..80bc350 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/backup/WalletBackupAgent.java
+++ b/app/src/main/java/com/quantumcoin/app/backup/WalletBackupAgent.java
@@ -1,9 +1,9 @@
-package com.quantumcoinwallet.app.backup;
+package com.quantumcoin.app.backup;
import android.app.backup.BackupAgentHelper;
import android.app.backup.FullBackupDataOutput;
-import com.quantumcoinwallet.app.utils.PrefConnect;
+import com.quantumcoin.app.utils.PrefConnect;
import java.io.IOException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/bridge/BridgeCallback.java b/app/src/main/java/com/quantumcoin/app/bridge/BridgeCallback.java
similarity index 71%
rename from app/src/main/java/com/quantumcoinwallet/app/bridge/BridgeCallback.java
rename to app/src/main/java/com/quantumcoin/app/bridge/BridgeCallback.java
index c8e8a09..db680be 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/bridge/BridgeCallback.java
+++ b/app/src/main/java/com/quantumcoin/app/bridge/BridgeCallback.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.bridge;
+package com.quantumcoin.app.bridge;
public interface BridgeCallback {
void onResult(String jsonResult);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java b/app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java
rename to app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java
index 293c4d7..d108fd3 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java
+++ b/app/src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.bridge;
+package com.quantumcoin.app.bridge;
import android.os.Handler;
import android.os.Looper;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/bridge/WebViewManager.java b/app/src/main/java/com/quantumcoin/app/bridge/WebViewManager.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/bridge/WebViewManager.java
rename to app/src/main/java/com/quantumcoin/app/bridge/WebViewManager.java
index a6aedce..7e498db 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/bridge/WebViewManager.java
+++ b/app/src/main/java/com/quantumcoin/app/bridge/WebViewManager.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.bridge;
+package com.quantumcoin.app.bridge;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -19,7 +19,7 @@
import androidx.annotation.Nullable;
import androidx.webkit.WebViewAssetLoader;
-import com.quantumcoinwallet.app.BuildConfig;
+import com.quantumcoin.app.BuildConfig;
import java.util.Iterator;
import java.util.Map;
@@ -152,7 +152,7 @@ public void onPageFinished(WebView view, String url)
{
ready.set(true);
readyLatch.countDown();
- com.quantumcoinwallet.app.Logger.d(TAG, "Bridge WebView ready");
+ com.quantumcoin.app.Logger.d(TAG, "Bridge WebView ready");
}
}
@@ -183,7 +183,7 @@ public void onReceivedError(WebView view, WebResourceRequest request,
if (BRIDGE_URL.equals(url)) {
recordLoadFailure("onReceivedError(url=" + url + " " + msg + ")");
} else if (BuildConfig.DEBUG) {
- com.quantumcoinwallet.app.Logger.d(TAG,
+ com.quantumcoin.app.Logger.d(TAG,
"WebView sub-resource failure: onReceivedError(url="
+ url + " " + msg + ")");
}
@@ -201,7 +201,7 @@ public void onReceivedHttpError(WebView view, WebResourceRequest request,
if (BRIDGE_URL.equals(url)) {
recordLoadFailure("onReceivedHttpError(url=" + url + " " + msg + ")");
} else if (BuildConfig.DEBUG) {
- com.quantumcoinwallet.app.Logger.d(TAG,
+ com.quantumcoin.app.Logger.d(TAG,
"WebView sub-resource failure: onReceivedHttpError(url="
+ url + " " + msg + ")");
}
@@ -230,17 +230,17 @@ public boolean onConsoleMessage(ConsoleMessage cm)
switch (cm.messageLevel())
{
case ERROR:
- com.quantumcoinwallet.app.Logger.e(TAG,
+ com.quantumcoin.app.Logger.e(TAG,
"JS ERROR: " + cm.message()
+ " [" + cm.sourceId() + ":" + cm.lineNumber() + "]");
break;
case WARNING:
- com.quantumcoinwallet.app.Logger.w(TAG,
+ com.quantumcoin.app.Logger.w(TAG,
"JS WARN: " + cm.message()
+ " [" + cm.sourceId() + ":" + cm.lineNumber() + "]");
break;
default:
- com.quantumcoinwallet.app.Logger.d(TAG,
+ com.quantumcoin.app.Logger.d(TAG,
"JS LOG: " + cm.message()
+ " [" + cm.sourceId() + ":" + cm.lineNumber() + "]");
break;
@@ -259,9 +259,9 @@ public boolean onConsoleMessage(ConsoleMessage cm)
// here closes the "swap the asset, re-sign" attack class
// before the JS context ever sees the tampered bytes.
try {
- com.quantumcoinwallet.app.security.BundleIntegrity.verifyOrFail(appContext);
- } catch (com.quantumcoinwallet.app.security.BundleIntegrity.BundleIntegrityException e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "Refusing to load JS bridge: " + e.getMessage());
+ com.quantumcoin.app.security.BundleIntegrity.verifyOrFail(appContext);
+ } catch (com.quantumcoin.app.security.BundleIntegrity.BundleIntegrityException e) {
+ com.quantumcoin.app.Logger.e(TAG, "Refusing to load JS bridge: " + e.getMessage());
// Do not call loadUrl(); leave the bridge in the
// not-ready state. Callers see isReady()==false and
// surface the per-call error path. The TamperGate
@@ -300,7 +300,7 @@ public boolean waitUntilReady(long timeoutSeconds)
private static volatile String lastLoadFailureDescription;
private void recordLoadFailure(String description) {
- com.quantumcoinwallet.app.Logger.e(TAG, "WebView load failure: " + description);
+ com.quantumcoin.app.Logger.e(TAG, "WebView load failure: " + description);
lastLoadFailureDescription = description;
}
@@ -447,7 +447,7 @@ private static final class PendingPayload
@JavascriptInterface
public void onResult(String requestId, String jsonResult)
{
- com.quantumcoinwallet.app.Logger.d(TAG, "onResult requestId=" + requestId);
+ com.quantumcoin.app.Logger.d(TAG, "onResult requestId=" + requestId);
BridgeCallback callback = pendingCallbacks.remove(requestId);
if (callback != null)
{
@@ -474,7 +474,7 @@ public void onResult(String requestId, String jsonResult)
@JavascriptInterface
public void onError(String requestId, String error)
{
- com.quantumcoinwallet.app.Logger.e(TAG, "onError requestId=" + requestId + " error=" + error);
+ com.quantumcoin.app.Logger.e(TAG, "onError requestId=" + requestId + " error=" + error);
BridgeCallback callback = pendingCallbacks.remove(requestId);
if (callback != null)
{
diff --git a/app/src/main/java/com/quantumcoinwallet/app/entity/ErrorEnvelope.java b/app/src/main/java/com/quantumcoin/app/entity/ErrorEnvelope.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/entity/ErrorEnvelope.java
rename to app/src/main/java/com/quantumcoin/app/entity/ErrorEnvelope.java
index 20453f2..f423435 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/entity/ErrorEnvelope.java
+++ b/app/src/main/java/com/quantumcoin/app/entity/ErrorEnvelope.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.entity;
+package com.quantumcoin.app.entity;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/entity/ServiceException.java b/app/src/main/java/com/quantumcoin/app/entity/ServiceException.java
similarity index 82%
rename from app/src/main/java/com/quantumcoinwallet/app/entity/ServiceException.java
rename to app/src/main/java/com/quantumcoin/app/entity/ServiceException.java
index 3d906ec..cebfe61 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/entity/ServiceException.java
+++ b/app/src/main/java/com/quantumcoin/app/entity/ServiceException.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.entity;
+package com.quantumcoin.app.entity;
public class ServiceException extends Exception {
public final ErrorEnvelope error;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/events/NetworkChangeBroadcaster.java b/app/src/main/java/com/quantumcoin/app/events/NetworkChangeBroadcaster.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/events/NetworkChangeBroadcaster.java
rename to app/src/main/java/com/quantumcoin/app/events/NetworkChangeBroadcaster.java
index 2b76eb6..48111fc 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/events/NetworkChangeBroadcaster.java
+++ b/app/src/main/java/com/quantumcoin/app/events/NetworkChangeBroadcaster.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.events;
+package com.quantumcoin.app.events;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -47,7 +47,7 @@ public final class NetworkChangeBroadcaster {
* mirrors the active chain identity.
*/
public static final String ACTION_ACTIVE_NETWORK_CHANGED =
- "com.quantumcoinwallet.app.NETWORK_ACTIVE_CHANGED";
+ "com.quantumcoin.app.NETWORK_ACTIVE_CHANGED";
/**
* Sent when the user added, edited, or removed a network from the
@@ -56,7 +56,7 @@ public final class NetworkChangeBroadcaster {
* the active network's metadata changed.
*/
public static final String ACTION_NETWORK_LIST_CHANGED =
- "com.quantumcoinwallet.app.NETWORK_LIST_CHANGED";
+ "com.quantumcoin.app.NETWORK_LIST_CHANGED";
private NetworkChangeBroadcaster() { }
diff --git a/app/src/main/java/com/quantumcoinwallet/app/interact/BlockchainNetworkInteract.java b/app/src/main/java/com/quantumcoin/app/interact/BlockchainNetworkInteract.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/interact/BlockchainNetworkInteract.java
rename to app/src/main/java/com/quantumcoin/app/interact/BlockchainNetworkInteract.java
index b89aaaa..3db96f1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/interact/BlockchainNetworkInteract.java
+++ b/app/src/main/java/com/quantumcoin/app/interact/BlockchainNetworkInteract.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.interact;
+package com.quantumcoin.app.interact;
import org.json.JSONException;
import org.json.JSONObject;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/interact/JsonInteract.java b/app/src/main/java/com/quantumcoin/app/interact/JsonInteract.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/interact/JsonInteract.java
rename to app/src/main/java/com/quantumcoin/app/interact/JsonInteract.java
index 78a1dd1..6c9ff0f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/interact/JsonInteract.java
+++ b/app/src/main/java/com/quantumcoin/app/interact/JsonInteract.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.interact;
+package com.quantumcoin.app.interact;
import org.json.JSONArray;
import org.json.JSONException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/interact/KeyInteract.java b/app/src/main/java/com/quantumcoin/app/interact/KeyInteract.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/interact/KeyInteract.java
rename to app/src/main/java/com/quantumcoin/app/interact/KeyInteract.java
index da5f779..1d8f69d 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/interact/KeyInteract.java
+++ b/app/src/main/java/com/quantumcoin/app/interact/KeyInteract.java
@@ -1,7 +1,7 @@
-package com.quantumcoinwallet.app.interact;
+package com.quantumcoin.app.interact;
-import com.quantumcoinwallet.app.bridge.BridgeCallback;
-import com.quantumcoinwallet.app.services.IKeyService;
+import com.quantumcoin.app.bridge.BridgeCallback;
+import com.quantumcoin.app.services.IKeyService;
public class KeyInteract {
private final IKeyService keyService;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java b/app/src/main/java/com/quantumcoin/app/keystorage/Aead.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/Aead.java
index 81c587b..903c8b1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/Aead.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/Aead.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/AndroidKeystoreGenerationCounter.java b/app/src/main/java/com/quantumcoin/app/keystorage/AndroidKeystoreGenerationCounter.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/AndroidKeystoreGenerationCounter.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/AndroidKeystoreGenerationCounter.java
index a55bac0..00dc12f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/AndroidKeystoreGenerationCounter.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/AndroidKeystoreGenerationCounter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import android.content.Context;
import android.content.SharedPreferences;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/DefaultSecureRandomSource.java b/app/src/main/java/com/quantumcoin/app/keystorage/DefaultSecureRandomSource.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/DefaultSecureRandomSource.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/DefaultSecureRandomSource.java
index 8ae46fc..fd4f9d6 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/DefaultSecureRandomSource.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/DefaultSecureRandomSource.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import java.security.SecureRandom;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java b/app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java
index 7ec0b9a..1dbfdec 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/MacUtil.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/MacUtil.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import org.bouncycastle.crypto.digests.SHA256Digest;
import org.bouncycastle.crypto.generators.HKDFBytesGenerator;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureRandomSource.java b/app/src/main/java/com/quantumcoin/app/keystorage/SecureRandomSource.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureRandomSource.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/SecureRandomSource.java
index 68f2bd5..8dfe13a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureRandomSource.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/SecureRandomSource.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import java.security.SecureRandom;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureStorage.java b/app/src/main/java/com/quantumcoin/app/keystorage/SecureStorage.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureStorage.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/SecureStorage.java
index 8329952..6233965 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/SecureStorage.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/SecureStorage.java
@@ -1,9 +1,9 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import android.content.Context;
-import com.quantumcoinwallet.app.bridge.QuantumCoinJSBridge;
-import com.quantumcoinwallet.app.strongbox.StrongboxPayload;
+import com.quantumcoin.app.bridge.QuantumCoinJSBridge;
+import com.quantumcoin.app.strongbox.StrongboxPayload;
import java.util.HashMap;
import java.util.Map;
@@ -13,9 +13,9 @@
/**
* Password-encrypted wallet storage facade. Today this class is a
* thin compatibility wrapper over {@link UnlockCoordinator} and the
- * v2 layered strongbox stack ({@link com.quantumcoinwallet.app.strongbox.StrongboxFileCodec},
- * {@link com.quantumcoinwallet.app.storage.AtomicSlotWriter},
- * {@link com.quantumcoinwallet.app.strongbox.StrongboxPadding},
+ * v2 layered strongbox stack ({@link com.quantumcoin.app.strongbox.StrongboxFileCodec},
+ * {@link com.quantumcoin.app.storage.AtomicSlotWriter},
+ * {@link com.quantumcoin.app.strongbox.StrongboxPadding},
* {@link Aead}, {@link MacUtil}).
* the legacy per-wallet
* SharedPreferences-key model has been replaced by a single
@@ -99,7 +99,7 @@ public boolean isUnlocked() {
* password) without a heavyweight re-unlock.
* Callers MUST run this on a background thread (~1-3s on
* mid-range hardware) and MUST consult
- * {@link com.quantumcoinwallet.app.security.UnlockAttemptLimiter}
+ * {@link com.quantumcoin.app.security.UnlockAttemptLimiter}
* before calling: this method itself does NOT record limiter
* events so the calling site can pick the appropriate
* channel.
@@ -147,7 +147,7 @@ public boolean unlock(Context ctx, String password) {
// because the migration may need to persist (which now
// requires the user password to re-derive mainKey).
try {
- com.quantumcoinwallet.app.utils.NetworkPersistence
+ com.quantumcoin.app.utils.NetworkPersistence
.migrateLegacyOnUnlockIfNeeded(ctx, this, password);
} catch (Throwable t) {
Timber.w(t, "SecureStorage.unlock: post-unlock migration failed");
@@ -175,8 +175,8 @@ public Map[] buildWalletMaps(Context ctx) throws Exception {
String encoded = e.getValue();
if (encoded == null) continue;
try {
- com.quantumcoinwallet.app.strongbox.WalletEntryCodec.WalletEntry entry =
- com.quantumcoinwallet.app.strongbox.WalletEntryCodec
+ com.quantumcoin.app.strongbox.WalletEntryCodec.WalletEntry entry =
+ com.quantumcoin.app.strongbox.WalletEntryCodec
.decodeEntry(encoded);
String address = entry.address;
if (address == null || address.isEmpty()) {
@@ -232,7 +232,7 @@ public void saveWallet(Context ctx, int index, String walletJson, String passwor
// outer JSON payload demands a string value). Read
// sites still see the legacy JSON shape via loadWallet.
// Background: see WalletEntryCodec class header.
- String encoded = com.quantumcoinwallet.app.strongbox.WalletEntryCodec.encode(walletJson);
+ String encoded = com.quantumcoin.app.strongbox.WalletEntryCodec.encode(walletJson);
StrongboxPayload payload = coordinator.getLivePayload();
payload.wallets.put(String.valueOf(index), encoded);
// v=3: maxWalletIndex is derived on demand from the
@@ -247,7 +247,7 @@ public String loadWallet(Context ctx, int index) throws Exception {
if (payload == null || payload.wallets == null) return null;
String encoded = payload.wallets.get(String.valueOf(index));
if (encoded == null) return null;
- return com.quantumcoinwallet.app.strongbox.WalletEntryCodec.decode(encoded);
+ return com.quantumcoin.app.strongbox.WalletEntryCodec.decode(encoded);
}
public int getMaxWalletIndex(Context ctx) {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/TooManyAttemptsException.java b/app/src/main/java/com/quantumcoin/app/keystorage/TooManyAttemptsException.java
similarity index 86%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/TooManyAttemptsException.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/TooManyAttemptsException.java
index ac80f8e..3e30981 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/TooManyAttemptsException.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/TooManyAttemptsException.java
@@ -1,10 +1,10 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import java.security.GeneralSecurityException;
/**
* Thrown by {@link UnlockCoordinator#persist} when the
- * {@link com.quantumcoinwallet.app.security.UnlockAttemptLimiter}
+ * {@link com.quantumcoin.app.security.UnlockAttemptLimiter}
* is engaged. Carries the remaining lockout seconds so the UI can
* format a precise countdown message.
*
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java b/app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java
index a82a5b5..da0dc01 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/UnlockCoordinator.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/UnlockCoordinator.java
@@ -1,13 +1,13 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import android.content.Context;
import android.util.Base64;
-import com.quantumcoinwallet.app.bridge.QuantumCoinJSBridge;
-import com.quantumcoinwallet.app.storage.AtomicSlotWriter;
-import com.quantumcoinwallet.app.strongbox.StrongboxFileCodec;
-import com.quantumcoinwallet.app.strongbox.StrongboxPadding;
-import com.quantumcoinwallet.app.strongbox.StrongboxPayload;
+import com.quantumcoin.app.bridge.QuantumCoinJSBridge;
+import com.quantumcoin.app.storage.AtomicSlotWriter;
+import com.quantumcoin.app.strongbox.StrongboxFileCodec;
+import com.quantumcoin.app.strongbox.StrongboxPadding;
+import com.quantumcoin.app.strongbox.StrongboxPayload;
import org.json.JSONException;
import org.json.JSONObject;
@@ -532,9 +532,9 @@ public synchronized void persist(Context ctx, StrongboxPayload newPayload,
// Brute-force limiter pre-check before paying scrypt cost.
// Mirrors iOS persistSnapshot limiter check
// (UnlockCoordinatorV2.swift lines 1143-1148).
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision decision =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.currentDecision(ctx);
- if (decision.kind == com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision decision =
+ com.quantumcoin.app.security.UnlockAttemptLimiter.currentDecision(ctx);
+ if (decision.kind == com.quantumcoin.app.security.UnlockAttemptLimiter
.DecisionKind.LOCKED) {
throw new TooManyAttemptsException(decision.remainingSeconds);
}
@@ -558,8 +558,8 @@ public synchronized void persist(Context ctx, StrongboxPayload newPayload,
// Wrong password on a write surface counts against
// the same limiter as the unlock dialog (matches iOS
// UnlockCoordinatorV2 lines 1175-1183).
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.recordFailure(ctx,
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.recordFailure(ctx,
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.Channel.STRONGBOX_UNLOCK);
throw new WrongPasswordException(
"persist: wrong password (passwordWrap open failed: " + ae.kind + ")");
@@ -610,8 +610,8 @@ public synchronized void persist(Context ctx, StrongboxPayload newPayload,
// in `BackupExclusion.swift` / `Strongbox.swift`.
// User proved knowledge of the current password.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.recordSuccess(ctx,
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.recordSuccess(ctx,
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.Channel.STRONGBOX_UNLOCK);
} finally {
Arrays.fill(derivedKey, (byte) 0);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/keystorage/WrongPasswordException.java b/app/src/main/java/com/quantumcoin/app/keystorage/WrongPasswordException.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/keystorage/WrongPasswordException.java
rename to app/src/main/java/com/quantumcoin/app/keystorage/WrongPasswordException.java
index acbeadc..2263a73 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/keystorage/WrongPasswordException.java
+++ b/app/src/main/java/com/quantumcoin/app/keystorage/WrongPasswordException.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import java.security.GeneralSecurityException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/model/BlockchainNetwork.java b/app/src/main/java/com/quantumcoin/app/model/BlockchainNetwork.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/model/BlockchainNetwork.java
rename to app/src/main/java/com/quantumcoin/app/model/BlockchainNetwork.java
index c421c21..51d77d0 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/model/BlockchainNetwork.java
+++ b/app/src/main/java/com/quantumcoin/app/model/BlockchainNetwork.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.model;
+package com.quantumcoin.app.model;
import com.google.gson.annotations.SerializedName;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/networking/NetworkSnapshot.java b/app/src/main/java/com/quantumcoin/app/networking/NetworkSnapshot.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/networking/NetworkSnapshot.java
rename to app/src/main/java/com/quantumcoin/app/networking/NetworkSnapshot.java
index a82d9a8..87da8e1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/networking/NetworkSnapshot.java
+++ b/app/src/main/java/com/quantumcoin/app/networking/NetworkSnapshot.java
@@ -1,9 +1,9 @@
-package com.quantumcoinwallet.app.networking;
+package com.quantumcoin.app.networking;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.Objects;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/networking/UrlBuilder.java b/app/src/main/java/com/quantumcoin/app/networking/UrlBuilder.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/networking/UrlBuilder.java
rename to app/src/main/java/com/quantumcoin/app/networking/UrlBuilder.java
index 18f6145..094b646 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/networking/UrlBuilder.java
+++ b/app/src/main/java/com/quantumcoin/app/networking/UrlBuilder.java
@@ -1,10 +1,10 @@
-package com.quantumcoinwallet.app.networking;
+package com.quantumcoin.app.networking;
import android.net.Uri;
import androidx.annotation.Nullable;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.regex.Pattern;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/BundleIntegrity.java b/app/src/main/java/com/quantumcoin/app/security/BundleIntegrity.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/security/BundleIntegrity.java
rename to app/src/main/java/com/quantumcoin/app/security/BundleIntegrity.java
index da1c141..04d83c0 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/BundleIntegrity.java
+++ b/app/src/main/java/com/quantumcoin/app/security/BundleIntegrity.java
@@ -1,9 +1,9 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.content.Context;
import android.content.res.AssetManager;
-import com.quantumcoinwallet.app.security.generated.GeneratedBundleHash;
+import com.quantumcoin.app.security.generated.GeneratedBundleHash;
import java.io.IOException;
import java.io.InputStream;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/CredentialIdentifier.java b/app/src/main/java/com/quantumcoin/app/security/CredentialIdentifier.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/security/CredentialIdentifier.java
rename to app/src/main/java/com/quantumcoin/app/security/CredentialIdentifier.java
index c611568..2ee48c1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/CredentialIdentifier.java
+++ b/app/src/main/java/com/quantumcoin/app/security/CredentialIdentifier.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.text.TextUtils;
import android.util.TypedValue;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/ScreenCaptureGuard.java b/app/src/main/java/com/quantumcoin/app/security/ScreenCaptureGuard.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/security/ScreenCaptureGuard.java
rename to app/src/main/java/com/quantumcoin/app/security/ScreenCaptureGuard.java
index f305918..c106562 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/ScreenCaptureGuard.java
+++ b/app/src/main/java/com/quantumcoin/app/security/ScreenCaptureGuard.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.app.Activity;
import android.content.Context;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/TamperGate.java b/app/src/main/java/com/quantumcoin/app/security/TamperGate.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/security/TamperGate.java
rename to app/src/main/java/com/quantumcoin/app/security/TamperGate.java
index 17fb635..e518c58 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/TamperGate.java
+++ b/app/src/main/java/com/quantumcoin/app/security/TamperGate.java
@@ -1,9 +1,9 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.content.Context;
import android.os.Debug;
-import com.quantumcoinwallet.app.BuildConfig;
+import com.quantumcoin.app.BuildConfig;
import java.io.File;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/TamperGatePolicy.java b/app/src/main/java/com/quantumcoin/app/security/TamperGatePolicy.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/security/TamperGatePolicy.java
rename to app/src/main/java/com/quantumcoin/app/security/TamperGatePolicy.java
index e3eb1ce..9435d0a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/TamperGatePolicy.java
+++ b/app/src/main/java/com/quantumcoin/app/security/TamperGatePolicy.java
@@ -1,11 +1,11 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.SharedPreferences;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
/**
* Policy + UI surface that consumes the {@link TamperGate.TamperReport}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java b/app/src/main/java/com/quantumcoin/app/security/TlsPinning.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java
rename to app/src/main/java/com/quantumcoin/app/security/TlsPinning.java
index fd71104..1af5c20 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/TlsPinning.java
+++ b/app/src/main/java/com/quantumcoin/app/security/TlsPinning.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.util.Base64;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiter.java b/app/src/main/java/com/quantumcoin/app/security/UnlockAttemptLimiter.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiter.java
rename to app/src/main/java/com/quantumcoin/app/security/UnlockAttemptLimiter.java
index 7a7fbc3..d50fb80 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiter.java
+++ b/app/src/main/java/com/quantumcoin/app/security/UnlockAttemptLimiter.java
@@ -1,16 +1,16 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.SystemClock;
-import com.quantumcoinwallet.app.Logger;
+import com.quantumcoin.app.Logger;
/**
* Rate-limiting for any password-based unlock attempt against
* the strongbox or against a backup-restore decrypt.
* Why this exists:
- * {@link com.quantumcoinwallet.app.keystorage.UnlockCoordinator#unlock}
+ * {@link com.quantumcoin.app.keystorage.UnlockCoordinator#unlock}
* runs scrypt with N=2^18, r=8, p=1 on the user's password.
* That is roughly 200-1000 ms per attempt on modern Android
* devices. Without rate limiting, an attacker who has the
@@ -213,7 +213,7 @@ public static void recordFailure(Context ctx, Channel channel) {
* typo") is more important than perfect language fidelity in
* the lockout path, so an English fallback is acceptable.
*/
public static String userFacingLockoutMessage(long remainingSeconds,
- com.quantumcoinwallet.app.viewmodel.JsonViewModel vm) {
+ com.quantumcoin.app.viewmodel.JsonViewModel vm) {
if (remainingSeconds < 60) {
String tpl = (vm == null) ? null : vm.getUnlockTooManyAttemptsSecondsByErrors();
if (tpl == null || tpl.isEmpty()) {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/security/generated/GeneratedBundleHash.java b/app/src/main/java/com/quantumcoin/app/security/generated/GeneratedBundleHash.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/security/generated/GeneratedBundleHash.java
rename to app/src/main/java/com/quantumcoin/app/security/generated/GeneratedBundleHash.java
index 6eecaf4..c16b350 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/security/generated/GeneratedBundleHash.java
+++ b/app/src/main/java/com/quantumcoin/app/security/generated/GeneratedBundleHash.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security.generated;
+package com.quantumcoin.app.security.generated;
// AUTO-GENERATED at build time by the embedBundleHash Gradle task in
// app/build.gradle. DO NOT EDIT. Any local changes will be overwritten
diff --git a/app/src/main/java/com/quantumcoinwallet/app/services/IKeyService.java b/app/src/main/java/com/quantumcoin/app/services/IKeyService.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/services/IKeyService.java
rename to app/src/main/java/com/quantumcoin/app/services/IKeyService.java
index 615636c..184ab0f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/services/IKeyService.java
+++ b/app/src/main/java/com/quantumcoin/app/services/IKeyService.java
@@ -1,6 +1,6 @@
-package com.quantumcoinwallet.app.services;
+package com.quantumcoin.app.services;
-import com.quantumcoinwallet.app.bridge.BridgeCallback;
+import com.quantumcoin.app.bridge.BridgeCallback;
public interface IKeyService {
void createRandomSeed(int keyType, BridgeCallback callback);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/services/KeyService.java b/app/src/main/java/com/quantumcoin/app/services/KeyService.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/services/KeyService.java
rename to app/src/main/java/com/quantumcoin/app/services/KeyService.java
index 09f546d..de4e172 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/services/KeyService.java
+++ b/app/src/main/java/com/quantumcoin/app/services/KeyService.java
@@ -1,7 +1,7 @@
-package com.quantumcoinwallet.app.services;
+package com.quantumcoin.app.services;
-import com.quantumcoinwallet.app.bridge.BridgeCallback;
-import com.quantumcoinwallet.app.bridge.QuantumCoinJSBridge;
+import com.quantumcoin.app.bridge.BridgeCallback;
+import com.quantumcoin.app.bridge.QuantumCoinJSBridge;
public class KeyService implements IKeyService {
private final QuantumCoinJSBridge bridge;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/storage/AtomicSlotWriter.java b/app/src/main/java/com/quantumcoin/app/storage/AtomicSlotWriter.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/storage/AtomicSlotWriter.java
rename to app/src/main/java/com/quantumcoin/app/storage/AtomicSlotWriter.java
index 0d31f52..855d3c5 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/storage/AtomicSlotWriter.java
+++ b/app/src/main/java/com/quantumcoin/app/storage/AtomicSlotWriter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.storage;
+package com.quantumcoin.app.storage;
import android.content.Context;
import android.system.ErrnoException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java
rename to app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java
index 9ce3ddf..a3ad4cf 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodec.java
+++ b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxFileCodec.java
@@ -1,10 +1,10 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import android.content.Context;
-import com.quantumcoinwallet.app.keystorage.Aead;
-import com.quantumcoinwallet.app.keystorage.MacUtil;
-import com.quantumcoinwallet.app.storage.AtomicSlotWriter;
+import com.quantumcoin.app.keystorage.Aead;
+import com.quantumcoin.app.keystorage.MacUtil;
+import com.quantumcoin.app.storage.AtomicSlotWriter;
import org.json.JSONException;
import org.json.JSONObject;
@@ -46,7 +46,7 @@
*
* - Layer 1 sees only opaque bytes ({@link AtomicSlotWriter}).
* - Layer 3 sees only AEAD primitives ({@link Aead}, {@link MacUtil}).
- * - Layer 4 ({@link com.quantumcoinwallet.app.keystorage.UnlockCoordinator})
+ *
- Layer 4 ({@link com.quantumcoin.app.keystorage.UnlockCoordinator})
* sees a typed decode result ({@link DecodedFile}) with
* fields like {@code salt}, {@code passwordWrap},
* {@code strongbox}, {@code mac} and never touches their
diff --git a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPadding.java b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPadding.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPadding.java
rename to app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPadding.java
index 30b2a7f..e418878 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPadding.java
+++ b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPadding.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import java.util.Arrays;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPayload.java b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPayload.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPayload.java
rename to app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPayload.java
index f279e46..b6bc461 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxPayload.java
+++ b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxPayload.java
@@ -1,10 +1,10 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
-import com.quantumcoinwallet.app.keystorage.MacUtil;
+import com.quantumcoin.app.keystorage.MacUtil;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
@@ -22,7 +22,7 @@
*
Layer 5 of the storage stack — the highest-level model the
* crypto layers see. {@link StrongboxFileCodec} (layer 2) is the
* only place that knows how this object is serialised onto disk,
- * and {@link com.quantumcoinwallet.app.storage.AtomicSlotWriter}
+ * and {@link com.quantumcoin.app.storage.AtomicSlotWriter}
* (layer 1) sees it only as opaque bytes.
*
* v=3 unified-schema (notes for reviewers):
diff --git a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxRedundancyState.java b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxRedundancyState.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxRedundancyState.java
rename to app/src/main/java/com/quantumcoin/app/strongbox/StrongboxRedundancyState.java
index e3a3f34..9b94a1e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/strongbox/StrongboxRedundancyState.java
+++ b/app/src/main/java/com/quantumcoin/app/strongbox/StrongboxRedundancyState.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import androidx.annotation.NonNull;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodec.java b/app/src/main/java/com/quantumcoin/app/strongbox/WalletEntryCodec.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodec.java
rename to app/src/main/java/com/quantumcoin/app/strongbox/WalletEntryCodec.java
index 30fd405..7f595ac 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodec.java
+++ b/app/src/main/java/com/quantumcoin/app/strongbox/WalletEntryCodec.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -76,7 +76,7 @@
*
*
* The codec is fully encapsulated inside
- * {@link com.quantumcoinwallet.app.keystorage.SecureStorage#saveWallet}
+ * {@link com.quantumcoin.app.keystorage.SecureStorage#saveWallet}
* and {@code loadWallet}; callers continue to hand the storage
* layer the same JSON shape they always have. That keeps the
* read sites (Send/Reveal) untouched and lets us swap the
diff --git a/app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java b/app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java
rename to app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java
index cdf31da..9dc3220 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/tokens/RecognizedTokens.java
+++ b/app/src/main/java/com/quantumcoin/app/tokens/RecognizedTokens.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.tokens;
+package com.quantumcoin.app.tokens;
import java.util.Arrays;
import java.util.Collections;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java b/app/src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java
rename to app/src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java
index 93f0cee..ac768f9 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java
+++ b/app/src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java
@@ -1,6 +1,6 @@
-package com.quantumcoinwallet.app.tokens;
+package com.quantumcoin.app.tokens;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/AccountTransactionUi.java b/app/src/main/java/com/quantumcoin/app/utils/AccountTransactionUi.java
similarity index 91%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/AccountTransactionUi.java
rename to app/src/main/java/com/quantumcoin/app/utils/AccountTransactionUi.java
index 00e4d96..84f050a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/AccountTransactionUi.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/AccountTransactionUi.java
@@ -1,7 +1,7 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummary;
-import com.quantumcoinwallet.app.api.read.model.Receipt;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummary;
+import com.quantumcoin.app.api.read.model.Receipt;
/**
* Display rules for the transaction list, aligned with the desktop wallet
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/CoinUtils.java b/app/src/main/java/com/quantumcoin/app/utils/CoinUtils.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/CoinUtils.java
rename to app/src/main/java/com/quantumcoin/app/utils/CoinUtils.java
index 6746805..736b48a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/CoinUtils.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/CoinUtils.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import java.math.BigDecimal;
import java.math.BigInteger;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/GlobalMethods.java b/app/src/main/java/com/quantumcoin/app/utils/GlobalMethods.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/GlobalMethods.java
rename to app/src/main/java/com/quantumcoin/app/utils/GlobalMethods.java
index 301b45a..8eea7c1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/GlobalMethods.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/GlobalMethods.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.app.Activity;
import android.app.Dialog;
@@ -22,9 +22,9 @@
import androidx.annotation.RawRes;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.model.BlockchainNetwork;
import org.json.JSONArray;
import org.json.JSONException;
@@ -161,8 +161,8 @@ public static List BlockChainNetworkRead(Context context) thr
// into the strongbox at next unlock and clears the prefs
// key, so a fresh-install on a device that never unlocks
// behaves identically to the strongbox-empty case.
- com.quantumcoinwallet.app.keystorage.SecureStorage secureStorage =
- com.quantumcoinwallet.app.viewmodel.KeyViewModel.getSecureStorage();
+ com.quantumcoin.app.keystorage.SecureStorage secureStorage =
+ com.quantumcoin.app.viewmodel.KeyViewModel.getSecureStorage();
return NetworkPersistence.readNetworks(context, secureStorage);
}
@@ -215,7 +215,7 @@ public static void ExceptionError(Context context, String tag, Exception e) {
public static void ShowErrorDialog(Context context, String title, String message) {
// Always route through Timber so ReleaseTree can redact/strip.
// Only write debug details when explicitly running a debug build.
- if (com.quantumcoinwallet.app.BuildConfig.DEBUG) {
+ if (com.quantumcoin.app.BuildConfig.DEBUG) {
timber.log.Timber.tag("QuantumCoinWallet").w("%s: %s", title, message);
}
if (context instanceof Activity && !((Activity) context).isFinishing()) {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/GridAutoFitLayoutManager.java b/app/src/main/java/com/quantumcoin/app/utils/GridAutoFitLayoutManager.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/GridAutoFitLayoutManager.java
rename to app/src/main/java/com/quantumcoin/app/utils/GridAutoFitLayoutManager.java
index 8d62f2f..cabee6a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/GridAutoFitLayoutManager.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/GridAutoFitLayoutManager.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.content.Context;
import androidx.recyclerview.widget.GridLayoutManager;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/NetworkPersistence.java b/app/src/main/java/com/quantumcoin/app/utils/NetworkPersistence.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/NetworkPersistence.java
rename to app/src/main/java/com/quantumcoin/app/utils/NetworkPersistence.java
index 50ae7a9..aa9868c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/NetworkPersistence.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/NetworkPersistence.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.content.Context;
import android.text.TextUtils;
@@ -6,10 +6,10 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.keystorage.UnlockCoordinator;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.strongbox.StrongboxPayload;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.keystorage.UnlockCoordinator;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.strongbox.StrongboxPayload;
import org.json.JSONArray;
import org.json.JSONObject;
@@ -357,7 +357,7 @@ private static List parseLegacyNetworks(@NonNull String json)
private static List readBundled(@NonNull Context ctx) {
try {
String json = GlobalMethods.readRawResource(ctx,
- com.quantumcoinwallet.app.R.raw.blockchain_networks);
+ com.quantumcoin.app.R.raw.blockchain_networks);
return parseLegacyNetworks(json);
} catch (Throwable t) {
Timber.w(t, "%s: bundled network read failed; returning empty list", TAG);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/PrefConnect.java b/app/src/main/java/com/quantumcoin/app/utils/PrefConnect.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/PrefConnect.java
rename to app/src/main/java/com/quantumcoin/app/utils/PrefConnect.java
index 7452dbd..999f63a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/PrefConnect.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/PrefConnect.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.content.Context;
import android.content.SharedPreferences;
@@ -38,7 +38,7 @@
*
* Wallet bytes, networks, per-address passwords, and any other
* secret-or-sensitive data live in the strongbox slot files
- * managed by {@link com.quantumcoinwallet.app.keystorage.UnlockCoordinator}
+ * managed by {@link com.quantumcoin.app.keystorage.UnlockCoordinator}
* and are never written to SharedPreferences.
* Migration note:
* {@link #BLOCKCHAIN_NETWORK_LIST} is retained as a transitional
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/SecureClipboard.java b/app/src/main/java/com/quantumcoin/app/utils/SecureClipboard.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/SecureClipboard.java
rename to app/src/main/java/com/quantumcoin/app/utils/SecureClipboard.java
index e8bc966..f5c28c1 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/SecureClipboard.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/SecureClipboard.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.content.ClipData;
import android.content.ClipDescription;
@@ -113,10 +113,10 @@ public void run() {
} else {
m.setPrimaryClip(ClipData.newPlainText("", ""));
}
- com.quantumcoinwallet.app.Logger.d("SecureClipboard", "auto-cleared");
+ com.quantumcoin.app.Logger.d("SecureClipboard", "auto-cleared");
}
} catch (Throwable t) {
- com.quantumcoinwallet.app.Logger.w("SecureClipboard", "auto-clear", t);
+ com.quantumcoin.app.Logger.w("SecureClipboard", "auto-clear", t);
}
}
}, AUTO_CLEAR_MS);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/utils/Utility.java b/app/src/main/java/com/quantumcoin/app/utils/Utility.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/utils/Utility.java
rename to app/src/main/java/com/quantumcoin/app/utils/Utility.java
index a7d4f2e..80da79f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/utils/Utility.java
+++ b/app/src/main/java/com/quantumcoin/app/utils/Utility.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import android.content.Context;
import android.content.res.Resources;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/ux/SnapshotRedactor.java b/app/src/main/java/com/quantumcoin/app/ux/SnapshotRedactor.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/ux/SnapshotRedactor.java
rename to app/src/main/java/com/quantumcoin/app/ux/SnapshotRedactor.java
index 3235727..5d7838f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/ux/SnapshotRedactor.java
+++ b/app/src/main/java/com/quantumcoin/app/ux/SnapshotRedactor.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.ux;
+package com.quantumcoin.app.ux;
import android.app.Activity;
import android.app.Application;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/activities/HomeActivity.java b/app/src/main/java/com/quantumcoin/app/view/activities/HomeActivity.java
similarity index 93%
rename from app/src/main/java/com/quantumcoinwallet/app/view/activities/HomeActivity.java
rename to app/src/main/java/com/quantumcoin/app/view/activities/HomeActivity.java
index 5259930..2b50c03 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/activities/HomeActivity.java
+++ b/app/src/main/java/com/quantumcoin/app/view/activities/HomeActivity.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.activities;
+package com.quantumcoin.app.view.activities;
import android.Manifest;
import android.annotation.SuppressLint;
@@ -35,32 +35,32 @@
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.ApiClient;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
-import com.quantumcoinwallet.app.asynctask.read.AccountBalanceRestTask;
-import com.quantumcoinwallet.app.entity.ServiceException;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.utils.Utility;
-import com.quantumcoinwallet.app.view.fragment.BlockchainNetworkAddFragment;
-import com.quantumcoinwallet.app.view.fragment.BlockchainNetworkDialogFragment;
-import com.quantumcoinwallet.app.view.fragment.BlockchainNetworkFragment;
-import com.quantumcoinwallet.app.view.fragment.HomeMainFragment;
-import com.quantumcoinwallet.app.view.fragment.HomeStartFragment;
-import com.quantumcoinwallet.app.view.fragment.HomeWalletFragment;
-import com.quantumcoinwallet.app.view.fragment.ReceiveFragment;
-import com.quantumcoinwallet.app.view.fragment.SendFragment;
-import com.quantumcoinwallet.app.view.fragment.SettingsFragment;
-import com.quantumcoinwallet.app.view.fragment.RevealWalletFragment;
-import com.quantumcoinwallet.app.view.fragment.AccountTransactionsFragment;
-
-import com.quantumcoinwallet.app.view.fragment.WalletsFragment;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.ApiClient;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.asynctask.read.AccountBalanceRestTask;
+import com.quantumcoin.app.entity.ServiceException;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.utils.Utility;
+import com.quantumcoin.app.view.fragment.BlockchainNetworkAddFragment;
+import com.quantumcoin.app.view.fragment.BlockchainNetworkDialogFragment;
+import com.quantumcoin.app.view.fragment.BlockchainNetworkFragment;
+import com.quantumcoin.app.view.fragment.HomeMainFragment;
+import com.quantumcoin.app.view.fragment.HomeStartFragment;
+import com.quantumcoin.app.view.fragment.HomeWalletFragment;
+import com.quantumcoin.app.view.fragment.ReceiveFragment;
+import com.quantumcoin.app.view.fragment.SendFragment;
+import com.quantumcoin.app.view.fragment.SettingsFragment;
+import com.quantumcoin.app.view.fragment.RevealWalletFragment;
+import com.quantumcoin.app.view.fragment.AccountTransactionsFragment;
+
+import com.quantumcoin.app.view.fragment.WalletsFragment;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import com.google.android.material.bottomnavigation.BottomNavigationView;
@@ -83,7 +83,7 @@ public class HomeActivity extends FragmentActivity implements
AccountTransactionsFragment.OnAccountTransactionsCompleteListener, WalletsFragment.OnWalletsCompleteListener,
SettingsFragment.OnSettingsCompleteListener,
RevealWalletFragment.OnRevealWalletCompleteListener,
- com.quantumcoinwallet.app.view.fragment.BackupOptionsFragment.OnBackupOptionsCompleteListener {
+ com.quantumcoin.app.view.fragment.BackupOptionsFragment.OnBackupOptionsCompleteListener {
private static final String TAG = "HomeActivity";
private static final long UNLOCK_TIMEOUT_MS = 300_000;
@@ -172,11 +172,11 @@ public void onCreate(Bundle savedInstanceState) {
// TamperGatePolicy.apply(...) so the user sees an
// explicit warning rather than a silent refusal.
try {
- com.quantumcoinwallet.app.security.TamperGate.bootstrap(
+ com.quantumcoin.app.security.TamperGate.bootstrap(
getApplicationContext());
- com.quantumcoinwallet.app.security.TamperGate.TamperReport report =
- com.quantumcoinwallet.app.security.TamperGate.currentReport();
- com.quantumcoinwallet.app.security.TamperGatePolicy.apply(
+ com.quantumcoin.app.security.TamperGate.TamperReport report =
+ com.quantumcoin.app.security.TamperGate.currentReport();
+ com.quantumcoin.app.security.TamperGatePolicy.apply(
HomeActivity.this, report, jsonViewModel);
} catch (Throwable t) {
// Probes must never crash the app; a bug in the gate
@@ -249,16 +249,16 @@ public void onCreate(Bundle savedInstanceState) {
createNotificationChannel();
}
- int storedNetworkIndex = com.quantumcoinwallet.app.utils.NetworkPersistence
+ int storedNetworkIndex = com.quantumcoin.app.utils.NetworkPersistence
.readActiveIndex(getApplicationContext(),
- com.quantumcoinwallet.app.viewmodel.KeyViewModel
+ com.quantumcoin.app.viewmodel.KeyViewModel
.getSecureStorage());
List blockchainNetworkList = GlobalMethods.BlockChainNetworkRead(getApplicationContext());
int maxNetworkIdx = Math.max(0, blockchainNetworkList.size() - 1);
int initialIdx = Math.max(0, Math.min(storedNetworkIndex, maxNetworkIdx));
if (initialIdx != storedNetworkIndex) {
- com.quantumcoinwallet.app.Logger.w(TAG, "Stored network index out of range; clamped to " + initialIdx);
+ com.quantumcoin.app.Logger.w(TAG, "Stored network index out of range; clamped to " + initialIdx);
// Persist the clamped value to legacy prefs only.
// The strongbox path requires the user password to
// re-derive mainKey on persist; at cold start we
@@ -285,9 +285,9 @@ public void onClick(View v) {
// (the prior behavior) meant the dialog kept
// showing the cold-start network as active even
// after a switch.
- int currentIdx = com.quantumcoinwallet.app.utils.NetworkPersistence
+ int currentIdx = com.quantumcoin.app.utils.NetworkPersistence
.readActiveIndex(getApplicationContext(),
- com.quantumcoinwallet.app.viewmodel.KeyViewModel
+ com.quantumcoin.app.viewmodel.KeyViewModel
.getSecureStorage());
bundle.putString("blockchainNetworkIdIndex", String.valueOf(currentIdx));
@@ -303,7 +303,7 @@ public void onClick(View v) {
public void onClick(View v) {
// IS_SENSITIVE so Android 13+ clipboard previews
// do not render the full address.
- com.quantumcoinwallet.app.utils.SecureClipboard.copyAddress(
+ com.quantumcoin.app.utils.SecureClipboard.copyAddress(
HomeActivity.this, "currentAddress",
walletAddressTextView.getText());
homeCopiedTextView.setVisibility(View.VISIBLE);
@@ -321,7 +321,7 @@ public void onClick(View v) {
// Route through UrlBuilder so the address is
// regex-validated and percent-encoded before
// pivoting the user into the system browser.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(
walletAddressTextView.getText() == null ? null
: walletAddressTextView.getText().toString());
@@ -427,11 +427,11 @@ public void onBackPressed() {
// HomeWalletFragment wizard, to its public handleBackPressed
// helper) so the two paths cannot diverge again.
Fragment current = getSupportFragmentManager().findFragmentById(R.id.frame_home_container_id);
- if (current instanceof com.quantumcoinwallet.app.view.fragment.HomeWalletFragment) {
- com.quantumcoinwallet.app.view.fragment.HomeWalletFragment hw =
- (com.quantumcoinwallet.app.view.fragment.HomeWalletFragment) current;
+ if (current instanceof com.quantumcoin.app.view.fragment.HomeWalletFragment) {
+ com.quantumcoin.app.view.fragment.HomeWalletFragment hw =
+ (com.quantumcoin.app.view.fragment.HomeWalletFragment) current;
if (hw.handleBackPressed()) return;
- } else if (current instanceof com.quantumcoinwallet.app.view.fragment.BackupOptionsFragment) {
+ } else if (current instanceof com.quantumcoin.app.view.fragment.BackupOptionsFragment) {
onBackupOptionsBack();
return;
} else if (current instanceof BlockchainNetworkAddFragment) {
@@ -505,7 +505,7 @@ public void performHomeRefresh() {
getBalanceByAccount(walletAddress, balanceValueTextView, progressBar);
GlobalMethods.CURRENT_WALLET_TOKEN_LIST = new java.util.ArrayList<>();
GlobalMethods.CURRENT_WALLET_TOKEN_LIST_ADDRESS = null;
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.broadcastActiveNetworkChanged(getApplicationContext());
} catch (Exception e) {
GlobalMethods.ExceptionError(getApplicationContext(), TAG, e);
@@ -600,9 +600,9 @@ public void onBlockchainNetworkDialogOk() {
*/
private void refreshActiveNetworkChrome(boolean reloadBalance) {
try {
- int idx = com.quantumcoinwallet.app.utils.NetworkPersistence
+ int idx = com.quantumcoin.app.utils.NetworkPersistence
.readActiveIndex(getApplicationContext(),
- com.quantumcoinwallet.app.viewmodel.KeyViewModel
+ com.quantumcoin.app.viewmodel.KeyViewModel
.getSecureStorage());
java.util.List nets =
GlobalMethods.BlockChainNetworkRead(getApplicationContext());
@@ -720,13 +720,13 @@ public void onWalletsCompleteByBackup(String walletAddress, String walletPasswor
// address and password through the shared activity
// bundle the way RevealWalletFragment does.
bundle.putString(
- com.quantumcoinwallet.app.view.fragment
+ com.quantumcoin.app.view.fragment
.BackupOptionsFragment.ARG_ADDRESS, walletAddress);
bundle.putString(
- com.quantumcoinwallet.app.view.fragment
+ com.quantumcoin.app.view.fragment
.BackupOptionsFragment.ARG_PASSWORD, walletPassword);
beginTransactionNow(
- com.quantumcoinwallet.app.view.fragment.BackupOptionsFragment
+ com.quantumcoin.app.view.fragment.BackupOptionsFragment
.newInstance(),
bundle);
// Wipe the password back out of the shared bundle so it
@@ -734,9 +734,9 @@ public void onWalletsCompleteByBackup(String walletAddress, String walletPasswor
// BackupOptionsFragment has already copied the value
// into its own field by this point because
// beginTransactionNow uses commitNow.
- bundle.remove(com.quantumcoinwallet.app.view.fragment
+ bundle.remove(com.quantumcoin.app.view.fragment
.BackupOptionsFragment.ARG_PASSWORD);
- bundle.remove(com.quantumcoinwallet.app.view.fragment
+ bundle.remove(com.quantumcoin.app.view.fragment
.BackupOptionsFragment.ARG_ADDRESS);
} catch (Exception e) {
GlobalMethods.ExceptionError(getApplicationContext(), TAG, e);
@@ -928,9 +928,9 @@ public boolean onKey(android.content.DialogInterface d, int keyCode,
passwordEditText.setHint(jsonViewModel.getEnterApasswordByLangValues());
// Per-context autofill identity for the strongbox unlock
// password (no per-wallet discriminator).
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
passwordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
// Inject an invisible username field carrying the
// strongbox-scoped username so Google Password Manager /
@@ -946,9 +946,9 @@ public boolean onKey(android.content.DialogInterface d, int keyCode,
android.view.ViewGroup unlockRoot = (android.view.ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(this));
}
GlobalMethods.focusAndShowKeyboard(passwordEditText, dialog);
@@ -965,7 +965,7 @@ public boolean onKey(android.content.DialogInterface d, int keyCode,
// must complete the unlock to proceed. The wrapper hides
// the close button and swallows the back key so the
// semantics live in exactly one place.
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs.applyMandatory(dialog, true);
+ com.quantumcoin.app.view.dialog.UnlockDialogs.applyMandatory(dialog, true);
unlockButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -981,7 +981,7 @@ public void onClick(View v) {
unlockButton.setText("...");
final String trimmedPassword = password.trim();
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(HomeActivity.this, jsonViewModel.getWaitUnlockByLangValues());
new Thread(new Runnable() {
public void run() {
@@ -995,11 +995,11 @@ public void run() {
// path which calls
// UnlockAttemptLimiter.currentDecision()
// before scrypt.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(getApplicationContext());
- if (lim.kind == com.quantumcoinwallet.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
- final String message = com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
+ final String message = com.quantumcoin.app.security
.UnlockAttemptLimiter.userFacingLockoutMessage(lim.remainingSeconds, jsonViewModel);
runOnUiThread(new Runnable() {
public void run() {
@@ -1018,9 +1018,9 @@ public void run() {
boolean unlocked = secureStorage.unlock(
getApplicationContext(), trimmedPassword);
if (!unlocked) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(getApplicationContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
runOnUiThread(new Runnable() {
public void run() {
@@ -1035,9 +1035,9 @@ public void run() {
});
return;
}
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(getApplicationContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
Map[] maps = secureStorage.buildWalletMaps(
getApplicationContext());
@@ -1342,7 +1342,7 @@ public void onFinished(BalanceResponse balanceResponse) throws ServiceException
}
@Override
- public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
+ public void onFailure(com.quantumcoin.app.api.read.ApiException e) {
progressBar.setVisibility(View.GONE);
int code = e.getCode();
@@ -1426,7 +1426,7 @@ public void onFinished(BalanceResponse balanceResponse) throws ServiceException
}
@Override
- public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
+ public void onFailure(com.quantumcoin.app.api.read.ApiException e) {
}
});
@@ -1536,7 +1536,7 @@ public void run() {
GlobalMethods.seedLoaded = true;
return;
} catch (Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "loadSeedsThread failed, retrying in 1s", e);
+ com.quantumcoin.app.Logger.e(TAG, "loadSeedsThread failed, retrying in 1s", e);
try {
Thread.sleep(1000);
} catch (InterruptedException ie) {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountPendingTransactionAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/AccountPendingTransactionAdapter.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountPendingTransactionAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/AccountPendingTransactionAdapter.java
index 225459a..ce4613d 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountPendingTransactionAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/AccountPendingTransactionAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -13,11 +13,11 @@
import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummary;
-import com.quantumcoinwallet.app.utils.AccountTransactionUi;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummary;
+import com.quantumcoin.app.utils.AccountTransactionUi;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.math.BigInteger;
import java.util.List;
@@ -126,7 +126,7 @@ public void onClick(View v) {
// Hash flows from a pending-tx scan API
// response; UrlBuilder regex-validates before
// any browser handoff.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerTxUrl(hash);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
@@ -138,7 +138,7 @@ public void onClick(View v) {
holder.textViewFrom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(from);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
@@ -150,7 +150,7 @@ public void onClick(View v) {
holder.textViewTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(to);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountTransactionAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/AccountTransactionAdapter.java
similarity index 93%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountTransactionAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/AccountTransactionAdapter.java
index 3561ca2..bd9d412 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/AccountTransactionAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/AccountTransactionAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -13,11 +13,11 @@
import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummary;
-import com.quantumcoinwallet.app.utils.AccountTransactionUi;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummary;
+import com.quantumcoin.app.utils.AccountTransactionUi;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.time.OffsetDateTime;
import java.time.ZoneId;
@@ -163,7 +163,7 @@ public void onClick(View v) {
// Hash comes from scan-API JSON; gate
// through UrlBuilder so a malformed value is
// a no-op rather than an injection vector.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerTxUrl(hash);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
@@ -175,7 +175,7 @@ public void onClick(View v) {
holder.textViewFrom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(from);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
@@ -187,7 +187,7 @@ public void onClick(View v) {
holder.textViewTo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(to);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/BlockchainNetworkAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/BlockchainNetworkAdapter.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/BlockchainNetworkAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/BlockchainNetworkAdapter.java
index 6c523a5..e1d9ec8 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/BlockchainNetworkAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/BlockchainNetworkAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -10,9 +10,9 @@
import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.List;
import java.util.Map;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/SeedWordAutoCompleteAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/SeedWordAutoCompleteAdapter.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/SeedWordAutoCompleteAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/SeedWordAutoCompleteAdapter.java
index 0e98fd8..964e36e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/SeedWordAutoCompleteAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/SeedWordAutoCompleteAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/TokenAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/TokenAdapter.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/TokenAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/TokenAdapter.java
index 45e86b3..5fc6c4a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/TokenAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/TokenAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -11,10 +11,10 @@
import androidx.recyclerview.widget.RecyclerView;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.GlobalMethods;
import java.util.ArrayList;
import java.util.List;
@@ -84,7 +84,7 @@ public void onClick(View v) {
// controls. UrlBuilder rejects anything not
// matching ^0x[0-9a-fA-F]{64}$ rather than
// pivoting Chrome to an attacker URL.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(contract);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/WalletAdapter.java b/app/src/main/java/com/quantumcoin/app/view/adapter/WalletAdapter.java
similarity index 93%
rename from app/src/main/java/com/quantumcoinwallet/app/view/adapter/WalletAdapter.java
rename to app/src/main/java/com/quantumcoin/app/view/adapter/WalletAdapter.java
index 831092e..0f6fbd2 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/adapter/WalletAdapter.java
+++ b/app/src/main/java/com/quantumcoin/app/view/adapter/WalletAdapter.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.adapter;
+package com.quantumcoin.app.view.adapter;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -13,10 +13,10 @@
import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummary;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummary;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
@@ -97,7 +97,7 @@ public void onClick(View v) {
public void onClick(View v) {
// Validate + percent-encode the address
// before letting the system browser see it.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(address);
if (u == null) return;
context.startActivity(new Intent(Intent.ACTION_VIEW, u));
@@ -112,7 +112,7 @@ public void onClick(View v) {
});
String indexKey = String.valueOf(position);
- Boolean hasSeedBoxed = com.quantumcoinwallet.app.utils.PrefConnect
+ Boolean hasSeedBoxed = com.quantumcoin.app.utils.PrefConnect
.WALLET_INDEX_HAS_SEED_MAP.get(indexKey);
// Default to false on a missing map entry: every
// create/restore path that produces a seed pushes
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/BackupPasswordDialog.java b/app/src/main/java/com/quantumcoin/app/view/dialog/BackupPasswordDialog.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/view/dialog/BackupPasswordDialog.java
rename to app/src/main/java/com/quantumcoin/app/view/dialog/BackupPasswordDialog.java
index 8c5ad38..2e6216c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/BackupPasswordDialog.java
+++ b/app/src/main/java/com/quantumcoin/app/view/dialog/BackupPasswordDialog.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.dialog;
+package com.quantumcoin.app.view.dialog;
import android.app.AlertDialog;
import android.content.Context;
@@ -15,9 +15,9 @@
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
/**
* Reusable dialog asking the user for a backup password.
@@ -168,8 +168,8 @@ private static void showCreateMode(final Context ctx, final JsonViewModel vm,
// / Samsung Pass / 1Password on submit. Mirrors iOS
// BackupPasswordDialog.create(address) which uses
// .newPassword.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.BACKUP_ENCRYPT,
+ com.quantumcoin.app.security.CredentialIdentifier.apply(pwd,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.BACKUP_ENCRYPT,
address, /*forCreation=*/true);
pwdLayout.addView(pwd);
root.addView(pwdLayout);
@@ -189,8 +189,8 @@ private static void showCreateMode(final Context ctx, final JsonViewModel vm,
confirm.setBackground(null);
// Same per-context identity as `pwd` so the manager fills BOTH
// fields with the same generated password.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(confirm,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.BACKUP_ENCRYPT,
+ com.quantumcoin.app.security.CredentialIdentifier.apply(confirm,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.BACKUP_ENCRYPT,
address, /*forCreation=*/true);
confirmLayout.addView(confirm);
root.addView(confirmLayout);
@@ -204,11 +204,11 @@ private static void showCreateMode(final Context ctx, final JsonViewModel vm,
// or `UsernameField.make(CredentialIdentifier.backupBatchUsername)`
// depending on the call site.
String createUsername = address == null
- ? com.quantumcoinwallet.app.security.CredentialIdentifier
+ ? com.quantumcoin.app.security.CredentialIdentifier
.backupBatchUsername(ctx)
- : com.quantumcoinwallet.app.security.CredentialIdentifier
+ : com.quantumcoin.app.security.CredentialIdentifier
.backupUsername(ctx, address);
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.attachUsernameField(root, createUsername);
final AlertDialog dialog = new AlertDialog.Builder(ctx)
@@ -302,8 +302,8 @@ public static void showRestore(final Context ctx, final JsonViewModel vm,
// DECRYPT context: a password manager should suggest the
// user's existing backup password rather than offering to
// generate a fresh one.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.BACKUP_DECRYPT,
+ com.quantumcoin.app.security.CredentialIdentifier.apply(pwd,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.BACKUP_DECRYPT,
address, /*forCreation=*/false);
pwdLayout.addView(pwd);
root.addView(pwdLayout);
@@ -311,11 +311,11 @@ public static void showRestore(final Context ctx, final JsonViewModel vm,
// Per-wallet (or batch when address unknown) username so the
// autofill provider scopes its suggestion to the right slot.
String restoreUsername = address == null
- ? com.quantumcoinwallet.app.security.CredentialIdentifier
+ ? com.quantumcoin.app.security.CredentialIdentifier
.backupBatchUsername(ctx)
- : com.quantumcoinwallet.app.security.CredentialIdentifier
+ : com.quantumcoin.app.security.CredentialIdentifier
.backupUsername(ctx, address);
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.attachUsernameField(root, restoreUsername);
final AlertDialog dialog = new AlertDialog.Builder(ctx)
@@ -363,14 +363,14 @@ public void onFailure() {
// does not get N extra attempts by alternating
// channels. Mirrors iOS UnlockAttemptLimiter usage
// in the backup-restore flow.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(ctx);
- if (lim.kind == com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security
.UnlockAttemptLimiter.DecisionKind.LOCKED) {
GlobalMethods.ShowErrorDialog(ctx,
safe(vm.getErrorTitleByLangValues(), "Error"),
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.userFacingLockoutMessage(lim.remainingSeconds, vm));
return;
}
@@ -460,8 +460,8 @@ public static void showRestoreBatch(final Context ctx, final JsonViewModel vm,
// generate a fresh one. Batch mode has no per-wallet
// discriminator (one typed password may decrypt one of many
// wallets) so the username falls back to the batch slot.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.BACKUP_DECRYPT,
+ com.quantumcoin.app.security.CredentialIdentifier.apply(pwd,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.BACKUP_DECRYPT,
null, /*forCreation=*/false);
pwdLayout.addView(pwd);
root.addView(pwdLayout);
@@ -470,9 +470,9 @@ public static void showRestoreBatch(final Context ctx, final JsonViewModel vm,
// backupUsername so a batch-mode autofill query never
// collides with a per-wallet slot. iOS counterpart is
// `UsernameField.make(CredentialIdentifier.backupBatchUsername)`.
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.attachUsernameField(root,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.backupBatchUsername(ctx));
final AlertDialog dialog = new AlertDialog.Builder(ctx)
@@ -519,14 +519,14 @@ public void reEnable() {
return;
}
// Brute-force gate (see showRestore for rationale).
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(ctx);
- if (lim.kind == com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security
.UnlockAttemptLimiter.DecisionKind.LOCKED) {
GlobalMethods.ShowErrorDialog(ctx,
safe(vm.getErrorTitleByLangValues(), "Error"),
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.userFacingLockoutMessage(lim.remainingSeconds, vm));
return;
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/TransactionReviewDialog.java b/app/src/main/java/com/quantumcoin/app/view/dialog/TransactionReviewDialog.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/view/dialog/TransactionReviewDialog.java
rename to app/src/main/java/com/quantumcoin/app/view/dialog/TransactionReviewDialog.java
index 09dc6ba..3e9a60f 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/TransactionReviewDialog.java
+++ b/app/src/main/java/com/quantumcoin/app/view/dialog/TransactionReviewDialog.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.dialog;
+package com.quantumcoin.app.view.dialog;
import android.content.Context;
import android.graphics.Color;
@@ -20,8 +20,8 @@
import androidx.appcompat.app.AlertDialog;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import java.util.Locale;
@@ -112,7 +112,7 @@ public static AlertDialog show(final Context ctx,
// used by the unlock + network-select dialogs so the visual
// language stays consistent and theme-portable (light/dark).
root.setBackgroundResource(
- com.quantumcoinwallet.app.R.drawable.center_container);
+ com.quantumcoin.app.R.drawable.center_container);
scroll.addView(root, new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
@@ -221,7 +221,7 @@ public static AlertDialog show(final Context ctx,
int btnH = dp(ctx, 43);
int btnPad = dp(ctx, 5);
int textColor = androidx.core.content.ContextCompat.getColor(
- ctx, com.quantumcoinwallet.app.R.color.colorCommon7);
+ ctx, com.quantumcoin.app.R.color.colorCommon7);
Button cancel = new Button(ctx);
cancel.setText(safe(vm.getCancelByLangValues(), "Cancel"));
@@ -229,7 +229,7 @@ public static AlertDialog show(final Context ctx,
cancel.setTextColor(textColor);
cancel.setPadding(btnPad, btnPad, btnPad, btnPad);
cancel.setBackgroundResource(
- com.quantumcoinwallet.app.R.drawable.button_network_cancel_selector);
+ com.quantumcoin.app.R.drawable.button_network_cancel_selector);
Button ok = new Button(ctx);
ok.setText(safe(vm.getOkByLangValues(), "OK"));
@@ -237,7 +237,7 @@ public static AlertDialog show(final Context ctx,
ok.setTextColor(textColor);
ok.setPadding(btnPad, btnPad, btnPad, btnPad);
ok.setBackgroundResource(
- com.quantumcoinwallet.app.R.drawable.button_green_selector);
+ com.quantumcoin.app.R.drawable.button_green_selector);
LinearLayout.LayoutParams cancelLp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, btnH);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/UnlockDialogs.java b/app/src/main/java/com/quantumcoin/app/view/dialog/UnlockDialogs.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/view/dialog/UnlockDialogs.java
rename to app/src/main/java/com/quantumcoin/app/view/dialog/UnlockDialogs.java
index 1abf5a2..953ef89 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/UnlockDialogs.java
+++ b/app/src/main/java/com/quantumcoin/app/view/dialog/UnlockDialogs.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.dialog;
+package com.quantumcoin.app.view.dialog;
import android.content.DialogInterface;
import android.view.KeyEvent;
@@ -9,7 +9,7 @@
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
-import com.quantumcoinwallet.app.R;
+import com.quantumcoin.app.R;
/**
* Helper: thin wrapper around the inline unlock
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/WaitDialog.java b/app/src/main/java/com/quantumcoin/app/view/dialog/WaitDialog.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/view/dialog/WaitDialog.java
rename to app/src/main/java/com/quantumcoin/app/view/dialog/WaitDialog.java
index 19b6aaa..050c605 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/dialog/WaitDialog.java
+++ b/app/src/main/java/com/quantumcoin/app/view/dialog/WaitDialog.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.dialog;
+package com.quantumcoin.app.view.dialog;
import android.content.Context;
import android.graphics.Color;
@@ -12,7 +12,7 @@
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
-import com.quantumcoinwallet.app.R;
+import com.quantumcoin.app.R;
/**
* Non-cancelable wait dialog used during long scrypt-based encrypt/decrypt operations.
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/AccountTransactionsFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/AccountTransactionsFragment.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/AccountTransactionsFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/AccountTransactionsFragment.java
index c753dca..ab67539 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/AccountTransactionsFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/AccountTransactionsFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.graphics.Typeface;
@@ -20,18 +20,18 @@
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.asynctask.read.AccountPendingTxnRestTask;
-import com.quantumcoinwallet.app.asynctask.read.AccountTxnRestTask;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummary;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummaryResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummary;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummaryResponse;
-import com.quantumcoinwallet.app.view.adapter.AccountPendingTransactionAdapter;
-import com.quantumcoinwallet.app.view.adapter.AccountTransactionAdapter;
-import com.quantumcoinwallet.app.view.widget.VerticalScrollIndicatorView;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.asynctask.read.AccountPendingTxnRestTask;
+import com.quantumcoin.app.asynctask.read.AccountTxnRestTask;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummary;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummaryResponse;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummary;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummaryResponse;
+import com.quantumcoin.app.view.adapter.AccountPendingTransactionAdapter;
+import com.quantumcoin.app.view.adapter.AccountTransactionAdapter;
+import com.quantumcoin.app.view.widget.VerticalScrollIndicatorView;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.button.MaterialButtonToggleGroup;
@@ -434,7 +434,7 @@ public void onFinished(AccountTransactionSummaryResponse accountTransactionSumma
}
@Override
- public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
+ public void onFailure(com.quantumcoin.app.api.read.ApiException e) {
progressBar.setVisibility(View.GONE);
int code = e.getCode();
if (code == 404 || code == 204) {
@@ -525,7 +525,7 @@ public void onFinished(AccountPendingTransactionSummaryResponse accountPendingTr
}
@Override
- public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
+ public void onFailure(com.quantumcoin.app.api.read.ApiException e) {
progressBar.setVisibility(View.GONE);
int code = e.getCode();
if (code == 404 || code == 204) {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BackupOptionsFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/BackupOptionsFragment.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/BackupOptionsFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/BackupOptionsFragment.java
index 25f1baf..ac4f9e7 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BackupOptionsFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/BackupOptionsFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -13,8 +13,8 @@
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
/**
* Backup-options surface shown when the user taps the per-row backup
@@ -25,7 +25,7 @@
* buttons.
*
* The actual cloud/file export logic runs INSIDE this fragment via
- * {@link com.quantumcoinwallet.app.backup.BackupExecutor} so a successful
+ * {@link com.quantumcoin.app.backup.BackupExecutor} so a successful
* backup leaves the user on this screen — they can immediately tap the
* second option (cloud after file or vice versa) without having to
* re-navigate. Mirrors iOS {@code BackupOptionsViewController.swift},
@@ -36,7 +36,7 @@ public class BackupOptionsFragment extends Fragment {
/** HomeActivity-only callback — back-arrow restores the wallets
* list. Cloud/file flows complete inside this fragment via
- * {@link com.quantumcoinwallet.app.backup.BackupExecutor}; they
+ * {@link com.quantumcoin.app.backup.BackupExecutor}; they
* intentionally do NOT bubble through this listener so the user
* stays on the backup screen after a successful backup. */
public interface OnBackupOptionsCompleteListener {
@@ -57,7 +57,7 @@ public interface OnBackupOptionsCompleteListener {
private JsonViewModel jsonViewModel;
private String walletAddress;
private String walletPassword;
- private com.quantumcoinwallet.app.backup.BackupExecutor backupExecutor;
+ private com.quantumcoin.app.backup.BackupExecutor backupExecutor;
public BackupOptionsFragment() { }
@@ -94,7 +94,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
// onStart(); construct here in onCreate so both the cloud
// folder picker and the file create-document picker are wired
// by the time the user can tap the buttons.
- backupExecutor = new com.quantumcoinwallet.app.backup.BackupExecutor(
+ backupExecutor = new com.quantumcoin.app.backup.BackupExecutor(
this, jsonViewModel);
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkAddFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkAddFragment.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkAddFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkAddFragment.java
index 549dafc..6667fd8 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkAddFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkAddFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -11,13 +11,13 @@
import android.widget.TextView;
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.NetworkPersistence;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.NetworkPersistence;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONObject;
import java.util.regex.Pattern;
@@ -292,7 +292,7 @@ public void onAttach(Context context) {
* mainKey field was removed; see UnlockCoordinator class header).
* If the session is already unlocked we use
* {@link UnlockCoordinator#verifyPassword} for the same outcome
- * as {@link com.quantumcoinwallet.app.keystorage.SecureStorage#unlock}
+ * as {@link com.quantumcoin.app.keystorage.SecureStorage#unlock}
* without re-running the migration side effects. Mirrors iOS
* {@code promptUnlockThenAddNetwork} which collects the password
* via {@code UnlockDialogViewController} before re-encrypting.
@@ -341,9 +341,9 @@ private void persistAddedNetworkOrPromptUnlock(
pwd.setHint(vm.getEnterApasswordByLangValues());
unlockBtn.setText(vm.getUnlockByLangValues());
closeBtn.setText(vm.getCloseByLangValues());
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
// Match the unlock-site pattern used in HomeActivity /
// WalletsFragment / SendFragment so password managers
@@ -357,9 +357,9 @@ private void persistAddedNetworkOrPromptUnlock(
ViewGroup unlockRoot = (ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(getContext()));
}
GlobalMethods.focusAndShowKeyboard(pwd, dialog);
@@ -368,7 +368,7 @@ private void persistAddedNetworkOrPromptUnlock(
// the close button visible. UnlockDialogs.applyMandatory
// false matches the WalletsFragment unlock semantics.
try {
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs
+ com.quantumcoin.app.view.dialog.UnlockDialogs
.applyMandatory(dialog, false);
} catch (Throwable ignore) { }
@@ -399,7 +399,7 @@ public void onClick(View v) {
waitMessage = "Please wait...";
}
final androidx.appcompat.app.AlertDialog waitDlg =
- com.quantumcoinwallet.app.view.dialog.WaitDialog
+ com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), waitMessage);
new Thread(new Runnable() {
@Override
@@ -511,7 +511,7 @@ public void run() {
GlobalMethods.ExceptionError(getContext(), TAG, finalFailure);
return;
}
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.broadcastNetworkListChanged(getContext());
GlobalMethods.ShowMessageDialog(getContext(), null,
errorOrFallback(vm.getNetworkAddSuccessByErrors(),
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkDialogFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkDialogFragment.java
similarity index 90%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkDialogFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkDialogFragment.java
index 85f03a5..55e5f22 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkDialogFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkDialogFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -14,11 +14,11 @@
import androidx.fragment.app.DialogFragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import org.json.JSONException;
@@ -184,7 +184,7 @@ public void onStop(){
/**
* Prompt the user for their wallet password, then persist the
* new active-network index into the strongbox via
- * {@link com.quantumcoinwallet.app.utils.NetworkPersistence#writeActiveIndex}.
+ * {@link com.quantumcoin.app.utils.NetworkPersistence#writeActiveIndex}.
* The persist runs on a background thread (scrypt is on the hot
* path); UI dispatches happen back on the main thread. Mirrors
* iOS {@code promptUnlockThenSetActive} behaviour where the
@@ -192,17 +192,17 @@ public void onStop(){
* with the new active-index.
*/
private void promptUnlockAndPersistActiveIndex(final int targetIndex,
- final com.quantumcoinwallet.app.viewmodel.JsonViewModel vm) {
- final com.quantumcoinwallet.app.keystorage.SecureStorage secureStorage =
- com.quantumcoinwallet.app.viewmodel.KeyViewModel.getSecureStorage();
+ final com.quantumcoin.app.viewmodel.JsonViewModel vm) {
+ final com.quantumcoin.app.keystorage.SecureStorage secureStorage =
+ com.quantumcoin.app.viewmodel.KeyViewModel.getSecureStorage();
if (secureStorage == null) {
// No strongbox available — fall back to legacy prefs so
// the user's selection is at least remembered locally.
- com.quantumcoinwallet.app.utils.PrefConnect.writeInteger(getContext(),
- com.quantumcoinwallet.app.utils.PrefConnect.BLOCKCHAIN_NETWORK_ID_INDEX_KEY,
+ com.quantumcoin.app.utils.PrefConnect.writeInteger(getContext(),
+ com.quantumcoin.app.utils.PrefConnect.BLOCKCHAIN_NETWORK_ID_INDEX_KEY,
targetIndex);
try { getDialog().dismiss(); } catch (Throwable ignore) { }
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.broadcastActiveNetworkChanged(getContext());
mBlockchainNetworkDialogListener.onBlockchainNetworkDialogOk();
return;
@@ -238,21 +238,21 @@ private void promptUnlockAndPersistActiveIndex(final int targetIndex,
unlockBtn.setText(vm.getUnlockByLangValues());
closeBtn.setText(vm.getCloseByLangValues());
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
ViewGroup unlockRoot = (ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(getContext()));
}
- com.quantumcoinwallet.app.utils.GlobalMethods.focusAndShowKeyboard(pwd, dialog);
+ com.quantumcoin.app.utils.GlobalMethods.focusAndShowKeyboard(pwd, dialog);
try {
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs
+ com.quantumcoin.app.view.dialog.UnlockDialogs
.applyMandatory(dialog, false);
} catch (Throwable ignore) { }
@@ -261,7 +261,7 @@ private void promptUnlockAndPersistActiveIndex(final int targetIndex,
public void onClick(View v) {
final String password = pwd.getText() == null ? "" : pwd.getText().toString();
if (password.isEmpty()) {
- com.quantumcoinwallet.app.utils.GlobalMethods
+ com.quantumcoin.app.utils.GlobalMethods
.ShowErrorDialog(getContext(), errorTitle,
vm.getEnterApasswordByLangValues());
return;
@@ -280,7 +280,7 @@ public void onClick(View v) {
// re-derive mainKey via scrypt) so there is exactly
// one continuous spinner from tap to completion.
final androidx.appcompat.app.AlertDialog waitDlg =
- com.quantumcoinwallet.app.view.dialog.WaitDialog
+ com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), vm.getWaitUnlockByLangValues());
new Thread(new Runnable() {
@Override
@@ -305,7 +305,7 @@ public void run() {
// failure so a one-character typo
// is easy to fix. Mirrors SendFragment.
pwd.requestFocus();
- com.quantumcoinwallet.app.utils.GlobalMethods
+ com.quantumcoin.app.utils.GlobalMethods
.ShowErrorDialog(getContext(), errorTitle,
vm.getWalletPasswordMismatchByErrors());
}
@@ -319,7 +319,7 @@ public void run() {
// so the user sees one continuous spinner.
Exception failure = null;
try {
- com.quantumcoinwallet.app.utils.NetworkPersistence
+ com.quantumcoin.app.utils.NetworkPersistence
.writeActiveIndex(getContext(), secureStorage,
targetIndex, password);
} catch (Exception e) {
@@ -335,13 +335,13 @@ public void run() {
unlockBtn.setEnabled(true);
closeBtn.setEnabled(true);
pwd.setEnabled(true);
- com.quantumcoinwallet.app.utils.GlobalMethods
+ com.quantumcoin.app.utils.GlobalMethods
.ExceptionError(getContext(), TAG, finalFailure);
return;
}
try { dialog.dismiss(); } catch (Throwable ignore) { }
try { getDialog().dismiss(); } catch (Throwable ignore) { }
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.broadcastActiveNetworkChanged(getContext());
mBlockchainNetworkDialogListener.onBlockchainNetworkDialogOk();
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkFragment.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkFragment.java
index bfb3290..a2ccf35 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/BlockchainNetworkFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/BlockchainNetworkFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.graphics.Typeface;
@@ -15,10 +15,10 @@
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import java.util.List;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeMainFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeMainFragment.java
similarity index 96%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeMainFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/HomeMainFragment.java
index 8fa33db..c0028f0 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeMainFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeMainFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -16,15 +16,15 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenListResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
-import com.quantumcoinwallet.app.asynctask.read.ListAccountTokensRestTask;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.view.adapter.TokenAdapter;
-import com.quantumcoinwallet.app.view.widget.VerticalScrollIndicatorView;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.model.AccountTokenListResponse;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.asynctask.read.ListAccountTokensRestTask;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.view.adapter.TokenAdapter;
+import com.quantumcoin.app.view.widget.VerticalScrollIndicatorView;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import java.util.ArrayList;
import java.util.List;
@@ -227,11 +227,11 @@ private void renderEmptyState(boolean empty) {
*/
private void applyFilteredItems(List items) {
List filtered =
- com.quantumcoinwallet.app.tokens.StablecoinImpersonatorFilter.filter(items);
+ com.quantumcoin.app.tokens.StablecoinImpersonatorFilter.filter(items);
recognizedTokens = new ArrayList<>();
unrecognizedTokens = new ArrayList<>();
for (AccountTokenSummary t : filtered) {
- if (com.quantumcoinwallet.app.tokens.RecognizedTokens
+ if (com.quantumcoin.app.tokens.RecognizedTokens
.isRecognized(t == null ? null : t.getContractAddress())) {
recognizedTokens.add(t);
} else {
@@ -446,7 +446,7 @@ public void onReceive(android.content.Context context, android.content.Intent in
refreshTokenList(walletAddress);
}
};
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.registerAll(getContext(), networkChangeReceiver);
}
}
@@ -455,7 +455,7 @@ public void onReceive(android.content.Context context, android.content.Intent in
public void onPause() {
super.onPause();
if (networkChangeReceiver != null && getContext() != null) {
- com.quantumcoinwallet.app.events.NetworkChangeBroadcaster
+ com.quantumcoin.app.events.NetworkChangeBroadcaster
.unregister(getContext(), networkChangeReceiver);
networkChangeReceiver = null;
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeStartFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeStartFragment.java
similarity index 98%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeStartFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/HomeStartFragment.java
index 1873e52..5820d80 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeStartFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeStartFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -15,9 +15,9 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import timber.log.Timber;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeWalletFragment.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/HomeWalletFragment.java
index 57adc50..7762eda 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/HomeWalletFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import static android.content.Context.CLIPBOARD_SERVICE;
import static androidx.core.content.ContextCompat.getSystemService;
@@ -42,17 +42,17 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
-import com.quantumcoinwallet.app.asynctask.read.AccountBalanceRestTask;
-import com.quantumcoinwallet.app.entity.ServiceException;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.asynctask.read.AccountBalanceRestTask;
+import com.quantumcoin.app.entity.ServiceException;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONArray;
import org.json.JSONObject;
@@ -62,7 +62,7 @@
import java.util.List;
import java.util.Objects;
-import com.quantumcoinwallet.app.view.adapter.SeedWordAutoCompleteAdapter;
+import com.quantumcoin.app.view.adapter.SeedWordAutoCompleteAdapter;
public class HomeWalletFragment extends Fragment {
@@ -158,7 +158,7 @@ public class HomeWalletFragment extends Fragment {
* fresher fetch had already cleared it, which manifests to the
* user as "the refresh keeps spinning". UI-thread only.
*/
- private com.quantumcoinwallet.app.asynctask.read.AccountBalanceRestTask
+ private com.quantumcoin.app.asynctask.read.AccountBalanceRestTask
confirmWalletBalanceTask;
private String tempPrivateKeyBase64;
private String tempPublicKeyBase64;
@@ -254,7 +254,7 @@ public boolean handleBackPressed() {
// (strongbox initialized => not first-time).
boolean firstTime = true;
try {
- firstTime = !com.quantumcoinwallet.app.viewmodel.KeyViewModel
+ firstTime = !com.quantumcoin.app.viewmodel.KeyViewModel
.getSecureStorage().isInitialized(getContext());
} catch (Throwable ignore) { }
@@ -420,7 +420,7 @@ public void run() {
}
});
} catch (final Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "backup export failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "backup export failed", e);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -444,8 +444,8 @@ public void run() {
private void markActivityUnlocked() {
try {
android.app.Activity act = getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act).markUnlockedNow();
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act).markUnlockedNow();
}
} catch (Exception ignore) { }
}
@@ -453,8 +453,8 @@ private void markActivityUnlocked() {
private void setSuppressNextResumeLock(boolean suppress) {
try {
android.app.Activity act = getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act).setSuppressNextResumeLock(suppress);
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act).setSuppressNextResumeLock(suppress);
}
} catch (Exception ignore) { }
}
@@ -895,7 +895,7 @@ public void run() {
// ClipData with android.content.extra.IS_SENSITIVE. See
// RevealWalletFragment for the full rationale; the same
// policy applies here on the new-wallet seed-display screen.
- boolean homeSeedCopyAvailable = com.quantumcoinwallet.app.utils.SecureClipboard
+ boolean homeSeedCopyAvailable = com.quantumcoin.app.utils.SecureClipboard
.isSeedClipboardCopyHardened();
View.OnClickListener homeCopyClickListener = new View.OnClickListener() {
@@ -903,7 +903,7 @@ public void run() {
public void onClick(View v) {
progressBar.setVisibility(View.VISIBLE);
String clipboardCopyData = ClipboardCopyData(homeSeedWordsViewCaptionTextViews, homeSeedWordsViewTextViews);
- com.quantumcoinwallet.app.utils.SecureClipboard.copySensitive(
+ com.quantumcoin.app.utils.SecureClipboard.copySensitive(
getActivity(), "walletSeed", clipboardCopyData);
progressBar.setVisibility(View.GONE);
homeSeedWordsViewCopied.setVisibility(View.VISIBLE);
@@ -1121,13 +1121,13 @@ private void SetWalletView(TextView setWalletTitleTextView, TextView setWalletDe
// the system "Save Password?" sheet on submit. Both fields
// share the same STRONGBOX_UNLOCK identity so the manager
// fills BOTH with the same generated password.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
setWalletPasswordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null, /*forCreation=*/true);
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
setWalletRetypePasswordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null, /*forCreation=*/true);
// Inject an invisible username EditText carrying the
// strongbox-scoped username so a password manager scopes the
@@ -1138,9 +1138,9 @@ private void SetWalletView(TextView setWalletTitleTextView, TextView setWalletDe
android.view.ViewGroup container = (android.view.ViewGroup)
root.findViewById(R.id.linear_layout_home_set_wallet);
if (container != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
container,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(getContext()));
}
}
@@ -1486,7 +1486,7 @@ public void onClick(View v) {
if (homeConfirmWalletAddressValueTextView == null) return;
String addr = homeConfirmWalletAddressValueTextView.getText().toString();
if (addr.isEmpty()) return;
- com.quantumcoinwallet.app.utils.SecureClipboard.copyAddress(
+ com.quantumcoin.app.utils.SecureClipboard.copyAddress(
getActivity(), "confirmWalletAddress", addr);
if (copiedToast != null) {
copiedToast.setVisibility(View.VISIBLE);
@@ -1512,7 +1512,7 @@ public void onClick(View v) {
String addr = homeConfirmWalletAddressValueTextView.getText().toString();
// Regex-validated + percent-encoded URL
// construction. Returns null on invalid input.
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(addr);
if (u == null) return;
try {
@@ -1607,7 +1607,7 @@ public void onClick(View v) {
return;
}
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), jsonViewModel.getWaitWalletOpenByLangValues());
// Posting to the main looper directly (rather than routing
// through the host activity's UI-thread executor) means the
@@ -1845,7 +1845,7 @@ public void onClick(View v) {
String addr = homeConfirmWalletAddressValueTextView.getText() == null
? "" : homeConfirmWalletAddressValueTextView.getText().toString();
if (addr.isEmpty()) return;
- com.quantumcoinwallet.app.utils.SecureClipboard.copyAddress(
+ com.quantumcoin.app.utils.SecureClipboard.copyAddress(
getActivity(), "confirmWalletAddress", addr);
final TextView toast = getView() == null ? null
: (TextView) getView().findViewById(R.id.textView_home_confirm_wallet_copied);
@@ -1926,7 +1926,7 @@ private void saveWalletFromSeedWords(final String[] seedWords, final ProgressBar
resetConfirmWalletSaveGuard();
return;
}
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), jsonViewModel.getWaitWalletSaveByLangValues());
new Thread(new Runnable() {
public void run() {
@@ -2039,7 +2039,7 @@ public void run() {
* Behavior mirrors the unlock+verify pattern used by
* {@code BlockchainNetworkAddFragment.persistAddedNetworkOrPromptUnlock}
* and {@code BlockchainNetworkDialogFragment.promptUnlockAndPersistActiveIndex}:
- * a foreground {@link com.quantumcoinwallet.app.view.dialog.WaitDialog}
+ * a foreground {@link com.quantumcoin.app.view.dialog.WaitDialog}
* appears the instant the user taps Unlock so the user sees a
* spinner across the scrypt-bound verify, then the dialog
* dismisses and {@code saveWalletFromSeedWords} re-enters with
@@ -2092,16 +2092,16 @@ private void promptStrongboxPasswordForSave(final String[] seedWords,
unlockBtn.setText(jsonViewModel.getUnlockByLangValues());
closeBtn.setText(jsonViewModel.getCloseByLangValues());
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
pwd,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
android.view.ViewGroup unlockRoot = (android.view.ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(ctx));
}
GlobalMethods.focusAndShowKeyboard(pwd, dialog);
@@ -2109,7 +2109,7 @@ private void promptStrongboxPasswordForSave(final String[] seedWords,
// wallet bytes have not been touched yet — so the
// close-button stays enabled.
try {
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs
+ com.quantumcoin.app.view.dialog.UnlockDialogs
.applyMandatory(dialog, false);
} catch (Throwable ignore) { }
@@ -2128,7 +2128,7 @@ public void onClick(View v) {
closeBtn.setEnabled(false);
pwd.setEnabled(false);
final androidx.appcompat.app.AlertDialog waitDlg =
- com.quantumcoinwallet.app.view.dialog.WaitDialog
+ com.quantumcoin.app.view.dialog.WaitDialog
.show(ctx, jsonViewModel.getWaitUnlockByLangValues());
new Thread(new Runnable() {
@Override
@@ -2394,7 +2394,7 @@ private void writeEncryptedToSafFolder(final String encryptedJson, final String
@Override
public void run() {
try {
- String filename = com.quantumcoinwallet.app.backup.CloudBackupManager.buildFilename(address);
+ String filename = com.quantumcoin.app.backup.CloudBackupManager.buildFilename(address);
// Use the verified write path so we get a
// BackupWriteOutcome that distinguishes (a) cloud
// vs local destination and (b) verify-by-readback
@@ -2402,10 +2402,10 @@ public void run() {
// differ: a cloud destination is "submitted" (may
// not yet be visible from another device until the
// provider syncs); a local destination is "saved".
- final com.quantumcoinwallet.app.backup.CloudBackupManager.BackupWriteOutcome outcome =
- com.quantumcoinwallet.app.backup.CloudBackupManager.writeToSafFolderVerified(
+ final com.quantumcoin.app.backup.CloudBackupManager.BackupWriteOutcome outcome =
+ com.quantumcoin.app.backup.CloudBackupManager.writeToSafFolderVerified(
getContext(), Uri.parse(folderUriStr), filename, encryptedJson);
- if (outcome.kind == com.quantumcoinwallet.app.backup.CloudBackupManager.BackupWriteKind.VERIFY_FAILED) {
+ if (outcome.kind == com.quantumcoin.app.backup.CloudBackupManager.BackupWriteKind.VERIFY_FAILED) {
throw new java.io.IOException("verify-by-readback failed: "
+ (outcome.detail == null ? "unknown" : outcome.detail));
}
@@ -2417,7 +2417,7 @@ public void run() {
// dialog so the user knows the bytes
// haven't necessarily reached the cloud
// backend yet. iOS shows the same modal.
- if (outcome.kind == com.quantumcoinwallet.app.backup.CloudBackupManager.BackupWriteKind.SUBMITTED_CLOUD) {
+ if (outcome.kind == com.quantumcoin.app.backup.CloudBackupManager.BackupWriteKind.SUBMITTED_CLOUD) {
String title = jsonViewModel.getBackupSubmittedTitleByLangValues();
String body = jsonViewModel.getBackupSubmittedBodyByLangValues();
if (title == null || title.isEmpty()) title = "Backup submitted";
@@ -2431,7 +2431,7 @@ public void run() {
}
});
} catch (final Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "cloud backup write failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "cloud backup write failed", e);
getActivity().runOnUiThread(new Runnable() {
public void run() {
String tmpl = jsonViewModel.getBackupFailedByLangValues();
@@ -2461,9 +2461,9 @@ public void onReady(String encryptedJson, String address) {
setSuppressNextResumeLock(true);
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
- intent.setType(com.quantumcoinwallet.app.backup.CloudBackupManager.BACKUP_MIME_TYPE);
+ intent.setType(com.quantumcoin.app.backup.CloudBackupManager.BACKUP_MIME_TYPE);
intent.putExtra(Intent.EXTRA_TITLE,
- com.quantumcoinwallet.app.backup.CloudBackupManager.buildFilename(address));
+ com.quantumcoin.app.backup.CloudBackupManager.buildFilename(address));
fileBackupLauncher.launch(intent);
} catch (Exception e) {
setSuppressNextResumeLock(false);
@@ -2484,9 +2484,9 @@ private interface EncryptedReady {
}
private void BackupPasswordDialogShow(final BackupPasswordReceiver receiver) {
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.show(
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.show(
getContext(), jsonViewModel,
- new com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.OnBackupPasswordListener() {
+ new com.quantumcoin.app.view.dialog.BackupPasswordDialog.OnBackupPasswordListener() {
@Override
public void onPasswordSelected(String password) {
receiver.onPassword(password);
@@ -2497,14 +2497,14 @@ public void onCanceled() { }
}
private void encryptWalletForBackup(final String backupPassword, final EncryptedReady onReady) {
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), jsonViewModel.getWaitWalletSaveByLangValues());
new Thread(new Runnable() {
@Override
public void run() {
try {
- final com.quantumcoinwallet.app.backup.CloudBackupManager.EncryptedResult enc =
- com.quantumcoinwallet.app.backup.CloudBackupManager
+ final com.quantumcoin.app.backup.CloudBackupManager.EncryptedResult enc =
+ com.quantumcoin.app.backup.CloudBackupManager
.encryptWallet(pendingBackupWalletJson, backupPassword);
getActivity().runOnUiThread(new Runnable() {
public void run() {
@@ -2513,7 +2513,7 @@ public void run() {
}
});
} catch (final Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "encryptWalletForBackup failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "encryptWalletForBackup failed", e);
getActivity().runOnUiThread(new Runnable() {
public void run() {
if (waitDlg != null) try { waitDlg.dismiss(); } catch (Throwable ignore) { }
@@ -2551,8 +2551,8 @@ private void flagFileBackupSaved() {
private void finishBackupAndNavigateToHome() {
final String indexKey = walletIndexKey;
android.app.Activity act = getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act)
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act)
.requirePasswordReentryThenNavigate(new Runnable() {
@Override
public void run() {
@@ -2679,7 +2679,7 @@ private void startRestoreFromFileFlow() {
setSuppressNextResumeLock(true);
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
- intent.setType(com.quantumcoinwallet.app.backup.CloudBackupManager.BACKUP_MIME_TYPE);
+ intent.setType(com.quantumcoin.app.backup.CloudBackupManager.BACKUP_MIME_TYPE);
restoreFilePickerLauncher.launch(intent);
} catch (Exception e) {
setSuppressNextResumeLock(false);
@@ -2742,10 +2742,10 @@ public void run() {
// "showing first N of M" / "skipped K oversized"
// when the per-folder caps fire instead of silently
// dropping older or oversized backups.
- final com.quantumcoinwallet.app.backup.CloudBackupManager.ScanOutcome scan =
- com.quantumcoinwallet.app.backup.CloudBackupManager
+ final com.quantumcoin.app.backup.CloudBackupManager.ScanOutcome scan =
+ com.quantumcoin.app.backup.CloudBackupManager
.scanQualifyingBackupsWithOutcome(ctx, folderUri);
- final List candidates =
+ final List candidates =
scan.candidates;
if (getActivity() == null) return;
getActivity().runOnUiThread(new Runnable() {
@@ -2774,12 +2774,12 @@ public void run() {
}
firstRestoredIndexKey = null;
clearPendingStrongboxPassword();
- final List pending =
+ final List pending =
new ArrayList<>();
final List restored = new ArrayList<>();
final List alreadyExists = new ArrayList<>();
final List skipped = new ArrayList<>();
- for (com.quantumcoinwallet.app.backup.CloudBackupManager.BackupCandidate c : candidates) {
+ for (com.quantumcoin.app.backup.CloudBackupManager.BackupCandidate c : candidates) {
if (c.address != null
&& PrefConnect.WALLET_ADDRESS_TO_INDEX_MAP != null
&& PrefConnect.WALLET_ADDRESS_TO_INDEX_MAP.containsKey(c.address)) {
@@ -2811,7 +2811,7 @@ public void run() {
// User canceled the strongbox-unlock prompt: treat all
// pending candidates as skipped and surface the summary
// (consistent with `BackupPasswordDialog.onCanceled`).
- for (com.quantumcoinwallet.app.backup.CloudBackupManager.BackupCandidate c : pending) {
+ for (com.quantumcoin.app.backup.CloudBackupManager.BackupCandidate c : pending) {
skipped.add(c.address);
}
pending.clear();
@@ -2832,7 +2832,7 @@ public void run() {
* same dialog with a different password. Cancel moves the remaining pending
* addresses into {@code skipped} and goes straight to the summary. */
private void runBatchedRestorePass(
- final List pending,
+ final List pending,
final List restored,
final List alreadyExists,
final List skipped) {
@@ -2844,20 +2844,20 @@ private void runBatchedRestorePass(
return;
}
final List remainingAddresses = new ArrayList<>();
- for (com.quantumcoinwallet.app.backup.CloudBackupManager.BackupCandidate c : pending) {
+ for (com.quantumcoin.app.backup.CloudBackupManager.BackupCandidate c : pending) {
remainingAddresses.add(c.address);
}
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.showRestoreBatch(
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.showRestoreBatch(
getContext(), jsonViewModel, remainingAddresses,
- new com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.OnBatchPasswordListener() {
+ new com.quantumcoin.app.view.dialog.BackupPasswordDialog.OnBatchPasswordListener() {
@Override
public void onPassword(String password,
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.BatchDialogControl control) {
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.BatchDialogControl control) {
attemptBatchDecrypt(pending, restored, alreadyExists, skipped, password, control);
}
@Override
public void onCanceled() {
- for (com.quantumcoinwallet.app.backup.CloudBackupManager.BackupCandidate c : pending) {
+ for (com.quantumcoin.app.backup.CloudBackupManager.BackupCandidate c : pending) {
skipped.add(c.address);
}
pending.clear();
@@ -2875,9 +2875,9 @@ public void onCanceled() {
* The dialog is shown unconditionally — even when the
* strongbox is already unlocked — because the per-file BACKUP
* password (collected later in
- * {@link com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog})
+ * {@link com.quantumcoin.app.view.dialog.BackupPasswordDialog})
* can legitimately differ from the device's strongbox
- * password (see {@link com.quantumcoinwallet.app.backup.BackupExecutor}
+ * password (see {@link com.quantumcoin.app.backup.BackupExecutor}
* which lets the user pick any backup password at export time).
* Falling back to "use the backup password as the strongbox
* password when unlocked" produced a silent failure: every file
@@ -2945,16 +2945,16 @@ private void showStrongboxRestoreUnlockDialog(@NonNull final SecureStorage secur
.findViewById(R.id.textView_unlock_langValues_enter_wallet_password);
final EditText passwordEditText = (EditText) dialog
.findViewById(R.id.editText_unlock_langValues_enter_a_password);
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
passwordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
android.view.ViewGroup unlockRoot = (android.view.ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(ctx));
}
final Button unlockButton = (Button) dialog
@@ -2970,7 +2970,7 @@ private void showStrongboxRestoreUnlockDialog(@NonNull final SecureStorage secur
closeButton.setText(jsonViewModel.getCloseByLangValues());
// The strongbox unlock for restore is OPTIONAL — the user may
// legitimately back out before any backup file has been touched.
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs.applyMandatory(
+ com.quantumcoin.app.view.dialog.UnlockDialogs.applyMandatory(
dialog, false);
unlockButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -3003,7 +3003,7 @@ public void onClick(View v) {
}
/** Background-thread strongbox unlock/create for the restore prompt.
- * Honors {@link com.quantumcoinwallet.app.security.UnlockAttemptLimiter}
+ * Honors {@link com.quantumcoin.app.security.UnlockAttemptLimiter}
* brute-force gating so the restore path cannot be used to brute-force
* the strongbox password without backoff. */
private void runStrongboxRestoreUnlock(
@@ -3020,8 +3020,8 @@ private void runStrongboxRestoreUnlock(
onCancel.run();
return;
}
- final com.quantumcoinwallet.app.view.dialog.WaitDialog.Handle waitHandle =
- com.quantumcoinwallet.app.view.dialog.WaitDialog.showWithDetails(
+ final com.quantumcoin.app.view.dialog.WaitDialog.Handle waitHandle =
+ com.quantumcoin.app.view.dialog.WaitDialog.showWithDetails(
ctx, jsonViewModel.getWaitUnlockByLangValues());
new Thread(new Runnable() {
@Override
@@ -3029,19 +3029,19 @@ public void run() {
boolean success = false;
String lockoutMessage = null;
try {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(ctx);
- if (lim.kind == com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security
.UnlockAttemptLimiter.DecisionKind.LOCKED) {
- lockoutMessage = com.quantumcoinwallet.app.security
+ lockoutMessage = com.quantumcoin.app.security
.UnlockAttemptLimiter.userFacingLockoutMessage(lim.remainingSeconds, jsonViewModel);
} else if (!secureStorage.isInitialized(ctx)) {
secureStorage.createMainKey(ctx, password);
success = true;
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(ctx,
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
} else if (secureStorage.isUnlocked()) {
// Strongbox already unlocked from an earlier
@@ -3052,32 +3052,32 @@ public void run() {
// — this is a brute-force-sensitive surface.
success = secureStorage.verifyPassword(ctx, password);
if (success) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(ctx,
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
} else {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(ctx,
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
}
} else {
success = secureStorage.unlock(ctx, password);
if (success) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(ctx,
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
} else {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(ctx,
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
}
}
} catch (Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "restore strongbox unlock failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "restore strongbox unlock failed", e);
}
final boolean finalSuccess = success;
final String finalLockoutMessage = lockoutMessage;
@@ -3113,19 +3113,19 @@ public void run() {
}
private void attemptBatchDecrypt(
- final List pending,
+ final List pending,
final List restored,
final List alreadyExists,
final List skipped,
final String password,
- final com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.BatchDialogControl control) {
+ final com.quantumcoin.app.view.dialog.BackupPasswordDialog.BatchDialogControl control) {
final Context ctx = getContext();
if (ctx == null) return;
final int before = pending.size();
final int restoredBefore = restored.size();
final String overlayTitle = jsonViewModel.getRestoreWalletsDecryptingByLangValues();
- final com.quantumcoinwallet.app.view.dialog.WaitDialog.Handle overlay =
- com.quantumcoinwallet.app.view.dialog.WaitDialog.showWithDetails(
+ final com.quantumcoin.app.view.dialog.WaitDialog.Handle overlay =
+ com.quantumcoin.app.view.dialog.WaitDialog.showWithDetails(
ctx, overlayTitle == null ? "" : overlayTitle);
final String progressTemplate = jsonViewModel.getRestoreProgressOfByLangValues();
// Holder for a fatal restore error (e.g. strongbox-write rejected
@@ -3184,10 +3184,10 @@ public void run() {
// BACKUP_DECRYPT channel was never incremented,
// defeating the limiter on the restore path.
int successfulDecryptsThisPass = 0;
- Iterator it =
+ Iterator it =
pending.iterator();
while (it.hasNext()) {
- final com.quantumcoinwallet.app.backup.CloudBackupManager.BackupCandidate c = it.next();
+ final com.quantumcoin.app.backup.CloudBackupManager.BackupCandidate c = it.next();
final int currentIndex = ++attemptIndex;
if (getActivity() != null) {
getActivity().runOnUiThread(new Runnable() {
@@ -3217,16 +3217,16 @@ public void run() {
// reclaim the bytes immediately.
String cipher;
try {
- cipher = com.quantumcoinwallet.app.backup.CloudBackupManager
+ cipher = com.quantumcoin.app.backup.CloudBackupManager
.loadEncryptedJson(getContext(), c);
} catch (Exception readErr) {
timber.log.Timber.w(readErr,
"lazy load failed for %s", c.address);
continue;
}
- com.quantumcoinwallet.app.backup.CloudBackupManager.DecryptedWallet dw;
+ com.quantumcoin.app.backup.CloudBackupManager.DecryptedWallet dw;
try {
- dw = com.quantumcoinwallet.app.backup.CloudBackupManager
+ dw = com.quantumcoin.app.backup.CloudBackupManager
.decryptWallet(cipher, password);
} catch (Exception decryptErr) {
continue;
@@ -3277,7 +3277,7 @@ public void run() {
try {
secureStorage.saveWallet(getContext(), newIndex,
walletJson.toString(), strongboxWritePassword);
- } catch (com.quantumcoinwallet.app.keystorage.WrongPasswordException wpe) {
+ } catch (com.quantumcoin.app.keystorage.WrongPasswordException wpe) {
timber.log.Timber.e(wpe,
"Restore strongbox-write rejected the cached "
+ "strongbox password (invariant violation)");
@@ -3312,14 +3312,14 @@ public void run() {
// pass over an empty pending list against the user.
if (before > 0) {
if (successfulDecryptsThisPass > 0) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.BACKUP_DECRYPT);
} else {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.BACKUP_DECRYPT);
}
}
@@ -3361,7 +3361,7 @@ public void run() {
// into skipped so the summary is
// accurate, then close the password
// dialog and show it.
- for (com.quantumcoinwallet.app.backup
+ for (com.quantumcoin.app.backup
.CloudBackupManager.BackupCandidate c2
: pending) {
skipped.add(c2.address);
@@ -3512,11 +3512,11 @@ private TableRow buildSummaryRow(Context ctx, String status, String address, int
private void handleRestoreFromUri(final Uri fileUri) {
final ProgressBar progressBar = (ProgressBar) getView().findViewById(R.id.progress_loader_home_wallet);
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.showRestore(getContext(), jsonViewModel,
- new com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.OnPasswordAttemptListener() {
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.showRestore(getContext(), jsonViewModel,
+ new com.quantumcoin.app.view.dialog.BackupPasswordDialog.OnPasswordAttemptListener() {
@Override
public void onAttempt(String password,
- com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.PasswordDialogControl control) {
+ com.quantumcoin.app.view.dialog.BackupPasswordDialog.PasswordDialogControl control) {
performRestoreFromUri(fileUri, password, progressBar, control);
}
@Override
@@ -3526,17 +3526,17 @@ public void onCanceled() { }
private void performRestoreFromUri(final Uri fileUri, final String backupPassword,
final ProgressBar progressBar,
- final com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog.PasswordDialogControl control) {
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final com.quantumcoin.app.view.dialog.BackupPasswordDialog.PasswordDialogControl control) {
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), jsonViewModel.getWaitWalletOpenByLangValues());
new Thread(new Runnable() {
@Override
public void run() {
try {
- String encryptedJson = com.quantumcoinwallet.app.backup.CloudBackupManager
+ String encryptedJson = com.quantumcoin.app.backup.CloudBackupManager
.readSafFile(getContext(), fileUri);
- final com.quantumcoinwallet.app.backup.CloudBackupManager.DecryptedWallet dw =
- com.quantumcoinwallet.app.backup.CloudBackupManager
+ final com.quantumcoin.app.backup.CloudBackupManager.DecryptedWallet dw =
+ com.quantumcoin.app.backup.CloudBackupManager
.decryptWallet(encryptedJson, backupPassword);
if (dw == null || dw.address == null) {
throw new IllegalStateException("decrypt returned empty");
@@ -3597,9 +3597,9 @@ public void run() {
// any stair-step counter accumulated by prior wrong
// guesses on either the BACKUP_DECRYPT or the
// STRONGBOX_UNLOCK channel (they share state).
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.BACKUP_DECRYPT);
getActivity().runOnUiThread(new Runnable() {
@@ -3613,7 +3613,7 @@ public void run() {
}
});
} catch (final Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "Restore decrypt failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "Restore decrypt failed", e);
// Catch covers wrong-password (the dominant
// failure mode here — the user-visible message
// explicitly says "Enter a different password") as
@@ -3626,9 +3626,9 @@ public void run() {
// positives (e.g. disk-full storage failures) cost
// the user one extra throttle increment, which the
// limiter clears on the next successful unlock.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.BACKUP_DECRYPT);
getActivity().runOnUiThread(new Runnable() {
public void run() {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/MessageInformationDialogFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/MessageInformationDialogFragment.java
similarity index 94%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/MessageInformationDialogFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/MessageInformationDialogFragment.java
index 80f1a14..d373485 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/MessageInformationDialogFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/MessageInformationDialogFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -10,9 +10,9 @@
import androidx.fragment.app.DialogFragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
public class MessageInformationDialogFragment extends DialogFragment {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/ReceiveFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/ReceiveFragment.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/ReceiveFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/ReceiveFragment.java
index fe7620e..cbd547c 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/ReceiveFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/ReceiveFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.graphics.Bitmap;
@@ -13,10 +13,10 @@
import android.widget.TextView;
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.Utility;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.Utility;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
@@ -93,7 +93,7 @@ public void onClick(View v) {
// schedule a 30s auto-clear via copySensitive so the
// value does not linger on the global clipboard for
// hours.
- com.quantumcoinwallet.app.utils.SecureClipboard.copySensitive(
+ com.quantumcoin.app.utils.SecureClipboard.copySensitive(
getActivity(), "receiveAddress",
receiveAddressTextView.getText());
receiveCopiedTextView.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/RevealWalletFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/RevealWalletFragment.java
similarity index 97%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/RevealWalletFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/RevealWalletFragment.java
index ece6ad5..d3272fa 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/RevealWalletFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/RevealWalletFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -26,14 +26,14 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.entity.ServiceException;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.view.adapter.SeedWordAutoCompleteAdapter;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.entity.ServiceException;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.view.adapter.SeedWordAutoCompleteAdapter;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONObject;
@@ -139,7 +139,7 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
// wired up. iOS uses .localOnly + .expirationDate which gives
// OS-level guarantees on every supported version, so this
// gate has no iOS analogue.
- boolean seedCopyAvailable = com.quantumcoinwallet.app.utils.SecureClipboard
+ boolean seedCopyAvailable = com.quantumcoin.app.utils.SecureClipboard
.isSeedClipboardCopyHardened();
if (!seedCopyAvailable) {
if (revealSeedWordsViewCopyClipboardImageButton != null) {
@@ -185,7 +185,7 @@ public void run() {
public void onClick(View v) {
progressBar.setVisibility(View.VISIBLE);
String clipboardCopyData = ClipboardCopyData(revealSeedWordsViewCaptionTextViews, revealSeedWordsViewTextViews);
- com.quantumcoinwallet.app.utils.SecureClipboard.copySensitive(
+ com.quantumcoin.app.utils.SecureClipboard.copySensitive(
getActivity(), "walletrevealSeed", clipboardCopyData);
progressBar.setVisibility(View.GONE);
revealSeedWordsViewCopied.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/SendFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/SendFragment.java
similarity index 95%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/SendFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/SendFragment.java
index aad7b7b..e4efee0 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/SendFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/SendFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -31,22 +31,22 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.api.read.ApiException;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenListResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
-import com.quantumcoinwallet.app.asynctask.read.AccountBalanceRestTask;
-import com.quantumcoinwallet.app.asynctask.read.ListAccountTokensRestTask;
-import com.quantumcoinwallet.app.bridge.BridgeCallback;
-import com.quantumcoinwallet.app.entity.ServiceException;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.utils.CoinUtils;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.view.dialog.TransactionReviewDialog;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.api.read.ApiException;
+import com.quantumcoin.app.api.read.model.AccountTokenListResponse;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.asynctask.read.AccountBalanceRestTask;
+import com.quantumcoin.app.asynctask.read.ListAccountTokensRestTask;
+import com.quantumcoin.app.bridge.BridgeCallback;
+import com.quantumcoin.app.entity.ServiceException;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.view.dialog.TransactionReviewDialog;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import org.json.JSONObject;
import java.io.IOException;
@@ -89,10 +89,10 @@ public class SendFragment extends Fragment {
* this snapshot at signing time; if the user (or another window) has
* switched networks or the active wallet between Review and Sign we
* abort instead of broadcasting a wrong-chain signature. See
- * {@link com.quantumcoinwallet.app.networking.NetworkSnapshot}.
+ * {@link com.quantumcoin.app.networking.NetworkSnapshot}.
*/
@Nullable
- private com.quantumcoinwallet.app.networking.NetworkSnapshot pendingNetworkSnapshot;
+ private com.quantumcoin.app.networking.NetworkSnapshot pendingNetworkSnapshot;
private LinearLayout linerLayoutOffline;
private ImageView imageViewRetry;
@@ -313,7 +313,7 @@ public void onClick(View v) {
String raw = addressToSendEditText.getText() == null
? "" : addressToSendEditText.getText().toString().trim();
if (raw.isEmpty()) return;
- Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerAccountUrl(raw);
if (u == null) return;
try {
@@ -464,7 +464,7 @@ private void validateAddressViaSdkThen(final View view,
return;
}
try {
- KeyViewModel.getBridge().isValidAddressAsync(toAddress, new com.quantumcoinwallet.app.bridge.BridgeCallback() {
+ KeyViewModel.getBridge().isValidAddressAsync(toAddress, new com.quantumcoin.app.bridge.BridgeCallback() {
@Override
public void onResult(String envelopeJson) {
boolean valid = parseEnvelopeBoolean(envelopeJson, "valid");
@@ -518,7 +518,7 @@ private void maybeAdvisoryAndContinue(final View view,
return;
}
try {
- KeyViewModel.getBridge().getChecksumAddressAsync(toAddress, new com.quantumcoinwallet.app.bridge.BridgeCallback() {
+ KeyViewModel.getBridge().getChecksumAddressAsync(toAddress, new com.quantumcoin.app.bridge.BridgeCallback() {
@Override
public void onResult(String envelopeJson) {
String canonical = parseEnvelopeString(envelopeJson, "address");
@@ -670,7 +670,7 @@ public void run() {
if (act == null || !isAdded()) return;
try {
KeyViewModel.getBridge().isValidAddressAsync(raw,
- new com.quantumcoinwallet.app.bridge.BridgeCallback() {
+ new com.quantumcoin.app.bridge.BridgeCallback() {
@Override
public void onResult(String envelopeJson) {
final boolean valid =
@@ -844,7 +844,7 @@ public void onConfirm() {
// a wrong-chain signature.
try {
pendingNetworkSnapshot =
- com.quantumcoinwallet.app.networking.NetworkSnapshot
+ com.quantumcoin.app.networking.NetworkSnapshot
.capture(walletAddress == null ? "" : walletAddress);
} catch (Throwable t) {
pendingNetworkSnapshot = null;
@@ -897,9 +897,9 @@ private void unlockDialogFragment(View view, ProgressBar progressBarSendCoins,
// Per-context autofill identity so a password manager can
// disambiguate the strongbox-unlock password from any
// per-wallet backup password the user may have stored.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
passwordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
// Invisible username carrying the strongbox-scoped value
// so the autofill provider scopes its suggestion to the
@@ -910,9 +910,9 @@ private void unlockDialogFragment(View view, ProgressBar progressBarSendCoins,
android.view.ViewGroup unlockRoot = (android.view.ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(getContext()));
}
GlobalMethods.focusAndShowKeyboard(passwordEditText, dialog);
@@ -928,7 +928,7 @@ private void unlockDialogFragment(View view, ProgressBar progressBarSendCoins,
// they decide to abort here we should let them — money
// is not yet broadcast. The wrapper centralises the
// close-button + back-key semantics.
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs.applyMandatory(dialog, false);
+ com.quantumcoin.app.view.dialog.UnlockDialogs.applyMandatory(dialog, false);
unlockButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -953,8 +953,8 @@ public void onClick(View v) {
// Previously the dialog was dismissed here and the
// sign+broadcast phase ran with no modal, which
// could look like the app had stopped responding.
- final com.quantumcoinwallet.app.view.dialog.WaitDialog.MessageHandle waitHandle =
- com.quantumcoinwallet.app.view.dialog.WaitDialog.showMessage(
+ final com.quantumcoin.app.view.dialog.WaitDialog.MessageHandle waitHandle =
+ com.quantumcoin.app.view.dialog.WaitDialog.showMessage(
getContext(), jsonViewModel.getWaitUnlockByLangValues());
new Thread(new Runnable() {
@Override
@@ -967,11 +967,11 @@ public void run() {
// both the device and a stash of guesses
// can't double their attempts by
// alternating Send and Settings.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(getContext());
- if (lim.kind == com.quantumcoinwallet.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
- lockoutMessage = com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
+ lockoutMessage = com.quantumcoin.app.security
.UnlockAttemptLimiter.userFacingLockoutMessage(lim.remainingSeconds, jsonViewModel);
} else {
SecureStorage secureStorage = KeyViewModel.getSecureStorage();
@@ -988,7 +988,7 @@ public void run() {
// cases (locked -> unlock, already-unlocked ->
// verifyPassword).
if (secureStorage.isUnlocked()) {
- com.quantumcoinwallet.app.keystorage.UnlockCoordinator uc =
+ com.quantumcoin.app.keystorage.UnlockCoordinator uc =
secureStorage.getCoordinator();
ok = uc != null
&& uc.verifyPassword(getContext(), password.trim());
@@ -996,14 +996,14 @@ public void run() {
ok = secureStorage.unlock(getContext(), password.trim());
}
if (ok) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
} else {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
}
}
@@ -1117,7 +1117,7 @@ public void onFinished(BalanceResponse balanceResponse) throws ServiceException
progressBar.setVisibility(View.GONE);
}
@Override
- public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
+ public void onFailure(com.quantumcoin.app.api.read.ApiException e) {
progressBar.setVisibility(View.GONE);
int code = e.getCode();
boolean check = GlobalMethods.ApiExceptionSourceCodeBoolean(code);
@@ -1145,7 +1145,7 @@ public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
}
/**
- * Re-asserts the {@link com.quantumcoinwallet.app.networking.NetworkSnapshot}
+ * Re-asserts the {@link com.quantumcoin.app.networking.NetworkSnapshot}
* captured when the user confirmed the review dialog. Throws an
* {@link Exception} (which the caller surfaces via the standard error
* dialog) when the snapshot diverges, so we never sign a transaction
@@ -1155,13 +1155,13 @@ public void onFailure(com.quantumcoinwallet.app.api.read.ApiException e) {
* sends from this surface.
*/
private void assertReviewNetworkStillCurrent(String fromAddress) throws Exception {
- com.quantumcoinwallet.app.networking.NetworkSnapshot snap = pendingNetworkSnapshot;
+ com.quantumcoin.app.networking.NetworkSnapshot snap = pendingNetworkSnapshot;
if (snap == null) {
throw new Exception("send aborted: review snapshot missing");
}
try {
snap.assertStillCurrent(fromAddress == null ? "" : fromAddress);
- } catch (com.quantumcoinwallet.app.networking.NetworkSnapshot.NetworkAssertionException nae) {
+ } catch (com.quantumcoin.app.networking.NetworkSnapshot.NetworkAssertionException nae) {
// Drop the snapshot so a retry forces a fresh review.
pendingNetworkSnapshot = null;
throw new Exception("send aborted: " + nae.getMessage());
@@ -1179,7 +1179,7 @@ private void assertReviewNetworkStillCurrent(String fromAddress) throws Exceptio
*/
private void sendTransaction(Context context, ProgressBar progressBar,
String fromAddress, String toAddress, String quantity, String languageKey,
- final com.quantumcoinwallet.app.view.dialog.WaitDialog.MessageHandle waitHandle) {
+ final com.quantumcoin.app.view.dialog.WaitDialog.MessageHandle waitHandle) {
try {
if (progressBar.getVisibility() == View.VISIBLE) {
String message = getResources().getString(R.string.send_transaction_message_exits);
@@ -1311,11 +1311,11 @@ private void setupAssetSpinner(final Spinner spinner,
raw.addAll(GlobalMethods.CURRENT_WALLET_TOKEN_LIST);
}
List filtered =
- com.quantumcoinwallet.app.tokens.StablecoinImpersonatorFilter.filter(raw);
+ com.quantumcoin.app.tokens.StablecoinImpersonatorFilter.filter(raw);
sendRecognizedTokens = new ArrayList<>();
sendUnrecognizedTokens = new ArrayList<>();
for (AccountTokenSummary t : filtered) {
- if (com.quantumcoinwallet.app.tokens.RecognizedTokens
+ if (com.quantumcoin.app.tokens.RecognizedTokens
.isRecognized(t == null ? null : t.getContractAddress())) {
sendRecognizedTokens.add(t);
} else {
@@ -1483,7 +1483,7 @@ private void sendCompletedDialogFragment(Context context, final String txHash) {
// Tx hashes are public on-chain
// data; copyAddress (no auto-clear) is
// the right semantic.
- com.quantumcoinwallet.app.utils.SecureClipboard.copyAddress(
+ com.quantumcoin.app.utils.SecureClipboard.copyAddress(
getActivity(), "txHash", txHash);
}
});
@@ -1496,7 +1496,7 @@ private void sendCompletedDialogFragment(Context context, final String txHash) {
explorerBtn.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// Regex-validated + percent-encoded.
- android.net.Uri u = com.quantumcoinwallet.app.networking.UrlBuilder
+ android.net.Uri u = com.quantumcoin.app.networking.UrlBuilder
.blockExplorerTxUrl(txHash);
if (u == null) return;
try {
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/SettingsFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/SettingsFragment.java
similarity index 93%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/SettingsFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/SettingsFragment.java
index aa08fc6..dd0ff72 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/SettingsFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/SettingsFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -16,9 +16,9 @@
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
public class SettingsFragment extends Fragment {
@@ -220,11 +220,11 @@ private void showBackupDialog(final JsonViewModel jsonViewModel) {
PrefConnect.writeBoolean(getContext(), PrefConnect.BACKUP_ENABLED_KEY, phoneEnabled.isChecked());
try {
new android.app.backup.BackupManager(getContext().getApplicationContext()).dataChanged();
- com.quantumcoinwallet.app.Logger.i("SettingsFragment",
+ com.quantumcoin.app.Logger.i("SettingsFragment",
"BACKUP_ENABLED toggled -> " + phoneEnabled.isChecked()
+ "; BackupManager.dataChanged() called");
} catch (Throwable t) {
- com.quantumcoinwallet.app.Logger.w("SettingsFragment",
+ com.quantumcoin.app.Logger.w("SettingsFragment",
"BackupManager.dataChanged() failed (toggle still recorded)", t);
}
dialog.dismiss();
@@ -248,8 +248,8 @@ static ScrollViewWrapper wrap(Context ctx, View content) {
private void markActivityUnlocked() {
try {
android.app.Activity act = getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act).markUnlockedNow();
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act).markUnlockedNow();
}
} catch (Exception ignore) { }
}
@@ -257,8 +257,8 @@ private void markActivityUnlocked() {
private void setSuppressNextResumeLock(boolean suppress) {
try {
android.app.Activity act = getActivity();
- if (act instanceof com.quantumcoinwallet.app.view.activities.HomeActivity) {
- ((com.quantumcoinwallet.app.view.activities.HomeActivity) act).setSuppressNextResumeLock(suppress);
+ if (act instanceof com.quantumcoin.app.view.activities.HomeActivity) {
+ ((com.quantumcoin.app.view.activities.HomeActivity) act).setSuppressNextResumeLock(suppress);
}
} catch (Exception ignore) { }
}
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/WalletsFragment.java b/app/src/main/java/com/quantumcoin/app/view/fragment/WalletsFragment.java
similarity index 90%
rename from app/src/main/java/com/quantumcoinwallet/app/view/fragment/WalletsFragment.java
rename to app/src/main/java/com/quantumcoin/app/view/fragment/WalletsFragment.java
index ee707a8..8db24eb 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/fragment/WalletsFragment.java
+++ b/app/src/main/java/com/quantumcoin/app/view/fragment/WalletsFragment.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import android.content.Context;
import android.os.Bundle;
@@ -16,15 +16,15 @@
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
-import com.quantumcoinwallet.app.R;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
-import com.quantumcoinwallet.app.utils.GridAutoFitLayoutManager;
-import com.quantumcoinwallet.app.utils.PrefConnect;
-import com.quantumcoinwallet.app.utils.Utility;
-import com.quantumcoinwallet.app.view.adapter.WalletAdapter;
-import com.quantumcoinwallet.app.viewmodel.JsonViewModel;
-import com.quantumcoinwallet.app.viewmodel.KeyViewModel;
+import com.quantumcoin.app.R;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.GridAutoFitLayoutManager;
+import com.quantumcoin.app.utils.PrefConnect;
+import com.quantumcoin.app.utils.Utility;
+import com.quantumcoin.app.view.adapter.WalletAdapter;
+import com.quantumcoin.app.viewmodel.JsonViewModel;
+import com.quantumcoin.app.viewmodel.KeyViewModel;
import java.util.Map;
import java.util.Objects;
@@ -204,9 +204,9 @@ private void unlockDialogFragment(ProgressBar progressBar, int listenerStatus, S
// password. Same context as Send / HomeActivity unlock so
// a password manager surfaces the SAME entry across all
// three surfaces.
- com.quantumcoinwallet.app.security.CredentialIdentifier.apply(
+ com.quantumcoin.app.security.CredentialIdentifier.apply(
passwordEditText,
- com.quantumcoinwallet.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
+ com.quantumcoin.app.security.CredentialIdentifier.Context.STRONGBOX_UNLOCK,
null);
// Inject the invisible username field so the autofill
// provider scopes its suggestion / save to the strongbox
@@ -219,9 +219,9 @@ private void unlockDialogFragment(ProgressBar progressBar, int listenerStatus, S
android.view.ViewGroup unlockRoot = (android.view.ViewGroup)
dialog.findViewById(R.id.linear_layout_unlock_content);
if (unlockRoot != null) {
- com.quantumcoinwallet.app.security.CredentialIdentifier.attachUsernameField(
+ com.quantumcoin.app.security.CredentialIdentifier.attachUsernameField(
unlockRoot,
- com.quantumcoinwallet.app.security.CredentialIdentifier
+ com.quantumcoin.app.security.CredentialIdentifier
.strongboxUsername(getContext()));
}
Button unlockButton = (Button) dialog.findViewById(R.id.button_unlock_langValues_unlock);
@@ -239,7 +239,7 @@ private void unlockDialogFragment(ProgressBar progressBar, int listenerStatus, S
// legitimately back out without performing the action.
// The wrapper exposes the close button and re-enables the
// back key.
- com.quantumcoinwallet.app.view.dialog.UnlockDialogs.applyMandatory(dialog, false);
+ com.quantumcoin.app.view.dialog.UnlockDialogs.applyMandatory(dialog, false);
unlockButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String walletPassword = passwordEditText.getText().toString();
@@ -289,7 +289,7 @@ private void VerifyPassword(final AlertDialog dialog,
final int listenerStatus,
final String walletAddress,
final String languageKey) {
- final AlertDialog waitDlg = com.quantumcoinwallet.app.view.dialog.WaitDialog
+ final AlertDialog waitDlg = com.quantumcoin.app.view.dialog.WaitDialog
.show(getContext(), jsonViewModel.getWaitUnlockByLangValues());
new Thread(new Runnable() {
@Override
@@ -302,29 +302,29 @@ public void run() {
// locked out. See iOS UnlockAttemptLimiter
// for the matching pre-scrypt check on the
// strongbox-unlock channel.
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter.Decision lim =
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter.Decision lim =
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.currentDecision(getContext());
- if (lim.kind == com.quantumcoinwallet.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
- lockoutMessage = com.quantumcoinwallet.app.security
+ if (lim.kind == com.quantumcoin.app.security.UnlockAttemptLimiter.DecisionKind.LOCKED) {
+ lockoutMessage = com.quantumcoin.app.security
.UnlockAttemptLimiter.userFacingLockoutMessage(lim.remainingSeconds, jsonViewModel);
} else {
SecureStorage secureStorage = KeyViewModel.getSecureStorage();
unlocked = secureStorage.unlock(getContext(), walletPassword);
if (unlocked) {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordSuccess(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
} else {
- com.quantumcoinwallet.app.security.UnlockAttemptLimiter
+ com.quantumcoin.app.security.UnlockAttemptLimiter
.recordFailure(getContext(),
- com.quantumcoinwallet.app.security
+ com.quantumcoin.app.security
.UnlockAttemptLimiter.Channel.STRONGBOX_UNLOCK);
}
}
} catch (Exception e) {
- com.quantumcoinwallet.app.Logger.e(TAG, "unlock failed", e);
+ com.quantumcoin.app.Logger.e(TAG, "unlock failed", e);
}
final boolean ok = unlocked;
final String lockoutMessageFinal = lockoutMessage;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/view/widget/VerticalScrollIndicatorView.java b/app/src/main/java/com/quantumcoin/app/view/widget/VerticalScrollIndicatorView.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/view/widget/VerticalScrollIndicatorView.java
rename to app/src/main/java/com/quantumcoin/app/view/widget/VerticalScrollIndicatorView.java
index 1d14d3a..c06e85b 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/view/widget/VerticalScrollIndicatorView.java
+++ b/app/src/main/java/com/quantumcoin/app/view/widget/VerticalScrollIndicatorView.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.view.widget;
+package com.quantumcoin.app.view.widget;
import android.content.Context;
import android.graphics.Canvas;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/BlockchainNetworkViewModel.java b/app/src/main/java/com/quantumcoin/app/viewmodel/BlockchainNetworkViewModel.java
similarity index 91%
rename from app/src/main/java/com/quantumcoinwallet/app/viewmodel/BlockchainNetworkViewModel.java
rename to app/src/main/java/com/quantumcoin/app/viewmodel/BlockchainNetworkViewModel.java
index b81da1e..902a28a 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/BlockchainNetworkViewModel.java
+++ b/app/src/main/java/com/quantumcoin/app/viewmodel/BlockchainNetworkViewModel.java
@@ -1,11 +1,11 @@
-package com.quantumcoinwallet.app.viewmodel;
+package com.quantumcoin.app.viewmodel;
import android.content.Context;
import androidx.lifecycle.ViewModel;
-import com.quantumcoinwallet.app.interact.BlockchainNetworkInteract;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.interact.BlockchainNetworkInteract;
+import com.quantumcoin.app.utils.GlobalMethods;
import org.json.JSONException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/JsonViewModel.java b/app/src/main/java/com/quantumcoin/app/viewmodel/JsonViewModel.java
similarity index 99%
rename from app/src/main/java/com/quantumcoinwallet/app/viewmodel/JsonViewModel.java
rename to app/src/main/java/com/quantumcoin/app/viewmodel/JsonViewModel.java
index 9fc02b4..85d44a6 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/JsonViewModel.java
+++ b/app/src/main/java/com/quantumcoin/app/viewmodel/JsonViewModel.java
@@ -1,11 +1,11 @@
-package com.quantumcoinwallet.app.viewmodel;
+package com.quantumcoin.app.viewmodel;
import android.content.Context;
import androidx.lifecycle.ViewModel;
-import com.quantumcoinwallet.app.interact.JsonInteract;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.interact.JsonInteract;
+import com.quantumcoin.app.utils.GlobalMethods;
import org.json.JSONException;
diff --git a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/KeyViewModel.java b/app/src/main/java/com/quantumcoin/app/viewmodel/KeyViewModel.java
similarity index 92%
rename from app/src/main/java/com/quantumcoinwallet/app/viewmodel/KeyViewModel.java
rename to app/src/main/java/com/quantumcoin/app/viewmodel/KeyViewModel.java
index 4210404..f396f1e 100644
--- a/app/src/main/java/com/quantumcoinwallet/app/viewmodel/KeyViewModel.java
+++ b/app/src/main/java/com/quantumcoin/app/viewmodel/KeyViewModel.java
@@ -1,13 +1,13 @@
-package com.quantumcoinwallet.app.viewmodel;
+package com.quantumcoin.app.viewmodel;
import android.content.Context;
-import com.quantumcoinwallet.app.bridge.BridgeCallback;
-import com.quantumcoinwallet.app.bridge.QuantumCoinJSBridge;
-import com.quantumcoinwallet.app.bridge.WebViewManager;
-import com.quantumcoinwallet.app.interact.KeyInteract;
-import com.quantumcoinwallet.app.keystorage.SecureStorage;
-import com.quantumcoinwallet.app.services.KeyService;
+import com.quantumcoin.app.bridge.BridgeCallback;
+import com.quantumcoin.app.bridge.QuantumCoinJSBridge;
+import com.quantumcoin.app.bridge.WebViewManager;
+import com.quantumcoin.app.interact.KeyInteract;
+import com.quantumcoin.app.keystorage.SecureStorage;
+import com.quantumcoin.app.services.KeyService;
import androidx.lifecycle.ViewModel;
public class KeyViewModel extends ViewModel {
diff --git a/app/src/main/res/layout/account_transactions_fragment.xml b/app/src/main/res/layout/account_transactions_fragment.xml
index 37484bf..6acd849 100644
--- a/app/src/main/res/layout/account_transactions_fragment.xml
+++ b/app/src/main/res/layout/account_transactions_fragment.xml
@@ -138,7 +138,7 @@
android:layout_weight="1"
android:orientation="horizontal">
-
@@ -172,7 +172,7 @@
-
diff --git a/app/src/main/res/layout/home_main_fragment.xml b/app/src/main/res/layout/home_main_fragment.xml
index 51ab1b4..fbfdbb7 100644
--- a/app/src/main/res/layout/home_main_fragment.xml
+++ b/app/src/main/res/layout/home_main_fragment.xml
@@ -164,7 +164,7 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
-
@@ -367,7 +367,7 @@
-
diff --git a/app/src/test/java/com/quantumcoinwallet/app/ExampleUnitTest.java b/app/src/test/java/com/quantumcoin/app/ExampleUnitTest.java
similarity index 90%
rename from app/src/test/java/com/quantumcoinwallet/app/ExampleUnitTest.java
rename to app/src/test/java/com/quantumcoin/app/ExampleUnitTest.java
index 4bfabb7..aee1485 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/ExampleUnitTest.java
+++ b/app/src/test/java/com/quantumcoin/app/ExampleUnitTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import org.junit.Test;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/LoggerFacadeLockdownTest.java b/app/src/test/java/com/quantumcoin/app/LoggerFacadeLockdownTest.java
similarity index 96%
rename from app/src/test/java/com/quantumcoinwallet/app/LoggerFacadeLockdownTest.java
rename to app/src/test/java/com/quantumcoin/app/LoggerFacadeLockdownTest.java
index 4fdedd5..4d34019 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/LoggerFacadeLockdownTest.java
+++ b/app/src/test/java/com/quantumcoin/app/LoggerFacadeLockdownTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import static org.junit.Assert.fail;
@@ -77,7 +77,7 @@ public class LoggerFacadeLockdownTest {
@Test
public void noStrayDirectLogCalls() throws Exception {
- File mainJava = new File("src/main/java/com/quantumcoinwallet/app");
+ File mainJava = new File("src/main/java/com/quantumcoin/app");
Assume.assumeTrue("source root not found at " + mainJava.getAbsolutePath()
+ "; running outside the app module CWD.", mainJava.exists());
List violations = new ArrayList<>();
@@ -107,7 +107,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
});
if (!violations.isEmpty()) {
fail("Logger facade bypass detected (" + violations.size() + " call sites). "
- + "Route through com.quantumcoinwallet.app.Logger. instead:\n - "
+ + "Route through com.quantumcoin.app.Logger. instead:\n - "
+ String.join("\n - ", violations));
}
}
diff --git a/app/src/test/java/com/quantumcoinwallet/app/RedactingDebugTreeTest.java b/app/src/test/java/com/quantumcoin/app/RedactingDebugTreeTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/RedactingDebugTreeTest.java
rename to app/src/test/java/com/quantumcoin/app/RedactingDebugTreeTest.java
index e42c807..0c63070 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/RedactingDebugTreeTest.java
+++ b/app/src/test/java/com/quantumcoin/app/RedactingDebugTreeTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app;
+package com.quantumcoin.app;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/api/read/ApiDecodingTest.java b/app/src/test/java/com/quantumcoin/app/api/read/ApiDecodingTest.java
similarity index 91%
rename from app/src/test/java/com/quantumcoinwallet/app/api/read/ApiDecodingTest.java
rename to app/src/test/java/com/quantumcoin/app/api/read/ApiDecodingTest.java
index e6f31d3..ead7f1e 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/api/read/ApiDecodingTest.java
+++ b/app/src/test/java/com/quantumcoin/app/api/read/ApiDecodingTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.api.read;
+package com.quantumcoin.app.api.read;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -8,12 +8,12 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonDeserializer;
-import com.quantumcoinwallet.app.api.read.model.AccountPendingTransactionSummaryResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenListResponse;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummary;
-import com.quantumcoinwallet.app.api.read.model.AccountTransactionSummaryResponse;
-import com.quantumcoinwallet.app.api.read.model.BalanceResponse;
+import com.quantumcoin.app.api.read.model.AccountPendingTransactionSummaryResponse;
+import com.quantumcoin.app.api.read.model.AccountTokenListResponse;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummary;
+import com.quantumcoin.app.api.read.model.AccountTransactionSummaryResponse;
+import com.quantumcoin.app.api.read.model.BalanceResponse;
import org.junit.Test;
@@ -28,7 +28,7 @@
* Each test loads a captured-from-live-API JSON fixture under
* {@code app/src/test/resources/api-fixtures/} and decodes it with
* the same {@link Gson} configuration the production
- * {@link com.quantumcoinwallet.app.api.read.ApiClient} uses. The goal
+ * {@link com.quantumcoin.app.api.read.ApiClient} uses. The goal
* is to lock in two preserved API quirks that have bitten the wallet
* before:
*
@@ -66,7 +66,7 @@ public class ApiDecodingTest {
/**
* Build a Gson configured the same way the production
- * {@link com.quantumcoinwallet.app.api.read.ApiClient} does PLUS a
+ * {@link com.quantumcoin.app.api.read.ApiClient} does PLUS a
* {@link OffsetDateTime} type adapter. The production client runs
* on Android (where the strict-reflection-on-JDK-internals issue
* does not apply); on the JVM 21 unit-test classpath we register
diff --git a/app/src/test/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java b/app/src/test/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java
similarity index 95%
rename from app/src/test/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java
rename to app/src/test/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java
index e1a1a99..dfbaadc 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java
+++ b/app/src/test/java/com/quantumcoin/app/asynctask/read/AccountBalanceRestTaskHardeningTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.asynctask.read;
+package com.quantumcoin.app.asynctask.read;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -21,9 +21,9 @@
* when a poor-quality network response (e.g. an HTTP intermediary
* returning an HTML captive-portal page instead of JSON) caused
* Gson's {@code JsonSyntaxException} to escape the OpenAPI-generated
- * {@link com.quantumcoinwallet.app.api.read.ApiClient} stack. The
+ * {@link com.quantumcoin.app.api.read.ApiClient} stack. The
* generated client only converts {@link java.io.IOException} into
- * {@link com.quantumcoinwallet.app.api.read.ApiException}; an
+ * {@link com.quantumcoin.app.api.read.ApiException}; an
* unchecked exception thrown deeper in the stack would propagate out
* of the worker runnable, the {@code mainHandler.post(...)} call
* would never run, the listener would never be invoked, and the
@@ -35,7 +35,7 @@
*
* - The worker {@code try} block has a fall-through
* {@code catch (Throwable t)} that wraps the failure into an
- * {@link com.quantumcoinwallet.app.api.read.ApiException} so the
+ * {@link com.quantumcoin.app.api.read.ApiException} so the
* listener's {@code onFailure} always runs.
*
* - A {@code cancel()} method exists and an
@@ -128,7 +128,7 @@ public void cancelledFlagSuppressesListenerDispatch() throws Exception {
}
private static String readSource() throws Exception {
- File f = new File("src/main/java/com/quantumcoinwallet/"
+ File f = new File("src/main/java/com/quantumcoin/"
+ "app/asynctask/read/AccountBalanceRestTask.java");
if (!f.exists()) {
fail("AccountBalanceRestTask.java not found at expected "
diff --git a/app/src/test/java/com/quantumcoinwallet/app/backup/BackupExecutorExportPathTest.java b/app/src/test/java/com/quantumcoin/app/backup/BackupExecutorExportPathTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/backup/BackupExecutorExportPathTest.java
rename to app/src/test/java/com/quantumcoin/app/backup/BackupExecutorExportPathTest.java
index cc95bfa..2ccec6f 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/backup/BackupExecutorExportPathTest.java
+++ b/app/src/test/java/com/quantumcoin/app/backup/BackupExecutorExportPathTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.backup;
+package com.quantumcoin.app.backup;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/backup/CloudBackupManagerScanTest.java b/app/src/test/java/com/quantumcoin/app/backup/CloudBackupManagerScanTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/backup/CloudBackupManagerScanTest.java
rename to app/src/test/java/com/quantumcoin/app/backup/CloudBackupManagerScanTest.java
index 3cc5cfa..0e89c98 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/backup/CloudBackupManagerScanTest.java
+++ b/app/src/test/java/com/quantumcoin/app/backup/CloudBackupManagerScanTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.backup;
+package com.quantumcoin.app.backup;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/bridge/SendBridgeContractTest.java b/app/src/test/java/com/quantumcoin/app/bridge/SendBridgeContractTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/bridge/SendBridgeContractTest.java
rename to app/src/test/java/com/quantumcoin/app/bridge/SendBridgeContractTest.java
index 4604e02..c5ec912 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/bridge/SendBridgeContractTest.java
+++ b/app/src/test/java/com/quantumcoin/app/bridge/SendBridgeContractTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.bridge;
+package com.quantumcoin.app.bridge;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -61,7 +61,7 @@
public class SendBridgeContractTest {
private static final File JAVA = new File(
- "src/main/java/com/quantumcoinwallet/app/bridge/QuantumCoinJSBridge.java");
+ "src/main/java/com/quantumcoin/app/bridge/QuantumCoinJSBridge.java");
private static final File HTML = new File(
"src/main/assets/bridge.html");
diff --git a/app/src/test/java/com/quantumcoinwallet/app/bridge/SendSurfaceLockdownTest.java b/app/src/test/java/com/quantumcoin/app/bridge/SendSurfaceLockdownTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/bridge/SendSurfaceLockdownTest.java
rename to app/src/test/java/com/quantumcoin/app/bridge/SendSurfaceLockdownTest.java
index c75f5d0..6487079 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/bridge/SendSurfaceLockdownTest.java
+++ b/app/src/test/java/com/quantumcoin/app/bridge/SendSurfaceLockdownTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.bridge;
+package com.quantumcoin.app.bridge;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/interact/JsonInteractParityTest.java b/app/src/test/java/com/quantumcoin/app/interact/JsonInteractParityTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/interact/JsonInteractParityTest.java
rename to app/src/test/java/com/quantumcoin/app/interact/JsonInteractParityTest.java
index e03516f..cd0d4b0 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/interact/JsonInteractParityTest.java
+++ b/app/src/test/java/com/quantumcoin/app/interact/JsonInteractParityTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.interact;
+package com.quantumcoin.app.interact;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/keystorage/AddNetworkPersistsToStrongboxTest.java b/app/src/test/java/com/quantumcoin/app/keystorage/AddNetworkPersistsToStrongboxTest.java
similarity index 96%
rename from app/src/test/java/com/quantumcoinwallet/app/keystorage/AddNetworkPersistsToStrongboxTest.java
rename to app/src/test/java/com/quantumcoin/app/keystorage/AddNetworkPersistsToStrongboxTest.java
index 238f318..2587355 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/keystorage/AddNetworkPersistsToStrongboxTest.java
+++ b/app/src/test/java/com/quantumcoin/app/keystorage/AddNetworkPersistsToStrongboxTest.java
@@ -1,13 +1,13 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import com.quantumcoinwallet.app.model.BlockchainNetwork;
-import com.quantumcoinwallet.app.strongbox.StrongboxPayload;
-import com.quantumcoinwallet.app.utils.NetworkPersistence;
+import com.quantumcoin.app.model.BlockchainNetwork;
+import com.quantumcoin.app.strongbox.StrongboxPayload;
+import com.quantumcoin.app.utils.NetworkPersistence;
import org.junit.Test;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/keystorage/MacUtilTest.java b/app/src/test/java/com/quantumcoin/app/keystorage/MacUtilTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/keystorage/MacUtilTest.java
rename to app/src/test/java/com/quantumcoin/app/keystorage/MacUtilTest.java
index da94456..3aa4239 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/keystorage/MacUtilTest.java
+++ b/app/src/test/java/com/quantumcoin/app/keystorage/MacUtilTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.keystorage;
+package com.quantumcoin.app.keystorage;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderHostInvariantTest.java b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderHostInvariantTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderHostInvariantTest.java
rename to app/src/test/java/com/quantumcoin/app/networking/UrlBuilderHostInvariantTest.java
index 72e94eb..64cdb06 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderHostInvariantTest.java
+++ b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderHostInvariantTest.java
@@ -1,11 +1,11 @@
-package com.quantumcoinwallet.app.networking;
+package com.quantumcoin.app.networking;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import com.quantumcoinwallet.app.utils.GlobalMethods;
+import com.quantumcoin.app.utils.GlobalMethods;
import org.junit.After;
import org.junit.Before;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderLockdownTest.java b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderLockdownTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderLockdownTest.java
rename to app/src/test/java/com/quantumcoin/app/networking/UrlBuilderLockdownTest.java
index f7a88d2..f0d484b 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderLockdownTest.java
+++ b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderLockdownTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.networking;
+package com.quantumcoin.app.networking;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderTest.java b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderTest.java
similarity index 96%
rename from app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderTest.java
rename to app/src/test/java/com/quantumcoin/app/networking/UrlBuilderTest.java
index 88f1de6..f7aae4b 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/networking/UrlBuilderTest.java
+++ b/app/src/test/java/com/quantumcoin/app/networking/UrlBuilderTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.networking;
+package com.quantumcoin.app.networking;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/security/BackupRestoreLimiterRecordingTest.java b/app/src/test/java/com/quantumcoin/app/security/BackupRestoreLimiterRecordingTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/security/BackupRestoreLimiterRecordingTest.java
rename to app/src/test/java/com/quantumcoin/app/security/BackupRestoreLimiterRecordingTest.java
index 5f4ef08..c6ab5a7 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/security/BackupRestoreLimiterRecordingTest.java
+++ b/app/src/test/java/com/quantumcoin/app/security/BackupRestoreLimiterRecordingTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -47,7 +47,7 @@
public class BackupRestoreLimiterRecordingTest {
private static final String FRAGMENT_PATH =
- "app/src/main/java/com/quantumcoinwallet/app/view/fragment/"
+ "app/src/main/java/com/quantumcoin/app/view/fragment/"
+ "HomeWalletFragment.java";
@Test
diff --git a/app/src/test/java/com/quantumcoinwallet/app/security/CredentialIdentifierUsernameParityTest.java b/app/src/test/java/com/quantumcoin/app/security/CredentialIdentifierUsernameParityTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/security/CredentialIdentifierUsernameParityTest.java
rename to app/src/test/java/com/quantumcoin/app/security/CredentialIdentifierUsernameParityTest.java
index 4f3e8ed..6837ca1 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/security/CredentialIdentifierUsernameParityTest.java
+++ b/app/src/test/java/com/quantumcoin/app/security/CredentialIdentifierUsernameParityTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/security/TlsPinningConnectionSpecTest.java b/app/src/test/java/com/quantumcoin/app/security/TlsPinningConnectionSpecTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/security/TlsPinningConnectionSpecTest.java
rename to app/src/test/java/com/quantumcoin/app/security/TlsPinningConnectionSpecTest.java
index 5512c41..8d1eff9 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/security/TlsPinningConnectionSpecTest.java
+++ b/app/src/test/java/com/quantumcoin/app/security/TlsPinningConnectionSpecTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiterTest.java b/app/src/test/java/com/quantumcoin/app/security/UnlockAttemptLimiterTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiterTest.java
rename to app/src/test/java/com/quantumcoin/app/security/UnlockAttemptLimiterTest.java
index b5e886b..5de0945 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/security/UnlockAttemptLimiterTest.java
+++ b/app/src/test/java/com/quantumcoin/app/security/UnlockAttemptLimiterTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/security/WalletCreationPasswordWhitespaceTest.java b/app/src/test/java/com/quantumcoin/app/security/WalletCreationPasswordWhitespaceTest.java
similarity index 95%
rename from app/src/test/java/com/quantumcoinwallet/app/security/WalletCreationPasswordWhitespaceTest.java
rename to app/src/test/java/com/quantumcoin/app/security/WalletCreationPasswordWhitespaceTest.java
index a8a8a6b..c96b00a 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/security/WalletCreationPasswordWhitespaceTest.java
+++ b/app/src/test/java/com/quantumcoin/app/security/WalletCreationPasswordWhitespaceTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.security;
+package com.quantumcoin.app.security;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -25,7 +25,7 @@
* permanently locked the user out of their strongbox.
*
*
The fix adds a reject-on-whitespace guard mirroring
- * {@link com.quantumcoinwallet.app.view.dialog.BackupPasswordDialog}'s
+ * {@link com.quantumcoin.app.view.dialog.BackupPasswordDialog}'s
* {@code showCreateMode} (lines 234-239) and the iOS counterpart in
* {@code HomeWalletViewController.swift}.
*
@@ -85,7 +85,7 @@ public void passwordSpaceWordingMatchesIosByteForByte() throws Exception {
@Test
public void jsonInteractHasPasswordSpaceAccessor() throws Exception {
Class> ji = Class.forName(
- "com.quantumcoinwallet.app.interact.JsonInteract");
+ "com.quantumcoin.app.interact.JsonInteract");
Method m = ji.getDeclaredMethod("getPasswordSpaceByErrors");
assertNotNull(m);
assertEquals(String.class, m.getReturnType());
@@ -99,7 +99,7 @@ public void jsonViewModelHasPasswordSpaceAccessor() throws Exception {
// falls back to whatever default the helper provides — which
// for HomeWalletFragment is a null-message dialog. Pin it.
Class> vm = Class.forName(
- "com.quantumcoinwallet.app.viewmodel.JsonViewModel");
+ "com.quantumcoin.app.viewmodel.JsonViewModel");
Method m = vm.getDeclaredMethod("getPasswordSpaceByErrors");
assertNotNull(m);
assertEquals(String.class, m.getReturnType());
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSource.java b/app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSource.java
similarity index 96%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSource.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSource.java
index 1350e3b..6fe321e 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSource.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSource.java
@@ -1,6 +1,6 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
-import com.quantumcoinwallet.app.keystorage.SecureRandomSource;
+import com.quantumcoin.app.keystorage.SecureRandomSource;
import java.util.Arrays;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSourceTest.java b/app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSourceTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSourceTest.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSourceTest.java
index 836e9c6..bc5adf8 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/DeterministicSecureRandomSourceTest.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/DeterministicSecureRandomSourceTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodecScryptValidationTest.java b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxFileCodecScryptValidationTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodecScryptValidationTest.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/StrongboxFileCodecScryptValidationTest.java
index 9236a18..663dd36 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxFileCodecScryptValidationTest.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxFileCodecScryptValidationTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java
index 5a65aa4..0e1e875 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPaddingTest.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPaddingTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPayloadV3Test.java b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPayloadV3Test.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPayloadV3Test.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPayloadV3Test.java
index ba4e477..a6e438a 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPayloadV3Test.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPayloadV3Test.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPortabilityVectorTest.java b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPortabilityVectorTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPortabilityVectorTest.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPortabilityVectorTest.java
index b261c81..bfcea1c 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPortabilityVectorTest.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPortabilityVectorTest.java
@@ -1,12 +1,12 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import com.quantumcoinwallet.app.keystorage.Aead;
-import com.quantumcoinwallet.app.keystorage.MacUtil;
+import com.quantumcoin.app.keystorage.Aead;
+import com.quantumcoin.app.keystorage.MacUtil;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodecTest.java b/app/src/test/java/com/quantumcoin/app/strongbox/WalletEntryCodecTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodecTest.java
rename to app/src/test/java/com/quantumcoin/app/strongbox/WalletEntryCodecTest.java
index 12f9e9e..4978626 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/strongbox/WalletEntryCodecTest.java
+++ b/app/src/test/java/com/quantumcoin/app/strongbox/WalletEntryCodecTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.strongbox;
+package com.quantumcoin.app.strongbox;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -22,7 +22,7 @@
*
Locks in:
*
* - round-trip equivalence with the legacy JSON shape so
- * {@link com.quantumcoinwallet.app.keystorage.SecureStorage}
+ * {@link com.quantumcoin.app.keystorage.SecureStorage}
* callers see no behaviour change;
* - address case preservation (EIP-55 checksummed
* addresses are common and the wallet maps key on the
diff --git a/app/src/test/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilterTest.java b/app/src/test/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilterTest.java
similarity index 97%
rename from app/src/test/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilterTest.java
rename to app/src/test/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilterTest.java
index 217270d..660c271 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilterTest.java
+++ b/app/src/test/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilterTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.tokens;
+package com.quantumcoin.app.tokens;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -6,7 +6,7 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import com.quantumcoinwallet.app.api.read.model.AccountTokenSummary;
+import com.quantumcoin.app.api.read.model.AccountTokenSummary;
import org.junit.Assume;
import org.junit.Test;
@@ -186,9 +186,9 @@ public void homeAndSendApplyFilterBeforeBucketing() throws IOException {
// chokepoints because there is no Robolectric / framework
// surface to run them against in pure-JVM tests.
String homeMain = readSource(
- "src/main/java/com/quantumcoinwallet/app/view/fragment/HomeMainFragment.java");
+ "src/main/java/com/quantumcoin/app/view/fragment/HomeMainFragment.java");
String sendFrag = readSource(
- "src/main/java/com/quantumcoinwallet/app/view/fragment/SendFragment.java");
+ "src/main/java/com/quantumcoin/app/view/fragment/SendFragment.java");
assertContainsCallSite(homeMain, "HomeMainFragment.java",
"applyFilteredItems",
@@ -211,7 +211,7 @@ public void androidPatternListMatchesIosPattern() throws IOException {
// sibling repo checked out) so a fresh-clone Android-only
// contributor still gets a green test run.
File androidFile = new File(
- "src/main/java/com/quantumcoinwallet/app/tokens/StablecoinImpersonatorFilter.java");
+ "src/main/java/com/quantumcoin/app/tokens/StablecoinImpersonatorFilter.java");
File iosSnapshot = new File(
"src/test/resources/code-snapshots/StablecoinImpersonatorFilter.swift");
diff --git a/app/src/test/java/com/quantumcoinwallet/app/utils/CoinUtilsCapsTest.java b/app/src/test/java/com/quantumcoin/app/utils/CoinUtilsCapsTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/utils/CoinUtilsCapsTest.java
rename to app/src/test/java/com/quantumcoin/app/utils/CoinUtilsCapsTest.java
index 2b0d57c..6d6aa22 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/utils/CoinUtilsCapsTest.java
+++ b/app/src/test/java/com/quantumcoin/app/utils/CoinUtilsCapsTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
diff --git a/app/src/test/java/com/quantumcoinwallet/app/utils/SecureClipboardSeedGateLockdownTest.java b/app/src/test/java/com/quantumcoin/app/utils/SecureClipboardSeedGateLockdownTest.java
similarity index 99%
rename from app/src/test/java/com/quantumcoinwallet/app/utils/SecureClipboardSeedGateLockdownTest.java
rename to app/src/test/java/com/quantumcoin/app/utils/SecureClipboardSeedGateLockdownTest.java
index 648f514..ed0d965 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/utils/SecureClipboardSeedGateLockdownTest.java
+++ b/app/src/test/java/com/quantumcoin/app/utils/SecureClipboardSeedGateLockdownTest.java
@@ -1,4 +1,4 @@
-package com.quantumcoinwallet.app.utils;
+package com.quantumcoin.app.utils;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
@@ -55,7 +55,7 @@
public class SecureClipboardSeedGateLockdownTest {
private static final String SOURCE_ROOT =
- "src/main/java/com/quantumcoinwallet/app";
+ "src/main/java/com/quantumcoin/app";
/**
* Pattern that matches the strict SDK_INT comparison the helper
diff --git a/app/src/test/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java b/app/src/test/java/com/quantumcoin/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java
similarity index 98%
rename from app/src/test/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java
rename to app/src/test/java/com/quantumcoin/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java
index 049ba66..29c8376 100644
--- a/app/src/test/java/com/quantumcoinwallet/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java
+++ b/app/src/test/java/com/quantumcoin/app/view/fragment/HomeWalletFragmentRestoreConfirmTest.java
@@ -1,11 +1,11 @@
-package com.quantumcoinwallet.app.view.fragment;
+package com.quantumcoin.app.view.fragment;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import com.quantumcoinwallet.app.utils.CoinUtils;
+import com.quantumcoin.app.utils.CoinUtils;
import org.junit.Test;
@@ -146,7 +146,7 @@ public void m4_8_expandedReviewerComment_anchorsPresent() throws Exception {
// do this rather than a synthetic class doc test because the
// comment block is the deliverable -- its presence is the
// assertion.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found in expected"
+ " path; running outside the app module CWD.", f.exists());
@@ -186,7 +186,7 @@ public void confirmWalletBalanceTaskField_existsAndIsCancellable() throws Except
assertEquals("In-flight balance task must be the cancellable "
+ "AccountBalanceRestTask type so the helper can "
+ "supersede it.",
- "com.quantumcoinwallet.app.asynctask.read.AccountBalanceRestTask",
+ "com.quantumcoin.app.asynctask.read.AccountBalanceRestTask",
taskField.getType().getName());
Method cancelHelper = findDeclaredMethod(FRAG,
@@ -209,7 +209,7 @@ public void confirmWalletBalanceTask_supersededOnNavigationAndDestroy() throws E
// (onDestroyView) must invoke
// cancelInFlightConfirmWalletBalanceTask. A missed call
// would re-introduce the stale-callback regression.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
@@ -242,7 +242,7 @@ public void saveWalletPasswordNotSet_reArmsNextButton() throws Exception {
// Next button permanently disabled. The user could see the
// error dialog but had no way to retry except by tearing
// down the fragment.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
@@ -273,7 +273,7 @@ public void promptStrongboxPasswordEarlyReturns_reArmNextButton() throws Excepti
// resetting confirmWalletSaveInProgress. Pin the fix so a
// future refactor cannot strand Next disabled when the
// fragment is mid-detach.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
@@ -335,7 +335,7 @@ public void confirmWalletDeriveWaitDialog_dismissedWithoutActivityRef() throws E
// dismissal through a Handler bound to the main looper so
// the dismiss + error path always runs. Pin the source
// marker so a refactor cannot silently revert.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
@@ -397,7 +397,7 @@ public void mismatchCheckGatedToCreateFlowOnly() throws Exception {
// that excludes the restore flow. The simplest stable
// signature is a nearby reference to
// isRestoreFromSeedFlow (the boolean introduced by the fix).
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
@@ -445,7 +445,7 @@ public void m4_4_visibleValueDoesNotAppendCoinsSuffix_inSourceContract() throws
// formatWei output. If a future maintainer reintroduces the
// " + coinsLabel" concatenation on the visible TextView,
// this test catches it at PR time.
- java.io.File f = new java.io.File("src/main/java/com/quantumcoinwallet/"
+ java.io.File f = new java.io.File("src/main/java/com/quantumcoin/"
+ "app/view/fragment/HomeWalletFragment.java");
org.junit.Assume.assumeTrue("HomeWalletFragment.java not found.", f.exists());
String src = new String(java.nio.file.Files.readAllBytes(f.toPath()),
diff --git a/tests/fixtures/strongbox-v3-vectors/INDEX.md b/tests/fixtures/strongbox-v3-vectors/INDEX.md
index c287deb..00db984 100644
--- a/tests/fixtures/strongbox-v3-vectors/INDEX.md
+++ b/tests/fixtures/strongbox-v3-vectors/INDEX.md
@@ -14,7 +14,7 @@ The expansion rule is:
iOS implements this in `QuantumCoinWalletTests/StrongboxLayerTests.swift`
as `TestShake256`; Android implements it in
-`app/src/test/java/com/quantumcoinwallet/app/strongbox/StrongboxPortabilityVectorTest.java`
+`app/src/test/java/com/quantumcoin/app/strongbox/StrongboxPortabilityVectorTest.java`
through BouncyCastle `SHAKEDigest(256)`.
The test code hardcodes only the seed and small expected outputs