From b6a4e1f145f984a25aa469a27ad5d2ded623f7c0 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 22 May 2024 15:44:24 -0400 Subject: [PATCH] Rewrite the AppDependencies system. --- ...SignalInstrumentationApplicationContext.kt | 6 +- .../securesms/backup/v2/BackupTest.kt | 4 +- .../changenumber/ChangeNumberViewModelTest.kt | 4 +- .../SafetyNumberChangeDialogPreviewer.kt | 4 +- .../database/DatabaseConsistencyTest.kt | 4 +- .../database/DatabaseObserverTest.kt | 4 +- .../securesms/database/LogDatabaseTest.kt | 4 +- ...TableTest_applyStorageSyncContactUpdate.kt | 4 +- .../RecipientTableTest_getAndPossiblyMerge.kt | 6 +- ...umentationApplicationDependencyProvider.kt | 2 +- .../jobs/AttachmentCompressionJobTest.kt | 8 +- .../jobs/MultiDeviceDeleteSendSyncJobTest.kt | 8 +- .../securesms/testing/AliceClient.kt | 6 +- .../securesms/testing/SignalActivityRule.kt | 12 +- .../benchmark/DummyAccountManagerFactory.kt | 4 +- .../org/signal/benchmark/setup/TestUsers.kt | 6 +- .../test/ConversationElementGenerator.kt | 4 +- .../securesms/AppInitialization.java | 38 +- .../securesms/ApplicationContext.java | 60 +- .../thoughtcrime/securesms/BaseActivity.java | 4 +- .../securesms/DeviceActivity.java | 4 +- .../securesms/DeviceListFragment.java | 4 +- .../securesms/PassphraseRequiredActivity.java | 9 +- .../securesms/WebRtcCallActivity.java | 72 +- .../securesms/apkupdate/ApkUpdateInstaller.kt | 8 +- .../apkupdate/ApkUpdateRefreshListener.java | 4 +- .../securesms/audio/BluetoothVoiceNoteUtil.kt | 6 +- .../securesms/audio/SignalBluetoothManager.kt | 4 +- .../securesms/backup/FullBackupExporter.java | 6 +- .../securesms/backup/FullBackupImporter.java | 7 +- .../securesms/backup/v2/BackupRepository.kt | 41 +- .../RecipientTableBackupExtensions.kt | 11 +- .../v2/processor/AccountDataProcessor.kt | 8 +- .../MessageBackupsTestRestoreActivity.kt | 6 +- .../MessageBackupsTestRestoreViewModel.kt | 6 +- .../securesms/badges/BadgeRepository.kt | 6 +- .../badges/gifts/flow/GiftFlowRepository.kt | 6 +- .../gifts/viewgift/ViewGiftRepository.kt | 10 +- .../received/ViewReceivedGiftViewModel.kt | 8 +- .../self/none/BecomeASustainerFragment.kt | 4 +- .../self/overview/BadgesOverviewFragment.kt | 4 +- .../securesms/calls/links/CallLinks.kt | 6 +- .../calls/links/UpdateCallLinkRepository.kt | 8 +- .../links/create/CreateCallLinkRepository.kt | 6 +- .../details/CallLinkDetailsRepository.kt | 4 +- .../securesms/calls/log/CallLogFragment.kt | 4 +- .../securesms/calls/log/CallLogPeekHelper.kt | 6 +- .../securesms/calls/log/CallLogRepository.kt | 14 +- .../securesms/calls/log/CallLogViewModel.kt | 6 +- .../securesms/components/AvatarImageView.java | 4 +- .../components/ConversationItemFooter.java | 6 +- .../DebugLogsPromptDialogFragment.kt | 4 +- .../components/DeleteSyncEducationDialog.kt | 4 +- .../components/TypingStatusSender.java | 4 +- .../identity/UntrustedSendDialog.java | 4 +- .../identity/UnverifiedSendDialog.java | 8 +- .../settings/app/AppSettingsViewModel.kt | 8 +- .../app/account/AccountSettingsFragment.kt | 4 +- .../app/account/AccountSettingsViewModel.kt | 4 +- .../export/ExportAccountDataRepository.kt | 4 +- .../changenumber/ChangeNumberRepository.kt | 42 +- .../app/changenumber/ChangeNumberViewModel.kt | 6 +- .../app/chats/ChatsSettingsRepository.kt | 8 +- .../app/chats/ChatsSettingsViewModel.kt | 6 +- .../backups/RemoteBackupsSettingsViewModel.kt | 4 +- .../data/DataAndStorageSettingsRepository.kt | 4 +- .../data/DataAndStorageSettingsViewModel.kt | 10 +- ...ngOneTimeDonationConfigurationViewModel.kt | 4 +- .../app/internal/InternalSettingsFragment.kt | 28 +- .../internal/InternalSettingsRepository.kt | 10 +- .../InternalBackupPlaygroundViewModel.kt | 14 +- ...nternalDonorErrorConfigurationViewModel.kt | 8 +- .../svr/InternalSvrPlaygroundViewModel.kt | 6 +- .../NotificationsSettingsViewModel.kt | 4 +- .../NotificationProfilesRepository.kt | 10 +- .../app/privacy/PrivacySettingsRepository.kt | 10 +- .../app/privacy/PrivacySettingsViewModel.kt | 24 +- .../AdvancedPrivacySettingsRepository.kt | 6 +- .../AdvancedPrivacySettingsViewModel.kt | 20 +- .../PhoneNumberPrivacySettingsViewModel.kt | 6 +- .../storage/ManageStorageSettingsViewModel.kt | 6 +- .../subscription/InAppPaymentsRepository.kt | 13 +- .../OneTimeInAppPaymentRepository.kt | 4 +- .../RecurringInAppPaymentRepository.kt | 4 +- .../app/subscription/StripeRepository.kt | 22 +- .../completed/TerminalDonationRepository.kt | 4 +- .../donate/DonateToSignalViewModel.kt | 6 +- .../gateway/GatewaySelectorViewModel.kt | 4 +- .../PayPalPaymentInProgressViewModel.kt | 8 +- .../StripePaymentInProgressViewModel.kt | 6 +- .../mandate/BankTransferMandateRepository.kt | 4 +- .../manage/DonationRedemptionJobWatcher.kt | 6 +- .../manage/ManageDonationsFragment.kt | 4 +- .../detail/DonationReceiptDetailRepository.kt | 6 +- .../list/DonationReceiptListRepository.kt | 4 +- .../app/updates/AppUpdatesSettingsFragment.kt | 4 +- .../main/UsernameLinkSettingsViewModel.kt | 6 +- .../ConversationSettingsRepository.kt | 4 +- .../ConversationSettingsViewModel.kt | 4 +- .../InternalConversationSettingsFragment.kt | 6 +- .../components/spoiler/SpoilerPaint.kt | 8 +- .../voice/VoiceNotePlaybackService.java | 14 +- .../webrtc/CallLinkProfileKeySender.kt | 8 +- .../webrtc/CallOverflowPopupWindow.kt | 6 +- .../webrtc/PendingParticipantsBottomSheet.kt | 6 +- .../components/webrtc/WebRtcAudioPicker31.kt | 4 +- .../webrtc/WebRtcCallRepository.java | 4 +- .../webrtc/WebRtcCallViewModel.java | 7 +- .../webrtc/controls/CallInfoView.kt | 4 +- .../controls/ControlsAndInfoController.kt | 6 +- .../webrtc/controls/RaiseHandSnackbar.kt | 4 +- .../requests/CallLinkIncomingRequestSheet.kt | 6 +- .../contacts/ContactChipViewModel.kt | 4 +- .../contacts/ContactsSyncAdapter.java | 5 +- ...OffContactJoinedNotificationsActivity.java | 5 +- .../contacts/avatars/ProfileContactPhoto.java | 2 - .../ContactsManagementRepository.kt | 4 +- .../contacts/paged/SafetyNumberRepository.kt | 6 +- .../contacts/sync/ContactDiscovery.kt | 10 +- .../sync/ContactDiscoveryRefreshV2.kt | 10 +- .../SharedContactDetailsActivity.java | 4 +- .../conversation/ConversationItem.java | 14 +- .../conversation/ConversationRepository.java | 4 +- .../conversation/MarkReadHelper.java | 4 +- .../ScheduledMessagesRepository.kt | 8 +- .../AttachmentCancelClickListener.kt | 4 +- .../colors/ui/ChatColorsOptionsLiveData.kt | 6 +- .../conversation/drafts/DraftRepository.kt | 4 +- .../quotes/MessageQuotesBottomSheet.kt | 4 +- .../quotes/MessageQuotesRepository.kt | 8 +- .../ui/edit/EditMessageHistoryRepository.kt | 6 +- .../error/SafetyNumberChangeRepository.java | 18 +- .../ui/error/SafetyNumberChangeViewModel.java | 4 +- .../ui/inlinequery/InlineQueryViewModel.kt | 6 +- .../ui/inlinequery/InlineQueryViewModelV2.kt | 6 +- .../conversation/v2/AddToContactsContract.kt | 4 +- .../conversation/v2/ConversationDialogs.kt | 4 +- .../conversation/v2/ConversationFragment.kt | 12 +- .../conversation/v2/ConversationRepository.kt | 18 +- .../conversation/v2/ConversationViewModel.kt | 16 +- .../v2/data/ConversationDataSource.kt | 4 +- .../v2/data/MessageDataFetcher.kt | 4 +- .../groups/ConversationGroupCallViewModel.kt | 4 +- .../v2/groups/ConversationGroupViewModel.kt | 4 +- .../V2ConversationItemTextOnlyViewHolder.kt | 4 +- .../ConversationListDataSource.java | 8 +- .../ConversationListFragment.java | 24 +- .../ConversationListViewModel.kt | 8 +- .../model/ConversationReader.java | 4 +- .../model/UnreadPaymentsLiveData.java | 6 +- .../securesms/crypto/SenderKeyUtil.java | 6 +- .../storage/SignalBaseIdentityKeyStore.java | 4 +- .../securesms/database/AttachmentTable.kt | 4 +- .../securesms/database/CallLinkTable.kt | 16 +- .../securesms/database/CallTable.kt | 52 +- .../securesms/database/ChatColorsTable.kt | 4 +- .../securesms/database/DatabaseTable.java | 16 +- .../securesms/database/GroupTable.kt | 4 +- .../securesms/database/IdentityTable.kt | 4 +- .../securesms/database/InAppPaymentTable.kt | 4 +- .../securesms/database/MessageTable.kt | 84 +- .../database/NotificationProfileTables.kt | 20 +- .../securesms/database/PaymentTable.java | 8 +- .../database/PendingRetryReceiptTable.java | 6 +- .../securesms/database/ReactionTable.kt | 6 +- .../securesms/database/RecipientTable.kt | 126 +-- .../securesms/database/RxDatabaseObserver.kt | 10 +- .../SqlCipherDeletingErrorHandler.java | 4 +- .../database/SqlCipherErrorHandler.kt | 4 +- .../securesms/database/ThreadTable.kt | 6 +- .../documents/IdentityKeyMismatch.java | 7 +- .../database/documents/NetworkFailure.java | 6 +- .../database/helpers/ClassicOpenHelper.java | 4 +- ...essageRecipientsAndEditMessageMigration.kt | 6 +- ...essageRecipientsAndEditMessageMigration.kt | 6 +- .../loaders/GroupedThreadMediaLoader.java | 6 +- .../database/loaders/PagingMediaLoader.java | 6 +- .../database/model/StoryViewState.kt | 6 +- .../delete/DeleteAccountRepository.java | 12 +- .../securesms/dependencies/AppDependencies.kt | 346 +++++++++ .../dependencies/ApplicationDependencies.java | 731 ------------------ .../ApplicationDependencyProvider.java | 4 +- .../dependencies/NetworkDependenciesModule.kt | 160 ++++ .../OldDeviceTransferSetupFragment.java | 4 +- .../securesms/emoji/EmojiSource.kt | 6 +- .../securesms/gcm/FcmFetchManager.kt | 4 +- .../securesms/gcm/FcmJobService.java | 4 +- .../securesms/gcm/FcmReceiveService.java | 10 +- .../giph/mp4/GiphyMp4PagedDataSource.java | 4 +- .../giph/mp4/GiphyMp4PlaybackPolicy.java | 8 +- .../mp4/GiphyMp4ProjectionPlayerHolder.java | 10 +- .../giph/mp4/GiphyMp4Repository.java | 4 +- .../securesms/glide/BadgeLoader.java | 4 +- .../securesms/glide/GiftBadgeModel.kt | 6 +- .../securesms/groups/GroupManagerV2.java | 24 +- .../securesms/groups/LiveGroup.java | 10 +- .../ui/addmembers/AddMembersRepository.java | 4 +- .../ui/addmembers/AddMembersViewModel.java | 4 +- .../ui/addtogroup/AddToGroupViewModel.java | 6 +- .../chooseadmin/ChooseNewAdminViewModel.java | 4 +- .../groups/v2/GroupCandidateHelper.java | 4 +- .../groups/v2/GroupManagementRepository.kt | 4 +- .../v2/processing/GroupsV2StateProcessor.kt | 22 +- .../jobmanager/AlarmManagerScheduler.java | 4 +- .../jobmanager/JobSchedulerScheduler.java | 4 +- .../impl/DecryptionsDrainedConstraint.java | 4 +- .../DecryptionsDrainedConstraintObserver.java | 4 +- .../jobs/AccountConsistencyWorkerJob.kt | 4 +- .../jobs/ArchiveAttachmentBackfillJob.kt | 8 +- .../securesms/jobs/ArchiveAttachmentJob.kt | 4 +- .../jobs/ArchiveThumbnailUploadJob.kt | 6 +- .../securesms/jobs/AttachmentDownloadJob.kt | 8 +- .../jobs/AttachmentHashBackfillJob.kt | 8 +- .../securesms/jobs/AttachmentUploadJob.kt | 6 +- .../jobs/AutomaticSessionResetJob.java | 8 +- .../jobs/AvatarGroupsV1DownloadJob.java | 4 +- .../jobs/AvatarGroupsV2DownloadJob.java | 6 +- .../securesms/jobs/BackupMessagesJob.kt | 8 +- .../securesms/jobs/BackupRestoreJob.kt | 4 +- .../securesms/jobs/BackupRestoreMediaJob.kt | 4 +- .../jobs/BoostReceiptRequestResponseJob.java | 28 +- .../securesms/jobs/CallLinkPeekJob.kt | 4 +- .../securesms/jobs/CallLinkUpdateSendJob.kt | 4 +- .../securesms/jobs/CallLogEventSendJob.kt | 4 +- .../securesms/jobs/CallSyncEventJob.kt | 6 +- .../jobs/CheckServiceReachabilityJob.kt | 10 +- .../securesms/jobs/CleanPreKeysJob.java | 6 +- .../ConversationShortcutRankingUpdateJob.kt | 6 +- .../jobs/ConversationShortcutUpdateJob.java | 5 +- .../jobs/DonationReceiptRedemptionJob.java | 14 +- .../jobs/DownloadLatestEmojiDataJob.java | 4 +- .../jobs/EmojiSearchIndexDownloadJob.java | 4 +- .../jobs/ExternalLaunchDonationJob.kt | 10 +- .../securesms/jobs/FcmRefreshJob.java | 4 +- .../securesms/jobs/ForceUpdateGroupV2Job.java | 6 +- .../securesms/jobs/ForegroundServiceUtil.kt | 4 +- .../jobs/GenerateAudioWaveFormJob.kt | 4 +- .../securesms/jobs/GroupCallPeekJob.java | 6 +- .../jobs/GroupCallPeekWorkerJob.java | 4 +- .../jobs/GroupCallUpdateSendJob.java | 4 +- .../securesms/jobs/GroupRingCleanupJob.kt | 6 +- .../jobs/GroupV2UpdateSelfProfileKeyJob.java | 4 +- .../jobs/InAppPaymentAuthCheckJob.kt | 10 +- .../jobs/InAppPaymentKeepAliveJob.kt | 12 +- .../jobs/InAppPaymentOneTimeContextJob.kt | 12 +- .../jobs/InAppPaymentRecurringContextJob.kt | 10 +- .../jobs/InAppPaymentRedemptionJob.kt | 12 +- .../securesms/jobs/IndividualSendJob.java | 10 +- .../securesms/jobs/LeaveGroupV2Job.kt | 4 +- .../securesms/jobs/LeaveGroupV2WorkerJob.kt | 4 +- .../jobs/LinkedDeviceInactiveCheckJob.kt | 10 +- .../securesms/jobs/LocalBackupJob.java | 6 +- .../securesms/jobs/MessageFetchJob.java | 6 +- .../jobs/MultiDeviceBlockedUpdateJob.java | 4 +- .../jobs/MultiDeviceCallLinkSyncJob.kt | 4 +- .../MultiDeviceConfigurationUpdateJob.java | 4 +- .../jobs/MultiDeviceContactSyncJob.kt | 6 +- .../jobs/MultiDeviceContactUpdateJob.java | 12 +- .../jobs/MultiDeviceDeleteSendSyncJob.kt | 12 +- .../jobs/MultiDeviceKeysUpdateJob.java | 4 +- .../MultiDeviceMessageRequestResponseJob.java | 4 +- .../MultiDeviceOutgoingPaymentSyncJob.java | 6 +- .../MultiDeviceProfileContentUpdateJob.java | 4 +- .../jobs/MultiDeviceProfileKeyUpdateJob.java | 5 +- .../jobs/MultiDeviceReadUpdateJob.java | 6 +- .../MultiDeviceStickerPackOperationJob.java | 4 +- .../jobs/MultiDeviceStickerPackSyncJob.java | 4 +- .../MultiDeviceStorageSyncRequestJob.java | 4 +- .../jobs/MultiDeviceStorySendSyncJob.kt | 4 +- .../MultiDeviceSubscriptionSyncRequestJob.kt | 6 +- .../jobs/MultiDeviceVerifiedUpdateJob.java | 4 +- .../jobs/MultiDeviceViewOnceOpenJob.java | 4 +- .../jobs/MultiDeviceViewedUpdateJob.java | 6 +- .../securesms/jobs/NullMessageSendJob.java | 4 +- .../jobs/OptimizeMessageSearchIndexJob.kt | 4 +- .../jobs/PaymentLedgerUpdateJob.java | 8 +- .../jobs/PaymentNotificationSendJob.java | 4 +- .../securesms/jobs/PaymentSendJob.java | 20 +- .../jobs/PaymentTransactionCheckJob.java | 4 +- .../securesms/jobs/PnpInitializeDevicesJob.kt | 14 +- .../securesms/jobs/PreKeysSyncJob.kt | 26 +- .../securesms/jobs/PushGroupSendJob.java | 12 +- .../jobs/PushProcessEarlyMessagesJob.kt | 8 +- .../jobs/PushProcessMessageErrorJob.kt | 4 +- .../securesms/jobs/PushProcessMessageJob.kt | 4 +- .../securesms/jobs/PushSendJob.java | 18 +- .../securesms/jobs/ReactionSendJob.java | 4 +- .../jobs/RebuildMessageSearchIndexJob.kt | 4 +- .../securesms/jobs/RefreshAttributesJob.java | 7 +- .../jobs/RefreshCallLinkDetailsJob.kt | 4 +- .../securesms/jobs/RefreshOwnProfileJob.java | 28 +- .../jobs/RefreshSvrCredentialsJob.kt | 4 +- .../jobs/RemoteConfigRefreshJob.java | 4 +- .../securesms/jobs/RemoteDeleteSendJob.java | 14 +- .../securesms/jobs/ReportSpamJob.java | 5 +- .../securesms/jobs/RequestGroupV2InfoJob.java | 4 +- .../securesms/jobs/ResendMessageJob.java | 14 +- .../securesms/jobs/ResetSvrGuessCountJob.kt | 4 +- .../securesms/jobs/RestoreAttachmentJob.kt | 10 +- .../jobs/ResumableUploadSpecJob.java | 8 +- .../jobs/RetrieveProfileAvatarJob.java | 6 +- .../securesms/jobs/RetrieveProfileJob.kt | 14 +- .../jobs/RetrieveRemoteAnnouncementsJob.kt | 10 +- .../securesms/jobs/RotateCertificateJob.java | 4 +- .../jobs/SendDeliveryReceiptJob.java | 4 +- .../securesms/jobs/SendReadReceiptJob.java | 6 +- .../securesms/jobs/SendRetryReceiptJob.java | 6 +- .../securesms/jobs/SendViewedReceiptJob.java | 6 +- .../jobs/SenderKeyDistributionSendJob.java | 6 +- .../securesms/jobs/StickerDownloadJob.java | 4 +- .../jobs/StickerPackDownloadJob.java | 6 +- .../jobs/StorageAccountRestoreJob.java | 11 +- .../securesms/jobs/StorageForcePushJob.java | 4 +- .../securesms/jobs/StorageSyncJob.java | 22 +- .../jobs/StoryOnboardingDownloadJob.kt | 6 +- .../jobs/SubmitRateLimitPushChallengeJob.java | 4 +- .../jobs/SubscriptionKeepAliveJob.java | 10 +- ...SubscriptionReceiptRequestResponseJob.java | 26 +- .../securesms/jobs/Svr2MirrorJob.kt | 6 +- .../securesms/jobs/ThreadUpdateJob.java | 6 +- .../securesms/jobs/TrimThreadJob.java | 4 +- .../emoji/EmojiKeyboardPageViewModel.kt | 4 +- .../sticker/StickerKeyboardPageFragment.kt | 8 +- .../securesms/keyvalue/AccountValues.kt | 12 +- .../securesms/keyvalue/PinValues.java | 6 +- .../securesms/keyvalue/SettingsValues.java | 48 +- .../securesms/keyvalue/SignalStore.java | 6 +- .../linkpreview/LinkPreviewRepository.java | 20 +- .../linkpreview/LinkPreviewViewModel.java | 4 +- .../lock/v2/ConfirmSvrPinFragment.kt | 4 +- .../lock/v2/SvrMigrationActivity.java | 4 +- .../securesms/logsubmit/LogSectionAnr.kt | 4 +- .../logsubmit/LogSectionConstraints.java | 4 +- .../logsubmit/LogSectionExoPlayerPool.kt | 4 +- .../securesms/logsubmit/LogSectionJobs.java | 4 +- .../logsubmit/LogSectionLocalMetrics.java | 4 +- .../logsubmit/LogSectionSystemInfo.java | 4 +- .../logsubmit/LogSectionThreadDump.java | 7 +- .../logsubmit/SubmitDebugLogRepository.java | 4 +- .../logsubmit/SubmitDebugLogViewModel.java | 6 +- .../longmessage/LongMessageViewModel.java | 6 +- .../mediapreview/MediaPreviewV2Fragment.kt | 6 +- .../securesms/mediasend/MediaRepository.java | 4 +- .../mediasend/MediaUploadRepository.java | 4 +- .../mediasend/v2/MediaSelectionRepository.kt | 4 +- .../mediasend/v2/UntrustedRecords.kt | 6 +- .../v2/text/TextStoryPostCreationViewModel.kt | 4 +- .../megaphone/ClientDeprecatedActivity.java | 4 +- .../securesms/megaphone/Megaphones.java | 8 +- .../megaphone/RemoteMegaphoneRepository.kt | 4 +- .../messagedetails/MessageDetails.java | 6 +- .../MessageDetailsRepository.java | 8 +- .../messagedetails/MessageRecordLiveData.java | 7 +- .../RoutineMessageFetchReceiver.java | 8 +- .../MessageRequestRepository.java | 20 +- .../messages/CallMessageProcessor.kt | 18 +- .../messages/DataMessageProcessor.kt | 54 +- .../messages/EditMessageProcessor.kt | 12 +- .../securesms/messages/GroupSendUtil.java | 5 +- .../messages/IncomingMessageObserver.kt | 14 +- .../messages/MessageContentProcessor.kt | 34 +- .../securesms/messages/MessageDecryptor.kt | 6 +- .../messages/ReceiptMessageProcessor.kt | 6 +- .../messages/StoryMessageProcessor.kt | 4 +- .../messages/SyncMessageProcessor.kt | 68 +- .../securesms/messages/WebSocketDrainer.kt | 12 +- .../protocol/BufferedProtocolStore.kt | 6 +- .../AccountConsistencyMigrationJob.kt | 4 +- .../migrations/AccountRecordMigrationJob.java | 4 +- .../AttachmentHashBackfillMigrationJob.kt | 4 +- .../migrations/AttributesMigrationJob.java | 8 +- .../AvatarIdRemovalMigrationJob.java | 4 +- .../ContactLinkRebuildMigrationJob.kt | 4 +- .../migrations/EmojiDownloadMigrationJob.java | 4 +- .../EmojiSearchIndexCheckMigrationJob.java | 2 - .../IdentityTableCleanupMigrationJob.kt | 8 +- .../migrations/LegacyMigrationJob.java | 16 +- .../migrations/PinOptOutMigration.java | 10 +- .../PniAccountInitializationMigrationJob.java | 6 +- .../securesms/migrations/PniMigrationJob.java | 4 +- .../migrations/PnpLaunchMigrationJob.kt | 4 +- .../migrations/ProfileMigrationJob.java | 4 +- .../migrations/RecheckPaymentsMigrationJob.kt | 4 +- .../StickerAdditionMigrationJob.java | 4 +- .../StickerDayByDayMigrationJob.java | 4 +- .../migrations/StickerLaunchMigrationJob.java | 4 +- .../StickerMyDailyLifeMigrationJob.java | 4 +- .../StorageCapabilityMigrationJob.java | 4 +- .../StorageFixLocalUnknownMigrationJob.kt | 4 +- .../StorageServiceMigrationJob.java | 4 +- .../migrations/Svr2MirrorMigrationJob.kt | 4 +- .../migrations/SyncKeysMigrationJob.kt | 4 +- .../TrimByLengthSettingsMigrationJob.java | 4 +- .../migrations/UpdateSmsJobsMigrationJob.kt | 4 +- .../migrations/UuidMigrationJob.java | 4 +- .../securesms/mms/PushMediaConstraints.java | 6 +- .../DeviceTransferBlockingInterceptor.java | 6 +- .../securesms/net/SequentialDns.java | 6 +- .../DeleteNotificationReceiver.java | 4 +- .../notifications/MarkReadReceiver.java | 12 +- .../notifications/MessageNotifier.java | 5 +- .../NotificationCancellationHelper.java | 4 +- .../notifications/NotificationChannels.java | 6 +- .../notifications/RemoteReplyReceiver.java | 8 +- .../SlowNotificationHeuristics.kt | 10 +- .../v2/DefaultMessageNotifier.kt | 6 +- .../v2/NotificationExtensions.kt | 4 +- .../notifications/v2/NotificationFactory.kt | 4 +- .../v2/NotificationThumbnails.kt | 4 +- .../securesms/payments/DataExportUtil.java | 4 +- .../securesms/payments/FiatMoneyUtil.java | 12 +- .../securesms/payments/MobileCoinConfig.java | 4 +- .../securesms/payments/MoneyView.java | 4 +- .../payments/PaymentTransactionLiveData.java | 6 +- .../securesms/payments/Payments.java | 4 +- .../payments/UnreadPaymentsRepository.java | 6 +- .../PaymentsRecoveryPhraseRepository.java | 12 +- .../confirm/ConfirmPaymentViewModel.java | 4 +- .../create/CreatePaymentViewModel.java | 16 +- .../preferences/PaymentsActivity.java | 6 +- .../preferences/PaymentsHomeRepository.java | 16 +- .../preferences/PaymentsHomeViewModel.java | 4 +- .../preferences/SetCurrencyViewModel.java | 4 +- .../addmoney/PaymentsAddMoneyRepository.kt | 4 +- .../transfer/PaymentsTransferViewModel.java | 4 +- .../phonenumbers/PhoneNumberFormatter.java | 6 +- .../pin/PinRestoreEntryFragment.java | 4 +- .../securesms/pin/SvrRepository.kt | 38 +- .../BackupsPreferenceFragment.java | 4 +- .../preferences/EditProxyViewModel.java | 7 +- .../edit/EditSelfProfileRepository.java | 10 +- .../WhoCanFindMeByPhoneNumberRepository.kt | 6 +- .../manage/EditProfileRepository.java | 10 +- .../profiles/manage/EditProfileViewModel.java | 6 +- .../profiles/manage/UsernameEditViewModel.kt | 4 +- .../profiles/manage/UsernameRepository.kt | 14 +- .../spoofing/ReviewCardRepository.java | 7 +- .../providers/BlobContentProvider.java | 4 +- .../securesms/push/AccountManagerFactory.java | 8 +- .../securesms/ratelimit/RateLimitUtil.java | 4 +- .../ratelimit/RecaptchaProofActivity.java | 4 +- .../reactions/ReactionsRepository.kt | 4 +- .../any/ReactWithAnyEmojiViewModel.java | 6 +- .../securesms/recipients/Recipient.kt | 12 +- .../securesms/recipients/RecipientUtil.java | 12 +- .../ui/about/AboutSheetRepository.kt | 4 +- .../RecipientDialogRepository.java | 4 +- .../registration/RegistrationRepository.java | 20 +- .../registration/RegistrationUtil.java | 11 +- .../fragments/RegistrationCompleteFragment.kt | 4 +- .../fragments/RegistrationLockFragment.java | 6 +- .../SignalStrengthPhoneStateListener.java | 6 +- .../v2/data/RegistrationRepository.kt | 20 +- .../v2/ui/RegistrationV2ViewModel.kt | 4 +- .../viewmodel/RegistrationViewModel.java | 10 +- .../revealable/ViewOnceMessageManager.java | 4 +- .../revealable/ViewOnceMessageRepository.java | 10 +- .../revealable/ViewOnceMessageViewModel.java | 6 +- .../java/org/thoughtcrime/securesms/s3/S3.kt | 4 +- .../SafetyNumberBottomSheetRepository.kt | 6 +- .../scribbles/ImageEditorFragment.java | 4 +- .../stickers/AnalogClockStickerRenderer.kt | 4 +- .../stickers/DigitalClockStickerRenderer.kt | 4 +- .../securesms/search/SearchRepository.java | 4 +- .../service/AnalyzeDatabaseAlarmListener.kt | 4 +- .../securesms/service/BootReceiver.java | 4 +- .../service/DeletedCallEventManager.kt | 4 +- .../service/DirectoryRefreshListener.java | 5 +- .../securesms/service/ExpirationListener.java | 4 +- .../service/ExpiringStoriesManager.kt | 4 +- .../securesms/service/KeyCachingService.java | 8 +- .../service/PendingRetryReceiptManager.java | 6 +- .../RotateSenderCertificateListener.java | 5 +- .../service/RotateSignedPreKeyListener.java | 4 - .../service/ScheduledMessageManager.kt | 8 +- .../service/TrimThreadsByDateManager.java | 4 +- .../ActiveCallActionProcessorDelegate.java | 6 +- .../service/webrtc/ActiveCallManager.kt | 22 +- .../service/webrtc/AndroidCallConnection.kt | 6 +- .../webrtc/AndroidCallConnectionService.kt | 10 +- .../service/webrtc/AndroidTelecomUtil.kt | 4 +- .../webrtc/CallLinkPreJoinActionProcessor.kt | 8 +- .../CallSetupActionProcessorDelegate.java | 4 +- .../webrtc/IncomingCallActionProcessor.java | 4 +- .../IncomingGroupCallActionProcessor.java | 4 +- .../service/webrtc/SignalCallManager.java | 44 +- .../service/webrtc/WebRtcActionProcessor.java | 4 +- .../service/webrtc/WebRtcCallService.java | 14 +- .../securesms/service/webrtc/WebRtcUtil.java | 4 +- .../webrtc/links/SignalCallLinkManager.kt | 8 +- .../securesms/shakereport/ShakeToReport.java | 4 +- .../securesms/sharing/MultiShareSender.java | 4 +- .../securesms/sms/MessageSender.java | 34 +- .../stickers/StickerManagementRepository.java | 8 +- .../stickers/StickerManagementViewModel.java | 6 +- .../StickerPackPreviewRepository.java | 4 +- .../stickers/StickerPackPreviewViewModel.java | 6 +- .../stickers/StickerRemoteUriLoader.java | 4 +- .../securesms/storage/StorageSyncHelper.java | 6 +- .../thoughtcrime/securesms/stories/Stories.kt | 12 +- .../securesms/stories/StorySlateView.kt | 4 +- .../securesms/stories/StoryTextPostModel.kt | 8 +- .../stories/landing/StoriesLandingFragment.kt | 4 +- .../landing/StoriesLandingRepository.kt | 6 +- .../story/StoriesPrivacySettingsRepository.kt | 4 +- .../stories/viewer/AddToGroupStoryDelegate.kt | 4 +- .../stories/viewer/StoryMutePolicy.kt | 4 +- .../viewer/page/StoryViewerPageRepository.kt | 24 +- .../viewer/post/StoryTextPostRepository.kt | 4 +- .../reply/group/StoryGroupReplyDataSource.kt | 4 +- .../reply/group/StoryGroupReplyFragment.kt | 8 +- .../reply/group/StoryGroupReplyRepository.kt | 15 +- .../viewer/views/StoryViewsRepository.kt | 6 +- .../securesms/util/BackupUtil.java | 8 +- .../securesms/util/BubbleUtil.java | 4 +- .../securesms/util/CommunicationActions.java | 10 +- .../util/ConversationShortcutPhoto.java | 5 +- .../securesms/util/FeatureFlags.java | 8 +- .../securesms/util/IdentityUtil.java | 12 +- .../util/InternetConnectionObserver.kt | 6 +- .../securesms/util/JobExtensions.kt | 4 +- .../securesms/util/LocalMetrics.kt | 4 +- .../util/LongClickMovementMethod.java | 4 +- .../securesms/util/MemoryFileUtil.java | 4 +- .../securesms/util/ProfileUtil.java | 34 +- .../securesms/util/SaveAttachmentUtil.kt | 18 +- .../securesms/util/ScreenDensity.java | 4 +- .../securesms/util/SignalProxyUtil.java | 34 +- .../util/SignalUncaughtExceptionHandler.java | 7 +- .../securesms/util/StorageUtil.java | 6 +- .../securesms/util/TextSecurePreferences.java | 4 +- .../securesms/util/VersionTracker.kt | 4 +- .../util/navigation/SafeNavigation.kt | 4 +- .../viewholders/RecipientMappingModel.java | 4 +- .../verify/VerifySafetyNumberViewModel.kt | 10 +- .../securesms/video/VideoPlayer.java | 6 +- .../video/exo/ChunkedDataSource.java | 6 +- .../video/exo/SimpleExoPlayerPool.kt | 10 +- .../wallpaper/ChatWallpaperRepository.java | 8 +- .../crop/WallpaperCropRepository.java | 4 +- .../securesms/webrtc/VoiceCallShare.java | 6 +- .../webrtc/audio/SignalAudioManager.kt | 4 +- .../securesms/StorageServicePlugin.kt | 4 +- .../database/GV2UpdateTransformer.kt | 4 +- .../thoughtcrime/securesms/SignalStoreRule.kt | 6 +- .../emoji/EmojiUtilTest_isEmoji.java | 6 +- .../account/export/ExportAccountDataTest.kt | 6 +- ...scriptionsConfigurationExtensionsKtTest.kt | 22 +- ...rchivedConversationListDataSourceTest.java | 6 +- .../securesms/crash/CrashConfigTest.kt | 6 +- .../NotificationProfileDatabaseTest.kt | 6 +- .../MockApplicationDependencyProvider.java | 2 +- .../processing/GroupsV2StateProcessorTest.kt | 12 +- .../securesms/keyvalue/PaymentsValuesTest.kt | 6 +- .../notifications/MarkReadReceiverTest.java | 6 +- .../securesms/recipients/BaseRecipientTest.kt | 6 +- .../securesms/stories/StoriesTest.kt | 6 +- .../SignalMeUtilText_parseE164FromLink.java | 4 +- .../org/signal/core/util/ResettableLazy.kt | 60 ++ .../signal/core/util/ResettableLazyTests.kt | 88 +++ 560 files changed, 2909 insertions(+), 3036 deletions(-) create mode 100644 app/src/main/java/org/thoughtcrime/securesms/dependencies/AppDependencies.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java create mode 100644 app/src/main/java/org/thoughtcrime/securesms/dependencies/NetworkDependenciesModule.kt create mode 100644 core-util-jvm/src/main/java/org/signal/core/util/ResettableLazy.kt create mode 100644 core-util-jvm/src/test/java/org/signal/core/util/ResettableLazyTests.kt diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/SignalInstrumentationApplicationContext.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/SignalInstrumentationApplicationContext.kt index 485f9fafbc..6451e65187 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/SignalInstrumentationApplicationContext.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/SignalInstrumentationApplicationContext.kt @@ -5,7 +5,7 @@ import org.signal.core.util.logging.AndroidLogger import org.signal.core.util.logging.Log import org.signal.libsignal.protocol.logging.SignalProtocolLoggerProvider import org.thoughtcrime.securesms.database.LogDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider import org.thoughtcrime.securesms.dependencies.InstrumentationApplicationDependencyProvider import org.thoughtcrime.securesms.logging.CustomSignalProtocolLogger @@ -21,8 +21,8 @@ class SignalInstrumentationApplicationContext : ApplicationContext() { override fun initializeAppDependencies() { val default = ApplicationDependencyProvider(this) - ApplicationDependencies.init(this, InstrumentationApplicationDependencyProvider(this, default)) - ApplicationDependencies.getDeadlockDetector().start() + AppDependencies.init(this, InstrumentationApplicationDependencyProvider(this, default)) + AppDependencies.deadlockDetector.start() } override fun initializeLogging() { diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/BackupTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/BackupTest.kt index 2f492b9ad4..6aec598166 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/BackupTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/BackupTest.kt @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.QuoteModel @@ -235,7 +235,7 @@ class BackupTest { @Test fun accountData() { - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application backupTest(validateKeyValue = true) { val self = Recipient.self() diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModelTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModelTest.kt index 49e18a29d6..18bf5b9abf 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModelTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModelTest.kt @@ -12,7 +12,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.signal.core.util.ThreadUtil import org.signal.libsignal.protocol.state.SignedPreKeyRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.InstrumentationApplicationDependencyProvider import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -371,7 +371,7 @@ class ChangeNumberViewModelTest { } private fun assertSuccess(newPni: ServiceId, changeNumberRequest: ChangePhoneNumberRequest, setPreKeysRequest: PreKeyState) { - val pniProtocolStore = ApplicationDependencies.getProtocolStore().pni() + val pniProtocolStore = AppDependencies.protocolStore.pni() val pniMetadataStore = SignalStore.account().pniPreKeys Recipient.self().requireE164() assertIs "+15555550102" diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/SafetyNumberChangeDialogPreviewer.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/SafetyNumberChangeDialogPreviewer.kt index 597d5d5d63..f6d94001f4 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/SafetyNumberChangeDialogPreviewer.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/conversation/SafetyNumberChangeDialogPreviewer.kt @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.database.IdentityTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DistributionListId import org.thoughtcrime.securesms.database.model.DistributionListPrivacyMode -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.profiles.ProfileName import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.safety.SafetyNumberBottomSheet @@ -64,7 +64,7 @@ class SafetyNumberChangeDialogPreviewer { scenario.onActivity { conversationActivity -> SafetyNumberBottomSheet .forIdentityRecordsAndDestinations( - identityRecords = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecords(othersRecipients).identityRecords, + identityRecords = AppDependencies.protocolStore.aci().identities().getIdentityRecords(othersRecipients).identityRecords, destinations = listOf(ContactSearchKey.RecipientSearchKey(myStoryRecipientId, true)) ) .show(conversationActivity.supportFragmentManager) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseConsistencyTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseConsistencyTest.kt index dbd03dfae7..fc6938e72e 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseConsistencyTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseConsistencyTest.kt @@ -15,7 +15,7 @@ import org.signal.core.util.getIndexes import org.signal.core.util.readToList import org.signal.core.util.requireNonNullString import org.thoughtcrime.securesms.database.helpers.SignalDatabaseMigrations -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.testing.SignalActivityRule /** @@ -30,7 +30,7 @@ class DatabaseConsistencyTest { @Test fun testUpgradeConsistency() { val currentVersionStatements = SignalDatabase.rawDatabase.getAllCreateStatements() - val testHelper = InMemoryTestHelper(ApplicationDependencies.getApplication()).also { + val testHelper = InMemoryTestHelper(AppDependencies.application).also { it.onUpgrade(it.writableDatabase, 181, SignalDatabaseMigrations.DATABASE_VERSION) } diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseObserverTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseObserverTest.kt index c86e5bdb57..f1118138e1 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseObserverTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/DatabaseObserverTest.kt @@ -8,7 +8,7 @@ import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.signal.core.util.concurrent.SignalExecutors -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.CountDownLatch import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicInteger @@ -26,7 +26,7 @@ class DatabaseObserverTest { @Before fun setup() { db = SignalDatabase.instance!!.signalWritableDatabase - observer = ApplicationDependencies.getDatabaseObserver() + observer = AppDependencies.databaseObserver } @Test diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/LogDatabaseTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/LogDatabaseTest.kt index b9ddb53c47..559721feca 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/LogDatabaseTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/LogDatabaseTest.kt @@ -12,12 +12,12 @@ import org.signal.core.util.requireNonNullString import org.signal.core.util.select import org.signal.core.util.updateAll import org.thoughtcrime.securesms.crash.CrashConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.testing.assertIs class LogDatabaseTest { - private val db: LogDatabase = LogDatabase.getInstance(ApplicationDependencies.getApplication()) + private val db: LogDatabase = LogDatabase.getInstance(AppDependencies.application) @Test fun crashTable_matchesNamePattern() { diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_applyStorageSyncContactUpdate.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_applyStorageSyncContactUpdate.kt index a795cfbab3..dfd59bf614 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_applyStorageSyncContactUpdate.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_applyStorageSyncContactUpdate.kt @@ -9,7 +9,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.storage.StorageRecordUpdate import org.thoughtcrime.securesms.storage.StorageSyncModels @@ -28,7 +28,7 @@ class RecipientTableTest_applyStorageSyncContactUpdate { @Test fun insertMessageOnVerifiedToDefault() { // GIVEN - val identities = ApplicationDependencies.getProtocolStore().aci().identities() + val identities = AppDependencies.protocolStore.aci().identities() val other = Recipient.resolved(harness.others[0]) MmsHelper.insert(recipient = other) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_getAndPossiblyMerge.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_getAndPossiblyMerge.kt index aba11af7cd..af640a74cd 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_getAndPossiblyMerge.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/RecipientTableTest_getAndPossiblyMerge.kt @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.ReactionRecord import org.thoughtcrime.securesms.database.model.databaseprotos.SessionSwitchoverEvent import org.thoughtcrime.securesms.database.model.databaseprotos.ThreadMergeEvent -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.IncomingMessage @@ -1113,8 +1113,8 @@ class RecipientTableTest_getAndPossiblyMerge { SignalDatabase.rawDatabase.execSQL("DELETE FROM $table") } - ApplicationDependencies.getRecipientCache().clear() - ApplicationDependencies.getRecipientCache().clearSelf() + AppDependencies.recipientCache.clear() + AppDependencies.recipientCache.clearSelf() RecipientId.clearCache() } diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/dependencies/InstrumentationApplicationDependencyProvider.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/dependencies/InstrumentationApplicationDependencyProvider.kt index 75e873b942..7e17503ef0 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/dependencies/InstrumentationApplicationDependencyProvider.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/dependencies/InstrumentationApplicationDependencyProvider.kt @@ -41,7 +41,7 @@ import java.util.Optional * * Handles setting up a mock web server for API calls, and provides mockable versions of [SignalServiceNetworkAccess]. */ -class InstrumentationApplicationDependencyProvider(val application: Application, private val default: ApplicationDependencyProvider) : ApplicationDependencies.Provider by default { +class InstrumentationApplicationDependencyProvider(val application: Application, private val default: ApplicationDependencyProvider) : AppDependencies.Provider by default { private val serviceTrustStore: TrustStore private val uncensoredConfiguration: SignalServiceConfiguration diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJobTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJobTest.kt index 3a05feabb6..536443a257 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJobTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJobTest.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.attachments.UriAttachment import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.UriAttachmentBuilder -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.mms.SentMediaQuality import org.thoughtcrime.securesms.providers.BlobProvider @@ -38,7 +38,7 @@ class AttachmentCompressionJobTest { StreamUtil.readFully(it) } - val blob = BlobProvider.getInstance().forData(imageBytes).createForSingleSessionOnDisk(ApplicationDependencies.getApplication()) + val blob = BlobProvider.getInstance().forData(imageBytes).createForSingleSessionOnDisk(AppDependencies.application) val firstPreUpload = createAttachment(1, blob, AttachmentTable.TransformProperties.empty()) val firstDatabaseAttachment = SignalDatabase.attachments.insertAttachmentForPreUpload(firstPreUpload) @@ -51,12 +51,12 @@ class AttachmentCompressionJobTest { val secondJobLatch = CountDownLatch(1) val jobThread = Thread { - firstCompressionJob.setContext(ApplicationDependencies.getApplication()) + firstCompressionJob.setContext(AppDependencies.application) firstJobResult = firstCompressionJob.run() secondJobLatch.await() - secondCompressionJob!!.setContext(ApplicationDependencies.getApplication()) + secondCompressionJob!!.setContext(AppDependencies.application) secondJobResult = secondCompressionJob!!.run() } diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJobTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJobTest.kt index 8db24c269c..fc4032ff3c 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJobTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJobTest.kt @@ -19,7 +19,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.protos.DeleteSyncJobData import org.thoughtcrime.securesms.messages.MessageHelper import org.thoughtcrime.securesms.recipients.Recipient @@ -80,7 +80,7 @@ class MultiDeviceDeleteSendSyncJobTest { val records: Set = MessageTableTestUtils.getMessages(threadId).toSet() // WHEN - every { ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(capture(content), any(), any()) } returns success + every { AppDependencies.signalServiceMessageSender.sendSyncMessage(capture(content), any(), any()) } returns success val job = MultiDeviceDeleteSendSyncJob.createMessageDeletes(records) val result = job.run() @@ -102,7 +102,7 @@ class MultiDeviceDeleteSendSyncJobTest { val records: Set = MessageTableTestUtils.getMessages(threadId).toSet() // WHEN - every { ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(capture(content), any(), any()) } returns success + every { AppDependencies.signalServiceMessageSender.sendSyncMessage(capture(content), any(), any()) } returns success val job = MultiDeviceDeleteSendSyncJob.createMessageDeletes(records) val result = job.run() @@ -118,7 +118,7 @@ class MultiDeviceDeleteSendSyncJobTest { val alice = messageHelper.alice.toLong() // WHEN - every { ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(capture(content), any(), any()) } returns failure + every { AppDependencies.signalServiceMessageSender.sendSyncMessage(capture(content), any(), any()) } returns failure val job = MultiDeviceDeleteSendSyncJob( messages = listOf(DeleteSyncJobData.AddressableMessage(alice, 1, alice)), diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/AliceClient.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/AliceClient.kt index 04d09283de..be4aa6ed4a 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/AliceClient.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/AliceClient.kt @@ -4,7 +4,7 @@ import org.signal.core.util.logging.Log import org.signal.libsignal.protocol.ecc.ECKeyPair import org.signal.libsignal.zkgroup.profiles.ProfileKey import org.thoughtcrime.securesms.crypto.ProfileKeyUtil -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.messages.protocol.BufferedProtocolStore import org.thoughtcrime.securesms.recipients.Recipient @@ -37,7 +37,7 @@ class AliceClient(val serviceId: ServiceId, val e164: String, val trustRoot: ECK fun process(envelope: Envelope, serverDeliveredTimestamp: Long) { val start = System.currentTimeMillis() val bufferedStore = BufferedProtocolStore.create() - ApplicationDependencies.getIncomingMessageObserver() + AppDependencies.incomingMessageObserver .processEnvelope(bufferedStore, envelope, serverDeliveredTimestamp) ?.mapNotNull { it.run() } ?.forEach { it.enqueue() } @@ -48,7 +48,7 @@ class AliceClient(val serviceId: ServiceId, val e164: String, val trustRoot: ECK } fun encrypt(now: Long, destination: Recipient): Envelope { - return ApplicationDependencies.getSignalServiceMessageSender().getEncryptedMessage( + return AppDependencies.signalServiceMessageSender.getEncryptedMessage( SignalServiceAddress(destination.requireServiceId(), destination.requireE164()), FakeClientHelpers.getTargetUnidentifiedAccess(ProfileKeyUtil.getSelfProfileKey(), ProfileKey(destination.profileKey), aliceSenderCertificate), 1, diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt index 4b5d3aa382..269a03b1c7 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/testing/SignalActivityRule.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.crypto.MasterSecretUtil import org.thoughtcrime.securesms.crypto.ProfileKeyUtil import org.thoughtcrime.securesms.database.IdentityTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.InstrumentationApplicationDependencyProvider import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.profiles.ProfileName @@ -47,7 +47,7 @@ import java.util.UUID */ class SignalActivityRule(private val othersCount: Int = 4, private val createGroup: Boolean = false) : ExternalResource() { - val application: Application = ApplicationDependencies.getApplication() + val application: Application = AppDependencies.application lateinit var context: Context private set @@ -145,7 +145,7 @@ class SignalActivityRule(private val othersCount: Int = 4, private val createGro SignalDatabase.recipients.setProfileSharing(recipientId, true) SignalDatabase.recipients.markRegistered(recipientId, aci) val otherIdentity = IdentityKeyUtil.generateIdentityKeyPair() - ApplicationDependencies.getProtocolStore().aci().saveIdentity(SignalProtocolAddress(aci.toString(), 0), otherIdentity.publicKey) + AppDependencies.protocolStore.aci().saveIdentity(SignalProtocolAddress(aci.toString(), 0), otherIdentity.publicKey) others += recipientId othersKeys += otherIdentity } @@ -158,14 +158,14 @@ class SignalActivityRule(private val othersCount: Int = 4, private val createGro } fun changeIdentityKey(recipient: Recipient, identityKey: IdentityKey = IdentityKeyUtil.generateIdentityKeyPair().publicKey) { - ApplicationDependencies.getProtocolStore().aci().saveIdentity(SignalProtocolAddress(recipient.requireServiceId().toString(), 0), identityKey) + AppDependencies.protocolStore.aci().saveIdentity(SignalProtocolAddress(recipient.requireServiceId().toString(), 0), identityKey) } fun getIdentity(recipient: Recipient): IdentityKey { - return ApplicationDependencies.getProtocolStore().aci().identities().getIdentity(SignalProtocolAddress(recipient.requireServiceId().toString(), 0)) + return AppDependencies.protocolStore.aci().identities().getIdentity(SignalProtocolAddress(recipient.requireServiceId().toString(), 0)) } fun setVerified(recipient: Recipient, status: IdentityTable.VerifiedStatus) { - ApplicationDependencies.getProtocolStore().aci().identities().setVerified(recipient.id, getIdentity(recipient), IdentityTable.VerifiedStatus.VERIFIED) + AppDependencies.protocolStore.aci().identities().setVerified(recipient.id, getIdentity(recipient), IdentityTable.VerifiedStatus.VERIFIED) } } diff --git a/app/src/benchmark/java/org/signal/benchmark/DummyAccountManagerFactory.kt b/app/src/benchmark/java/org/signal/benchmark/DummyAccountManagerFactory.kt index 27f51b9f03..3f2ae149cd 100644 --- a/app/src/benchmark/java/org/signal/benchmark/DummyAccountManagerFactory.kt +++ b/app/src/benchmark/java/org/signal/benchmark/DummyAccountManagerFactory.kt @@ -2,7 +2,7 @@ package org.signal.benchmark import android.content.Context import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.push.AccountManagerFactory import org.thoughtcrime.securesms.util.FeatureFlags import org.whispersystems.signalservice.api.SignalServiceAccountManager @@ -16,7 +16,7 @@ import java.util.Optional class DummyAccountManagerFactory : AccountManagerFactory() { override fun createAuthenticated(context: Context, aci: ACI, pni: PNI, number: String, deviceId: Int, password: String): SignalServiceAccountManager { return DummyAccountManager( - ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(number), + AppDependencies.signalServiceNetworkAccess.getConfiguration(number), aci, pni, number, diff --git a/app/src/benchmark/java/org/signal/benchmark/setup/TestUsers.kt b/app/src/benchmark/java/org/signal/benchmark/setup/TestUsers.kt index 829dbd0c86..39a88c389c 100644 --- a/app/src/benchmark/java/org/signal/benchmark/setup/TestUsers.kt +++ b/app/src/benchmark/java/org/signal/benchmark/setup/TestUsers.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.crypto.MasterSecretUtil import org.thoughtcrime.securesms.crypto.ProfileKeyUtil import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.net.DeviceTransferBlockingInterceptor import org.thoughtcrime.securesms.profiles.ProfileName @@ -35,7 +35,7 @@ object TestUsers { private var generatedOthers: Int = 0 fun setupSelf(): Recipient { - val application: Application = ApplicationDependencies.getApplication() + val application: Application = AppDependencies.application DeviceTransferBlockingInterceptor.getInstance().blockNetwork() PreferenceManager.getDefaultSharedPreferences(application).edit().putBoolean("pref_prompted_push_registration", true).commit() @@ -104,7 +104,7 @@ object TestUsers { SignalDatabase.recipients.setProfileSharing(recipientId, true) SignalDatabase.recipients.markRegistered(recipientId, aci) val otherIdentity = IdentityKeyUtil.generateIdentityKeyPair() - ApplicationDependencies.getProtocolStore().aci().saveIdentity(SignalProtocolAddress(aci.toString(), 0), otherIdentity.publicKey) + AppDependencies.protocolStore.aci().saveIdentity(SignalProtocolAddress(aci.toString(), 0), otherIdentity.publicKey) others += recipientId } diff --git a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/ConversationElementGenerator.kt b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/ConversationElementGenerator.kt index 1b358b84cd..47997cc23b 100644 --- a/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/ConversationElementGenerator.kt +++ b/app/src/debug/java/org/thoughtcrime/securesms/components/settings/app/internal/conversation/test/ConversationElementGenerator.kt @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.conversation.v2.data.OutgoingTextOnly import org.thoughtcrime.securesms.database.MessageTypes import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.StoryType -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mms.SlideDeck import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel @@ -123,7 +123,7 @@ class ConversationElementGenerator { ) val conversationMessage = ConversationMessageFactory.createWithUnresolvedData( - ApplicationDependencies.getApplication(), + AppDependencies.application, record, Recipient.UNKNOWN ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/AppInitialization.java b/app/src/main/java/org/thoughtcrime/securesms/AppInitialization.java index 5daf39db0d..14a2c116e3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/AppInitialization.java +++ b/app/src/main/java/org/thoughtcrime/securesms/AppInitialization.java @@ -5,7 +5,7 @@ import android.content.Context; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob; import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob; @@ -37,29 +37,29 @@ public final class AppInitialization { TextSecurePreferences.setReadReceiptsEnabled(context, true); TextSecurePreferences.setTypingIndicatorsEnabled(context, true); TextSecurePreferences.setHasSeenWelcomeScreen(context, false); - ApplicationDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); + AppDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); SignalStore.onFirstEverAppLaunch(); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); } public static void onPostBackupRestore(@NonNull Context context) { Log.i(TAG, "onPostBackupRestore()"); - ApplicationDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); + AppDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); SignalStore.onPostBackupRestore(); SignalStore.onFirstEverAppLaunch(); SignalStore.onboarding().clearAll(); TextSecurePreferences.onPostBackupRestore(context); TextSecurePreferences.setPasswordDisabled(context, true); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); EmojiSearchIndexDownloadJob.scheduleImmediately(); } @@ -74,12 +74,12 @@ public final class AppInitialization { TextSecurePreferences.setLastVersionCode(context, Util.getCanonicalVersionCode()); TextSecurePreferences.setHasSeenStickerIntroTooltip(context, true); TextSecurePreferences.setPasswordDisabled(context, true); - ApplicationDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); + AppDependencies.getMegaphoneRepository().onFirstEverAppLaunch(); SignalStore.onFirstEverAppLaunch(); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.ZOZO.getPackId(), BlessedPacks.ZOZO.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.BANDIT.getPackId(), BlessedPacks.BANDIT.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_HANDS.getPackId(), BlessedPacks.SWOON_HANDS.getPackKey())); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forReference(BlessedPacks.SWOON_FACES.getPackId(), BlessedPacks.SWOON_FACES.getPackKey())); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index c2573e8d1f..8af310166e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -47,7 +47,7 @@ import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider; import org.thoughtcrime.securesms.database.LogDatabase; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.SqlCipherLibraryLoader; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.dependencies.ApplicationDependencyProvider; import org.thoughtcrime.securesms.emoji.EmojiSource; import org.thoughtcrime.securesms.emoji.JumboEmoji; @@ -168,7 +168,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr .addBlocking("scrubber", () -> Scrubber.setIdentifierHmacKeyProvider(() -> SignalStore.svr().getOrCreateMasterKey().deriveLoggingKey())) .addBlocking("first-launch", this::initializeFirstEverAppLaunch) .addBlocking("app-migrations", this::initializeApplicationMigrations) - .addBlocking("lifecycle-observer", () -> ApplicationDependencies.getAppForegroundObserver().addListener(this)) + .addBlocking("lifecycle-observer", () -> AppDependencies.getAppForegroundObserver().addListener(this)) .addBlocking("message-retriever", this::initializeMessageRetrieval) .addBlocking("dynamic-theme", () -> DynamicTheme.setDefaultDayNightMode(this)) .addBlocking("proxy-init", () -> { @@ -196,10 +196,10 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr .addNonBlocking(StorageSyncHelper::scheduleRoutineSync) .addNonBlocking(this::beginJobLoop) .addNonBlocking(EmojiSource::refresh) - .addNonBlocking(() -> ApplicationDependencies.getGiphyMp4Cache().onAppStart(this)) + .addNonBlocking(() -> AppDependencies.getGiphyMp4Cache().onAppStart(this)) .addNonBlocking(this::ensureProfileUploaded) - .addNonBlocking(() -> ApplicationDependencies.getExpireStoriesManager().scheduleIfNecessary()) - .addPostRender(() -> ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary()) + .addNonBlocking(() -> AppDependencies.getExpireStoriesManager().scheduleIfNecessary()) + .addPostRender(() -> AppDependencies.getDeletedCallEventManager().scheduleIfNecessary()) .addPostRender(() -> RateLimitUtil.retryAllRateLimitedMessages(this)) .addPostRender(this::initializeExpiringMessageManager) .addPostRender(this::initializeTrimThreadsByDateManager) @@ -210,13 +210,13 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr .addPostRender(() -> JumboEmoji.updateCurrentVersion(this)) .addPostRender(RetrieveRemoteAnnouncementsJob::enqueue) .addPostRender(() -> AndroidTelecomUtil.registerPhoneAccount()) - .addPostRender(() -> ApplicationDependencies.getJobManager().add(new FontDownloaderJob())) + .addPostRender(() -> AppDependencies.getJobManager().add(new FontDownloaderJob())) .addPostRender(CheckServiceReachabilityJob::enqueueIfNecessary) .addPostRender(GroupV2UpdateSelfProfileKeyJob::enqueueForGroupsIfNecessary) .addPostRender(StoryOnboardingDownloadJob.Companion::enqueueIfNeeded) .addPostRender(PnpInitializeDevicesJob::enqueueIfNecessary) - .addPostRender(() -> ApplicationDependencies.getExoPlayerPool().getPoolStats().getMaxUnreserved()) - .addPostRender(() -> ApplicationDependencies.getRecipientCache().warmUp()) + .addPostRender(() -> AppDependencies.getExoPlayerPool().getPoolStats().getMaxUnreserved()) + .addPostRender(() -> AppDependencies.getRecipientCache().warmUp()) .addPostRender(AccountConsistencyWorkerJob::enqueueIfNecessary) .addPostRender(GroupRingCleanupJob::enqueue) .addPostRender(LinkedDeviceInactiveCheckJob::enqueueIfNecessary) @@ -233,11 +233,11 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr long startTime = System.currentTimeMillis(); Log.i(TAG, "App is now visible."); - ApplicationDependencies.getFrameRateTracker().start(); - ApplicationDependencies.getMegaphoneRepository().onAppForegrounded(); - ApplicationDependencies.getDeadlockDetector().start(); + AppDependencies.getFrameRateTracker().start(); + AppDependencies.getMegaphoneRepository().onAppForegrounded(); + AppDependencies.getDeadlockDetector().start(); InAppPaymentKeepAliveJob.enqueueAndTrackTimeIfNecessary(); - ApplicationDependencies.getJobManager().add(new InAppPaymentAuthCheckJob()); + AppDependencies.getJobManager().add(new InAppPaymentAuthCheckJob()); FcmFetchManager.onForeground(this); startAnrDetector(); @@ -246,7 +246,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr RetrieveProfileJob.enqueueRoutineFetchIfNecessary(); executePendingContactSync(); KeyCachingService.onAppForegrounded(this); - ApplicationDependencies.getShakeToReport().enable(); + AppDependencies.getShakeToReport().enable(); checkBuildExpiration(); MemoryTracker.start(); @@ -268,10 +268,10 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr public void onBackground() { Log.i(TAG, "App is no longer visible."); KeyCachingService.onAppBackgrounded(this); - ApplicationDependencies.getMessageNotifier().clearVisibleThread(); - ApplicationDependencies.getFrameRateTracker().stop(); - ApplicationDependencies.getShakeToReport().disable(); - ApplicationDependencies.getDeadlockDetector().stop(); + AppDependencies.getMessageNotifier().clearVisibleThread(); + AppDependencies.getFrameRateTracker().stop(); + AppDependencies.getShakeToReport().disable(); + AppDependencies.getDeadlockDetector().stop(); MemoryTracker.stop(); AnrDetector.stop(); } @@ -354,16 +354,16 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr } private void initializeApplicationMigrations() { - ApplicationMigrations.onApplicationCreate(this, ApplicationDependencies.getJobManager()); + ApplicationMigrations.onApplicationCreate(this, AppDependencies.getJobManager()); } public void initializeMessageRetrieval() { - ApplicationDependencies.getIncomingMessageObserver(); + AppDependencies.getIncomingMessageObserver(); } @VisibleForTesting void initializeAppDependencies() { - ApplicationDependencies.init(this, new ApplicationDependencyProvider(this)); + AppDependencies.init(this, new ApplicationDependencyProvider(this)); } private void initializeFirstEverAppLaunch() { @@ -389,31 +389,31 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr long nextSetTime = SignalStore.account().getFcmTokenLastSetTime() + TimeUnit.HOURS.toMillis(6); if (SignalStore.account().getFcmToken() == null || nextSetTime <= System.currentTimeMillis()) { - ApplicationDependencies.getJobManager().add(new FcmRefreshJob()); + AppDependencies.getJobManager().add(new FcmRefreshJob()); } } } private void initializeExpiringMessageManager() { - ApplicationDependencies.getExpiringMessageManager().checkSchedule(); + AppDependencies.getExpiringMessageManager().checkSchedule(); } private void initializeRevealableMessageManager() { - ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary(); + AppDependencies.getViewOnceMessageManager().scheduleIfNecessary(); } private void initializePendingRetryReceiptManager() { - ApplicationDependencies.getPendingRetryReceiptManager().scheduleIfNecessary(); + AppDependencies.getPendingRetryReceiptManager().scheduleIfNecessary(); } private void initializeScheduledMessageManager() { - ApplicationDependencies.getScheduledMessageManager().scheduleIfNecessary(); + AppDependencies.getScheduledMessageManager().scheduleIfNecessary(); } private void initializeTrimThreadsByDateManager() { KeepMessagesDuration keepMessagesDuration = SignalStore.settings().getKeepMessagesDuration(); if (keepMessagesDuration != KeepMessagesDuration.FOREVER) { - ApplicationDependencies.getTrimThreadsByDateManager().scheduleIfNecessary(); + AppDependencies.getTrimThreadsByDateManager().scheduleIfNecessary(); } } @@ -448,7 +448,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr @WorkerThread private void initializeCircumvention() { - if (ApplicationDependencies.getSignalServiceNetworkAccess().isCensored()) { + if (AppDependencies.getSignalServiceNetworkAccess().isCensored()) { try { ProviderInstaller.installIfNeeded(ApplicationContext.this); } catch (Throwable t) { @@ -460,19 +460,19 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr private void ensureProfileUploaded() { if (SignalStore.account().isRegistered() && !SignalStore.registrationValues().hasUploadedProfile() && !Recipient.self().getProfileName().isEmpty()) { Log.w(TAG, "User has a profile, but has not uploaded one. Uploading now."); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); } } private void executePendingContactSync() { if (TextSecurePreferences.needsFullContactSync(this)) { - ApplicationDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true)); + AppDependencies.getJobManager().add(new MultiDeviceContactUpdateJob(true)); } } @VisibleForTesting protected void beginJobLoop() { - ApplicationDependencies.getJobManager().beginJobLoop(); + AppDependencies.getJobManager().beginJobLoop(); } @WorkerThread diff --git a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java index 9598fb1dbc..aea7d4c298 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BaseActivity.java @@ -14,7 +14,7 @@ import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityOptionsCompat; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.AppStartup; import org.thoughtcrime.securesms.util.ConfigurationUtil; import org.thoughtcrime.securesms.util.WindowUtil; @@ -47,7 +47,7 @@ public abstract class BaseActivity extends AppCompatActivity { @Override protected void onStart() { logEvent("onStart()"); - ApplicationDependencies.getShakeToReport().registerActivity(this); + AppDependencies.getShakeToReport().registerActivity(this); super.onStart(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java index 575b665961..c003b968e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java @@ -28,7 +28,7 @@ import org.signal.libsignal.protocol.ecc.ECPublicKey; import org.signal.libsignal.zkgroup.profiles.ProfileKey; import org.signal.qr.kitkat.ScanListener; import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.LinkedDeviceInactiveCheckJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.permissions.Permissions; @@ -191,7 +191,7 @@ public class DeviceActivity extends PassphraseRequiredActivity try { Context context = DeviceActivity.this; - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); String verificationCode = accountManager.getNewDeviceVerificationCode(); String ephemeralId = uri.getQueryParameter("uuid"); String publicKeyEncoded = uri.getQueryParameter("pub_key"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java index 87e9e40faf..1012af6271 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java @@ -25,7 +25,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.loaders.DeviceListLoader; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.devicelist.Device; import org.thoughtcrime.securesms.jobs.LinkedDeviceInactiveCheckJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -60,7 +60,7 @@ public class DeviceListFragment extends ListFragment @Override public void onAttach(@NonNull Context context) { super.onAttach(context); - this.accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + this.accountManager = AppDependencies.getSignalServiceAccountManager(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActivity.java b/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActivity.java index b6f2544a70..3ed965f176 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/PassphraseRequiredActivity.java @@ -17,9 +17,8 @@ import org.signal.core.util.tracing.Tracer; import org.signal.devicetransfer.TransferStatus; import org.thoughtcrime.securesms.components.settings.app.changenumber.ChangeNumberLockActivity; import org.thoughtcrime.securesms.crypto.MasterSecretUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.devicetransfer.olddevice.OldDeviceTransferActivity; -import org.thoughtcrime.securesms.keyvalue.InternalValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.lock.v2.CreateSvrPinActivity; import org.thoughtcrime.securesms.migrations.ApplicationMigrationActivity; @@ -64,7 +63,7 @@ public abstract class PassphraseRequiredActivity extends BaseActivity implements protected final void onCreate(Bundle savedInstanceState) { Tracer.getInstance().start(Log.tag(getClass()) + "#onCreate()"); AppStartup.getInstance().onCriticalRenderEventStart(); - this.networkAccess = ApplicationDependencies.getSignalServiceNetworkAccess(); + this.networkAccess = AppDependencies.getSignalServiceNetworkAccess(); onPreCreate(); final boolean locked = KeyCachingService.isLocked(this); @@ -93,7 +92,7 @@ public abstract class PassphraseRequiredActivity extends BaseActivity implements @Override public void onMasterSecretCleared() { Log.d(TAG, "onMasterSecretCleared()"); - if (ApplicationDependencies.getAppForegroundObserver().isForegrounded()) routeApplicationState(true); + if (AppDependencies.getAppForegroundObserver().isForegrounded()) routeApplicationState(true); else finish(); } @@ -206,7 +205,7 @@ public abstract class PassphraseRequiredActivity extends BaseActivity implements private Intent getPromptPassphraseIntent() { Intent intent = getRoutedIntent(PassphrasePromptActivity.class, getIntent()); - intent.putExtra(PassphrasePromptActivity.FROM_FOREGROUND, ApplicationDependencies.getAppForegroundObserver().isForegrounded()); + intent.putExtra(PassphrasePromptActivity.FROM_FOREGROUND, AppDependencies.getAppForegroundObserver().isForegrounded()); return intent; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index 04d0b34f29..13bc444518 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -81,7 +81,7 @@ import org.thoughtcrime.securesms.components.webrtc.controls.ControlsAndInfoView import org.thoughtcrime.securesms.components.webrtc.participantslist.CallParticipantsListDialog; import org.thoughtcrime.securesms.components.webrtc.requests.CallLinkIncomingRequestSheet; import org.thoughtcrime.securesms.conversation.ui.error.SafetyNumberChangeDialog; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.WebRtcViewModel; import org.thoughtcrime.securesms.messagerequests.CalleeMustAcceptMessageRequestActivity; import org.thoughtcrime.securesms.permissions.Permissions; @@ -258,10 +258,10 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan protected void onStart() { super.onStart(); - ephemeralStateDisposable = ApplicationDependencies.getSignalCallManager() - .ephemeralStates() - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(viewModel::updateFromEphemeralState); + ephemeralStateDisposable = AppDependencies.getSignalCallManager() + .ephemeralStates() + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(viewModel::updateFromEphemeralState); } @Override @@ -327,15 +327,15 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan requestNewSizesThrottle.clear(); } - ApplicationDependencies.getSignalCallManager().setEnableVideo(false); + AppDependencies.getSignalCallManager().setEnableVideo(false); if (!viewModel.isCallStarting()) { CallParticipantsState state = viewModel.getCallParticipantsStateSnapshot(); if (state != null) { if (state.getCallState().isPreJoinOrNetworkUnavailable()) { - ApplicationDependencies.getSignalCallManager().cancelPreJoin(); + AppDependencies.getSignalCallManager().cancelPreJoin(); } else if (state.getCallState().getInOngoingCall() && isInPipMode()) { - ApplicationDependencies.getSignalCallManager().relaunchPipOnForeground(); + AppDependencies.getSignalCallManager().relaunchPipOnForeground(); } } } @@ -440,7 +440,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.WebRtcCallActivity__approve_all, (dialog, which) -> { for (RecipientId id : recipientIds) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(id); + AppDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(id); } }) .show(); @@ -452,7 +452,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.WebRtcCallActivity__deny_all, (dialog, which) -> { for (RecipientId id : recipientIds) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(id); + AppDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(id); } }) .show(); @@ -520,12 +520,12 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan CallParticipantsState state = viewModel.getCallParticipantsStateSnapshot(); if (state != null) { if (state.needsNewRequestSizes()) { - requestNewSizesThrottle.publish(() -> ApplicationDependencies.getSignalCallManager().updateRenderedResolutions()); + requestNewSizesThrottle.publish(() -> AppDependencies.getSignalCallManager().updateRenderedResolutions()); } } }); - viewModel.getOrientationAndLandscapeEnabled().observe(this, pair -> ApplicationDependencies.getSignalCallManager().orientationChanged(pair.second, pair.first.getDegrees())); + viewModel.getOrientationAndLandscapeEnabled().observe(this, pair -> AppDependencies.getSignalCallManager().orientationChanged(pair.second, pair.first.getDegrees())); viewModel.getControlsRotation().observe(this, callScreen::rotateControls); addOnPictureInPictureModeChangedListener(info -> { @@ -651,42 +651,42 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan } private void handleSetAudioHandset() { - ApplicationDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.EARPIECE)); + AppDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.EARPIECE)); } private void handleSetAudioSpeaker() { - ApplicationDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.SPEAKER_PHONE)); + AppDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.SPEAKER_PHONE)); } private void handleSetAudioBluetooth() { - ApplicationDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.BLUETOOTH)); + AppDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.BLUETOOTH)); } private void handleSetAudioWiredHeadset() { - ApplicationDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.WIRED_HEADSET)); + AppDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(SignalAudioManager.AudioDevice.WIRED_HEADSET)); } private void handleSetMuteAudio(boolean enabled) { - ApplicationDependencies.getSignalCallManager().setMuteAudio(enabled); + AppDependencies.getSignalCallManager().setMuteAudio(enabled); } private void handleSetMuteVideo(boolean muted) { Recipient recipient = viewModel.getRecipient().get(); if (!recipient.equals(Recipient.UNKNOWN)) { - Runnable onGranted = () -> ApplicationDependencies.getSignalCallManager().setEnableVideo(!muted); + Runnable onGranted = () -> AppDependencies.getSignalCallManager().setEnableVideo(!muted); askCameraPermissions(onGranted); } } private void handleFlipCamera() { - ApplicationDependencies.getSignalCallManager().flipCamera(); + AppDependencies.getSignalCallManager().flipCamera(); } private void handleAnswerWithAudio() { Runnable onGranted = () -> { callScreen.setStatus(getString(R.string.RedPhone_answering)); - ApplicationDependencies.getSignalCallManager().acceptCall(false); + AppDependencies.getSignalCallManager().acceptCall(false); }; askAudioPermissions(onGranted); } @@ -694,7 +694,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan private void handleAnswerWithVideo() { Runnable onGranted = () -> { callScreen.setStatus(getString(R.string.RedPhone_answering)); - ApplicationDependencies.getSignalCallManager().acceptCall(true); + AppDependencies.getSignalCallManager().acceptCall(true); handleSetMuteVideo(false); }; if (!hasCameraPermission() &!hasAudioPermission()) { @@ -710,7 +710,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan Recipient recipient = viewModel.getRecipient().get(); if (!recipient.equals(Recipient.UNKNOWN)) { - ApplicationDependencies.getSignalCallManager().denyCall(); + AppDependencies.getSignalCallManager().denyCall(); callScreen.setRecipient(recipient); callScreen.setStatus(getString(R.string.RedPhone_ending_call)); @@ -720,7 +720,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan private void handleEndCall() { Log.i(TAG, "Hangup pressed, handling termination now..."); - ApplicationDependencies.getSignalCallManager().localHangup(); + AppDependencies.getSignalCallManager().localHangup(); } private void handleOutgoingCall(@NonNull WebRtcViewModel event) { @@ -818,13 +818,13 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan } private void updateGroupMembersForGroupCall() { - ApplicationDependencies.getSignalCallManager().requestUpdateGroupMembers(); + AppDependencies.getSignalCallManager().requestUpdateGroupMembers(); } public void handleGroupMemberCountChange(int count) { boolean canRing = count <= FeatureFlags.maxGroupCallRingSize(); callScreen.enableRingGroup(canRing); - ApplicationDependencies.getSignalCallManager().setRingGroup(canRing); + AppDependencies.getSignalCallManager().setRingGroup(canRing); } private void updateSpeakerHint(boolean showSpeakerHint) { @@ -848,7 +848,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan } if (state.getGroupCallState().isConnected()) { - ApplicationDependencies.getSignalCallManager().groupApproveSafetyChange(changedRecipients); + AppDependencies.getSignalCallManager().groupApproveSafetyChange(changedRecipients); } else { viewModel.startCall(state.getLocalParticipant().isVideoEnabled()); } @@ -862,7 +862,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan CallParticipantsState state = viewModel.getCallParticipantsStateSnapshot(); if (state != null && state.getGroupCallState().isNotIdle()) { if (state.getCallState().isPreJoinOrNetworkUnavailable()) { - ApplicationDependencies.getSignalCallManager().cancelPreJoin(); + AppDependencies.getSignalCallManager().cancelPreJoin(); finish(); } else { handleEndCall(); @@ -982,7 +982,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan callScreen.setRingGroup(event.shouldRingGroup()); if (event.shouldRingGroup() && event.areRemoteDevicesInCall()) { - ApplicationDependencies.getSignalCallManager().setRingGroup(false); + AppDependencies.getSignalCallManager().setRingGroup(false); } } } @@ -1070,9 +1070,9 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan enableVideoIfAvailable = isVideoCall; if (isVideoCall) { - ApplicationDependencies.getSignalCallManager().startOutgoingVideoCall(viewModel.getRecipient().get()); + AppDependencies.getSignalCallManager().startOutgoingVideoCall(viewModel.getRecipient().get()); } else { - ApplicationDependencies.getSignalCallManager().startOutgoingAudioCall(viewModel.getRecipient().get()); + AppDependencies.getSignalCallManager().startOutgoingAudioCall(viewModel.getRecipient().get()); } MessageSender.onMessageSent(); @@ -1083,7 +1083,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void onReactWithAnyEmojiSelected(@NonNull String emoji) { - ApplicationDependencies.getSignalCallManager().react(emoji); + AppDependencies.getSignalCallManager().react(emoji); callOverflowPopupWindow.dismiss(); } @@ -1137,7 +1137,7 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void onAudioOutputChanged31(@NonNull WebRtcAudioDevice audioOutput) { maybeDisplaySpeakerphonePopup(audioOutput.getWebRtcAudioOutput()); - ApplicationDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(audioOutput.getDeviceId())); + AppDependencies.getSignalCallManager().selectAudioDevice(new SignalAudioManager.ChosenAudioDeviceIdentifier(audioOutput.getDeviceId())); } @Override @@ -1203,11 +1203,11 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void onRingGroupChanged(boolean ringGroup, boolean ringingAllowed) { if (ringingAllowed) { - ApplicationDependencies.getSignalCallManager().setRingGroup(ringGroup); + AppDependencies.getSignalCallManager().setRingGroup(ringGroup); callStateUpdatePopupWindow.onCallStateUpdate(ringGroup ? CallStateUpdatePopupWindow.CallStateUpdate.RINGING_ON : CallStateUpdatePopupWindow.CallStateUpdate.RINGING_OFF); } else { - ApplicationDependencies.getSignalCallManager().setRingGroup(false); + AppDependencies.getSignalCallManager().setRingGroup(false); callStateUpdatePopupWindow.onCallStateUpdate(CallStateUpdatePopupWindow.CallStateUpdate.RINGING_DISABLED); } } @@ -1236,12 +1236,12 @@ public class WebRtcCallActivity extends BaseActivity implements SafetyNumberChan @Override public void onAllowPendingRecipient(@NonNull Recipient pendingRecipient) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(pendingRecipient.getId()); + AppDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(pendingRecipient.getId()); } @Override public void onRejectPendingRecipient(@NonNull Recipient pendingRecipient) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(pendingRecipient.getId()); + AppDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(pendingRecipient.getId()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateInstaller.kt b/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateInstaller.kt index 8d1079e1e2..08c82adcab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateInstaller.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateInstaller.kt @@ -14,7 +14,7 @@ import org.signal.core.util.PendingIntentFlags import org.signal.core.util.StreamUtil import org.signal.core.util.getDownloadManager import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ApkUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.Environment @@ -41,7 +41,7 @@ object ApkUpdateInstaller { if (downloadId != SignalStore.apkUpdate().downloadId) { Log.w(TAG, "DownloadId doesn't match the one we're waiting for (current: $downloadId, expected: ${SignalStore.apkUpdate().downloadId})! We likely have newer data. Ignoring.") ApkUpdateNotifications.dismissInstallPrompt(context) - ApplicationDependencies.getJobManager().add(ApkUpdateJob()) + AppDependencies.jobManager.add(ApkUpdateJob()) return } @@ -61,7 +61,7 @@ object ApkUpdateInstaller { } if (!userInitiated && !shouldAutoUpdate()) { - Log.w(TAG, "Not user-initiated and not eligible for auto-update. Prompting. (API=${Build.VERSION.SDK_INT}, Foreground=${ApplicationDependencies.getAppForegroundObserver().isForegrounded}, AutoUpdate=${SignalStore.apkUpdate().autoUpdate})") + Log.w(TAG, "Not user-initiated and not eligible for auto-update. Prompting. (API=${Build.VERSION.SDK_INT}, Foreground=${AppDependencies.appForegroundObserver.isForegrounded}, AutoUpdate=${SignalStore.apkUpdate().autoUpdate})") ApkUpdateNotifications.showInstallPrompt(context, downloadId) return } @@ -145,6 +145,6 @@ object ApkUpdateInstaller { private fun shouldAutoUpdate(): Boolean { // TODO Auto-updates temporarily restricted to nightlies. Once we have designs for allowing users to opt-out of auto-updates, we can re-enable this - return Environment.IS_NIGHTLY && Build.VERSION.SDK_INT >= 31 && SignalStore.apkUpdate().autoUpdate && !ApplicationDependencies.getAppForegroundObserver().isForegrounded + return Environment.IS_NIGHTLY && Build.VERSION.SDK_INT >= 31 && SignalStore.apkUpdate().autoUpdate && !AppDependencies.appForegroundObserver.isForegrounded } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateRefreshListener.java b/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateRefreshListener.java index ff2016dcc3..c2ad5f059d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateRefreshListener.java +++ b/app/src/main/java/org/thoughtcrime/securesms/apkupdate/ApkUpdateRefreshListener.java @@ -10,7 +10,7 @@ import android.content.Context; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.ApkUpdateJob; import org.thoughtcrime.securesms.service.PersistentAlarmManagerListener; import org.thoughtcrime.securesms.util.Environment; @@ -35,7 +35,7 @@ public class ApkUpdateRefreshListener extends PersistentAlarmManagerListener { if (scheduledTime != 0 && BuildConfig.MANAGES_APP_UPDATES) { Log.i(TAG, "Queueing APK update job..."); - ApplicationDependencies.getJobManager().add(new ApkUpdateJob()); + AppDependencies.getJobManager().add(new ApkUpdateJob()); } long newTime = System.currentTimeMillis() + INTERVAL; diff --git a/app/src/main/java/org/thoughtcrime/securesms/audio/BluetoothVoiceNoteUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/audio/BluetoothVoiceNoteUtil.kt index 61d681b52b..0497847058 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/audio/BluetoothVoiceNoteUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/audio/BluetoothVoiceNoteUtil.kt @@ -14,7 +14,7 @@ import androidx.annotation.RequiresApi import org.signal.core.util.ThreadUtil import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.webrtc.audio.SignalAudioHandler internal const val TAG = "BluetoothVoiceNoteUtil" @@ -34,7 +34,7 @@ sealed interface BluetoothVoiceNoteUtil { @RequiresApi(31) private class BluetoothVoiceNoteUtil31(val listener: (Boolean) -> Unit) : BluetoothVoiceNoteUtil { override fun connectBluetoothScoConnection() { - val audioManager = ApplicationDependencies.getAndroidCallAudioManager() + val audioManager = AppDependencies.androidCallAudioManager val device: AudioDeviceInfo? = audioManager.connectedBluetoothDevice if (device != null) { val result: Boolean = audioManager.setCommunicationDevice(device) @@ -53,7 +53,7 @@ private class BluetoothVoiceNoteUtil31(val listener: (Boolean) -> Unit) : Blueto override fun disconnectBluetoothScoConnection() { Log.d(TAG, "Clearing call manager communication device.") - ApplicationDependencies.getAndroidCallAudioManager().clearCommunicationDevice() + AppDependencies.androidCallAudioManager.clearCommunicationDevice() } override fun destroy() = Unit diff --git a/app/src/main/java/org/thoughtcrime/securesms/audio/SignalBluetoothManager.kt b/app/src/main/java/org/thoughtcrime/securesms/audio/SignalBluetoothManager.kt index c03aba182e..aeda6a6f03 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/audio/SignalBluetoothManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/audio/SignalBluetoothManager.kt @@ -16,7 +16,7 @@ import android.content.Intent import android.content.IntentFilter import android.media.AudioManager import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.safeUnregisterReceiver import org.thoughtcrime.securesms.webrtc.audio.SignalAudioHandler import java.util.concurrent.TimeUnit @@ -49,7 +49,7 @@ class SignalBluetoothManager( private var bluetoothHeadset: BluetoothHeadset? = null private var scoConnectionAttempts = 0 - private val androidAudioManager = ApplicationDependencies.getAndroidCallAudioManager() + private val androidAudioManager = AppDependencies.androidCallAudioManager private val bluetoothListener = BluetoothServiceListener() private var bluetoothReceiver: BluetoothHeadsetBroadcastReceiver? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java index 1b3d40bf59..5b5f879ccd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java @@ -45,7 +45,7 @@ import org.thoughtcrime.securesms.database.SessionTable; import org.thoughtcrime.securesms.database.SignedPreKeyTable; import org.thoughtcrime.securesms.database.StickerTable; import org.thoughtcrime.securesms.database.model.AvatarPickerDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.profiles.AvatarHelper; @@ -235,7 +235,7 @@ public class FullBackupExporter extends FullBackupBase { count += TextSecurePreferences.getPreferencesToSaveToBackupCount(context); - KeyValueDataSet dataSet = KeyValueDatabase.getInstance(ApplicationDependencies.getApplication()) + KeyValueDataSet dataSet = KeyValueDatabase.getInstance(AppDependencies.getApplication()) .getDataSet(); for (String key : SignalStore.getKeysToIncludeInBackup()) { if (dataSet.containsKey(key)) { @@ -536,7 +536,7 @@ public class FullBackupExporter extends FullBackupBase { long estimatedCount, BackupCancellationSignal cancellationSignal) throws IOException { - KeyValueDataSet dataSet = KeyValueDatabase.getInstance(ApplicationDependencies.getApplication()) + KeyValueDataSet dataSet = KeyValueDatabase.getInstance(AppDependencies.getApplication()) .getDataSet(); for (String key : keysToIncludeInBackup) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java index 0787c666f8..df8543b379 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java @@ -31,13 +31,12 @@ import org.thoughtcrime.securesms.database.EmojiSearchTable; import org.thoughtcrime.securesms.database.KeyValueDatabase; import org.thoughtcrime.securesms.database.SearchTable; import org.thoughtcrime.securesms.database.StickerTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.BackupUtil; -import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.Util; import java.io.ByteArrayOutputStream; @@ -99,7 +98,7 @@ public class FullBackupImporter extends FullBackupBase { { int count = 0; - SQLiteDatabase keyValueDatabase = KeyValueDatabase.getInstance(ApplicationDependencies.getApplication()).getSqlCipherDatabase(); + SQLiteDatabase keyValueDatabase = KeyValueDatabase.getInstance(AppDependencies.getApplication()).getSqlCipherDatabase(); db.setForeignKeyConstraintsEnabled(false); db.beginTransaction(); @@ -288,7 +287,7 @@ public class FullBackupImporter extends FullBackupBase { return; } - KeyValueDatabase.getInstance(ApplicationDependencies.getApplication()).writeDataSet(dataSet, Collections.emptyList()); + KeyValueDatabase.getInstance(AppDependencies.getApplication()).writeDataSet(dataSet, Collections.emptyList()); } @SuppressLint("ApplySharedPref") diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index edf60cdb0b..ea4eab0aaa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -19,7 +19,6 @@ import org.thoughtcrime.securesms.attachments.Attachment import org.thoughtcrime.securesms.attachments.AttachmentId import org.thoughtcrime.securesms.attachments.Cdn import org.thoughtcrime.securesms.attachments.DatabaseAttachment -import org.thoughtcrime.securesms.backup.v2.BackupRepository.getThumbnailMediaName import org.thoughtcrime.securesms.backup.v2.database.ChatItemImportInserter import org.thoughtcrime.securesms.backup.v2.database.clearAllDataForBackupRestore import org.thoughtcrime.securesms.backup.v2.processor.AccountDataProcessor @@ -34,7 +33,7 @@ import org.thoughtcrime.securesms.backup.v2.stream.EncryptedBackupWriter import org.thoughtcrime.securesms.backup.v2.stream.PlainTextBackupReader import org.thoughtcrime.securesms.backup.v2.stream.PlainTextBackupWriter import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -236,7 +235,7 @@ object BackupRepository { while (groups.hasNext()) { val group = groups.next() if (group.id.isV2) { - ApplicationDependencies.getJobManager().add(RequestGroupV2InfoJob(group.id as GroupId.V2)) + AppDependencies.jobManager.add(RequestGroupV2InfoJob(group.id as GroupId.V2)) } } @@ -244,7 +243,7 @@ object BackupRepository { } fun listRemoteMediaObjects(limit: Int, cursor: String? = null): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -254,7 +253,7 @@ object BackupRepository { } fun getRemoteBackupUsedSpace(): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -268,7 +267,7 @@ object BackupRepository { * Returns an object with details about the remote backup state. */ fun getRemoteBackupState(): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -295,7 +294,7 @@ object BackupRepository { * @return True if successful, otherwise false. */ fun uploadBackupFile(backupStream: InputStream, backupStreamLength: Long): Boolean { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -317,7 +316,7 @@ object BackupRepository { } fun downloadBackupFile(destination: File, listener: ProgressListener? = null): Boolean { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -327,7 +326,7 @@ object BackupRepository { .then { info -> getCdnReadCredentials(info.cdn ?: Cdn.CDN_3.cdnNumber).map { it.headers to info } } .map { pair -> val (cdnCredentials, info) = pair - val messageReceiver = ApplicationDependencies.getSignalServiceMessageReceiver() + val messageReceiver = AppDependencies.signalServiceMessageReceiver messageReceiver.retrieveBackup(info.cdn!!, cdnCredentials, "backups/${info.backupDir}/${info.backupName}", destination, listener) } is NetworkResult.Success } @@ -336,7 +335,7 @@ object BackupRepository { * Returns an object with details about the remote backup state. */ fun debugGetArchivedMediaState(): NetworkResult> { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -349,7 +348,7 @@ object BackupRepository { * Retrieves an upload spec that can be used to upload attachment media. */ fun getMediaUploadSpec(secretKey: ByteArray? = null): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -362,7 +361,7 @@ object BackupRepository { } fun archiveThumbnail(thumbnailAttachment: Attachment, parentAttachment: DatabaseAttachment): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() val request = thumbnailAttachment.toArchiveMediaRequest(parentAttachment.getThumbnailMediaName(), backupKey) @@ -377,7 +376,7 @@ object BackupRepository { } fun archiveMedia(attachment: DatabaseAttachment): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -400,7 +399,7 @@ object BackupRepository { } fun archiveMedia(databaseAttachments: List): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -440,7 +439,7 @@ object BackupRepository { } fun deleteArchivedMedia(attachments: List): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() val mediaToDelete = attachments @@ -472,7 +471,7 @@ object BackupRepository { } fun deleteAbandonedMediaObjects(mediaObjects: Collection): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() val mediaToDelete = mediaObjects @@ -500,7 +499,7 @@ object BackupRepository { } fun debugDeleteAllArchivedMedia(): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return debugGetArchivedMediaState() @@ -542,7 +541,7 @@ object BackupRepository { return NetworkResult.Success(cached) } - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -579,7 +578,7 @@ object BackupRepository { ) } - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi val backupKey = SignalStore.svr().getOrCreateMasterKey().deriveBackupKey() return initBackupAndFetchAuth(backupKey) @@ -602,7 +601,7 @@ object BackupRepository { * Should be the basis of all backup operations. */ private fun initBackupAndFetchAuth(backupKey: BackupKey): NetworkResult { - val api = ApplicationDependencies.getSignalServiceAccountManager().archiveApi + val api = AppDependencies.signalServiceAccountManager.archiveApi return if (SignalStore.backup().backupsInitialized) { getAuthCredential().runOnStatusCodeError(resetInitializedStateErrorAction) @@ -630,7 +629,7 @@ object BackupRepository { Log.w(TAG, "No credentials found for today, need to fetch new ones! This shouldn't happen under normal circumstances. We should ensure the routine fetch is running properly.") - return ApplicationDependencies.getSignalServiceAccountManager().archiveApi.getServiceCredentials(currentTime).map { result -> + return AppDependencies.signalServiceAccountManager.archiveApi.getServiceCredentials(currentTime).map { result -> SignalStore.backup().addCredentials(result.credentials.toList()) SignalStore.backup().clearCredentialsOlderThan(currentTime) SignalStore.backup().credentialsByDay.getForCurrentTime(currentTime.milliseconds)!! diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableBackupExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableBackupExtensions.kt index 6b1a110148..baf611721c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableBackupExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableBackupExtensions.kt @@ -44,13 +44,12 @@ import org.thoughtcrime.securesms.database.RecipientTable import org.thoughtcrime.securesms.database.RecipientTableCursorUtil import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.databaseprotos.RecipientExtras -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.v2.processing.GroupsV2StateProcessor import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.profiles.ProfileName -import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.storage.StorageSyncHelper import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations @@ -164,8 +163,8 @@ fun RecipientTable.clearAllDataForBackupRestore() { SqlUtil.resetAutoIncrementValue(writableDatabase, RecipientTable.TABLE_NAME) RecipientId.clearCache() - ApplicationDependencies.getRecipientCache().clear() - ApplicationDependencies.getRecipientCache().clearSelf() + AppDependencies.recipientCache.clear() + AppDependencies.recipientCache.clearSelf() } fun RecipientTable.restoreContactFromBackup(contact: Contact): RecipientId { @@ -212,7 +211,7 @@ fun RecipientTable.restoreGroupFromBackup(group: Group): RecipientId { val masterKey = GroupMasterKey(group.masterKey.toByteArray()) val groupId = GroupId.v2(masterKey) - val operations = ApplicationDependencies.getGroupsV2Operations().forGroup(GroupSecretParams.deriveFromMasterKey(masterKey)) + val operations = AppDependencies.groupsV2Operations.forGroup(GroupSecretParams.deriveFromMasterKey(masterKey)) val decryptedState = if (group.snapshot == null) { DecryptedGroup(revision = GroupsV2StateProcessor.RESTORE_PLACEHOLDER_REVISION) } else { @@ -525,6 +524,6 @@ private fun Group.StorySendMode.toGroupShowAsStoryState(): GroupTable.ShowAsStor private val Contact.formattedE164: String? get() { return e164?.let { - PhoneNumberFormatter.get(ApplicationDependencies.getApplication()).format(e164.toString()) + PhoneNumberFormatter.get(AppDependencies.application).format(e164.toString()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataProcessor.kt index 19316007e1..43253d84ed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataProcessor.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.components.settings.app.usernamelinks.Username import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode @@ -34,7 +34,7 @@ import kotlin.jvm.optionals.getOrNull object AccountDataProcessor { fun export(emitter: BackupFrameEmitter) { - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application val self = Recipient.self().fresh() val record = recipients.getRecordForSync(self.id) @@ -81,7 +81,7 @@ object AccountDataProcessor { SignalStore.account().setRegistered(true) - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application val settings = accountData.accountSettings if (settings != null) { @@ -122,7 +122,7 @@ object AccountDataProcessor { } if (accountData.avatarUrlPath.isNotEmpty()) { - ApplicationDependencies.getJobManager().add(RetrieveProfileAvatarJob(Recipient.self().fresh(), accountData.avatarUrlPath)) + AppDependencies.jobManager.add(RetrieveProfileAvatarJob(Recipient.self().fresh(), accountData.avatarUrlPath)) } if (accountData.usernameLink != null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreActivity.kt index 065af0c3ec..1ce5bccc51 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreActivity.kt @@ -37,7 +37,7 @@ import org.signal.core.ui.Dividers import org.signal.core.util.getLength import org.thoughtcrime.securesms.BaseActivity import org.thoughtcrime.securesms.MainActivity -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ProfileUploadJob import org.thoughtcrime.securesms.profiles.AvatarHelper import org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity @@ -133,7 +133,7 @@ class MessageBackupsTestRestoreActivity : BaseActivity() { if (state.importState == MessageBackupsTestRestoreViewModel.ImportState.RESTORED) { SideEffect { RegistrationUtil.maybeMarkRegistrationComplete() - ApplicationDependencies.getJobManager().add(ProfileUploadJob()) + AppDependencies.jobManager.add(ProfileUploadJob()) startActivity(MainActivity.clearTop(this)) } } @@ -152,7 +152,7 @@ class MessageBackupsTestRestoreActivity : BaseActivity() { startActivity(profile) } else { RegistrationUtil.maybeMarkRegistrationComplete() - ApplicationDependencies.getJobManager().add(ProfileUploadJob()) + AppDependencies.jobManager.add(ProfileUploadJob()) startActivity(MainActivity.clearTop(this)) } finish() diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreViewModel.kt index 9b5c6a53be..40d41b965a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTestRestoreViewModel.kt @@ -17,7 +17,7 @@ import io.reactivex.rxjava3.kotlin.subscribeBy import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.libsignal.zkgroup.profiles.ProfileKey import org.thoughtcrime.securesms.backup.v2.BackupRepository -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.BackupRestoreJob import org.thoughtcrime.securesms.jobs.BackupRestoreMediaJob import org.thoughtcrime.securesms.jobs.SyncArchivedMediaJob @@ -48,8 +48,8 @@ class MessageBackupsTestRestoreViewModel : ViewModel() { fun restore() { _state.value = _state.value.copy(importState = ImportState.IN_PROGRESS) disposables += Single.fromCallable { - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(BackupRestoreJob()) .then(SyncArchivedMediaJob()) .then(BackupRestoreMediaJob()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeRepository.kt index f797959ab6..ebf4083215 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/BadgeRepository.kt @@ -8,7 +8,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.badges.models.Badge import org.thoughtcrime.securesms.database.RecipientTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceProfileContentUpdateJob import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -61,7 +61,7 @@ class BadgeRepository(context: Context) { setVisibilityForAllBadgesSync(displayBadgesOnProfile, selfBadges) Log.d(TAG, "[setVisibilityForAllBadges] Enqueueing profile refresh...", true) - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(RefreshOwnProfileJob()) .then(MultiDeviceProfileContentUpdateJob()) .enqueue() @@ -75,7 +75,7 @@ class BadgeRepository(context: Context) { ProfileUtil.uploadProfileWithBadges(context, reOrderedBadges) Log.d(TAG, "[setFeaturedBadge] Enqueueing profile refresh...", true) - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(RefreshOwnProfileJob()) .then(MultiDeviceProfileContentUpdateJob()) .enqueue() diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowRepository.kt index 8e33521340..e86e8fec9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowRepository.kt @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.getGiftBa import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.whispersystems.signalservice.internal.push.SubscriptionsConfiguration import java.util.Currency import java.util.Locale @@ -51,7 +51,7 @@ class GiftFlowRepository { fun getGiftBadge(): Single> { return Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } @@ -62,7 +62,7 @@ class GiftFlowRepository { fun getGiftPricing(): Single> { return Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/ViewGiftRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/ViewGiftRepository.kt index 06c4238161..a6439ee08a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/ViewGiftRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/ViewGiftRepository.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.Locale /** @@ -21,8 +21,8 @@ class ViewGiftRepository { val presentation = ReceiptCredentialPresentation(giftBadge.redemptionToken.toByteArray()) return Single .fromCallable { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } @@ -45,9 +45,9 @@ class ViewGiftRepository { } } - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageObserver) + AppDependencies.databaseObserver.registerMessageUpdateObserver(messageObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageObserver) + AppDependencies.databaseObserver.unregisterObserver(messageObserver) } refresh() diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftViewModel.kt index b952891c17..a5ef0688b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftViewModel.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver.MessageObserver import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.InAppPaymentRedemptionJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -113,10 +113,10 @@ class ViewReceivedGiftViewModel( } } - ApplicationDependencies.getJobManager().add(InAppPaymentRedemptionJob.create(MessageId(messageId), setAsPrimary)) - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageObserver) + AppDependencies.jobManager.add(InAppPaymentRedemptionJob.create(MessageId(messageId), setAsPrimary)) + AppDependencies.databaseObserver.registerMessageUpdateObserver(messageObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageObserver) + AppDependencies.databaseObserver.unregisterObserver(messageObserver) } }.timeout(10, TimeUnit.SECONDS, Completable.error(BadgeRedemptionError.TimeoutWaitingForTokenError(DonationErrorSource.GIFT_REDEMPTION))) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/self/none/BecomeASustainerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/self/none/BecomeASustainerFragment.kt index f4a5512596..bb0706bcce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/self/none/BecomeASustainerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/self/none/BecomeASustainerFragment.kt @@ -14,14 +14,14 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository import org.thoughtcrime.securesms.components.settings.configure -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.BottomSheetUtil class BecomeASustainerFragment : DSLSettingsBottomSheetFragment() { private val viewModel: BecomeASustainerViewModel by viewModels( factoryProducer = { - BecomeASustainerViewModel.Factory(RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService())) + BecomeASustainerViewModel.Factory(RecurringInAppPaymentRepository(AppDependencies.donationsService)) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/self/overview/BadgesOverviewFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/self/overview/BadgesOverviewFragment.kt index e20a7d097f..488b771075 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/self/overview/BadgesOverviewFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/self/overview/BadgesOverviewFragment.kt @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository import org.thoughtcrime.securesms.components.settings.configure -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.navigation.safeNavigate @@ -31,7 +31,7 @@ class BadgesOverviewFragment : DSLSettingsFragment( private val lifecycleDisposable = LifecycleDisposable() private val viewModel: BadgesOverviewViewModel by viewModels( factoryProducer = { - BadgesOverviewViewModel.Factory(BadgeRepository(requireContext()), RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService())) + BadgesOverviewViewModel.Factory(BadgeRepository(requireContext()), RecurringInAppPaymentRepository(AppDependencies.donationsService)) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt index 9f86e5c2de..d0d43f97c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/CallLinks.kt @@ -12,7 +12,7 @@ import org.signal.ringrtc.CallLinkRootKey import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.service.webrtc.links.CallLinkRoomId import org.thoughtcrime.securesms.util.FeatureFlags import java.net.URLDecoder @@ -43,9 +43,9 @@ object CallLinks { refresh() } - ApplicationDependencies.getDatabaseObserver().registerCallLinkObserver(roomId, observer) + AppDependencies.databaseObserver.registerCallLinkObserver(roomId, observer) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) + AppDependencies.databaseObserver.unregisterObserver(observer) } refresh() diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/UpdateCallLinkRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/UpdateCallLinkRepository.kt index 88d04130af..eb525629e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/UpdateCallLinkRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/UpdateCallLinkRepository.kt @@ -9,7 +9,7 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.ringrtc.CallLinkState import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.CallLinkUpdateSendJob import org.thoughtcrime.securesms.service.webrtc.links.CallLinkCredentials import org.thoughtcrime.securesms.service.webrtc.links.SignalCallLinkManager @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.service.webrtc.links.UpdateCallLinkResult * All of these will delegate to the [SignalCallLinkManager] but will additionally update the database state. */ class UpdateCallLinkRepository( - private val callLinkManager: SignalCallLinkManager = ApplicationDependencies.getSignalCallManager().callLinkManager + private val callLinkManager: SignalCallLinkManager = AppDependencies.signalCallManager.callLinkManager ) { fun setCallName(credentials: CallLinkCredentials, name: String): Single { return callLinkManager @@ -60,11 +60,11 @@ class UpdateCallLinkRepository( when (result) { is UpdateCallLinkResult.Update -> { SignalDatabase.callLinks.updateCallLinkState(credentials.roomId, result.state) - ApplicationDependencies.getJobManager().add(CallLinkUpdateSendJob(credentials.roomId)) + AppDependencies.jobManager.add(CallLinkUpdateSendJob(credentials.roomId)) } is UpdateCallLinkResult.Delete -> { SignalDatabase.callLinks.markRevoked(credentials.roomId) - ApplicationDependencies.getJobManager().add(CallLinkUpdateSendJob(credentials.roomId)) + AppDependencies.jobManager.add(CallLinkUpdateSendJob(credentials.roomId)) } else -> {} } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/create/CreateCallLinkRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/create/CreateCallLinkRepository.kt index af39062092..237c65dfc1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/create/CreateCallLinkRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/create/CreateCallLinkRepository.kt @@ -9,7 +9,7 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.CallLinkUpdateSendJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -23,7 +23,7 @@ import org.whispersystems.signalservice.internal.push.SyncMessage * but will also ensure the database is updated. */ class CreateCallLinkRepository( - private val callLinkManager: SignalCallLinkManager = ApplicationDependencies.getSignalCallManager().callLinkManager + private val callLinkManager: SignalCallLinkManager = AppDependencies.signalCallManager.callLinkManager ) { fun ensureCallLinkCreated(credentials: CallLinkCredentials): Single { val callLinkRecipientId = Single.fromCallable { @@ -46,7 +46,7 @@ class CreateCallLinkRepository( ) ) - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( CallLinkUpdateSendJob( credentials.roomId, SyncMessage.CallLinkUpdate.Type.UPDATE diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt index 0be11cfcb5..d59eea1cbc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/links/details/CallLinkDetailsRepository.kt @@ -12,14 +12,14 @@ import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.concurrent.MaybeCompat import org.signal.core.util.orNull import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.service.webrtc.links.CallLinkRoomId import org.thoughtcrime.securesms.service.webrtc.links.ReadCallLinkResult import org.thoughtcrime.securesms.service.webrtc.links.SignalCallLinkManager class CallLinkDetailsRepository( - private val callLinkManager: SignalCallLinkManager = ApplicationDependencies.getSignalCallManager().callLinkManager + private val callLinkManager: SignalCallLinkManager = AppDependencies.signalCallManager.callLinkManager ) { fun refreshCallLinkState(callLinkRoomId: CallLinkRoomId): Disposable { return MaybeCompat.fromCallable { SignalDatabase.callLinks.getCallLinkByRoomId(callLinkRoomId) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogFragment.kt index f6fdbcf204..5b583d1292 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogFragment.kt @@ -55,7 +55,7 @@ import org.thoughtcrime.securesms.conversationlist.chatfilter.ConversationListFi import org.thoughtcrime.securesms.conversationlist.chatfilter.FilterLerp import org.thoughtcrime.securesms.conversationlist.chatfilter.FilterPullState import org.thoughtcrime.securesms.databinding.CallLogFragmentBinding -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.main.Material3OnScrollHelperBinder import org.thoughtcrime.securesms.main.SearchBinder import org.thoughtcrime.securesms.recipients.Recipient @@ -212,7 +212,7 @@ class CallLogFragment : Fragment(R.layout.call_log_fragment), CallLogAdapter.Cal override fun onResume() { super.onResume() initializeSearchAction() - ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary() + AppDependencies.deletedCallEventManager.scheduleIfNecessary() viewModel.markAllCallEventsRead() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogPeekHelper.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogPeekHelper.kt index 6af8dd3392..a132f2164a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogPeekHelper.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogPeekHelper.kt @@ -9,7 +9,7 @@ import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.service.webrtc.links.CallLinkRoomId import org.thoughtcrime.securesms.util.ThrottledDebouncer @@ -157,8 +157,8 @@ class CallLogPeekHelper : DefaultLifecycleObserver { items.forEach { when (it.identifier.peekEntryType) { - PeekEntryType.CALL_LINK -> ApplicationDependencies.getSignalCallManager().peekCallLinkCall(it.recipientId) - PeekEntryType.GROUP_CALL -> ApplicationDependencies.getSignalCallManager().peekGroupCall(it.recipientId) + PeekEntryType.CALL_LINK -> AppDependencies.signalCallManager.peekCallLinkCall(it.recipientId) + PeekEntryType.GROUP_CALL -> AppDependencies.signalCallManager.peekGroupCall(it.recipientId) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogRepository.kt index b67474599e..c9790465a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogRepository.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.calls.links.UpdateCallLinkRepository import org.thoughtcrime.securesms.database.CallLinkTable import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.CallLinkPeekJob import org.thoughtcrime.securesms.jobs.CallLogEventSendJob import org.thoughtcrime.securesms.service.webrtc.links.CallLinkRoomId @@ -52,7 +52,7 @@ class CallLogRepository( SignalExecutors.BOUNDED_IO.execute { val latestCall = SignalDatabase.calls.getLatestCall() ?: return@execute SignalDatabase.calls.markAllCallEventsRead() - ApplicationDependencies.getJobManager().add(CallLogEventSendJob.forMarkedAsRead(latestCall)) + AppDependencies.jobManager.add(CallLogEventSendJob.forMarkedAsRead(latestCall)) } } @@ -66,11 +66,11 @@ class CallLogRepository( refresh() } - ApplicationDependencies.getDatabaseObserver().registerConversationListObserver(databaseObserver) - ApplicationDependencies.getDatabaseObserver().registerCallUpdateObserver(databaseObserver) + AppDependencies.databaseObserver.registerConversationListObserver(databaseObserver) + AppDependencies.databaseObserver.registerCallUpdateObserver(databaseObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(databaseObserver) + AppDependencies.databaseObserver.unregisterObserver(databaseObserver) } } } @@ -106,7 +106,7 @@ class CallLogRepository( val latestCall = SignalDatabase.calls.getLatestCall() ?: return@withinTransaction SignalDatabase.calls.deleteNonAdHocCallEventsOnOrBefore(latestCall.timestamp) SignalDatabase.callLinks.deleteNonAdminCallLinksOnOrBefore(latestCall.timestamp) - ApplicationDependencies.getJobManager().add(CallLogEventSendJob.forClearHistory(latestCall)) + AppDependencies.jobManager.add(CallLogEventSendJob.forClearHistory(latestCall)) } SignalDatabase.callLinks.getAllAdminCallLinksExcept(emptySet()) @@ -180,7 +180,7 @@ class CallLogRepository( CallLinkPeekJob(it.id) } - ApplicationDependencies.getJobManager().addAll(jobs) + AppDependencies.jobManager.addAll(jobs) }.subscribeOn(Schedulers.io()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogViewModel.kt index 2180ebaf20..e30c7de46e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/calls/log/CallLogViewModel.kt @@ -15,7 +15,7 @@ import org.signal.paging.ObservablePagedData import org.signal.paging.PagedData import org.signal.paging.PagingConfig import org.signal.paging.ProxyPagingController -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.util.rx.RxStore import java.util.concurrent.TimeUnit @@ -88,8 +88,8 @@ class CallLogViewModel( .flatMapCompletable { callLogRepository.peekCallLinks() } .subscribe() - disposables += ApplicationDependencies - .getSignalCallManager() + disposables += AppDependencies + .signalCallManager .peekInfoCache .observeOn(Schedulers.computation()) .distinctUntilChanged() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java index 89644cf78c..fce2d5da02 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/AvatarImageView.java @@ -39,7 +39,7 @@ import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto; import org.thoughtcrime.securesms.conversation.colors.AvatarColor; import org.thoughtcrime.securesms.conversation.colors.ChatColors; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment; @@ -205,7 +205,7 @@ public final class AvatarImageView extends AppCompatImageView { List> transforms = new ArrayList<>(); if (shouldBlur) { - transforms.add(new BlurTransformation(ApplicationDependencies.getApplication(), 0.25f, BlurTransformation.MAX_RADIUS)); + transforms.add(new BlurTransformation(AppDependencies.getApplication(), 0.25f, BlurTransformation.MAX_RADIUS)); } transforms.add(new CircleCrop()); blurred = shouldBlur; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java index 6ba9ac0757..069e7a4126 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java @@ -33,7 +33,7 @@ import org.thoughtcrime.securesms.conversation.v2.computed.FormattedDate; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.DateUtils; @@ -373,7 +373,7 @@ public class ConversationItemFooter extends ConstraintLayout { this.timerView.startAnimation(); if (messageRecord.getExpireStarted() + messageRecord.getExpiresIn() <= System.currentTimeMillis()) { - ApplicationDependencies.getExpiringMessageManager().checkSchedule(); + AppDependencies.getExpiringMessageManager().checkSchedule(); } } else if (!messageRecord.isOutgoing() && !messageRecord.isMediaPending()) { SignalExecutors.BOUNDED.execute(() -> { @@ -382,7 +382,7 @@ public class ConversationItemFooter extends ConstraintLayout { long now = System.currentTimeMillis(); SignalDatabase.messages().markExpireStarted(id, now); - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(id, mms, now, messageRecord.getExpiresIn()); + AppDependencies.getExpiringMessageManager().scheduleDeletion(id, mms, now, messageRecord.getExpiresIn()); }); } } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/DebugLogsPromptDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/DebugLogsPromptDialogFragment.kt index 2a45f13ff4..516fcec4ef 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/DebugLogsPromptDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/DebugLogsPromptDialogFragment.kt @@ -19,7 +19,7 @@ import org.signal.core.util.ResourceUtil import org.signal.core.util.concurrent.LifecycleDisposable import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.databinding.PromptLogsBottomSheetBinding -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.SlowNotificationHeuristics import org.thoughtcrime.securesms.util.BottomSheetUtil @@ -63,7 +63,7 @@ class DebugLogsPromptDialogFragment : FixedRoundedCornerBottomSheetDialogFragmen private val viewModel: PromptLogsViewModel by viewModels( factoryProducer = { val purpose = Purpose.deserialize(requireArguments().getInt(KEY_PURPOSE)) - PromptLogsViewModel.Factory(ApplicationDependencies.getApplication(), purpose) + PromptLogsViewModel.Factory(AppDependencies.application, purpose) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/DeleteSyncEducationDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/components/DeleteSyncEducationDialog.kt index 707d7a1cfd..17db1c3be0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/DeleteSyncEducationDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/DeleteSyncEducationDialog.kt @@ -30,7 +30,7 @@ import org.signal.core.ui.Previews import org.signal.core.ui.SignalPreview import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -46,7 +46,7 @@ class DeleteSyncEducationDialog : ComposeBottomSheetDialogFragment() { @JvmStatic fun shouldShow(): Boolean { - return TextSecurePreferences.isMultiDevice(ApplicationDependencies.getApplication()) && + return TextSecurePreferences.isMultiDevice(AppDependencies.application) && !SignalStore.uiHints().hasSeenDeleteSyncEducationSheet && FeatureFlags.deleteSyncEnabled() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java b/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java index bc6fb79fe5..2d94ed4e58 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/TypingStatusSender.java @@ -4,7 +4,7 @@ import android.annotation.SuppressLint; import org.signal.core.util.ThreadUtil; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.TypingSendJob; import org.thoughtcrime.securesms.util.Util; @@ -76,7 +76,7 @@ public class TypingStatusSender { } private void sendTyping(long threadId, boolean typingStarted) { - ApplicationDependencies.getJobManager().add(new TypingSendJob(threadId, typingStarted)); + AppDependencies.getJobManager().add(new TypingSendJob(threadId, typingStarted)); } private class StartRunnable implements Runnable { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java index c540c86ff3..4914a4bcb9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UntrustedSendDialog.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.crypto.ReentrantSessionLock; import org.thoughtcrime.securesms.crypto.storage.SignalIdentityKeyStore; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.signal.core.util.concurrent.SimpleTask; import org.whispersystems.signalservice.api.SignalSessionLock; @@ -40,7 +40,7 @@ public class UntrustedSendDialog extends AlertDialog.Builder implements DialogIn @Override public void onClick(DialogInterface dialog, int which) { - final SignalIdentityKeyStore identityStore = ApplicationDependencies.getProtocolStore().aci().identities(); + final SignalIdentityKeyStore identityStore = AppDependencies.getProtocolStore().aci().identities(); SimpleTask.run(() -> { try(SignalSessionLock.Lock unused = ReentrantSessionLock.INSTANCE.acquire()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java index 5216663fb3..3212ebd566 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/identity/UnverifiedSendDialog.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.crypto.ReentrantSessionLock; import org.thoughtcrime.securesms.database.IdentityTable; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.signal.core.util.concurrent.SimpleTask; import org.whispersystems.signalservice.api.SignalSessionLock; @@ -42,9 +42,9 @@ public class UnverifiedSendDialog extends AlertDialog.Builder implements DialogI SimpleTask.run(() -> { try(SignalSessionLock.Lock unused = ReentrantSessionLock.INSTANCE.acquire()) { for (IdentityRecord identityRecord : untrustedRecords) { - ApplicationDependencies.getProtocolStore().aci().identities().setVerified(identityRecord.getRecipientId(), - identityRecord.getIdentityKey(), - IdentityTable.VerifiedStatus.DEFAULT); + AppDependencies.getProtocolStore().aci().identities().setVerified(identityRecord.getRecipientId(), + identityRecord.getIdentityKey(), + IdentityTable.VerifiedStatus.DEFAULT); } } return null; diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsViewModel.kt index 3d2d676748..c58c62201f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/AppSettingsViewModel.kt @@ -9,14 +9,14 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppDona import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository import org.thoughtcrime.securesms.conversationlist.model.UnreadPaymentsLiveData import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.livedata.Store class AppSettingsViewModel( - recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService()) + recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(AppDependencies.donationsService) ) : ViewModel() { private val store = Store( @@ -25,7 +25,7 @@ class AppSettingsViewModel( 0, SignalStore.donationsValues().getExpiredGiftBadge() != null, SignalStore.donationsValues().isLikelyASustainer() || InAppDonations.hasAtLeastOnePaymentMethodAvailable(), - TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()) || !SignalStore.account().isRegistered, + TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application) || !SignalStore.account().isRegistered, SignalStore.misc().isClientDeprecated ) ) @@ -58,7 +58,7 @@ class AppSettingsViewModel( store.update { it.copy( clientDeprecated = SignalStore.misc().isClientDeprecated, - userUnregistered = TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()) || !SignalStore.account().isRegistered + userUnregistered = TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application) || !SignalStore.account().isRegistered ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt index 93d1c739d5..33b980037e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsFragment.kt @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.lock.v2.CreateSvrPinActivity import org.thoughtcrime.securesms.lock.v2.PinKeyboardType @@ -163,7 +163,7 @@ class AccountSettingsFragment : DSLSettingsFragment(R.string.AccountSettingsFrag .setTitle(R.string.preferences_account_delete_all_data_confirmation_title) .setMessage(R.string.preferences_account_delete_all_data_confirmation_message) .setPositiveButton(R.string.preferences_account_delete_all_data_confirmation_proceed) { _: DialogInterface, _: Int -> - if (!ServiceUtil.getActivityManager(ApplicationDependencies.getApplication()).clearApplicationUserData()) { + if (!ServiceUtil.getActivityManager(AppDependencies.application).clearApplicationUserData()) { Toast.makeText(requireContext(), R.string.preferences_account_delete_all_data_failed, Toast.LENGTH_LONG).show() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsViewModel.kt index d47daa9f9f..68a6a3ceae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/AccountSettingsViewModel.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.components.settings.app.account import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.livedata.Store @@ -21,7 +21,7 @@ class AccountSettingsViewModel : ViewModel() { hasPin = SignalStore.svr().hasPin() && !SignalStore.svr().hasOptedOut(), pinRemindersEnabled = SignalStore.pinValues().arePinRemindersEnabled(), registrationLockEnabled = SignalStore.svr().isRegistrationLockEnabled, - userUnregistered = TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()), + userUnregistered = TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application), clientDeprecated = SignalStore.misc().isClientDeprecated ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataRepository.kt index 4f12bded0d..7e2063618f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataRepository.kt @@ -5,14 +5,14 @@ import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.node.ObjectNode import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.providers.BlobProvider import org.thoughtcrime.securesms.util.JsonUtils import org.whispersystems.signalservice.api.SignalServiceAccountManager import java.io.IOException class ExportAccountDataRepository( - private val accountManager: SignalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager() + private val accountManager: SignalServiceAccountManager = AppDependencies.signalServiceAccountManager ) { fun downloadAccountDataReport(exportAsJson: Boolean): Single { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRepository.kt index 5b13917821..0863044557 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberRepository.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.crypto.PreKeyUtil import org.thoughtcrime.securesms.database.IdentityTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.databaseprotos.PendingChangeNumberMetadata -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RefreshAttributesJob import org.thoughtcrime.securesms.keyvalue.CertificateType import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -59,8 +59,8 @@ private val TAG: String = Log.tag(ChangeNumberRepository::class.java) * the global "I am changing the number" lock exclusivity. */ class ChangeNumberRepository( - private val accountManager: SignalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager(), - private val messageSender: SignalServiceMessageSender = ApplicationDependencies.getSignalServiceMessageSender() + private val accountManager: SignalServiceAccountManager = AppDependencies.signalServiceAccountManager, + private val messageSender: SignalServiceMessageSender = AppDependencies.signalServiceMessageSender ) { companion object { @@ -93,20 +93,20 @@ class ChangeNumberRepository( val drainedListener = object : Runnable { override fun run() { emitter.onComplete() - ApplicationDependencies - .getIncomingMessageObserver() + AppDependencies + .incomingMessageObserver .removeDecryptionDrainedListener(this) } } emitter.setCancellable { - ApplicationDependencies - .getIncomingMessageObserver() + AppDependencies + .incomingMessageObserver .removeDecryptionDrainedListener(drainedListener) } - ApplicationDependencies - .getIncomingMessageObserver() + AppDependencies + .incomingMessageObserver .addDecryptionDrainedListener(drainedListener) }.subscribeOn(Schedulers.single()) .timeout(15, TimeUnit.SECONDS) @@ -209,7 +209,7 @@ class ChangeNumberRepository( @Suppress("UsePropertyAccessSyntax") fun whoAmI(): Single { - return Single.fromCallable { ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI() } + return Single.fromCallable { AppDependencies.signalServiceAccountManager.getWhoAmI() } .subscribeOn(Schedulers.single()) } @@ -229,13 +229,13 @@ class ChangeNumberRepository( } } - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() SignalStore.account().setE164(e164) SignalStore.account().setPni(pni) - ApplicationDependencies.resetProtocolStores() + AppDependencies.resetProtocolStores() - ApplicationDependencies.getGroupsV2Authorization().clear() + AppDependencies.groupsV2Authorization.clear() val metadata: PendingChangeNumberMetadata? = SignalStore.misc().pendingChangeNumberMetadata if (metadata == null) { @@ -253,7 +253,7 @@ class ChangeNumberRepository( val pniSignedPreyKeyId = metadata.pniSignedPreKeyId val pniLastResortKyberPreKeyId = metadata.pniLastResortKyberPreKeyId - val pniProtocolStore = ApplicationDependencies.getProtocolStore().pni() + val pniProtocolStore = AppDependencies.protocolStore.pni() val pniMetadataStore = SignalStore.account().pniPreKeys SignalStore.account().pniRegistrationId = pniRegistrationId @@ -292,16 +292,16 @@ class ChangeNumberRepository( ) SignalStore.misc().hasPniInitializedDevices = true - ApplicationDependencies.getGroupsV2Authorization().clear() + AppDependencies.groupsV2Authorization.clear() } Recipient.self().live().refresh() StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.closeConnections() - ApplicationDependencies.getIncomingMessageObserver() + AppDependencies.resetNetwork() + AppDependencies.incomingMessageObserver - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) return rotateCertificates() } @@ -335,7 +335,7 @@ class ChangeNumberRepository( registrationLock: String? = null ): ChangeNumberRequestData { val selfIdentifier: String = SignalStore.account().requireAci().toString() - val aciProtocolStore: SignalProtocolStore = ApplicationDependencies.getProtocolStore().aci() + val aciProtocolStore: SignalProtocolStore = AppDependencies.protocolStore.aci() val pniIdentity: IdentityKeyPair = IdentityKeyUtil.generateIdentityKeyPair() val deviceMessages = mutableListOf() @@ -351,7 +351,7 @@ class ChangeNumberRepository( .forEach { deviceId -> // Signed Prekeys val signedPreKeyRecord: SignedPreKeyRecord = if (deviceId == primaryDeviceId) { - PreKeyUtil.generateAndStoreSignedPreKey(ApplicationDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys, pniIdentity.privateKey) + PreKeyUtil.generateAndStoreSignedPreKey(AppDependencies.protocolStore.pni(), SignalStore.account().pniPreKeys, pniIdentity.privateKey) } else { PreKeyUtil.generateSignedPreKey(SecureRandom().nextInt(Medium.MAX_VALUE), pniIdentity.privateKey) } @@ -359,7 +359,7 @@ class ChangeNumberRepository( // Last-resort kyber prekeys val lastResortKyberPreKeyRecord: KyberPreKeyRecord = if (deviceId == primaryDeviceId) { - PreKeyUtil.generateAndStoreLastResortKyberPreKey(ApplicationDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys, pniIdentity.privateKey) + PreKeyUtil.generateAndStoreLastResortKyberPreKey(AppDependencies.protocolStore.pni(), SignalStore.account().pniPreKeys, pniIdentity.privateKey) } else { PreKeyUtil.generateLastResortKyberPreKey(SecureRandom().nextInt(Medium.MAX_VALUE), pniIdentity.privateKey) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt index ba752d8279..f1c1860aed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/changenumber/ChangeNumberViewModel.kt @@ -14,7 +14,7 @@ import io.reactivex.rxjava3.core.Completable import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.registration.RegistrationSessionProcessor import org.thoughtcrime.securesms.registration.SmsRetrieverReceiver @@ -40,7 +40,7 @@ class ChangeNumberViewModel( savedState: SavedStateHandle, password: String, verifyAccountRepository: VerifyAccountRepository, - private val smsRetrieverReceiver: SmsRetrieverReceiver = SmsRetrieverReceiver(ApplicationDependencies.getApplication()) + private val smsRetrieverReceiver: SmsRetrieverReceiver = SmsRetrieverReceiver(AppDependencies.application) ) : BaseRegistrationViewModel(savedState, verifyAccountRepository, password) { var oldNumberState: NumberViewState = NumberViewState.Builder().build() @@ -222,7 +222,7 @@ class ChangeNumberViewModel( class Factory(owner: SavedStateRegistryOwner) : AbstractSavedStateViewModelFactory(owner, null) { override fun create(key: String, modelClass: Class, handle: SavedStateHandle): T { - val context: Application = ApplicationDependencies.getApplication() + val context: Application = AppDependencies.application val localNumber: String = SignalStore.account().e164!! val password: String = SignalStore.account().servicePassword!! diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsRepository.kt index 3378ba14cc..bd6abcfacc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsRepository.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.components.settings.app.chats import android.content.Context import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences class ChatsSettingsRepository { - private val context: Context = ApplicationDependencies.getApplication() + private val context: Context = AppDependencies.application fun syncLinkPreviewsState() { SignalExecutors.BOUNDED.execute { @@ -21,7 +21,7 @@ class ChatsSettingsRepository { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( MultiDeviceConfigurationUpdateJob( TextSecurePreferences.isReadReceiptsEnabled(context), TextSecurePreferences.isTypingIndicatorsEnabled(context), @@ -35,7 +35,7 @@ class ChatsSettingsRepository { fun syncPreferSystemContactPhotos() { SignalExecutors.BOUNDED.execute { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) - ApplicationDependencies.getJobManager().add(MultiDeviceContactUpdateJob(true)) + AppDependencies.jobManager.add(MultiDeviceContactUpdateJob(true)) StorageSyncHelper.scheduleSyncForDataChange() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt index 2411ce0db2..296e5025bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/ChatsSettingsViewModel.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.components.settings.app.chats import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.BackupUtil import org.thoughtcrime.securesms.util.ConversationUtil @@ -22,7 +22,7 @@ class ChatsSettingsViewModel @JvmOverloads constructor( keepMutedChatsArchived = SignalStore.settings().shouldKeepMutedChatsArchived(), useSystemEmoji = SignalStore.settings().isPreferSystemEmoji, enterKeySends = SignalStore.settings().isEnterKeySends, - localBackupsEnabled = SignalStore.settings().isBackupEnabled && BackupUtil.canUserAccessBackupDirectory(ApplicationDependencies.getApplication()), + localBackupsEnabled = SignalStore.settings().isBackupEnabled && BackupUtil.canUserAccessBackupDirectory(AppDependencies.application), remoteBackupsEnabled = SignalStore.backup().areBackupsEnabled ) ) @@ -59,7 +59,7 @@ class ChatsSettingsViewModel @JvmOverloads constructor( } fun refresh() { - val backupsEnabled = SignalStore.settings().isBackupEnabled && BackupUtil.canUserAccessBackupDirectory(ApplicationDependencies.getApplication()) + val backupsEnabled = SignalStore.settings().isBackupEnabled && BackupUtil.canUserAccessBackupDirectory(AppDependencies.application) val remoteBackupsEnabled = SignalStore.backup().areBackupsEnabled if (store.state.localBackupsEnabled != backupsEnabled || diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt index 56e986b11c..080e5d025b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt @@ -10,7 +10,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import org.thoughtcrime.securesms.backup.v2.BackupFrequency import org.thoughtcrime.securesms.backup.v2.BackupV2Event -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.BackupMessagesJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.service.MessageBackupListener @@ -39,7 +39,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { SignalStore.backup().backupFrequency = backupsFrequency internalState.value = state.value.copy(backupsFrequency = backupsFrequency) MessageBackupListener.setNextBackupTimeToIntervalFromNow() - MessageBackupListener.schedule(ApplicationDependencies.getApplication()) + MessageBackupListener.schedule(AppDependencies.application) } fun requestDialog(dialog: RemoteBackupsSettingsState.Dialog) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsRepository.kt index 66a6262b5c..266ee141e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsRepository.kt @@ -3,11 +3,11 @@ package org.thoughtcrime.securesms.components.settings.app.data import android.content.Context import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies class DataAndStorageSettingsRepository { - private val context: Context = ApplicationDependencies.getApplication() + private val context: Context = AppDependencies.application fun getTotalStorageUse(consumer: (Long) -> Unit) { SignalExecutors.BOUNDED.execute { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsViewModel.kt index af6af76704..9a9db8d956 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/data/DataAndStorageSettingsViewModel.kt @@ -4,7 +4,7 @@ import android.content.SharedPreferences import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.SentMediaQuality import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -43,7 +43,7 @@ class DataAndStorageSettingsViewModel( fun setCallDataMode(callDataMode: CallDataMode) { SignalStore.settings().callDataMode = callDataMode - ApplicationDependencies.getSignalCallManager().dataModeUpdate() + AppDependencies.signalCallManager.dataModeUpdate() getStateAndCopyStorageUsage() } @@ -59,13 +59,13 @@ class DataAndStorageSettingsViewModel( private fun getState() = DataAndStorageSettingsState( totalStorageUse = 0, mobileAutoDownloadValues = TextSecurePreferences.getMobileMediaDownloadAllowed( - ApplicationDependencies.getApplication() + AppDependencies.application ), wifiAutoDownloadValues = TextSecurePreferences.getWifiMediaDownloadAllowed( - ApplicationDependencies.getApplication() + AppDependencies.application ), roamingAutoDownloadValues = TextSecurePreferences.getRoamingMediaDownloadAllowed( - ApplicationDependencies.getApplication() + AppDependencies.application ), callDataMode = SignalStore.settings().callDataMode, isProxyEnabled = SignalStore.proxy().isProxyEnabled, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalPendingOneTimeDonationConfigurationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalPendingOneTimeDonationConfigurationViewModel.kt index 2bdee05aff..e0c1144b0a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalPendingOneTimeDonationConfigurationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalPendingOneTimeDonationConfigurationViewModel.kt @@ -16,7 +16,7 @@ import org.signal.core.util.money.FiatMoney import org.thoughtcrime.securesms.badges.Badges import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatValue import org.thoughtcrime.securesms.database.model.databaseprotos.PendingOneTimeDonation -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.math.BigDecimal import java.util.Currency import java.util.Locale @@ -35,7 +35,7 @@ class InternalPendingOneTimeDonationConfigurationViewModel : ViewModel() { val disposable: Disposable = Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt index d3256f7b12..a69dbd2a99 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt @@ -35,7 +35,7 @@ import org.thoughtcrime.securesms.database.MegaphoneDatabase import org.thoughtcrime.securesms.database.OneTimePreKeyTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.JobTracker import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob @@ -208,7 +208,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter summary = DSLSettingsText.from("Clear backoff intervals, app will restart"), onClick = { SimpleTask.run({ - JobDatabase.getInstance(ApplicationDependencies.getApplication()).debugResetBackoffInterval() + JobDatabase.getInstance(AppDependencies.application).debugResetBackoffInterval() }) { AppUtil.restart(requireContext()) } @@ -360,7 +360,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter onClick = { viewModel.setForceWebsocketMode(!state.forceWebsocketMode) SimpleTask.run({ - val jobState = ApplicationDependencies.getJobManager().runSynchronously(RefreshAttributesJob(), 10.seconds.inWholeMilliseconds) + val jobState = AppDependencies.jobManager.runSynchronously(RefreshAttributesJob(), 10.seconds.inWholeMilliseconds) return@run jobState.isPresent && jobState.get().isComplete }, { success -> if (success) { @@ -416,7 +416,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter title = DSLSettingsText.from("Force emoji download"), summary = DSLSettingsText.from("Download the latest emoji set if it\\'s newer than what we have."), onClick = { - ApplicationDependencies.getJobManager().add(DownloadLatestEmojiDataJob(true)) + AppDependencies.jobManager.add(DownloadLatestEmojiDataJob(true)) } ) @@ -604,12 +604,12 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter title = DSLSettingsText.from("Reset donation megaphone"), onClick = { SignalDatabase.remoteMegaphones.debugRemoveAll() - MegaphoneDatabase.getInstance(ApplicationDependencies.getApplication()).let { + MegaphoneDatabase.getInstance(AppDependencies.application).let { it.delete(Megaphones.Event.REMOTE_MEGAPHONE) it.markFirstVisible(Megaphones.Event.DONATE_Q2_2022, System.currentTimeMillis() - TimeUnit.DAYS.toMillis(31)) } // Force repository database cache refresh - MegaphoneRepository(ApplicationDependencies.getApplication()).onFirstEverAppLaunch() + MegaphoneRepository(AppDependencies.application).onFirstEverAppLaunch() } ) @@ -715,7 +715,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter isEnabled = true, onClick = { SimpleTask.run(viewLifecycleOwner.lifecycle, { - ApplicationDependencies.getJobManager().runSynchronously(PnpInitializeDevicesJob(), 10.seconds.inWholeMilliseconds) + AppDependencies.jobManager.runSynchronously(PnpInitializeDevicesJob(), 10.seconds.inWholeMilliseconds) }, { state -> if (state.isPresent) { Toast.makeText(context, "Job finished with result: ${state.get()}!", Toast.LENGTH_SHORT).show() @@ -842,7 +842,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter .setPositiveButton( "Copy" ) { _: DialogInterface?, _: Int -> - val context: Context = ApplicationDependencies.getApplication() + val context: Context = AppDependencies.application val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager SimpleTask.run( @@ -867,7 +867,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } private fun refreshAttributes() { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(RefreshAttributesJob()) .then(RefreshOwnProfileJob()) .enqueue() @@ -875,19 +875,19 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } private fun refreshProfile() { - ApplicationDependencies.getJobManager().add(RefreshOwnProfileJob()) + AppDependencies.jobManager.add(RefreshOwnProfileJob()) Toast.makeText(context, "Scheduled profile refresh", Toast.LENGTH_SHORT).show() } private fun rotateProfileKey() { - ApplicationDependencies.getJobManager().add(RotateProfileKeyJob()) + AppDependencies.jobManager.add(RotateProfileKeyJob()) Toast.makeText(context, "Scheduled profile key rotation", Toast.LENGTH_SHORT).show() } private fun refreshRemoteValues() { Toast.makeText(context, "Running remote config refresh, app will restart after completion.", Toast.LENGTH_LONG).show() SignalExecutors.BOUNDED.execute { - val result: Optional = ApplicationDependencies.getJobManager().runSynchronously(RemoteConfigRefreshJob(), TimeUnit.SECONDS.toMillis(10)) + val result: Optional = AppDependencies.jobManager.runSynchronously(RemoteConfigRefreshJob(), TimeUnit.SECONDS.toMillis(10)) if (result.isPresent && result.get() == JobTracker.JobState.SUCCESS) { AppUtil.restart(requireContext()) @@ -903,7 +903,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } private fun enqueueStorageServiceForcePush() { - ApplicationDependencies.getJobManager().add(StorageForcePushJob()) + AppDependencies.jobManager.add(StorageForcePushJob()) Toast.makeText(context, "Scheduled storage force push", Toast.LENGTH_SHORT).show() } @@ -924,7 +924,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } private fun clearAllLocalMetricsState() { - LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()).clear() + LocalMetricsDatabase.getInstance(AppDependencies.application).clear() Toast.makeText(context, "Cleared all local metrics state.", Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt index 4c9065d717..9a3b72b120 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsRepository.kt @@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord import org.thoughtcrime.securesms.database.model.addStyle import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.emoji.EmojiFiles import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob import org.thoughtcrime.securesms.jobs.CreateReleaseChannelJob @@ -43,7 +43,7 @@ class InternalSettingsRepository(context: Context) { fun addSampleReleaseNote() { SignalExecutors.UNBOUNDED.execute { - ApplicationDependencies.getJobManager().runSynchronously(CreateReleaseChannelJob.create(), 5000) + AppDependencies.jobManager.runSynchronously(CreateReleaseChannelJob.create(), 5000) val title = "Release Note Title" val bodyText = "Release note body. Aren't I awesome?" @@ -68,9 +68,9 @@ class InternalSettingsRepository(context: Context) { if (insertResult != null) { SignalDatabase.attachments.getAttachmentsForMessage(insertResult.messageId) - .forEach { ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, false)) } + .forEach { AppDependencies.jobManager.add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, false)) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) } } } @@ -100,7 +100,7 @@ class InternalSettingsRepository(context: Context) { SignalDatabase.remoteMegaphones.insert(record) if (record.imageUrl != null) { - ApplicationDependencies.getJobManager().add(FetchRemoteMegaphoneImageJob(record.uuid, record.imageUrl)) + AppDependencies.jobManager.add(FetchRemoteMegaphoneImageJob(record.uuid, record.imageUrl)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt index 3efa697c38..04594e4dbd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/backup/InternalBackupPlaygroundViewModel.kt @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.backup.v2.BackupMetadata import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.database.MessageType import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ArchiveAttachmentJob import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob import org.thoughtcrime.securesms.jobs.AttachmentUploadJob @@ -69,7 +69,7 @@ class InternalBackupPlaygroundViewModel : ViewModel() { fun triggerBackupJob() { _state.value = _state.value.copy(backupState = BackupState.EXPORT_IN_PROGRESS) - disposables += Single.fromCallable { ApplicationDependencies.getJobManager().runSynchronously(BackupMessagesJob(), 120_000) } + disposables += Single.fromCallable { AppDependencies.jobManager.runSynchronously(BackupMessagesJob(), 120_000) } .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribeBy { @@ -166,8 +166,8 @@ class InternalBackupPlaygroundViewModel : ViewModel() { _state.value = _state.value.copy(backupState = BackupState.IMPORT_IN_PROGRESS) disposables += Single.fromCallable { - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(BackupRestoreJob()) .then(SyncArchivedMediaJob()) .then(BackupRestoreMediaJob()) @@ -245,8 +245,8 @@ class InternalBackupPlaygroundViewModel : ViewModel() { private fun reUploadAndArchiveMedia(attachmentId: AttachmentId) { disposables += Single .fromCallable { - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(AttachmentUploadJob(attachmentId)) .then(ArchiveAttachmentJob(attachmentId)) .enqueueAndBlockUntilCompletion(15.seconds.inWholeMilliseconds) @@ -325,7 +325,7 @@ class InternalBackupPlaygroundViewModel : ViewModel() { val archivedAttachment = SignalDatabase.attachments.getAttachmentsForMessage(insertMessage.messageId).first() - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( AttachmentDownloadJob( messageId = insertMessage.messageId, attachmentId = archivedAttachment.attachmentId, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/donor/InternalDonorErrorConfigurationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/donor/InternalDonorErrorConfigurationViewModel.kt index e9f1dac075..df4947f93d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/donor/InternalDonorErrorConfigurationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/donor/InternalDonorErrorConfigurationViewModel.kt @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.getBoostB import org.thoughtcrime.securesms.components.settings.app.subscription.getGiftBadges import org.thoughtcrime.securesms.components.settings.app.subscription.getSubscriptionLevels import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.rx.RxStore import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription @@ -31,7 +31,7 @@ class InternalDonorErrorConfigurationViewModel : ViewModel() { init { val giftBadges: Single> = Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } @@ -40,7 +40,7 @@ class InternalDonorErrorConfigurationViewModel : ViewModel() { val boostBadges: Single> = Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } @@ -49,7 +49,7 @@ class InternalDonorErrorConfigurationViewModel : ViewModel() { val subscriptionBadges: Single> = Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/svr/InternalSvrPlaygroundViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/svr/InternalSvrPlaygroundViewModel.kt index b9bbb77957..4deb36ce2c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/svr/InternalSvrPlaygroundViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/svr/InternalSvrPlaygroundViewModel.kt @@ -16,7 +16,7 @@ import io.reactivex.rxjava3.kotlin.plusAssign import io.reactivex.rxjava3.schedulers.Schedulers import kotlinx.collections.immutable.persistentListOf import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.whispersystems.signalservice.api.svr.SecureValueRecovery import org.whispersystems.signalservice.api.svr.SecureValueRecoveryV3 @@ -104,8 +104,8 @@ class InternalSvrPlaygroundViewModel : ViewModel() { private fun SvrImplementation.toImplementation(): SecureValueRecovery { return when (this) { - SvrImplementation.SVR2 -> ApplicationDependencies.getSignalServiceAccountManager().getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) - SvrImplementation.SVR3 -> ApplicationDependencies.getSignalServiceAccountManager().getSecureValueRecoveryV3(ApplicationDependencies.getLibsignalNetwork().network, TestShareSetStorage()) + SvrImplementation.SVR2 -> AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) + SvrImplementation.SVR3 -> AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV3(AppDependencies.libsignalNetwork.network, TestShareSetStorage()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt index eab696ef93..0b4cc63f06 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/NotificationsSettingsViewModel.kt @@ -6,7 +6,7 @@ import android.os.Build import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.NotificationChannels import org.thoughtcrime.securesms.notifications.SlowNotificationHeuristics @@ -118,7 +118,7 @@ class NotificationsSettingsViewModel(private val sharedPreferences: SharedPrefer inChatSoundsEnabled = SignalStore.settings().isMessageNotificationsInChatSoundsEnabled, repeatAlerts = SignalStore.settings().messageNotificationsRepeatAlerts, messagePrivacy = SignalStore.settings().messageNotificationsPrivacy.toString(), - priority = TextSecurePreferences.getNotificationPriority(ApplicationDependencies.getApplication()), + priority = TextSecurePreferences.getNotificationPriority(AppDependencies.application), troubleshootNotifications = if (calculateSlowNotifications) { SlowNotificationHeuristics.isPotentiallyCausedByBatteryOptimizations() && SlowNotificationHeuristics.isHavingDelayedNotifications() } else if (currentState != null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/NotificationProfilesRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/NotificationProfilesRepository.kt index 7279c842f8..3d25bcb602 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/NotificationProfilesRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/NotificationProfilesRepository.kt @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.NotificationProfileDatabase import org.thoughtcrime.securesms.database.RxDatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.profiles.NotificationProfile import org.thoughtcrime.securesms.notifications.profiles.NotificationProfileSchedule @@ -44,7 +44,7 @@ class NotificationProfilesRepository { } } - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val profileObserver = DatabaseObserver.Observer { emitProfile() } databaseObserver.registerNotificationProfileObserver(profileObserver) @@ -132,7 +132,7 @@ class NotificationProfilesRepository { SignalStore.notificationProfileValues().manuallyDisabledAt = now } } - .doOnComplete { ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() } + .doOnComplete { AppDependencies.databaseObserver.notifyNotificationProfileObservers() } .subscribeOn(Schedulers.io()) } @@ -142,7 +142,7 @@ class NotificationProfilesRepository { SignalStore.notificationProfileValues().manuallyEnabledUntil = enableUntil SignalStore.notificationProfileValues().manuallyDisabledAt = now } - .doOnComplete { ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() } + .doOnComplete { AppDependencies.databaseObserver.notifyNotificationProfileObservers() } .subscribeOn(Schedulers.io()) } @@ -153,7 +153,7 @@ class NotificationProfilesRepository { SignalStore.notificationProfileValues().manuallyEnabledUntil = if (inScheduledWindow) schedule.endDateTime(now.toLocalDateTime()).toMillis() else Long.MAX_VALUE SignalStore.notificationProfileValues().manuallyDisabledAt = if (inScheduledWindow) now else 0 } - .doOnComplete { ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() } + .doOnComplete { AppDependencies.databaseObserver.notifyNotificationProfileObservers() } .subscribeOn(Schedulers.io()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsRepository.kt index a955ca8e9c..65746d61bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsRepository.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.components.settings.app.privacy import android.content.Context import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences class PrivacySettingsRepository { - private val context: Context = ApplicationDependencies.getApplication() + private val context: Context = AppDependencies.application fun getBlockedCount(consumer: (Int) -> Unit) { SignalExecutors.BOUNDED.execute { @@ -26,7 +26,7 @@ class PrivacySettingsRepository { SignalExecutors.BOUNDED.execute { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( MultiDeviceConfigurationUpdateJob( TextSecurePreferences.isReadReceiptsEnabled(context), TextSecurePreferences.isTypingIndicatorsEnabled(context), @@ -42,7 +42,7 @@ class PrivacySettingsRepository { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( MultiDeviceConfigurationUpdateJob( TextSecurePreferences.isReadReceiptsEnabled(context), enabled, @@ -52,7 +52,7 @@ class PrivacySettingsRepository { ) if (!enabled) { - ApplicationDependencies.getTypingStatusRepository().clear() + AppDependencies.typingStatusRepository.clear() } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsViewModel.kt index dcaa3019e0..0761f5edfe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/PrivacySettingsViewModel.kt @@ -4,7 +4,7 @@ import android.content.SharedPreferences import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.TextSecurePreferences import org.thoughtcrime.securesms.util.livedata.Store @@ -43,7 +43,7 @@ class PrivacySettingsViewModel( } fun setScreenLockTimeout(seconds: Long) { - TextSecurePreferences.setScreenLockTimeout(ApplicationDependencies.getApplication(), seconds) + TextSecurePreferences.setScreenLockTimeout(AppDependencies.application, seconds) refresh() } @@ -68,7 +68,7 @@ class PrivacySettingsViewModel( } fun setObsoletePasswordTimeout(minutes: Int) { - TextSecurePreferences.setPassphraseTimeoutInterval(ApplicationDependencies.getApplication(), minutes) + TextSecurePreferences.setPassphraseTimeoutInterval(AppDependencies.application, minutes) refresh() } @@ -79,16 +79,16 @@ class PrivacySettingsViewModel( private fun getState(): PrivacySettingsState { return PrivacySettingsState( blockedCount = 0, - readReceipts = TextSecurePreferences.isReadReceiptsEnabled(ApplicationDependencies.getApplication()), - typingIndicators = TextSecurePreferences.isTypingIndicatorsEnabled(ApplicationDependencies.getApplication()), - screenLock = TextSecurePreferences.isScreenLockEnabled(ApplicationDependencies.getApplication()), - screenLockActivityTimeout = TextSecurePreferences.getScreenLockTimeout(ApplicationDependencies.getApplication()), - screenSecurity = TextSecurePreferences.isScreenSecurityEnabled(ApplicationDependencies.getApplication()), - incognitoKeyboard = TextSecurePreferences.isIncognitoKeyboardEnabled(ApplicationDependencies.getApplication()), + readReceipts = TextSecurePreferences.isReadReceiptsEnabled(AppDependencies.application), + typingIndicators = TextSecurePreferences.isTypingIndicatorsEnabled(AppDependencies.application), + screenLock = TextSecurePreferences.isScreenLockEnabled(AppDependencies.application), + screenLockActivityTimeout = TextSecurePreferences.getScreenLockTimeout(AppDependencies.application), + screenSecurity = TextSecurePreferences.isScreenSecurityEnabled(AppDependencies.application), + incognitoKeyboard = TextSecurePreferences.isIncognitoKeyboardEnabled(AppDependencies.application), paymentLock = SignalStore.paymentsValues().paymentLock, - isObsoletePasswordEnabled = !TextSecurePreferences.isPasswordDisabled(ApplicationDependencies.getApplication()), - isObsoletePasswordTimeoutEnabled = TextSecurePreferences.isPassphraseTimeoutEnabled(ApplicationDependencies.getApplication()), - obsoletePasswordTimeout = TextSecurePreferences.getPassphraseTimeoutInterval(ApplicationDependencies.getApplication()), + isObsoletePasswordEnabled = !TextSecurePreferences.isPasswordDisabled(AppDependencies.application), + isObsoletePasswordTimeoutEnabled = TextSecurePreferences.isPassphraseTimeoutEnabled(AppDependencies.application), + obsoletePasswordTimeout = TextSecurePreferences.getPassphraseTimeoutInterval(AppDependencies.application), universalExpireTimer = SignalStore.settings().universalExpireTimer ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsRepository.kt index 86e0807d04..dd49e1c740 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsRepository.kt @@ -6,7 +6,7 @@ import com.google.firebase.installations.FirebaseInstallations import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceConfigurationUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -24,7 +24,7 @@ class AdvancedPrivacySettingsRepository(private val context: Context) { fun disablePushMessages(consumer: (DisablePushMessagesResult) -> Unit) { SignalExecutors.BOUNDED.execute { val result = try { - val accountManager = ApplicationDependencies.getSignalServiceAccountManager() + val accountManager = AppDependencies.signalServiceAccountManager try { accountManager.setGcmId(Optional.empty()) } catch (e: AuthorizationFailedException) { @@ -53,7 +53,7 @@ class AdvancedPrivacySettingsRepository(private val context: Context) { SignalExecutors.BOUNDED.execute { SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( MultiDeviceConfigurationUpdateJob( TextSecurePreferences.isReadReceiptsEnabled(context), TextSecurePreferences.isTypingIndicatorsEnabled(context), diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt index 81fa79b7d8..721a2450eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt @@ -6,7 +6,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.disposables.CompositeDisposable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.RefreshAttributesJob import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob @@ -32,7 +32,7 @@ class AdvancedPrivacySettingsViewModel( init { disposables.add( - ApplicationDependencies.getSignalWebSocket().webSocketState + AppDependencies.webSocketObserver .observeOn(AndroidSchedulers.mainThread()) .subscribe { refresh() } ) @@ -51,14 +51,14 @@ class AdvancedPrivacySettingsViewModel( fun setAllowSealedSenderFromAnyone(enabled: Boolean) { sharedPreferences.edit().putBoolean(TextSecurePreferences.UNIVERSAL_UNIDENTIFIED_ACCESS, enabled).apply() - ApplicationDependencies.getJobManager().startChain(RefreshAttributesJob()).then(RefreshOwnProfileJob()).enqueue() + AppDependencies.jobManager.startChain(RefreshAttributesJob()).then(RefreshOwnProfileJob()).enqueue() refresh() } fun setCensorshipCircumventionEnabled(enabled: Boolean) { SignalStore.settings().setCensorshipCircumventionEnabled(enabled) SignalStore.misc().isServiceReachableWithoutCircumvention = false - ApplicationDependencies.resetAllNetworkConnections() + AppDependencies.resetNetwork() refresh() } @@ -75,14 +75,14 @@ class AdvancedPrivacySettingsViewModel( return AdvancedPrivacySettingsState( isPushEnabled = SignalStore.account().isRegistered, - alwaysRelayCalls = TextSecurePreferences.isTurnOnly(ApplicationDependencies.getApplication()), + alwaysRelayCalls = TextSecurePreferences.isTurnOnly(AppDependencies.application), censorshipCircumventionState = censorshipCircumventionState, censorshipCircumventionEnabled = getCensorshipCircumventionEnabled(censorshipCircumventionState), showSealedSenderStatusIcon = TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled( - ApplicationDependencies.getApplication() + AppDependencies.application ), allowSealedSenderFromAnyone = TextSecurePreferences.isUniversalUnidentifiedAccess( - ApplicationDependencies.getApplication() + AppDependencies.application ), false ) @@ -90,10 +90,10 @@ class AdvancedPrivacySettingsViewModel( private fun getCensorshipCircumventionState(): CensorshipCircumventionState { val countryCode: Int = PhoneNumberFormatter.getLocalCountryCode() - val isCountryCodeCensoredByDefault: Boolean = ApplicationDependencies.getSignalServiceNetworkAccess().isCountryCodeCensoredByDefault(countryCode) + val isCountryCodeCensoredByDefault: Boolean = AppDependencies.signalServiceNetworkAccess.isCountryCodeCensoredByDefault(countryCode) val enabledState: SettingsValues.CensorshipCircumventionEnabled = SignalStore.settings().censorshipCircumventionEnabled - val hasInternet: Boolean = NetworkConstraint.isMet(ApplicationDependencies.getApplication()) - val websocketConnected: Boolean = ApplicationDependencies.getSignalWebSocket().webSocketState.firstOrError().blockingGet() == WebSocketConnectionState.CONNECTED + val hasInternet: Boolean = NetworkConstraint.isMet(AppDependencies.application) + val websocketConnected: Boolean = AppDependencies.signalWebSocket.webSocketState.firstOrError().blockingGet() == WebSocketConnectionState.CONNECTED return when { SignalStore.internalValues().allowChangingCensorshipSetting() -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt index 8ddc73e187..27d028c017 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/pnp/PhoneNumberPrivacySettingsViewModel.kt @@ -4,7 +4,7 @@ import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.ViewModel import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ProfileUploadJob import org.thoughtcrime.securesms.jobs.RefreshAttributesJob import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob @@ -46,14 +46,14 @@ class PhoneNumberPrivacySettingsViewModel : ViewModel() { SignalStore.phoneNumberPrivacy().phoneNumberSharingMode = if (phoneNumberSharingEnabled) PhoneNumberSharingMode.EVERYBODY else PhoneNumberSharingMode.NOBODY SignalDatabase.recipients.markNeedsSync(Recipient.self().id) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add(ProfileUploadJob()) + AppDependencies.jobManager.add(ProfileUploadJob()) refresh() } private fun setDiscoverableByPhoneNumber(discoverable: Boolean) { SignalStore.phoneNumberPrivacy().phoneNumberDiscoverabilityMode = if (discoverable) PhoneNumberDiscoverabilityMode.DISCOVERABLE else PhoneNumberDiscoverabilityMode.NOT_DISCOVERABLE StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().startChain(RefreshAttributesJob()).then(RefreshOwnProfileJob()).enqueue() + AppDependencies.jobManager.startChain(RefreshAttributesJob()).then(RefreshOwnProfileJob()).enqueue() refresh() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt index a5df9d68cd..5f0b363caf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/storage/ManageStorageSettingsViewModel.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.MediaTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.SignalDatabase.Companion.media import org.thoughtcrime.securesms.database.ThreadTable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.KeepMessagesDuration import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -42,13 +42,13 @@ class ManageStorageSettingsViewModel : ViewModel() { fun deleteChatHistory() { viewModelScope.launch { SignalDatabase.threads.deleteAllConversations() - ApplicationDependencies.getMessageNotifier().updateNotification(ApplicationDependencies.getApplication()) + AppDependencies.messageNotifier.updateNotification(AppDependencies.application) } } fun setKeepMessagesDuration(newDuration: KeepMessagesDuration) { SignalStore.settings().setKeepMessagesForDuration(newDuration) - ApplicationDependencies.getTrimThreadsByDateManager().scheduleIfNecessary() + AppDependencies.trimThreadsByDateManager.scheduleIfNecessary() store.update { it.copy(keepMessagesDuration = newDuration) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt index 3a32995433..55fad99416 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/InAppPaymentsRepository.kt @@ -7,7 +7,6 @@ package org.thoughtcrime.securesms.components.settings.app.subscription import android.annotation.SuppressLint import androidx.annotation.WorkerThread -import com.squareup.wire.get import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Completable import io.reactivex.rxjava3.core.Flowable @@ -37,7 +36,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData import org.thoughtcrime.securesms.database.model.databaseprotos.PendingOneTimeDonation -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.Util import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription @@ -147,9 +146,9 @@ object InAppPaymentsRepository { } } - ApplicationDependencies.getDatabaseObserver().registerInAppPaymentObserver(observer) + AppDependencies.databaseObserver.registerInAppPaymentObserver(observer) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) + AppDependencies.databaseObserver.unregisterObserver(observer) } SignalDatabase.inAppPayments.getById(inAppPaymentId)?.also { @@ -415,8 +414,8 @@ object InAppPaymentsRepository { emitter.onNext(Optional.ofNullable(latestInAppPayment)) } - ApplicationDependencies.getDatabaseObserver().registerInAppPaymentObserver(observer) - emitter.setCancellable { ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) } + AppDependencies.databaseObserver.registerInAppPaymentObserver(observer) + emitter.setCancellable { AppDependencies.databaseObserver.unregisterObserver(observer) } }.switchMap { inAppPaymentOptional -> val inAppPayment = inAppPaymentOptional.getOrNull() ?: return@switchMap jobStatusObservable @@ -504,7 +503,7 @@ object InAppPaymentsRepository { return try { val receiptSerial = ReceiptSerial(randomBytes) - val operations = ApplicationDependencies.getClientZkReceiptOperations() + val operations = AppDependencies.clientZkReceiptOperations operations.createReceiptCredentialRequestContext(secureRandom, receiptSerial) } catch (e: InvalidInputException) { Log.e(TAG, "Failed to create credential.", e) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt index 010d3b7a67..ced2d5bd7a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/OneTimeInAppPaymentRepository.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.RecipientTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.InAppPaymentOneTimeContextJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -75,7 +75,7 @@ class OneTimeInAppPaymentRepository(private val donationsService: DonationsServi fun getBoostBadge(): Single { return Single .fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) } .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt index cc1e0a43db..66034e2093 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/RecurringInAppPaymentRepository.kt @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.InAppPaymentKeepAliveJob import org.thoughtcrime.securesms.jobs.InAppPaymentRecurringContextJob import org.thoughtcrime.securesms.jobs.MultiDeviceSubscriptionSyncRequestJob @@ -190,7 +190,7 @@ class RecurringInAppPaymentRepository(private val donationsService: DonationsSer Log.d(TAG, "Attempting to set user subscription level to $subscriptionLevel", true) Single .fromCallable { - ApplicationDependencies.getDonationsService().updateSubscriptionLevel( + AppDependencies.donationsService.updateSubscriptionLevel( subscriber.subscriberId, subscriptionLevel, subscriber.currencyCode, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/StripeRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/StripeRepository.kt index 067fa12d0a..a6949e884c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/StripeRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/StripeRepository.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.errors.Do import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.storage.StorageSyncHelper @@ -51,8 +51,8 @@ class StripeRepository( ) : StripeApi.PaymentIntentFetcher, StripeApi.SetupIntentHelper { private val googlePayApi = GooglePayApi(activity, StripeApi.Gateway(Environment.Donations.STRIPE_CONFIGURATION), Environment.Donations.GOOGLE_PAY_CONFIGURATION) - private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, ApplicationDependencies.getOkHttpClient()) - private val recurringInAppPaymentRepository = RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService()) + private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, AppDependencies.okHttpClient) + private val recurringInAppPaymentRepository = RecurringInAppPaymentRepository(AppDependencies.donationsService) fun isGooglePayAvailable(): Completable { return googlePayApi.queryIsReadyToPay() @@ -148,8 +148,8 @@ class StripeRepository( Log.d(TAG, "Fetching payment intent from Signal service for $price... (Locale.US minimum precision: ${price.minimumUnitPrecisionString})") return Single .fromCallable { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .createDonationIntentWithAmount(price.minimumUnitPrecisionString, price.currency.currencyCode, level, sourceType.paymentMethod) } .flatMap(ServiceResponse::flattenResult) @@ -173,8 +173,8 @@ class StripeRepository( return Single.fromCallable { InAppPaymentsRepository.requireSubscriber(subscriberType) } .flatMap { Single.fromCallable { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .createStripeSubscriptionPaymentMethod(it.subscriberId, paymentSourceType.paymentMethod) } } @@ -240,12 +240,12 @@ class StripeRepository( Log.d(TAG, "Setting default payment method via Signal service...") Single.fromCallable { if (paymentSourceType == PaymentSourceType.Stripe.IDEAL) { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .setDefaultIdealPaymentMethod(subscriberRecord.subscriberId, setupIntentId) } else { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .setDefaultStripePaymentMethod(subscriberRecord.subscriberId, paymentMethodId) } }.flatMap(ServiceResponse::flattenResult).ignoreElement().doOnComplete { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/completed/TerminalDonationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/completed/TerminalDonationRepository.kt index 86b48c33dc..4ea597ea44 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/completed/TerminalDonationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/completed/TerminalDonationRepository.kt @@ -10,12 +10,12 @@ import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.badges.Badges import org.thoughtcrime.securesms.badges.models.Badge import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.whispersystems.signalservice.api.services.DonationsService import java.util.Locale class TerminalDonationRepository( - private val donationsService: DonationsService = ApplicationDependencies.getDonationsService() + private val donationsService: DonationsService = AppDependencies.donationsService ) { fun getBadge(terminalDonation: TerminalDonationQueue.TerminalDonation): Single { return Single diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt index ccda2094fc..4f9834def9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData import org.thoughtcrime.securesms.database.model.databaseprotos.PendingOneTimeDonation import org.thoughtcrime.securesms.database.model.isExpired -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.subscription.LevelUpdate @@ -421,8 +421,8 @@ class DonateToSignalViewModel( class Factory( private val startType: InAppPaymentTable.Type, - private val subscriptionsRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService()), - private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(ApplicationDependencies.getDonationsService()) + private val subscriptionsRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(AppDependencies.donationsService), + private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(AppDependencies.donationsService) ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return modelClass.cast(DonateToSignalViewModel(startType, subscriptionsRepository, oneTimeInAppPaymentRepository)) as T diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorViewModel.kt index 5b1d69c6be..c73e6f93f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorViewModel.kt @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppDona import org.thoughtcrime.securesms.components.settings.app.subscription.StripeRepository import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.rx.RxStore @@ -69,7 +69,7 @@ class GatewaySelectorViewModel( class Factory( private val args: GatewaySelectorBottomSheetArgs, private val repository: StripeRepository, - private val gatewaySelectorRepository: GatewaySelectorRepository = GatewaySelectorRepository(ApplicationDependencies.getDonationsService()) + private val gatewaySelectorRepository: GatewaySelectorRepository = GatewaySelectorRepository(AppDependencies.donationsService) ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return modelClass.cast(GatewaySelectorViewModel(args, repository, gatewaySelectorRepository)) as T diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalPaymentInProgressViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalPaymentInProgressViewModel.kt index 8619f15554..06e6496efd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalPaymentInProgressViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/paypal/PayPalPaymentInProgressViewModel.kt @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.errors.Do import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceSubscriptionSyncRequestJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -192,9 +192,9 @@ class PayPalPaymentInProgressViewModel( } class Factory( - private val payPalRepository: PayPalRepository = PayPalRepository(ApplicationDependencies.getDonationsService()), - private val recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService()), - private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(ApplicationDependencies.getDonationsService()) + private val payPalRepository: PayPalRepository = PayPalRepository(AppDependencies.donationsService), + private val recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(AppDependencies.donationsService), + private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(AppDependencies.donationsService) ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return modelClass.cast(PayPalPaymentInProgressViewModel(payPalRepository, recurringInAppPaymentRepository, oneTimeInAppPaymentRepository)) as T diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/StripePaymentInProgressViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/StripePaymentInProgressViewModel.kt index a3cd06f267..bb967a16aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/StripePaymentInProgressViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/stripe/StripePaymentInProgressViewModel.kt @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.errors.to import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceSubscriptionSyncRequestJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -305,8 +305,8 @@ class StripePaymentInProgressViewModel( class Factory( private val stripeRepository: StripeRepository, - private val recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService()), - private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(ApplicationDependencies.getDonationsService()) + private val recurringInAppPaymentRepository: RecurringInAppPaymentRepository = RecurringInAppPaymentRepository(AppDependencies.donationsService), + private val oneTimeInAppPaymentRepository: OneTimeInAppPaymentRepository = OneTimeInAppPaymentRepository(AppDependencies.donationsService) ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return modelClass.cast(StripePaymentInProgressViewModel(stripeRepository, recurringInAppPaymentRepository, oneTimeInAppPaymentRepository)) as T diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateRepository.kt index 16495a83a9..e3100be824 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/mandate/BankTransferMandateRepository.kt @@ -8,14 +8,14 @@ package org.thoughtcrime.securesms.components.settings.app.subscription.donate.t import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.donations.PaymentSourceType -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.Locale class BankTransferMandateRepository { fun getMandate(paymentSourceType: PaymentSourceType.Stripe): Single { return Single - .fromCallable { ApplicationDependencies.getDonationsService().getBankMandate(Locale.getDefault(), paymentSourceType.paymentMethod) } + .fromCallable { AppDependencies.donationsService.getBankMandate(Locale.getDefault(), paymentSourceType.paymentMethod) } .flatMap { it.flattenResult() } .map { it.mandate } .subscribeOn(Schedulers.io()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt index da49bf16f0..023e34a7d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/DonationRedemptionJobWatcher.kt @@ -7,7 +7,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.DonationS import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatMoney import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.Stripe3DSData import org.thoughtcrime.securesms.database.model.databaseprotos.PendingOneTimeDonation -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.persistence.JobSpec import org.thoughtcrime.securesms.jobs.BoostReceiptRequestResponseJob import org.thoughtcrime.securesms.jobs.DonationReceiptRedemptionJob @@ -58,8 +58,8 @@ object DonationRedemptionJobWatcher { RedemptionType.ONE_TIME -> DonationReceiptRedemptionJob.ONE_TIME_QUEUE } - val donationJobSpecs = ApplicationDependencies - .getJobManager() + val donationJobSpecs = AppDependencies + .jobManager .find { it.queueKey?.startsWith(queue) == true } .sortedBy { it.createTime } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt index ce9952d994..dfd9f9c5bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.components.settings.models.IndeterminateLoadin import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.model.databaseprotos.DonationErrorValue import org.thoughtcrime.securesms.database.model.databaseprotos.PendingOneTimeDonation -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.help.HelpFragment import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.payments.FiatMoneyUtil @@ -70,7 +70,7 @@ class ManageDonationsFragment : private val viewModel: ManageDonationsViewModel by viewModels( factoryProducer = { - ManageDonationsViewModel.Factory(RecurringInAppPaymentRepository(ApplicationDependencies.getDonationsService())) + ManageDonationsViewModel.Factory(RecurringInAppPaymentRepository(AppDependencies.donationsService)) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt index a4401317e5..44dd54d09e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailRepository.kt @@ -5,15 +5,15 @@ import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.components.settings.app.subscription.getSubscriptionLevels import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DonationReceiptRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.Locale class DonationReceiptDetailRepository { fun getSubscriptionLevelName(subscriptionLevel: Int): Single { return Single .fromCallable { - ApplicationDependencies - .getDonationsService() + AppDependencies + .donationsService .getDonationsConfiguration(Locale.getDefault()) } .flatMap { it.flattenResult() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt index 31615240bc..e1bdb0527b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListRepository.kt @@ -6,13 +6,13 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.getBoostB import org.thoughtcrime.securesms.components.settings.app.subscription.getGiftBadges import org.thoughtcrime.securesms.components.settings.app.subscription.getSubscriptionLevels import org.thoughtcrime.securesms.database.model.DonationReceiptRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.Locale class DonationReceiptListRepository { fun getBadges(): Single> { return Single.fromCallable { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .getDonationsConfiguration(Locale.getDefault()) }.map { response -> if (response.result.isPresent) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/updates/AppUpdatesSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/updates/AppUpdatesSettingsFragment.kt index 8f6d0808cf..66937ecd2b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/updates/AppUpdatesSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/updates/AppUpdatesSettingsFragment.kt @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.components.settings.DSLConfiguration import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.configure -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ApkUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -45,7 +45,7 @@ class AppUpdatesSettingsFragment : DSLSettingsFragment(R.string.preferences_app_ title = DSLSettingsText.from("Check for updates"), summary = DSLSettingsText.from("Last checked on: $lastSuccessfulUpdateString"), onClick = { - ApplicationDependencies.getJobManager().add(ApkUpdateJob()) + AppDependencies.jobManager.add(ApkUpdateJob()) } ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkSettingsViewModel.kt index 1630ee32a8..1d41fd8007 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/usernamelinks/main/UsernameLinkSettingsViewModel.kt @@ -40,7 +40,7 @@ import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCodeDa import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCodeState import org.thoughtcrime.securesms.components.settings.app.usernamelinks.drawQr import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameLinkSettingsState.ActiveTab -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.profiles.manage.UsernameRepository import org.thoughtcrime.securesms.profiles.manage.UsernameRepository.toLink @@ -104,7 +104,7 @@ class UsernameLinkSettingsViewModel : ViewModel() { } fun onUsernameLinkReset() { - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { _state.value = _state.value.copy( usernameLinkResetResult = UsernameLinkResetResult.NetworkUnavailable ) @@ -298,7 +298,7 @@ class UsernameLinkSettingsViewModel : ViewModel() { } // Draw the signal logo -- unfortunately can't have the normal QR code drawing handle it because it requires a composable ImageBitmap - BitmapFactory.decodeResource(ApplicationDependencies.getApplication().resources, R.drawable.qrcode_logo).also { logoBitmap -> + BitmapFactory.decodeResource(AppDependencies.application.resources, R.drawable.qrcode_logo).also { logoBitmap -> val tintedPaint = Paint().apply { colorFilter = PorterDuffColorFilter(state.qrCodeColorScheme.foregroundColor.toArgb(), PorterDuff.Mode.SRC_IN) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsRepository.kt index ae48fef267..9d432c6dd0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsRepository.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.model.GroupRecord import org.thoughtcrime.securesms.database.model.IdentityRecord import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.StoryViewState -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupProtoUtil import org.thoughtcrime.securesms.groups.LiveGroup @@ -93,7 +93,7 @@ class ConversationSettingsRepository( fun getIdentity(recipientId: RecipientId, consumer: (IdentityRecord?) -> Unit) { SignalExecutors.BOUNDED.execute { if (SignalStore.account().aci != null && SignalStore.account().pni != null) { - consumer(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId).orElse(null)) + consumer(AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipientId).orElse(null)) } else { consumer(null) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt index 4277d3a48f..08403a7c03 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/ConversationSettingsViewModel.kt @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.components.settings.conversation.preferences.L import org.thoughtcrime.securesms.database.MediaTable import org.thoughtcrime.securesms.database.RecipientTable import org.thoughtcrime.securesms.database.model.StoryViewState -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.LiveGroup import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason @@ -50,7 +50,7 @@ sealed class ConversationSettingsViewModel( protected val store = Store( ConversationSettingsState( specificSettingsState = specificSettingsState, - isDeprecatedOrUnregistered = SignalStore.misc().isClientDeprecated || TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()) + isDeprecatedOrUnregistered = SignalStore.misc().isClientDeprecated || TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application) ) ) protected val internalEvents: Subject = PublishSubject.create() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt index 44755d17bf..0a9dee33f3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.RecipientRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.OutgoingMessage @@ -219,13 +219,13 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( if (recipient.hasAci) { SignalDatabase.sessions.deleteAllFor(serviceId = SignalStore.account().requireAci(), addressName = recipient.requireAci().toString()) SignalDatabase.sessions.deleteAllFor(serviceId = SignalStore.account().requirePni(), addressName = recipient.requireAci().toString()) - ApplicationDependencies.getProtocolStore().aci().identities().delete(recipient.requireAci().toString()) + AppDependencies.protocolStore.aci().identities().delete(recipient.requireAci().toString()) } if (recipient.hasPni) { SignalDatabase.sessions.deleteAllFor(serviceId = SignalStore.account().requireAci(), addressName = recipient.requirePni().toString()) SignalDatabase.sessions.deleteAllFor(serviceId = SignalStore.account().requirePni(), addressName = recipient.requirePni().toString()) - ApplicationDependencies.getProtocolStore().aci().identities().delete(recipient.requirePni().toString()) + AppDependencies.protocolStore.aci().identities().delete(recipient.requirePni().toString()) } startActivity(MainActivity.clearTop(requireContext())) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerPaint.kt b/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerPaint.kt index a6f9782a4b..2644868b07 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerPaint.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerPaint.kt @@ -11,7 +11,7 @@ import androidx.annotation.MainThread import org.signal.core.util.DimensionUnit import org.signal.core.util.dp import org.thoughtcrime.securesms.components.spoiler.SpoilerPaint.update -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.Util import kotlin.random.Random @@ -28,9 +28,9 @@ object SpoilerPaint { */ var shader: BitmapShader? = null - private val WIDTH = if (Util.isLowMemory(ApplicationDependencies.getApplication())) 50.dp else 100.dp - private val HEIGHT = if (Util.isLowMemory(ApplicationDependencies.getApplication())) 20.dp else 40.dp - private val PARTICLES_PER_PIXEL = if (Util.isLowMemory(ApplicationDependencies.getApplication())) 0.001f else 0.002f + private val WIDTH = if (Util.isLowMemory(AppDependencies.application)) 50.dp else 100.dp + private val HEIGHT = if (Util.isLowMemory(AppDependencies.application)) 20.dp else 40.dp + private val PARTICLES_PER_PIXEL = if (Util.isLowMemory(AppDependencies.application)) 0.001f else 0.002f private var shaderBitmap: Bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ALPHA_8) private var bufferBitmap: Bitmap = Bitmap.createBitmap(WIDTH, HEIGHT, Bitmap.Config.ALPHA_8) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackService.java b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackService.java index 8ed7ba2dec..31f6a30018 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackService.java @@ -40,7 +40,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.MultiDeviceViewedUpdateJob; import org.thoughtcrime.securesms.jobs.SendViewedReceiptJob; import org.thoughtcrime.securesms.mms.PartUriParser; @@ -89,7 +89,7 @@ public class VoiceNotePlaybackService extends MediaSessionService { setMediaNotificationProvider(new VoiceNoteMediaNotificationProvider(this)); setListener(new MediaSessionServiceListener()); - ApplicationDependencies.getDatabaseObserver().registerAttachmentObserver(attachmentDeletionObserver); + AppDependencies.getDatabaseObserver().registerAttachmentObserver(attachmentDeletionObserver); } @Override @@ -102,7 +102,7 @@ public class VoiceNotePlaybackService extends MediaSessionService { @Override public void onDestroy() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(attachmentDeletionObserver); + AppDependencies.getDatabaseObserver().unregisterObserver(attachmentDeletionObserver); player.release(); mediaSession.release(); mediaSession = null; @@ -321,10 +321,10 @@ public class VoiceNotePlaybackService extends MediaSessionService { MessageTable.MarkedMessageInfo markedMessageInfo = messageDatabase.setIncomingMessageViewed(messageId); if (markedMessageInfo != null) { - ApplicationDependencies.getJobManager().add(new SendViewedReceiptJob(markedMessageInfo.getThreadId(), - recipientId, - markedMessageInfo.getSyncMessageId().getTimetamp(), - new MessageId(messageId))); + AppDependencies.getJobManager().add(new SendViewedReceiptJob(markedMessageInfo.getThreadId(), + recipientId, + markedMessageInfo.getSyncMessageId().getTimetamp(), + new MessageId(messageId))); MultiDeviceViewedUpdateJob.enqueue(Collections.singletonList(markedMessageInfo.getSyncMessageId())); } }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallLinkProfileKeySender.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallLinkProfileKeySender.kt index d23d985857..8bb277b011 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallLinkProfileKeySender.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallLinkProfileKeySender.kt @@ -7,7 +7,7 @@ package org.thoughtcrime.securesms.components.webrtc import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.identity.IdentityRecordList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ProfileKeySendJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -34,7 +34,7 @@ object CallLinkProfileKeySender { if (toSendMessagesTo.isNotEmpty()) { Log.i(TAG, "Sending profile key to $toSendMessagesTo users.") val job = ProfileKeySendJob.createForCallLinks(toSendMessagesTo.toList()) - ApplicationDependencies.getJobManager().add(job) + AppDependencies.jobManager.add(job) } else { Log.i(TAG, "No users to send profile key to.") } @@ -46,8 +46,8 @@ object CallLinkProfileKeySender { fun onRecipientsUpdated(recipients: Set) { val nonBlockedNonSelfRecipients: List = recipients.filterNot { it.isBlocked || it.isSelf } - val identityRecords: IdentityRecordList = ApplicationDependencies - .getProtocolStore() + val identityRecords: IdentityRecordList = AppDependencies + .protocolStore .aci() .identities() .getIdentityRecords(nonBlockedNonSelfRecipients) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallOverflowPopupWindow.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallOverflowPopupWindow.kt index c5d3aad54f..95d0073164 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallOverflowPopupWindow.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/CallOverflowPopupWindow.kt @@ -17,7 +17,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.widget.PopupWindowCompat import androidx.fragment.app.FragmentActivity import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.util.visible @@ -36,14 +36,14 @@ class CallOverflowPopupWindow(private val activity: FragmentActivity, parentView val root = (contentView as LinearLayout) val reactionScrubber = root.findViewById(R.id.reaction_scrubber) reactionScrubber.initialize(activity.supportFragmentManager) { - ApplicationDependencies.getSignalCallManager().react(it) + AppDependencies.signalCallManager.react(it) dismiss() } if (FeatureFlags.groupCallRaiseHand()) { val raiseHand = root.findViewById(R.id.raise_hand_layout_parent) raiseHand.visible = true raiseHand.setOnClickListener { - ApplicationDependencies.getSignalCallManager().raiseHand(!raisedHandDelegate.isSelfHandRaised()) + AppDependencies.signalCallManager.raiseHand(!raisedHandDelegate.isSelfHandRaised()) dismiss() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PendingParticipantsBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PendingParticipantsBottomSheet.kt index 15b87d897f..4cd1827d92 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PendingParticipantsBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PendingParticipantsBottomSheet.kt @@ -48,7 +48,7 @@ import org.signal.core.ui.theme.SignalTheme import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.service.webrtc.PendingParticipantCollection import org.thoughtcrime.securesms.util.activityViewModel @@ -96,11 +96,11 @@ class PendingParticipantsBottomSheet : ComposeBottomSheetDialogFragment() { } private fun onApprove(recipient: Recipient) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(recipient.id) + AppDependencies.signalCallManager.setCallLinkJoinRequestAccepted(recipient.id) } private fun onDeny(recipient: Recipient) { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(recipient.id) + AppDependencies.signalCallManager.setCallLinkJoinRequestRejected(recipient.id) } private fun onApproveAll() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPicker31.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPicker31.kt index b679ad0db8..98c5fd7226 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPicker31.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPicker31.kt @@ -8,7 +8,7 @@ import androidx.annotation.RequiresApi import androidx.fragment.app.FragmentActivity import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.webrtc.audio.AudioDeviceMapping import org.thoughtcrime.securesms.webrtc.audio.SignalAudioManager @@ -24,7 +24,7 @@ class WebRtcAudioPicker31(private val audioOutputChangedListener: OnAudioOutputC } fun showPicker(fragmentActivity: FragmentActivity, threshold: Int, onDismiss: (DialogInterface) -> Unit): DialogInterface? { - val am = ApplicationDependencies.getAndroidCallAudioManager() + val am = AppDependencies.androidCallAudioManager if (am.availableCommunicationDevices.isEmpty()) { Toast.makeText(fragmentActivity, R.string.WebRtcAudioOutputToggleButton_no_eligible_audio_i_o_detected, Toast.LENGTH_LONG).show() return null diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallRepository.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallRepository.java index 0274cd71c0..738ba18e2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallRepository.java @@ -10,7 +10,7 @@ import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.identity.IdentityRecordList; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import java.util.Collections; @@ -35,7 +35,7 @@ class WebRtcCallRepository { recipients = Collections.singletonList(recipient); } - consumer.accept(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecords(recipients)); + consumer.accept(AppDependencies.getProtocolStore().aci().identities().getIdentityRecords(recipients)); }); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java index a180777503..453a5d02ff 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcCallViewModel.java @@ -20,7 +20,7 @@ import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.components.sensors.DeviceOrientationMonitor; import org.thoughtcrime.securesms.components.sensors.Orientation; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.CallParticipantId; import org.thoughtcrime.securesms.events.WebRtcViewModel; @@ -32,7 +32,6 @@ import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.service.webrtc.PendingParticipantCollection; import org.thoughtcrime.securesms.service.webrtc.state.WebRtcEphemeralState; -import org.thoughtcrime.securesms.util.DefaultValueLiveData; import org.thoughtcrime.securesms.util.NetworkUtil; import org.thoughtcrime.securesms.util.SingleLiveEvent; import org.thoughtcrime.securesms.util.Util; @@ -94,7 +93,7 @@ public class WebRtcCallViewModel extends ViewModel { private boolean switchOnFirstScreenShare = true; private boolean showScreenShareTip = true; - private final WebRtcCallRepository repository = new WebRtcCallRepository(ApplicationDependencies.getApplication()); + private final WebRtcCallRepository repository = new WebRtcCallRepository(AppDependencies.getApplication()); private WebRtcCallViewModel(@NonNull DeviceOrientationMonitor deviceOrientationMonitor) { orientation = deviceOrientationMonitor.getOrientation(); @@ -342,7 +341,7 @@ public class WebRtcCallViewModel extends ViewModel { events.setValue(new Event.ShowVideoTooltip()); } - if (canDisplayPopupIfNeeded && webRtcViewModel.isCellularConnection() && NetworkUtil.isConnectedWifi(ApplicationDependencies.getApplication())) { + if (canDisplayPopupIfNeeded && webRtcViewModel.isCellularConnection() && NetworkUtil.isConnectedWifi(AppDependencies.getApplication())) { canDisplayPopupIfNeeded = false; events.setValue(new Event.ShowWifiToCellularPopup()); } else if (!webRtcViewModel.isCellularConnection()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/CallInfoView.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/CallInfoView.kt index 8b8dfd8f21..4892b7586a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/CallInfoView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/CallInfoView.kt @@ -53,7 +53,7 @@ import org.signal.ringrtc.CallLinkState import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView import org.thoughtcrime.securesms.components.webrtc.WebRtcCallViewModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.CallParticipant import org.thoughtcrime.securesms.events.GroupCallRaiseHandEvent import org.thoughtcrime.securesms.events.WebRtcViewModel @@ -492,7 +492,7 @@ private fun showLowerHandDialog(context: Context) { .setTitle(R.string.CallOverflowPopupWindow__lower_your_hand) .setPositiveButton( R.string.CallOverflowPopupWindow__lower_hand - ) { _, _ -> ApplicationDependencies.getSignalCallManager().raiseHand(false) } + ) { _, _ -> AppDependencies.signalCallManager.raiseHand(false) } .setNegativeButton(R.string.CallOverflowPopupWindow__cancel, null) .show() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt index 9821059ff7..c68e517d6e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/ControlsAndInfoController.kt @@ -52,7 +52,7 @@ import org.thoughtcrime.securesms.components.webrtc.CallOverflowPopupWindow import org.thoughtcrime.securesms.components.webrtc.WebRtcCallView import org.thoughtcrime.securesms.components.webrtc.WebRtcCallViewModel import org.thoughtcrime.securesms.components.webrtc.WebRtcControls -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.CallParticipant import org.thoughtcrime.securesms.service.webrtc.links.UpdateCallLinkResult import org.thoughtcrime.securesms.util.padding @@ -411,10 +411,10 @@ class ControlsAndInfoController( .setNegativeButton(android.R.string.cancel, null) .setMessage(webRtcCallView.resources.getString(R.string.CallLinkInfoSheet__remove_s_from_the_call, callParticipant.recipient.getShortDisplayName(webRtcCallActivity))) .setPositiveButton(R.string.CallLinkInfoSheet__remove) { _, _ -> - ApplicationDependencies.getSignalCallManager().removeFromCallLink(callParticipant) + AppDependencies.signalCallManager.removeFromCallLink(callParticipant) } .setNeutralButton(R.string.CallLinkInfoSheet__block_from_call) { _, _ -> - ApplicationDependencies.getSignalCallManager().blockFromCallLink(callParticipant) + AppDependencies.signalCallManager.blockFromCallLink(callParticipant) } .show() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/RaiseHandSnackbar.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/RaiseHandSnackbar.kt index 9f64fa0f9e..cbda6ced1f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/RaiseHandSnackbar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/controls/RaiseHandSnackbar.kt @@ -48,7 +48,7 @@ import kotlinx.coroutines.delay import org.signal.core.ui.theme.SignalTheme import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.webrtc.WebRtcCallViewModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.GroupCallRaiseHandEvent import org.thoughtcrime.securesms.recipients.Recipient import java.util.concurrent.TimeUnit @@ -158,7 +158,7 @@ private fun RaiseHand( val context = LocalContext.current TextButton( onClick = { - ApplicationDependencies.getSignalCallManager().raiseHand(false) + AppDependencies.signalCallManager.raiseHand(false) }, modifier = Modifier.wrapContentWidth(Alignment.End) ) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/requests/CallLinkIncomingRequestSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/requests/CallLinkIncomingRequestSheet.kt index 10aea686a8..b6bb8aab6b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/requests/CallLinkIncomingRequestSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/requests/CallLinkIncomingRequestSheet.kt @@ -40,7 +40,7 @@ import org.signal.core.util.getParcelableCompat import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.AvatarImageView import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.BottomSheetUtil @@ -90,12 +90,12 @@ class CallLinkIncomingRequestSheet : ComposeBottomSheetDialogFragment() { } private fun onApproveEntry() { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestAccepted(recipientId) + AppDependencies.signalCallManager.setCallLinkJoinRequestAccepted(recipientId) dismissAllowingStateLoss() } private fun onDenyEntry() { - ApplicationDependencies.getSignalCallManager().setCallLinkJoinRequestRejected(recipientId) + AppDependencies.signalCallManager.setCallLinkJoinRequestRejected(recipientId) dismissAllowingStateLoss() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChipViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChipViewModel.kt index 23c7ef21cd..191df68b2b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChipViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactChipViewModel.kt @@ -9,7 +9,7 @@ import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.kotlin.plusAssign import io.reactivex.rxjava3.schedulers.Schedulers -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.rx.RxStore @@ -67,7 +67,7 @@ class ContactChipViewModel : ViewModel() { private fun getOrCreateRecipientId(selectedContact: SelectedContact): Single { return Single.fromCallable { - selectedContact.getOrCreateRecipientId(ApplicationDependencies.getApplication()) + selectedContact.getOrCreateRecipientId(AppDependencies.application) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java index c79e47d4d4..7c1cb61e9c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactsSyncAdapter.java @@ -13,13 +13,12 @@ import org.signal.contacts.SystemContactsRepository; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.contacts.sync.ContactDiscovery; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter; import org.thoughtcrime.securesms.recipients.Recipient; import org.signal.core.util.SetUtil; -import org.thoughtcrime.securesms.util.Util; import java.io.IOException; import java.util.List; @@ -81,7 +80,7 @@ public class ContactsSyncAdapter extends AbstractThreadedSyncAdapter { ContactDiscovery.refresh(context, recipients, true); } catch (IOException e) { Log.w(TAG, "Failed to refresh! Scheduling for later.", e); - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(true)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(true)); } } else { Log.i(TAG, "No new contacts. Just syncing system contact data."); diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java index b4a21ad87d..e8f37976cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/TurnOffContactJoinedNotificationsActivity.java @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.contacts; -import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -14,7 +13,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.notifications.MarkReadReceiver; import org.signal.core.util.concurrent.SimpleTask; @@ -60,7 +59,7 @@ public class TurnOffContactJoinedNotificationsActivity extends AppCompatActivity MarkReadReceiver.process(marked); SignalStore.settings().setNotifyWhenContactJoinsSignal(false); - ApplicationDependencies.getMessageNotifier().updateNotification(this); + AppDependencies.getMessageNotifier().updateNotification(this); return null; }, unused -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java index e2183bfc12..3834a11b0a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/avatars/ProfileContactPhoto.java @@ -7,9 +7,7 @@ import android.net.Uri; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.signal.libsignal.protocol.util.ByteUtil; import org.thoughtcrime.securesms.database.model.ProfileAvatarFileDetails; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.recipients.Recipient; diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/management/ContactsManagementRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/management/ContactsManagementRepository.kt index 4b73367c85..4c2a8c9472 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/management/ContactsManagementRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/management/ContactsManagementRepository.kt @@ -5,7 +5,7 @@ import androidx.annotation.CheckResult import io.reactivex.rxjava3.core.Completable import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientUtil @@ -36,7 +36,7 @@ class ContactsManagementRepository(context: Context) { val rotateProfileKey = !recipient.hasGroupsInCommon SignalDatabase.recipients.markHidden(recipient.id, rotateProfileKey, false) if (rotateProfileKey) { - ApplicationDependencies.getJobManager().add(RotateProfileKeyJob()) + AppDependencies.jobManager.add(RotateProfileKeyJob()) } }.subscribeOn(Schedulers.io()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/SafetyNumberRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/SafetyNumberRepository.kt index cd4141c470..5ba1778e1f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/SafetyNumberRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/SafetyNumberRepository.kt @@ -7,7 +7,7 @@ import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.concurrent.safeBlockingGet import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.crypto.storage.SignalIdentityKeyStore -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.IdentityUtil @@ -20,8 +20,8 @@ import java.util.concurrent.TimeUnit * Generic repository for interacting with safety numbers and fetch new ones. */ class SafetyNumberRepository( - private val profileService: ProfileService = ApplicationDependencies.getProfileService(), - private val aciIdentityStore: SignalIdentityKeyStore = ApplicationDependencies.getProtocolStore().aci().identities() + private val profileService: ProfileService = AppDependencies.profileService, + private val aciIdentityStore: SignalIdentityKeyStore = AppDependencies.protocolStore.aci().identities() ) { private val recentlyFetched: MutableMap = HashMap() diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt index ce85a6016e..f3cc57ce22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscovery.kt @@ -12,7 +12,7 @@ import org.signal.core.util.StringUtil import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.RecipientTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.SyncSystemContactLinksJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mms.IncomingMessage @@ -162,7 +162,7 @@ object ContactDiscovery { stopwatch.split("cds") if (hasContactsPermissions(context)) { - ApplicationDependencies.getJobManager().add(SyncSystemContactLinksJob()) + AppDependencies.jobManager.add(SyncSystemContactLinksJob()) val useFullSync = forceFullSystemContactSync || (removeSystemContactLinksIfMissing && result.registeredIds.size > FULL_SYSTEM_CONTACT_SYNC_THRESHOLD) syncRecipientsWithSystemContacts( @@ -218,7 +218,7 @@ object ContactDiscovery { .forEach { result -> val hour = Calendar.getInstance()[Calendar.HOUR_OF_DAY] if (hour in 9..22) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(result.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(result.threadId)) } else { Log.i(TAG, "Not notifying of a new user due to the time of day. (Hour: $hour)") } @@ -301,8 +301,8 @@ object ContactDiscovery { val protocolAddress = Recipient.resolved(id).requireServiceId().toProtocolAddress(SignalServiceAddress.DEFAULT_DEVICE_ID) - return ApplicationDependencies.getProtocolStore().aci().containsSession(protocolAddress) || - ApplicationDependencies.getProtocolStore().pni().containsSession(protocolAddress) + return AppDependencies.protocolStore.aci().containsSession(protocolAddress) || + AppDependencies.protocolStore.pni().containsSession(protocolAddress) } class RefreshResult( diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt index 4036d3f6d2..a96b2a86b7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/sync/ContactDiscoveryRefreshV2.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.InputResu import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.OutputResult import org.thoughtcrime.securesms.database.RecipientTable.CdsV2Result import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter import org.thoughtcrime.securesms.recipients.Recipient @@ -91,14 +91,14 @@ object ContactDiscoveryRefreshV2 { @Synchronized fun lookupE164(e164: String): ContactDiscovery.LookupResult? { val response: CdsiV2Service.Response = try { - ApplicationDependencies.getSignalServiceAccountManager().getRegisteredUsersWithCdsi( + AppDependencies.signalServiceAccountManager.getRegisteredUsersWithCdsi( emptySet(), setOf(e164), SignalDatabase.recipients.getAllServiceIdProfileKeyPairs(), Optional.empty(), BuildConfig.CDSI_MRENCLAVE, 10_000, - if (FeatureFlags.useLibsignalNetForCdsiLookup()) ApplicationDependencies.getLibsignalNetwork() else null + if (FeatureFlags.useLibsignalNetForCdsiLookup()) AppDependencies.libsignalNetwork else null ) { Log.i(TAG, "Ignoring token for one-off lookup.") } @@ -156,14 +156,14 @@ object ContactDiscoveryRefreshV2 { stopwatch.split("preamble") val response: CdsiV2Service.Response = try { - ApplicationDependencies.getSignalServiceAccountManager().getRegisteredUsersWithCdsi( + AppDependencies.signalServiceAccountManager.getRegisteredUsersWithCdsi( previousE164s, newE164s, SignalDatabase.recipients.getAllServiceIdProfileKeyPairs(), Optional.ofNullable(token), BuildConfig.CDSI_MRENCLAVE, timeoutMs, - if (FeatureFlags.useLibsignalNetForCdsiLookup()) ApplicationDependencies.getLibsignalNetwork() else null + if (FeatureFlags.useLibsignalNetForCdsiLookup()) AppDependencies.libsignalNetwork else null ) { tokenToSave -> stopwatch.split("network-pre-token") if (!isPartialRefresh) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java index 7e3a31cf45..5b2c32f5f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactDetailsActivity.java @@ -25,7 +25,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy; import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.RecipientTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; @@ -243,7 +243,7 @@ public class SharedContactDetailsActivity extends PassphraseRequiredActivity { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CODE_ADD_EDIT_CONTACT && contact != null) { - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(false)); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index b9aa94ee57..acc4b29c91 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -110,7 +110,7 @@ import org.thoughtcrime.securesms.database.MediaTable; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.Quote; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.PartProgressEvent; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackPolicy; import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackPolicyEnforcer; @@ -2468,10 +2468,10 @@ public final class ConversationItem extends RelativeLayout implements BindableCo Log.i(TAG, "Scheduling push attachment downloads for " + slides.size() + " items"); for (Slide slide : slides) { - ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(messageRecord.getId(), - ((DatabaseAttachment) slide.asAttachment()).attachmentId, - true, - false)); + AppDependencies.getJobManager().add(new AttachmentDownloadJob(messageRecord.getId(), + ((DatabaseAttachment) slide.asAttachment()).attachmentId, + true, + false)); } } } @@ -2492,7 +2492,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo final DatabaseAttachment databaseAttachment = (DatabaseAttachment) slide.asAttachment(); if (databaseAttachment.transferState == AttachmentTable.TRANSFER_RESTORE_OFFLOADED) { final AttachmentId attachmentId = databaseAttachment.attachmentId; - final JobManager jobManager = ApplicationDependencies.getJobManager(); + final JobManager jobManager = AppDependencies.getJobManager(); final String queue = RestoreAttachmentJob.constructQueueString(attachmentId); setup(v, slide); jobManager.add(new RestoreAttachmentJob(messageRecord.getId(), @@ -2507,7 +2507,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo }); } else if (databaseAttachment.transferState != AttachmentTable.TRANSFER_PROGRESS_STARTED) { final AttachmentId attachmentId = databaseAttachment.attachmentId; - final JobManager jobManager = ApplicationDependencies.getJobManager(); + final JobManager jobManager = AppDependencies.getJobManager(); final String queue = AttachmentDownloadJob.constructQueueString(attachmentId); setup(v, slide); jobManager.add(new AttachmentDownloadJob(messageRecord.getId(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java index 763efeefd8..780541a71b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationRepository.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.MultiDeviceViewedUpdateJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mms.PartAuthority; @@ -41,7 +41,7 @@ public class ConversationRepository { private final Context context; public ConversationRepository() { - this.context = ApplicationDependencies.getApplication(); + this.context = AppDependencies.getApplication(); } @WorkerThread diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/MarkReadHelper.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/MarkReadHelper.java index b2d747cca3..f6bdc55b64 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/MarkReadHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/MarkReadHelper.java @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.notifications.MarkReadReceiver; import org.thoughtcrime.securesms.notifications.v2.ConversationId; import org.thoughtcrime.securesms.util.Debouncer; @@ -66,7 +66,7 @@ public class MarkReadHelper { Log.d(TAG, "Marking " + infos.size() + " messages as read."); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); MarkReadReceiver.process(infos); MarkReadReceiver.processCallEvents(Collections.singletonList(conversationId), timestamp); }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesRepository.kt index 11ca7b6703..17b224c097 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesRepository.kt @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.conversation.v2.data.AttachmentHelper import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient /** @@ -21,7 +21,7 @@ class ScheduledMessagesRepository { */ fun getScheduledMessages(context: Context, threadId: Long): Observable> { return Observable.create { emitter -> - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val observer = DatabaseObserver.Observer { emitter.onNext(getScheduledMessagesSync(context, threadId)) } databaseObserver.registerScheduledMessageObserver(threadId, observer) @@ -42,7 +42,7 @@ class ScheduledMessagesRepository { attachmentHelper.fetchAttachments() - scheduledMessages = attachmentHelper.buildUpdatedModels(ApplicationDependencies.getApplication(), scheduledMessages) + scheduledMessages = attachmentHelper.buildUpdatedModels(AppDependencies.application, scheduledMessages) val replies: List = scheduledMessages .map { ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(context, it, threadRecipient) } @@ -55,7 +55,7 @@ class ScheduledMessagesRepository { */ fun getScheduledMessageCount(threadId: Long): Observable { return Observable.create { emitter -> - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val observer = DatabaseObserver.Observer { emitter.onNext(SignalDatabase.messages.getScheduledMessageCountForThread(threadId)) } databaseObserver.registerScheduledMessageObserver(threadId, observer) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/AttachmentCancelClickListener.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/AttachmentCancelClickListener.kt index 4cbda4fdd4..0a1c612243 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/AttachmentCancelClickListener.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/clicklisteners/AttachmentCancelClickListener.kt @@ -7,7 +7,7 @@ package org.thoughtcrime.securesms.conversation.clicklisteners import android.view.View import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.attachments.DatabaseAttachment -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.AttachmentCompressionJob import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob import org.thoughtcrime.securesms.jobs.AttachmentUploadJob @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.mms.SlidesClickedListener internal class AttachmentCancelClickListener : SlidesClickedListener { override fun onClick(v: View, slides: List) { Log.i(TAG, "Canceling compression/upload/download jobs for ${slides.size} items") - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager var cancelCount = 0 for (slide in slides) { val attachmentId = (slide.asAttachment() as DatabaseAttachment).attachmentId diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorsOptionsLiveData.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorsOptionsLiveData.kt index 8691b6b30e..09711f1e8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorsOptionsLiveData.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorsOptionsLiveData.kt @@ -7,7 +7,7 @@ import org.thoughtcrime.securesms.conversation.colors.ChatColorsPalette import org.thoughtcrime.securesms.database.ChatColorsTable import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.concurrent.SerialMonoLifoExecutor import java.util.concurrent.Executor @@ -18,11 +18,11 @@ class ChatColorsOptionsLiveData : LiveData>() { override fun onActive() { refreshChatColors() - ApplicationDependencies.getDatabaseObserver().registerChatColorsObserver(observer) + AppDependencies.databaseObserver.registerChatColorsObserver(observer) } override fun onInactive() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) + AppDependencies.databaseObserver.unregisterObserver(observer) } private fun refreshChatColors() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt index 34e9f3b417..2bcb8f5d3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/drafts/DraftRepository.kt @@ -30,7 +30,7 @@ import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyboard.KeyboardUtil import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mms.GifSlide @@ -50,7 +50,7 @@ import java.io.IOException import java.util.concurrent.Executor class DraftRepository( - private val context: Context = ApplicationDependencies.getApplication(), + private val context: Context = AppDependencies.application, private val threadTable: ThreadTable = SignalDatabase.threads, private val draftTable: DraftTable = SignalDatabase.drafts, private val saveDraftsExecutor: Executor = SerialMonoLifoExecutor(SignalExecutors.BOUNDED), diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt index 0e050593c8..5407996a63 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesBottomSheet.kt @@ -27,7 +27,7 @@ import org.thoughtcrime.securesms.conversation.mutiselect.MultiselectPart import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ItemDecoration import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackController import org.thoughtcrime.securesms.giph.mp4.GiphyMp4PlaybackPolicy @@ -53,7 +53,7 @@ class MessageQuotesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment() { factoryProducer = { val messageId = MessageId.deserialize(arguments?.getString(KEY_MESSAGE_ID, null) ?: throw IllegalArgumentException()) val conversationRecipientId = RecipientId.from(arguments?.getString(KEY_CONVERSATION_RECIPIENT_ID, null) ?: throw IllegalArgumentException()) - MessageQuotesViewModel.Factory(ApplicationDependencies.getApplication(), messageId, conversationRecipientId) + MessageQuotesViewModel.Factory(AppDependencies.application, messageId, conversationRecipientId) } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesRepository.kt index bbbe72a897..cc76a9106f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/quotes/MessageQuotesRepository.kt @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.Quote -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.getQuote class MessageQuotesRepository { @@ -35,7 +35,7 @@ class MessageQuotesRepository { return@create } - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val observer = DatabaseObserver.Observer { emitter.onNext(getMessagesInQuoteChainSync(application, messageId)) } databaseObserver.registerConversationObserver(threadId, observer) @@ -68,7 +68,7 @@ class MessageQuotesRepository { attachmentHelper.fetchAttachments() replyRecords = reactionHelper.buildUpdatedModels(replyRecords) - replyRecords = attachmentHelper.buildUpdatedModels(ApplicationDependencies.getApplication(), replyRecords) + replyRecords = attachmentHelper.buildUpdatedModels(AppDependencies.application, replyRecords) val replies: List = replyRecords .map { replyRecord -> @@ -98,7 +98,7 @@ class MessageQuotesRepository { add(originalRecord) fetchAttachments() } - .buildUpdatedModels(ApplicationDependencies.getApplication(), listOf(originalRecord)) + .buildUpdatedModels(AppDependencies.application, listOf(originalRecord)) .get(0) val originalMessage: ConversationMessage = ConversationMessageFactory.createWithUnresolvedData(application, originalRecord, false, threadRecipient) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryRepository.kt index 661542fca8..ab3119a686 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/edit/EditMessageHistoryRepository.kt @@ -7,7 +7,7 @@ import org.thoughtcrime.securesms.conversation.ConversationMessage import org.thoughtcrime.securesms.conversation.v2.data.AttachmentHelper import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.notifications.MarkReadReceiver import org.thoughtcrime.securesms.recipients.Recipient @@ -21,7 +21,7 @@ object EditMessageHistoryRepository { return@create } - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val observer = DatabaseObserver.Observer { emitter.onNext(getEditHistorySync(messageId)) } databaseObserver.registerConversationObserver(threadId, observer) @@ -38,7 +38,7 @@ object EditMessageHistoryRepository { } private fun getEditHistorySync(messageId: Long): List { - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application val records = SignalDatabase .messages .getMessageEditHistory(messageId) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeRepository.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeRepository.java index cb385292c1..69e2e87916 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeRepository.java @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; import org.thoughtcrime.securesms.database.model.IdentityRecord; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.safety.SafetyNumberRecipient; @@ -91,7 +91,7 @@ public final class SafetyNumberChangeRepository { List recipients = Stream.of(recipientIds).map(Recipient::resolved).toList(); - List changedRecipients = Stream.of(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecords(recipients).getIdentityRecords()) + List changedRecipients = Stream.of(AppDependencies.getProtocolStore().aci().identities().getIdentityRecords(recipients).getIdentityRecords()) .map(record -> new ChangedRecipient(Recipient.resolved(record.getRecipientId()), record)) .toList(); @@ -120,7 +120,7 @@ public final class SafetyNumberChangeRepository { @WorkerThread private TrustAndVerifyResult trustOrVerifyChangedRecipientsInternal(@NonNull List changedRecipients) { - SignalIdentityKeyStore identityStore = ApplicationDependencies.getProtocolStore().aci().identities(); + SignalIdentityKeyStore identityStore = AppDependencies.getProtocolStore().aci().identities(); try (SignalSessionLock.Lock unused = ReentrantSessionLock.INSTANCE.acquire()) { for (ChangedRecipient changedRecipient : changedRecipients) { @@ -128,9 +128,9 @@ public final class SafetyNumberChangeRepository { if (changedRecipient.isUnverified()) { Log.d(TAG, "Setting " + identityRecord.getRecipientId() + " as verified"); - ApplicationDependencies.getProtocolStore().aci().identities().setVerified(identityRecord.getRecipientId(), - identityRecord.getIdentityKey(), - IdentityTable.VerifiedStatus.DEFAULT); + AppDependencies.getProtocolStore().aci().identities().setVerified(identityRecord.getRecipientId(), + identityRecord.getIdentityKey(), + IdentityTable.VerifiedStatus.DEFAULT); } else { Log.d(TAG, "Setting " + identityRecord.getRecipientId() + " as approved"); identityStore.setApproval(identityRecord.getRecipientId(), true); @@ -171,13 +171,13 @@ public final class SafetyNumberChangeRepository { } Log.d(TAG, "Saving identity for: " + changedRecipient.getRecipient().getId() + " " + newIdentityKey.hashCode()); - SignalIdentityKeyStore.SaveResult result = ApplicationDependencies.getProtocolStore().aci().identities().saveIdentity(mismatchAddress, newIdentityKey, true); + SignalIdentityKeyStore.SaveResult result = AppDependencies.getProtocolStore().aci().identities().saveIdentity(mismatchAddress, newIdentityKey, true); Log.d(TAG, "Saving identity result: " + result); if (result == SignalIdentityKeyStore.SaveResult.NO_CHANGE) { Log.i(TAG, "Archiving sessions explicitly as they appear to be out of sync."); - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSessions(changedRecipient.getRecipient().getId(), SignalServiceAddress.DEFAULT_DEVICE_ID); - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSiblingSessions(mismatchAddress); + AppDependencies.getProtocolStore().aci().sessions().archiveSessions(changedRecipient.getRecipient().getId(), SignalServiceAddress.DEFAULT_DEVICE_ID); + AppDependencies.getProtocolStore().aci().sessions().archiveSiblingSessions(mismatchAddress); SignalDatabase.senderKeyShared().deleteAllFor(changedRecipient.getRecipient().getId()); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeViewModel.java index d6df0a9141..dccb9ec388 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/error/SafetyNumberChangeViewModel.java @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; import org.thoughtcrime.securesms.conversation.ui.error.SafetyNumberChangeRepository.SafetyNumberChangeState; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; @@ -71,7 +71,7 @@ public final class SafetyNumberChangeViewModel extends ViewModel { @Override public @NonNull T create(@NonNull Class modelClass) { - SafetyNumberChangeRepository repo = new SafetyNumberChangeRepository(ApplicationDependencies.getApplication()); + SafetyNumberChangeRepository repo = new SafetyNumberChangeRepository(AppDependencies.getApplication()); return Objects.requireNonNull(modelClass.cast(new SafetyNumberChangeViewModel(recipientIds, messageId, messageType, repo))); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt index dd4343d2bf..58209f7932 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModel.kt @@ -5,7 +5,7 @@ import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.schedulers.Schedulers import io.reactivex.rxjava3.subjects.PublishSubject import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchRepository import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -17,8 +17,8 @@ import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel * the results. */ class InlineQueryViewModel( - private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(ApplicationDependencies.getApplication()), - private val recentEmojis: RecentEmojiPageModel = RecentEmojiPageModel(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY) + private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(AppDependencies.application), + private val recentEmojis: RecentEmojiPageModel = RecentEmojiPageModel(AppDependencies.application, TextSecurePreferences.RECENT_STORAGE_KEY) ) : ViewModel() { private val querySubject: PublishSubject = PublishSubject.create() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModelV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModelV2.kt index 48a247bdb8..e22ff547dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModelV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ui/inlinequery/InlineQueryViewModelV2.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel import org.thoughtcrime.securesms.conversation.ui.mentions.MentionViewState import org.thoughtcrime.securesms.conversation.ui.mentions.MentionsPickerRepositoryV2 import org.thoughtcrime.securesms.conversation.v2.ConversationRecipientRepository -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchRepository import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -23,8 +23,8 @@ import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel class InlineQueryViewModelV2( private val recipientRepository: ConversationRecipientRepository, private val mentionsPickerRepository: MentionsPickerRepositoryV2 = MentionsPickerRepositoryV2(), - private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(ApplicationDependencies.getApplication()), - private val recentEmojis: RecentEmojiPageModel = RecentEmojiPageModel(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY) + private val emojiSearchRepository: EmojiSearchRepository = EmojiSearchRepository(AppDependencies.application), + private val recentEmojis: RecentEmojiPageModel = RecentEmojiPageModel(AppDependencies.application, TextSecurePreferences.RECENT_STORAGE_KEY) ) : ViewModel() { private val querySubject: PublishSubject = PublishSubject.create() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/AddToContactsContract.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/AddToContactsContract.kt index df69e0972b..784a690220 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/AddToContactsContract.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/AddToContactsContract.kt @@ -16,7 +16,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.contactshare.Contact import org.thoughtcrime.securesms.contactshare.ContactUtil -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientExporter @@ -33,7 +33,7 @@ class AddToContactsContract : ActivityResultContract() { override fun createIntent(context: Context, input: Intent): Intent = input override fun parseResult(resultCode: Int, intent: Intent?) { - ApplicationDependencies.getJobManager().add(DirectoryRefreshJob(false)) + AppDependencies.jobManager.add(DirectoryRefreshJob(false)) } companion object { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationDialogs.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationDialogs.kt index c99f0b53ea..64daf77bf6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationDialogs.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationDialogs.kt @@ -11,7 +11,7 @@ import org.signal.core.util.concurrent.SimpleTask import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.sms.MessageSender import org.thoughtcrime.securesms.verify.VerifyIdentityActivity @@ -50,7 +50,7 @@ object ConversationDialogs { .setPositiveButton(R.string.ConversationFragment_verify) { d, _ -> SimpleTask.run( fragment.lifecycle, - { ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.id) }, + { AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipient.id) }, { identityRecord -> identityRecord.ifPresent { VerifyIdentityActivity.startOrShowExchangeMessagesDialog(fragment.requireContext(), identityRecord.get()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index c88b48f2f8..d9fc55cfa6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -207,7 +207,7 @@ import org.thoughtcrime.securesms.database.model.Quote import org.thoughtcrime.securesms.database.model.StickerRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.databinding.V2ConversationFragmentBinding -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.GroupCallPeekEvent import org.thoughtcrime.securesms.events.ReminderUpdateEvent import org.thoughtcrime.securesms.giph.mp4.GiphyMp4ItemDecoration @@ -469,7 +469,7 @@ class ConversationFragment : private val conversationTooltips = ConversationTooltips(this) private val colorizer = Colorizer() private val textDraftSaveDebouncer = Debouncer(500) - private val recentEmojis: RecentEmojiPageModel by lazy { RecentEmojiPageModel(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY) } + private val recentEmojis: RecentEmojiPageModel by lazy { RecentEmojiPageModel(AppDependencies.application, TextSecurePreferences.RECENT_STORAGE_KEY) } private lateinit var layoutManager: ConversationLayoutManager private lateinit var markReadHelper: MarkReadHelper @@ -636,7 +636,7 @@ class ConversationFragment : groupCallViewModel.peekGroupCall() if (!args.conversationScreenType.isInBubble) { - ApplicationDependencies.getMessageNotifier().setVisibleThread(ConversationId.forConversation(args.threadId)) + AppDependencies.messageNotifier.setVisibleThread(ConversationId.forConversation(args.threadId)) } viewModel.updateIdentityRecordsInBackground() @@ -666,7 +666,7 @@ class ConversationFragment : ConversationUtil.refreshRecipientShortcuts() if (!args.conversationScreenType.isInBubble) { - ApplicationDependencies.getMessageNotifier().clearVisibleThread() + AppDependencies.messageNotifier.clearVisibleThread() } if (activity?.isFinishing == true) { @@ -1118,7 +1118,7 @@ class ConversationFragment : } }) - ApplicationDependencies.getTypingStatusRepository().getTypists(args.threadId).observe(viewLifecycleOwner) { + AppDependencies.typingStatusRepository.getTypists(args.threadId).observe(viewLifecycleOwner) { val recipient = viewModel.recipientSnapshot ?: return@observe typingIndicatorAdapter.setState( @@ -3934,7 +3934,7 @@ class ConversationFragment : return } - val typingStatusSender = ApplicationDependencies.getTypingStatusSender() + val typingStatusSender = AppDependencies.typingStatusSender if (text.length == 0) { typingStatusSender.onTypingStoppedWithNotify(args.threadId) } else if (text.length < previousText.length && previousText.contains(text)) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt index 1826355165..50dd7b0971 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationRepository.kt @@ -70,7 +70,7 @@ import org.thoughtcrime.securesms.database.model.Quote import org.thoughtcrime.securesms.database.model.ReactionRecord import org.thoughtcrime.securesms.database.model.StickerRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceViewOnceOpenJob import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob import org.thoughtcrime.securesms.keyboard.KeyboardUtil @@ -226,7 +226,7 @@ class ConversationRepository( if (preUploadResults.isEmpty()) { MessageSender.send( - ApplicationDependencies.getApplication(), + AppDependencies.application, message, threadId, MessageSender.SendType.SIGNAL, @@ -236,7 +236,7 @@ class ConversationRepository( } } else { MessageSender.sendPushWithPreUploadedMedia( - ApplicationDependencies.getApplication(), + AppDependencies.application, message, preUploadResults, threadId @@ -308,7 +308,7 @@ class ConversationRepository( ExpiredBuildReminder.isEligible() -> ExpiredBuildReminder(applicationContext) UnauthorizedReminder.isEligible(applicationContext) -> UnauthorizedReminder() ServiceOutageReminder.isEligible(applicationContext) -> { - ApplicationDependencies.getJobManager().add(ServiceOutageDetectionJob()) + AppDependencies.jobManager.add(ServiceOutageDetectionJob()) ServiceOutageReminder() } @@ -342,7 +342,7 @@ class ConversationRepository( emptyList() } - val records = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecords(recipients) + val records = AppDependencies.protocolStore.aci().identities().getIdentityRecords(recipients) val isVerified = recipient.registered == RecipientTable.RegisteredState.REGISTERED && Recipient.self().isRegistered && records.isVerified && @@ -355,7 +355,7 @@ class ConversationRepository( fun resetVerifiedStatusToDefault(unverifiedIdentities: List): Completable { return Completable.fromCallable { ReentrantSessionLock.INSTANCE.acquire().use { - val identityStore = ApplicationDependencies.getProtocolStore().aci().identities() + val identityStore = AppDependencies.protocolStore.aci().identities() for ((recipientId, identityKey) in unverifiedIdentities) { identityStore.setVerified(recipientId, identityKey, VerifiedStatus.DEFAULT) } @@ -421,8 +421,8 @@ class ConversationRepository( .createForSingleSessionOnDisk(applicationContext) attachments.deleteAttachmentFilesForViewOnceMessage(mmsMessageRecord.id) - ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary() - ApplicationDependencies.getJobManager().add(MultiDeviceViewOnceOpenJob(MessageTable.SyncMessageId(mmsMessageRecord.fromRecipient.id, mmsMessageRecord.dateSent))) + AppDependencies.viewOnceMessageManager.scheduleIfNecessary() + AppDependencies.jobManager.add(MultiDeviceViewOnceOpenJob(MessageTable.SyncMessageId(mmsMessageRecord.fromRecipient.id, mmsMessageRecord.dateSent))) tempUri } catch (e: IOException) { @@ -576,7 +576,7 @@ class ConversationRepository( fun startExpirationTimeout(expirationInfos: List) { SignalDatabase.messages.markExpireStarted(expirationInfos.map { it.id to it.expireStarted }) - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(expirationInfos) + AppDependencies.expiringMessageManager.scheduleDeletion(expirationInfos) } fun markLastSeen(threadId: Long) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 272007b078..3b678ce3c3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -52,7 +52,7 @@ import org.thoughtcrime.securesms.database.model.ReactionRecord import org.thoughtcrime.securesms.database.model.StickerRecord import org.thoughtcrime.securesms.database.model.StoryViewState import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RetrieveProfileJob import org.thoughtcrime.securesms.keyboard.KeyboardUtil import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -199,14 +199,14 @@ class ConversationViewModel( controller.onDataInvalidated() } - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageUpdateObserver) - ApplicationDependencies.getDatabaseObserver().registerMessageInsertObserver(threadId, messageInsertObserver) - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(threadId, conversationObserver) + AppDependencies.databaseObserver.registerMessageUpdateObserver(messageUpdateObserver) + AppDependencies.databaseObserver.registerMessageInsertObserver(threadId, messageInsertObserver) + AppDependencies.databaseObserver.registerConversationObserver(threadId, conversationObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageUpdateObserver) - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageInsertObserver) - ApplicationDependencies.getDatabaseObserver().unregisterObserver(conversationObserver) + AppDependencies.databaseObserver.unregisterObserver(messageUpdateObserver) + AppDependencies.databaseObserver.unregisterObserver(messageInsertObserver) + AppDependencies.databaseObserver.unregisterObserver(conversationObserver) } } }.subscribeOn(Schedulers.io()).subscribe() @@ -241,7 +241,7 @@ class ConversationViewModel( messageRequestState = messageRequestRepository.getMessageRequestState(recipient, threadId), groupRecord = groupRecord.orNull(), isClientExpired = SignalStore.misc().isClientDeprecated, - isUnauthorized = TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()), + isUnauthorized = TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application), threadContainsSms = !recipient.isRegistered && !recipient.isPushGroup && !recipient.isSelf && messageRequestRepository.threadContainsSms(threadId) ) }.doOnNext { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/ConversationDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/ConversationDataSource.kt index c2411d314a..e37f517cb3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/ConversationDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/ConversationDataSource.kt @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord.RemovedCo import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord.UniversalExpireTimerUpdate import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.messagerequests.MessageRequestRepository import org.thoughtcrime.securesms.recipients.Recipient @@ -196,7 +196,7 @@ class ConversationDataSource( return ConversationMessageFactory.createWithUnresolvedData( localContext, record, - record.getDisplayBody(ApplicationDependencies.getApplication()), + record.getDisplayBody(AppDependencies.application), extraData.mentionsById[record.id], extraData.hasBeenQuoted.contains(record.id), threadRecipient diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/MessageDataFetcher.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/MessageDataFetcher.kt index 9a0efc0084..7c55a87208 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/MessageDataFetcher.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/data/MessageDataFetcher.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.model.withAttachments import org.thoughtcrime.securesms.database.model.withCall import org.thoughtcrime.securesms.database.model.withPayment import org.thoughtcrime.securesms.database.model.withReactions -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.payments.Payment import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -52,7 +52,7 @@ object MessageDataFetcher { @WorkerThread fun fetch(messageRecords: List): ExtraMessageData { val startTimeNanos = System.nanoTime() - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application val messageIds: List = messageRecords.map { it.id } val executor = SignalExecutors.BOUNDED diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupCallViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupCallViewModel.kt index d2b15aeafa..491eebecaa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupCallViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupCallViewModel.kt @@ -10,7 +10,7 @@ import io.reactivex.rxjava3.processors.PublishProcessor import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.conversation.v2.ConversationRecipientRepository -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.GroupCallPeekEvent import org.thoughtcrime.securesms.util.rx.RxStore @@ -60,7 +60,7 @@ class ConversationGroupCallViewModel( .subscribeBy { s: ConversationGroupCallState -> if (s.recipientId != null && s.activeV2Group) { Log.i(TAG, "Peek call for ${s.recipientId}") - ApplicationDependencies.getSignalCallManager().peekGroupCall(s.recipientId) + AppDependencies.signalCallManager.peekGroupCall(s.recipientId) } } .addTo(disposables) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupViewModel.kt index 4c965aaf3d..688ec2a40d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/groups/ConversationGroupViewModel.kt @@ -16,7 +16,7 @@ import org.signal.core.util.concurrent.subscribeWithSubject import org.thoughtcrime.securesms.conversation.v2.ConversationRecipientRepository import org.thoughtcrime.securesms.database.GroupTable import org.thoughtcrime.securesms.database.model.GroupRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason import org.thoughtcrime.securesms.groups.v2.GroupBlockJoinRequestResult @@ -123,7 +123,7 @@ class ConversationGroupViewModel( .filter { it.isPushV2Group && !it.isBlocked } .subscribe { val groupId = it.requireGroupId().requireV2() - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(RequestGroupV2InfoJob(groupId)) .then(GroupV2UpdateSelfProfileKeyJob.withoutLimits(groupId)) .enqueue() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt index b07a0aaa09..5334e14c1c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt @@ -41,7 +41,7 @@ import org.thoughtcrime.securesms.conversation.v2.computed.FormattedDate import org.thoughtcrime.securesms.conversation.v2.data.ConversationMessageElement import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientForeverObserver @@ -506,7 +506,7 @@ open class V2ConversationItemTextOnlyViewHolder>( timer.startAnimation() if (record.expireStarted + record.expiresIn <= System.currentTimeMillis()) { - ApplicationDependencies.getExpiringMessageManager().checkSchedule() + AppDependencies.expiringMessageManager.checkSchedule() } } else if (!record.isOutgoing && !record.isMediaPending) { conversationContext.onStartExpirationTimeout(record) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListDataSource.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListDataSource.java index 12d0e9cbc6..a6b1eed2e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListDataSource.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListDataSource.java @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ThreadRecord; import org.thoughtcrime.securesms.database.model.UpdateDescription; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.SignalTrace; @@ -86,9 +86,9 @@ abstract class ConversationListDataSource implements PagedDataSource { + AppDependencies.getTypingStatusRepository().getTypingThreads().observe(getViewLifecycleOwner(), threadIds -> { if (threadIds == null) { threadIds = Collections.emptySet(); } @@ -1050,7 +1050,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode } else if (UnauthorizedReminder.isEligible(context)) { return Optional.of(new UnauthorizedReminder()); } else if (ServiceOutageReminder.isEligible(context)) { - ApplicationDependencies.getJobManager().add(new ServiceOutageDetectionJob()); + AppDependencies.getJobManager().add(new ServiceOutageDetectionJob()); return Optional.of(new ServiceOutageReminder()); } else if (OutdatedBuildReminder.isEligible()) { return Optional.of(new OutdatedBuildReminder(context)); @@ -1061,7 +1061,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode } else if (CdsPermanentErrorReminder.isEligible()) { return Optional.of(new CdsPermanentErrorReminder()); } else if (UsernameOutOfSyncReminder.isEligible()) { - ApplicationDependencies.getJobManager().add(new RefreshOwnProfileJob()); + AppDependencies.getJobManager().add(new RefreshOwnProfileJob()); return Optional.of(new UsernameOutOfSyncReminder()); } else { return Optional.empty(); @@ -1098,7 +1098,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode SignalExecutors.BOUNDED.execute(() -> { List messageIds = SignalDatabase.threads().setAllThreadsRead(); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); MarkReadReceiver.process(messageIds); }); } @@ -1113,7 +1113,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode List messageIds = SignalDatabase.threads().setRead(ids, false); stopwatch.split("db"); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); stopwatch.split("notification"); MarkReadReceiver.process(messageIds); @@ -1232,7 +1232,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode @Override protected Void doInBackground(Void... params) { SignalDatabase.threads().deleteConversations(selectedConversations); - ApplicationDependencies.getMessageNotifier().updateNotification(requireActivity()); + AppDependencies.getMessageNotifier().updateNotification(requireActivity()); return null; } @@ -1398,7 +1398,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode protected void onPostSubmitList(int conversationCount) { if (conversationCount >= 6 && (SignalStore.onboarding().shouldShowInviteFriends() || SignalStore.onboarding().shouldShowNewGroup())) { SignalStore.onboarding().clearAll(); - ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.ONBOARDING); + AppDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.ONBOARDING); } } @@ -1634,7 +1634,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode if (unreadCount > 0) { List messageIds = threadTable.setRead(threadId, false); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); MarkReadReceiver.process(messageIds); } @@ -1650,7 +1650,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode if (unreadCount > 0) { threadTable.incrementUnread(threadId, unreadCount, unreadSelfMentionsCount); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); } ConversationUtil.refreshRecipientShortcuts(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt index 23b772c583..ecf28bd0f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListViewModel.kt @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.conversationlist.model.ConversationFilter import org.thoughtcrime.securesms.conversationlist.model.ConversationSet import org.thoughtcrime.securesms.database.RxDatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.megaphone.Megaphone import org.thoughtcrime.securesms.megaphone.MegaphoneRepository @@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit class ConversationListViewModel( private val isArchived: Boolean, - private val megaphoneRepository: MegaphoneRepository = ApplicationDependencies.getMegaphoneRepository(), + private val megaphoneRepository: MegaphoneRepository = AppDependencies.megaphoneRepository, private val notificationProfilesRepository: NotificationProfilesRepository = NotificationProfilesRepository() ) : ViewModel() { @@ -64,7 +64,7 @@ class ConversationListViewModel( val pinnedCount: Int get() = store.state.pinnedCount val webSocketState: Observable - get() = ApplicationDependencies.getSignalWebSocket().webSocketState.observeOn(AndroidSchedulers.mainThread()) + get() = AppDependencies.webSocketObserver.observeOn(AndroidSchedulers.mainThread()) @get:JvmName("currentSelectedConversations") val currentSelectedConversations: Set @@ -134,7 +134,7 @@ class ConversationListViewModel( } if (!coldStart) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyConversationListListeners() } coldStart = false } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/ConversationReader.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/ConversationReader.java index cdea1718bc..4915cfd0cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/ConversationReader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/ConversationReader.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.signal.core.util.CursorUtil; @@ -24,7 +24,7 @@ public class ConversationReader extends ThreadTable.StaticReader { private final Cursor cursor; public ConversationReader(@NonNull Cursor cursor) { - super(cursor, ApplicationDependencies.getApplication()); + super(cursor, AppDependencies.getApplication()); this.cursor = cursor; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/UnreadPaymentsLiveData.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/UnreadPaymentsLiveData.java index 78f8c52e1e..2305851640 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/UnreadPaymentsLiveData.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/model/UnreadPaymentsLiveData.java @@ -8,7 +8,7 @@ import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.util.concurrent.SerialMonoLifoExecutor; @@ -36,12 +36,12 @@ public final class UnreadPaymentsLiveData extends LiveData val attachmentId = AttachmentId(cursor.requireLong(ID)) - ApplicationDependencies.getJobManager().cancelAllInQueue(AttachmentDownloadJob.constructQueueString(attachmentId)) + AppDependencies.jobManager.cancelAllInQueue(AttachmentDownloadJob.constructQueueString(attachmentId)) deleteDataFileIfPossible( filePath = cursor.requireString(DATA_FILE), diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/CallLinkTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/CallLinkTable.kt index 401e44bd14..879a42cc18 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/CallLinkTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/CallLinkTable.kt @@ -28,7 +28,7 @@ import org.signal.ringrtc.CallLinkState.Restrictions import org.thoughtcrime.securesms.calls.log.CallLogRow import org.thoughtcrime.securesms.conversation.colors.AvatarColor import org.thoughtcrime.securesms.conversation.colors.AvatarColorHash -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.service.webrtc.links.CallLinkCredentials @@ -103,8 +103,8 @@ class CallLinkTable(context: Context, databaseHelper: SignalDatabase) : Database recipientId } - ApplicationDependencies.getDatabaseObserver().notifyCallLinkObservers(callLink.roomId) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallLinkObservers(callLink.roomId) + AppDependencies.databaseObserver.notifyCallUpdateObservers() return recipientId!! } @@ -124,8 +124,8 @@ class CallLinkTable(context: Context, databaseHelper: SignalDatabase) : Database .where("$ROOM_ID = ?", roomId.serialize()) .run() - ApplicationDependencies.getDatabaseObserver().notifyCallLinkObservers(roomId) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallLinkObservers(roomId) + AppDependencies.databaseObserver.notifyCallUpdateObservers() } fun updateCallLinkState( @@ -151,8 +151,8 @@ class CallLinkTable(context: Context, databaseHelper: SignalDatabase) : Database } Recipient.live(recipientId).refresh() - ApplicationDependencies.getDatabaseObserver().notifyCallLinkObservers(roomId) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallLinkObservers(roomId) + AppDependencies.databaseObserver.notifyCallUpdateObservers() } fun callLinkExists( @@ -230,7 +230,7 @@ class CallLinkTable(context: Context, databaseHelper: SignalDatabase) : Database record = callLink, recipient = peer, searchQuery = query, - callLinkPeekInfo = ApplicationDependencies.getSignalCallManager().peekInfoSnapshot[peer.id] + callLinkPeekInfo = AppDependencies.signalCallManager.peekInfoSnapshot[peer.id] ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/CallTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/CallTable.kt index 3438ab5312..ebee37285f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/CallTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/CallTable.kt @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.calls.log.CallLogFilter import org.thoughtcrime.securesms.calls.log.CallLogRow import org.thoughtcrime.securesms.database.model.GroupCallUpdateDetailsUtil import org.thoughtcrime.securesms.database.model.MessageId -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.CallSyncEventJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -170,8 +170,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl writableDatabase.insert(TABLE_NAME, null, values) } - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() Log.i(TAG, "Inserted call: $callId type: $type direction: $direction event:$event") } @@ -203,8 +203,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl SignalDatabase.messages.updateCallLog(call.messageId, call.messageType) } - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() } call @@ -324,8 +324,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl CallSyncEventJob.enqueueDeleteSyncEvents(toSync) } - ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary() - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.deletedCallEventManager.scheduleIfNecessary() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } /** @@ -363,8 +363,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl CallSyncEventJob.enqueueDeleteSyncEvents(toSync) } - ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary() - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.deletedCallEventManager.scheduleIfNecessary() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } // region Group / Ad-Hoc Calling @@ -388,8 +388,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl } } - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() Log.d(TAG, "Marked group call event for deletion: ${call.callId}") } @@ -416,7 +416,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl ) .run(SQLiteDatabase.CONFLICT_ABORT) - ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary() + AppDependencies.deletedCallEventManager.scheduleIfNecessary() } fun acceptIncomingGroupCall(call: Call) { @@ -437,8 +437,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl .where("$CALL_ID = ?", call.callId) .run() - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() Log.d(TAG, "[acceptIncomingGroupCall] Transitioned group call ${call.callId} from ${call.event} to $newEvent") } @@ -464,8 +464,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl .where("$CALL_ID = ?", call.callId) .run() - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() Log.d(TAG, "[acceptOutgoingGroupCall] Transitioned group call ${call.callId} from ${call.event} to $newEvent") } @@ -488,8 +488,8 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl .where("$CALL_ID = ?", call.callId) .run() - ApplicationDependencies.getMessageNotifier().updateNotification(context) - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.messageNotifier.updateNotification(context) + AppDependencies.databaseObserver.notifyCallUpdateObservers() Log.d(TAG, "Transitioned group call ${call.callId} from ${call.event} to $newEvent") } @@ -535,7 +535,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl .run(SQLiteDatabase.CONFLICT_ABORT) } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } fun insertDeclinedGroupCall( @@ -577,7 +577,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl .run(SQLiteDatabase.CONFLICT_ABORT) } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } fun insertOrUpdateGroupCallFromExternalEvent( @@ -704,7 +704,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl } Log.d(TAG, "Inserted new call event for call link. Call Id: $callId") - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } private fun insertCallEventFromGroupUpdate( @@ -755,7 +755,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl Log.d(TAG, "Skipping call event processing for null era id.") } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } /** @@ -787,7 +787,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl updateGroupCallState(call, peekJoinedUuids) } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() return sameEraId } @@ -945,7 +945,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl } } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } private fun updateEventFromRingState( @@ -1040,7 +1040,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl } } - ApplicationDependencies.getDatabaseObserver().notifyCallUpdateObservers() + AppDependencies.databaseObserver.notifyCallUpdateObservers() } private fun setMessageId(callId: Long, messageId: MessageId) { @@ -1406,7 +1406,7 @@ class CallTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTabl groupCallState = CallLogRow.GroupCallState.fromDetails(groupCallDetails), children = actualChildren.toSet(), searchQuery = searchTerm, - callLinkPeekInfo = ApplicationDependencies.getSignalCallManager().peekInfoSnapshot[peer.id], + callLinkPeekInfo = AppDependencies.signalCallManager.peekInfoSnapshot[peer.id], canUserBeginCall = canUserBeginCall ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ChatColorsTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ChatColorsTable.kt index 829f3581bb..52b8a043c9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ChatColorsTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ChatColorsTable.kt @@ -7,7 +7,7 @@ import org.signal.core.util.CursorUtil import org.signal.core.util.SqlUtil import org.thoughtcrime.securesms.conversation.colors.ChatColors import org.thoughtcrime.securesms.database.model.databaseprotos.ChatColor -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore class ChatColorsTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTable(context, databaseHelper) { @@ -125,7 +125,7 @@ class ChatColorsTable(context: Context, databaseHelper: SignalDatabase) : Databa } private fun notifyListeners() { - ApplicationDependencies.getDatabaseObserver().notifyChatColorsListeners() + AppDependencies.databaseObserver.notifyChatColorsListeners() } private fun Cursor.getId(): Long = CursorUtil.requireLong(this, ID) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseTable.java index 25afaa5eb2..a39f0950d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseTable.java @@ -18,7 +18,7 @@ package org.thoughtcrime.securesms.database; import android.content.Context; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.HashSet; import java.util.Set; @@ -48,31 +48,31 @@ public abstract class DatabaseTable { } protected void notifyConversationListeners(Set threadIds) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadIds); + AppDependencies.getDatabaseObserver().notifyConversationListeners(threadIds); } protected void notifyConversationListeners(long threadId) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadId); + AppDependencies.getDatabaseObserver().notifyConversationListeners(threadId); } protected void notifyVerboseConversationListeners(Set threadIds) { - ApplicationDependencies.getDatabaseObserver().notifyVerboseConversationListeners(threadIds); + AppDependencies.getDatabaseObserver().notifyVerboseConversationListeners(threadIds); } protected void notifyConversationListListeners() { - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners(); + AppDependencies.getDatabaseObserver().notifyConversationListListeners(); } protected void notifyStickerPackListeners() { - ApplicationDependencies.getDatabaseObserver().notifyStickerPackObservers(); + AppDependencies.getDatabaseObserver().notifyStickerPackObservers(); } protected void notifyStickerListeners() { - ApplicationDependencies.getDatabaseObserver().notifyStickerObservers(); + AppDependencies.getDatabaseObserver().notifyStickerObservers(); } protected void notifyAttachmentListeners() { - ApplicationDependencies.getDatabaseObserver().notifyAttachmentObservers(); + AppDependencies.getDatabaseObserver().notifyAttachmentObservers(); } public void reset(SignalDatabase databaseHelper) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt index e4f8e56672..993bb0eab7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/GroupTable.kt @@ -39,7 +39,7 @@ import org.thoughtcrime.securesms.contacts.paged.collections.ContactSearchIterat import org.thoughtcrime.securesms.crypto.SenderKeyUtil import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients import org.thoughtcrime.securesms.database.model.GroupRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupId.Push @@ -617,7 +617,7 @@ class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseT } Log.w(TAG, "Scheduling request for latest group info for $groupId") - ApplicationDependencies.getJobManager().add(RequestGroupV2InfoJob(groupId)) + AppDependencies.jobManager.add(RequestGroupV2InfoJob(groupId)) } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/IdentityTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/IdentityTable.kt index 54966cf6b9..ebdd5b949a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/IdentityTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/IdentityTable.kt @@ -35,7 +35,7 @@ import org.signal.libsignal.protocol.IdentityKey import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients import org.thoughtcrime.securesms.database.model.IdentityRecord import org.thoughtcrime.securesms.database.model.IdentityStoreRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.storage.StorageSyncHelper @@ -173,7 +173,7 @@ class IdentityTable internal constructor(context: Context?, databaseHelper: Sign EventBus.getDefault().post(record.get()) } - ApplicationDependencies.getProtocolStore().aci().identities().invalidate(addressName) + AppDependencies.protocolStore.aci().identities().invalidate(addressName) } if (hadEntry && !keyMatches) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/InAppPaymentTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/InAppPaymentTable.kt index 9264b09928..95a2e7c2c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/InAppPaymentTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/InAppPaymentTable.kt @@ -33,7 +33,7 @@ import org.signal.core.util.withinTransaction import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.parcelers.MillisecondDurationParceler import org.thoughtcrime.securesms.util.parcelers.NullableSubscriberIdParceler import org.whispersystems.signalservice.api.subscriptions.SubscriberId @@ -160,7 +160,7 @@ class InAppPaymentTable(context: Context, databaseHelper: SignalDatabase) : Data .where(ID_WHERE, inAppPayment.id) .run() - ApplicationDependencies.getDatabaseObserver().notifyInAppPaymentsObservers(inAppPayment) + AppDependencies.databaseObserver.notifyInAppPaymentsObservers(inAppPayment) } fun getAllWaitingForAuth(): List { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt index 8a980008a1..d2e6272911 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MessageTable.kt @@ -110,7 +110,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras import org.thoughtcrime.securesms.database.model.databaseprotos.ProfileChangeDetails import org.thoughtcrime.securesms.database.model.databaseprotos.SessionSwitchoverEvent import org.thoughtcrime.securesms.database.model.databaseprotos.ThreadMergeEvent -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupMigrationMembershipChange import org.thoughtcrime.securesms.jobs.OptimizeMessageSearchIndexJob import org.thoughtcrime.securesms.jobs.ThreadUpdateJob @@ -680,8 +680,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat threads.updateSnippetTypeSilently(threadId) } - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(id)) - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(id)) + AppDependencies.databaseObserver.notifyConversationListListeners() } private fun updateMessageBodyAndType(messageId: Long, body: String, maskOff: Long, maskOn: Long): InsertResult { @@ -776,7 +776,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat notifyConversationListeners(threadsUpdated) notifyConversationListListeners() - ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(storyRecipientsUpdated) + AppDependencies.databaseObserver.notifyStoryObservers(storyRecipientsUpdated) return results } @@ -856,7 +856,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat threads.update(threadId, true) notifyConversationListeners(threadId) - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) } fun insertGroupCall( @@ -1245,7 +1245,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat BODY to Base64.encodeWithPadding(event.encode()) ) .run() - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadId) + AppDependencies.databaseObserver.notifyConversationListeners(threadId) } fun insertSessionSwitchoverEvent(recipientId: RecipientId, threadId: Long, event: SessionSwitchoverEvent) { @@ -1263,7 +1263,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat BODY to Base64.encodeWithPadding(event.encode()) ) .run() - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadId) + AppDependencies.databaseObserver.notifyConversationListeners(threadId) } fun insertSmsExportMessage(recipientId: RecipientId, threadId: Long) { @@ -1289,7 +1289,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } if (updated) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadId) + AppDependencies.databaseObserver.notifyConversationListeners(threadId) } } @@ -1635,7 +1635,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat .where(storiesBeforeTimestampWhere, sharedArgs) .run() .readToList { RecipientId.from(it.requireLong(FROM_RECIPIENT_ID)) } - .forEach { id -> ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(id) } + .forEach { id -> AppDependencies.databaseObserver.notifyStoryObservers(id) } val deletedStoryCount = db.select(ID) .from(TABLE_NAME) @@ -1694,7 +1694,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat db.execSQL(deleteStoryRepliesQuery, sharedArgs) db.execSQL(disassociateQuoteQuery, sharedArgs) - ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(recipientId) + AppDependencies.databaseObserver.notifyStoryObservers(recipientId) val deletedStoryCount = db.select(ID) .from(TABLE_NAME) @@ -2004,7 +2004,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat fun markAsRateLimited(messageId: Long) { val threadId = getThreadIdForMessage(messageId) updateMailboxBitmask(messageId, 0, MessageTypes.MESSAGE_RATE_LIMITED_BIT, Optional.of(threadId)) - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) } fun clearRateLimitStatus(ids: Collection) { @@ -2019,22 +2019,22 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat fun markAsSending(messageId: Long) { val threadId = getThreadIdForMessage(messageId) updateMailboxBitmask(messageId, MessageTypes.BASE_TYPE_MASK, MessageTypes.BASE_SENDING_TYPE, Optional.of(threadId)) - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyConversationListListeners() } fun markAsSentFailed(messageId: Long) { val threadId = getThreadIdForMessage(messageId) updateMailboxBitmask(messageId, MessageTypes.BASE_TYPE_MASK, MessageTypes.BASE_SENT_FAILED_TYPE, Optional.of(threadId)) - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyConversationListListeners() } fun markAsSent(messageId: Long, secure: Boolean) { val threadId = getThreadIdForMessage(messageId) updateMailboxBitmask(messageId, MessageTypes.BASE_TYPE_MASK, MessageTypes.BASE_SENT_TYPE or if (secure) MessageTypes.PUSH_MESSAGE_BIT or MessageTypes.SECURE_MESSAGE_BIT else 0, Optional.of(threadId)) - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyConversationListListeners() } fun markAsRemoteDelete(targetMessage: MessageRecord) { @@ -2094,11 +2094,11 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } OptimizeMessageSearchIndexJob.enqueue() - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyConversationListListeners() if (deletedAttachments) { - ApplicationDependencies.getDatabaseObserver().notifyAttachmentObservers() + AppDependencies.databaseObserver.notifyAttachmentObservers() } } @@ -2109,7 +2109,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat .where("$ID = ?", messageId) .run() - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) } fun clearScheduledStatus(threadId: Long, messageId: Long, expiresIn: Long): Boolean { @@ -2124,8 +2124,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat .where("$ID = ? AND $SCHEDULED_DATE != ?", messageId, -1) .run() - ApplicationDependencies.getDatabaseObserver().notifyMessageInsertObservers(threadId, MessageId(messageId)) - ApplicationDependencies.getDatabaseObserver().notifyScheduledMessageObservers(threadId) + AppDependencies.databaseObserver.notifyMessageInsertObservers(threadId, MessageId(messageId)) + AppDependencies.databaseObserver.notifyScheduledMessageObservers(threadId) return rowsUpdated > 0 } @@ -2137,8 +2137,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat .where("$ID = ? AND $SCHEDULED_DATE != ?", messageId, -1) .run() - ApplicationDependencies.getDatabaseObserver().notifyScheduledMessageObservers(threadId) - ApplicationDependencies.getScheduledMessageManager().scheduleIfNecessary() + AppDependencies.databaseObserver.notifyScheduledMessageObservers(threadId) + AppDependencies.scheduledMessageManager.scheduleIfNecessary() if (rowsUpdated == 0) { Log.w(TAG, "Failed to reschedule messageId=$messageId to new time $time. may have been sent already") @@ -2169,7 +2169,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat .values(EXPIRE_STARTED to startedAtTimestamp) .where("$ID = ? AND ($EXPIRE_STARTED = 0 OR $EXPIRE_STARTED > ?)", id, startedAtTimestamp) .run() - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(id)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(id)) } } } @@ -2697,7 +2697,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } if (retrieved.storyType.isStory) { - ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(threads.getRecipientIdForThreadId(threadId)!!) + AppDependencies.databaseObserver.notifyStoryObservers(threads.getRecipientIdForThreadId(threadId)!!) } return Optional.of( @@ -2807,7 +2807,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } if (updated) { - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(MessageId(messageId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(MessageId(messageId)) notifyConversationListeners(threadId) } } @@ -3085,16 +3085,16 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat if (!message.storyType.isStory) { if (message.outgoingQuote == null && editedMessage == null) { - ApplicationDependencies.getDatabaseObserver().notifyMessageInsertObservers(threadId, MessageId(messageId)) + AppDependencies.databaseObserver.notifyMessageInsertObservers(threadId, MessageId(messageId)) } else { - ApplicationDependencies.getDatabaseObserver().notifyConversationListeners(threadId) + AppDependencies.databaseObserver.notifyConversationListeners(threadId) } if (message.scheduledDate != -1L) { - ApplicationDependencies.getDatabaseObserver().notifyScheduledMessageObservers(threadId) + AppDependencies.databaseObserver.notifyScheduledMessageObservers(threadId) } } else { - ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(message.threadRecipient.id) + AppDependencies.databaseObserver.notifyStoryObservers(message.threadRecipient.id) } if (!message.isIdentityVerified && !message.isIdentityDefault) { @@ -3309,8 +3309,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } } - ApplicationDependencies.getScheduledMessageManager().scheduleIfNecessary() - ApplicationDependencies.getDatabaseObserver().notifyScheduledMessageObservers(threadId) + AppDependencies.scheduledMessageManager.scheduleIfNecessary() + AppDependencies.databaseObserver.notifyScheduledMessageObservers(threadId) } fun deleteScheduledMessages(recipientId: RecipientId) { @@ -4316,8 +4316,8 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } for (update in messageUpdates) { - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(update.messageId) - ApplicationDependencies.getDatabaseObserver().notifyVerboseConversationListeners(setOf(update.threadId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(update.messageId) + AppDependencies.databaseObserver.notifyVerboseConversationListeners(setOf(update.threadId)) } if (messageUpdates.isNotEmpty()) { @@ -4344,7 +4344,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } for (threadUpdate in messageUpdates) { - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(threadUpdate.messageId) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(threadUpdate.messageId) } return messageUpdates.isNotEmpty() @@ -4377,11 +4377,11 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } for (update in messageUpdates) { - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(update.messageId) - ApplicationDependencies.getDatabaseObserver().notifyVerboseConversationListeners(setOf(update.threadId)) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(update.messageId) + AppDependencies.databaseObserver.notifyVerboseConversationListeners(setOf(update.threadId)) if (messageQualifier == MessageQualifier.STORY) { - ApplicationDependencies.getDatabaseObserver().notifyStoryObservers(threads.getRecipientIdForThreadId(update.threadId)!!) + AppDependencies.databaseObserver.notifyStoryObservers(threads.getRecipientIdForThreadId(update.threadId)!!) } } @@ -4512,7 +4512,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat } for (expiringMessage in expiringMessages) { - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(expiringMessage.first(), true, proposedExpireStarted, expiringMessage.second()) + AppDependencies.expiringMessageManager.scheduleDeletion(expiringMessage.first(), true, proposedExpireStarted, expiringMessage.second()) } for (threadId in updatedThreads) { @@ -5165,7 +5165,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat private val context: Context init { - context = ApplicationDependencies.getApplication() + context = AppDependencies.application } override fun getNext(): MessageRecord? { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/NotificationProfileTables.kt b/app/src/main/java/org/thoughtcrime/securesms/database/NotificationProfileTables.kt index 8ef2e3e315..efe3ce6b44 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/NotificationProfileTables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/NotificationProfileTables.kt @@ -13,7 +13,7 @@ import org.signal.core.util.requireLong import org.signal.core.util.requireString import org.signal.core.util.toInt import org.thoughtcrime.securesms.conversation.colors.AvatarColor -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.notifications.profiles.NotificationProfile import org.thoughtcrime.securesms.notifications.profiles.NotificationProfileSchedule import org.thoughtcrime.securesms.recipients.RecipientId @@ -141,7 +141,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba ) } finally { db.endTransaction() - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } } @@ -156,7 +156,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba return try { val count = writableDatabase.update(NotificationProfileTable.TABLE_NAME, profileValues, updateQuery.where, updateQuery.whereArgs) if (count > 0) { - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } NotificationProfileChangeResult.Success(getProfile(profileId)!!) @@ -202,7 +202,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba return NotificationProfileChangeResult.Success(getProfile(profile.id)!!) } finally { db.endTransaction() - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } } @@ -218,7 +218,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba writableDatabase.update(NotificationProfileScheduleTable.TABLE_NAME, scheduleValues, updateQuery.where, updateQuery.whereArgs) if (!silent) { - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } } @@ -243,7 +243,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba } finally { db.endTransaction() - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } } @@ -254,7 +254,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba } writableDatabase.insert(NotificationProfileAllowedMembersTable.TABLE_NAME, null, allowedValues) - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() return getProfile(profileId)!! } @@ -265,7 +265,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba SqlUtil.buildArgs(profileId, recipientId) ) - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() return getProfile(profileId)!! } @@ -293,7 +293,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba fun deleteProfile(profileId: Long) { writableDatabase.delete(NotificationProfileTable.TABLE_NAME, ID_WHERE, SqlUtil.buildArgs(profileId)) - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } override fun remapRecipient(oldId: RecipientId, newId: RecipientId) { @@ -305,7 +305,7 @@ class NotificationProfileDatabase(context: Context, databaseHelper: SignalDataba databaseHelper.signalWritableDatabase.update(NotificationProfileAllowedMembersTable.TABLE_NAME, values, query, args) - ApplicationDependencies.getDatabaseObserver().notifyNotificationProfileObservers() + AppDependencies.databaseObserver.notifyNotificationProfileObservers() } private fun getProfile(cursor: Cursor): NotificationProfile { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/PaymentTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/PaymentTable.java index f222622d91..b09e0ef4b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/PaymentTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/PaymentTable.java @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.CryptoValue; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.payments.CryptoValueUtil; import org.thoughtcrime.securesms.payments.Direction; import org.thoughtcrime.securesms.payments.FailureReason; @@ -648,7 +648,7 @@ public final class PaymentTable extends DatabaseTable implements RecipientIdData */ private void notifyChanged() { changeSignal.postValue(new Object()); - ApplicationDependencies.getDatabaseObserver().notifyAllPaymentsListeners(); + AppDependencies.getDatabaseObserver().notifyAllPaymentsListeners(); } /** @@ -657,10 +657,10 @@ public final class PaymentTable extends DatabaseTable implements RecipientIdData */ private void notifyUuidChanged(@Nullable UUID uuid) { if (uuid != null) { - ApplicationDependencies.getDatabaseObserver().notifyPaymentListeners(uuid); + AppDependencies.getDatabaseObserver().notifyPaymentListeners(uuid); MessageId messageId = SignalDatabase.messages().getPaymentMessage(uuid); if (messageId != null) { - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(messageId); + AppDependencies.getDatabaseObserver().notifyMessageUpdateObservers(messageId); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/PendingRetryReceiptTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/PendingRetryReceiptTable.java index f3bfd9e6fb..3940645d09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/PendingRetryReceiptTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/PendingRetryReceiptTable.java @@ -9,7 +9,7 @@ import androidx.annotation.NonNull; import net.zetetic.database.sqlcipher.SQLiteDatabase; import org.thoughtcrime.securesms.database.model.PendingRetryReceiptModel; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.RecipientId; import org.signal.core.util.CursorUtil; import org.signal.core.util.SqlUtil; @@ -89,7 +89,7 @@ public final class PendingRetryReceiptTable extends DatabaseTable implements Rec values.put(AUTHOR, toId.serialize()); getWritableDatabase().update(TABLE_NAME, values, AUTHOR + " = ?", SqlUtil.buildArgs(fromId)); - ApplicationDependencies.getPendingRetryReceiptCache().clear(); + AppDependencies.getPendingRetryReceiptCache().clear(); } @Override @@ -98,6 +98,6 @@ public final class PendingRetryReceiptTable extends DatabaseTable implements Rec values.put(THREAD_ID, toId); getWritableDatabase().update(TABLE_NAME, values, THREAD_ID + " = ?", SqlUtil.buildArgs(fromId)); - ApplicationDependencies.getPendingRetryReceiptCache().clear(); + AppDependencies.getPendingRetryReceiptCache().clear(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ReactionTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ReactionTable.kt index 0d1b0e5363..c5992a77fc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ReactionTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ReactionTable.kt @@ -9,7 +9,7 @@ import org.signal.core.util.delete import org.signal.core.util.update import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.ReactionRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId /** @@ -119,7 +119,7 @@ class ReactionTable(context: Context, databaseHelper: SignalDatabase) : Database writableDatabase.endTransaction() } - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(messageId) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(messageId) } fun deleteReaction(messageId: MessageId, recipientId: RecipientId) { @@ -137,7 +137,7 @@ class ReactionTable(context: Context, databaseHelper: SignalDatabase) : Database writableDatabase.endTransaction() } - ApplicationDependencies.getDatabaseObserver().notifyMessageUpdateObservers(messageId) + AppDependencies.databaseObserver.notifyMessageUpdateObservers(messageId) } fun deleteReactions(messageId: MessageId) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt index fd337b3875..c2925ba52c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -74,7 +74,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.RecipientExtras import org.thoughtcrime.securesms.database.model.databaseprotos.SessionSwitchoverEvent import org.thoughtcrime.securesms.database.model.databaseprotos.ThreadMergeEvent import org.thoughtcrime.securesms.database.model.databaseprotos.Wallpaper -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupId.V1 @@ -500,14 +500,14 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da db.runPostSuccessfulTransaction { if (result.affectedIds.isNotEmpty()) { - result.affectedIds.forEach { ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(it) } + result.affectedIds.forEach { AppDependencies.databaseObserver.notifyRecipientChanged(it) } RetrieveProfileJob.enqueue(result.affectedIds) } if (result.oldIds.isNotEmpty()) { result.oldIds.forEach { oldId -> Recipient.live(oldId).refresh(result.finalId) - ApplicationDependencies.getRecipientCache().remap(oldId, result.finalId) + AppDependencies.recipientCache.remap(oldId, result.finalId) } } @@ -803,7 +803,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da fun markNeedsSync(recipientId: RecipientId) { rotateStorageId(recipientId) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } fun markAllSystemContactsNeedsSync() { @@ -838,7 +838,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } for (id in storageIds.keys) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -876,7 +876,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da fun applyStorageSyncContactUpdate(update: StorageRecordUpdate) { val db = writableDatabase - val identityStore = ApplicationDependencies.getProtocolStore().aci().identities() + val identityStore = AppDependencies.protocolStore.aci().identities() val values = getValuesForStorageContact(update.new, false) try { @@ -925,7 +925,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } threads.applyStorageSyncUpdate(recipientId, update.new) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } fun applyStorageSyncGroupV1Insert(insert: SignalGroupV1Record) { @@ -933,7 +933,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val recipientId = RecipientId.from(id) threads.applyStorageSyncUpdate(recipientId, insert) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } fun applyStorageSyncGroupV1Update(update: StorageRecordUpdate) { @@ -977,7 +977,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } Log.i(TAG, "Scheduling request for latest group info for $groupId") - ApplicationDependencies.getJobManager().add(RequestGroupV2InfoJob(groupId)) + AppDependencies.jobManager.add(RequestGroupV2InfoJob(groupId)) threads.applyStorageSyncUpdate(recipient.id, insert) recipient.live().refresh() } @@ -1282,7 +1282,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da writableDatabase.update(TABLE_NAME, values, where, args) for (recipientId in updated) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } } } @@ -1309,7 +1309,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da writableDatabase.update(TABLE_NAME, values, where, args) for (recipientId in updated) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } } } @@ -1350,7 +1350,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da database.update(TABLE_NAME, values, where, args) for (id in toUpdate) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1360,7 +1360,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(CUSTOM_CHAT_COLORS_ID, ChatColors.Id.NotSet.longValue) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1370,7 +1370,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(CUSTOM_CHAT_COLORS_ID, color.id.longValue) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1380,7 +1380,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1389,7 +1389,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(MESSAGE_RINGTONE, notification?.toString()) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1398,7 +1398,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(CALL_RINGTONE, ringtone?.toString()) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1407,7 +1407,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(MESSAGE_VIBRATE, enabled.id) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1416,7 +1416,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(CALL_VIBRATE, enabled.id) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1427,7 +1427,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(id, values)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } StorageSyncHelper.scheduleSyncForDataChange() @@ -1454,7 +1454,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } for (id in ids) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } StorageSyncHelper.scheduleSyncForDataChange() @@ -1465,7 +1465,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(MESSAGE_EXPIRATION_TIME, expiration) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1474,7 +1474,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(SEALED_SENDER_MODE, unidentifiedAccessMode.mode) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1513,7 +1513,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1523,7 +1523,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1533,7 +1533,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } } @@ -1561,7 +1561,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(updateQuery, valuesToSet)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() if (id == Recipient.self().id) { @@ -1591,7 +1591,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (writableDatabase.update(TABLE_NAME, valuesToSet, selection, args) > 0) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) return true } else { return false @@ -1619,7 +1619,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val updated = update(updateQuery, values) if (updated) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } return updated @@ -1629,7 +1629,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val values = ContentValues(1) values.putNull(EXPIRING_PROFILE_KEY_CREDENTIAL) if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1696,7 +1696,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1748,7 +1748,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(SYSTEM_JOINED_NAME, systemContactName) } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1761,7 +1761,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da ) if (update(id, contentValues)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } } @@ -1774,7 +1774,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, contentValues)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } } @@ -1784,7 +1784,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(PROFILE_AVATAR, profileAvatar) } if (update(id, contentValues)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) if (id == Recipient.self().id) { rotateStorageId(id) StorageSyncHelper.scheduleSyncForDataChange() @@ -1799,7 +1799,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, contentValues)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1822,7 +1822,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da SignalDatabase.distributionLists.removeMemberFromAllLists(id) SignalDatabase.messages.deleteStoriesForRecipient(id) rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } else { Log.w(TAG, "Failed to hide recipient $id") @@ -1849,7 +1849,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (profiledUpdated) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } } @@ -1859,7 +1859,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da put(NOTIFICATION_CHANNEL, notificationChannel) } if (update(id, contentValues)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1868,7 +1868,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da PHONE_NUMBER_SHARING to phoneNumberSharing.id ) if (update(id, contentValues)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -1903,7 +1903,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val rowsUpdated = database.update(TABLE_NAME, values, where, null) if (rowsUpdated == idWithWallpaper.size) { for (pair in idWithWallpaper) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(pair.first) + AppDependencies.databaseObserver.notifyRecipientChanged(pair.first) if (pair.second != null) { WallpaperStorage.onWallpaperDeselected(context, Uri.parse(pair.second)) } @@ -1933,7 +1933,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, values)) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } if (existingWallpaperUri != null) { @@ -2047,7 +2047,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, contentValues)) { rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) StorageSyncHelper.scheduleSyncForDataChange() } } @@ -2120,7 +2120,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } if (update(id, contentValuesOf(USERNAME to username))) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) rotateStorageId(id) StorageSyncHelper.scheduleSyncForDataChange() } @@ -2232,7 +2232,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(id, contentValues)) { Log.i(TAG, "Newly marked $id as registered.") setStorageIdIfNotSet(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -2263,7 +2263,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(id, contentValues)) { Log.i(TAG, "[WithSplit] Newly marked $id as unregistered.") markNeedsSync(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } val splitId = getAndPossiblyMerge(null, record.pni, record.e164) @@ -2282,7 +2282,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(id, contentValues)) { Log.i(TAG, "[WithoutSplit] Newly marked $id as unregistered.") markNeedsSync(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -2356,7 +2356,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(id, registeredValues)) { newlyRegistered += id setStorageIdIfNotSet(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -2374,7 +2374,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da for (id in unregistered) { if (update(id, unregisteredValues)) { newlyUnregistered += id - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -3249,7 +3249,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } finally { db.setTransactionSuccessful() db.endTransaction() - updates.entries.forEach { ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(it.key) } + updates.entries.forEach { AppDependencies.databaseObserver.notifyRecipientChanged(it.key) } } } @@ -3632,7 +3632,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da db.endTransaction() } - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() } fun updateStorageId(recipientId: RecipientId, id: ByteArray?) { @@ -3655,7 +3655,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } for (id in ids.keys) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -3689,7 +3689,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da writableDatabase.update(TABLE_NAME, values, query.where, query.whereArgs) for (id in idsToUpdate) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(RecipientId.from(id)) + AppDependencies.databaseObserver.notifyRecipientChanged(RecipientId.from(id)) } } } @@ -3737,7 +3737,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da val count = db.update(TABLE_NAME, values, query.where, query.whereArgs) if (count > 0) { for (id in idsToUpdate) { - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(RecipientId.from(id)) + AppDependencies.databaseObserver.notifyRecipientChanged(RecipientId.from(id)) } } } @@ -3800,7 +3800,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } finally { db.endTransaction() } - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(recipientId) + AppDependencies.databaseObserver.notifyRecipientChanged(recipientId) } /** @@ -3850,7 +3850,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da if (update(query, values)) { val id = getByGroupId(v2Id).get() rotateStorageId(id) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } @@ -3931,7 +3931,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da // Clean up any E164-based identities (legacy stuff) if (secondaryRecord.e164 != null) { - ApplicationDependencies.getProtocolStore().aci().identities().delete(secondaryRecord.e164) + AppDependencies.protocolStore.aci().identities().delete(secondaryRecord.e164) } // Threads @@ -4169,7 +4169,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } .run() - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() RecipientId.clearCache() } @@ -4200,7 +4200,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da } .run() - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() RecipientId.clearCache() } @@ -4219,7 +4219,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da .where(ID_WHERE, recipientId) .run() - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() RecipientId.clearCache() } @@ -4239,7 +4239,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da SqlUtil.buildArgs(recipientId) ) - ApplicationDependencies.getRecipientCache().clear() + AppDependencies.recipientCache.clear() RecipientId.clearCache() } @@ -4313,7 +4313,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da clearSystemDataForPendingInfo() database.setTransactionSuccessful() database.endTransaction() - pendingRecipients.forEach { id -> ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) } + pendingRecipients.forEach { id -> AppDependencies.databaseObserver.notifyRecipientChanged(id) } } private fun markAllRelevantEntriesDirty() { @@ -4348,7 +4348,7 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da null ).forEach { cursor -> val id = RecipientId.from(cursor.requireLong(ID)) - ApplicationDependencies.getDatabaseObserver().notifyRecipientChanged(id) + AppDependencies.databaseObserver.notifyRecipientChanged(id) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RxDatabaseObserver.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RxDatabaseObserver.kt index 65d8d517c2..ae8555ad96 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RxDatabaseObserver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RxDatabaseObserver.kt @@ -4,7 +4,7 @@ import io.reactivex.rxjava3.core.BackpressureStrategy import io.reactivex.rxjava3.core.Emitter import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.schedulers.Schedulers -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.TimeUnit /** @@ -18,13 +18,13 @@ object RxDatabaseObserver { private fun conversationListFlowable(): Flowable { return databaseFlowable { listener -> - ApplicationDependencies.getDatabaseObserver().registerConversationListObserver(listener) + AppDependencies.databaseObserver.registerConversationListObserver(listener) } } fun conversation(threadId: Long): Flowable { return databaseFlowable { listener -> - ApplicationDependencies.getDatabaseObserver().registerVerboseConversationObserver(threadId, listener) + AppDependencies.databaseObserver.registerVerboseConversationObserver(threadId, listener) } } @@ -32,7 +32,7 @@ object RxDatabaseObserver { private fun notificationProfilesFlowable(): Flowable { return Flowable.combineLatest( Flowable.interval(0, 30, TimeUnit.SECONDS), - databaseFlowable { ApplicationDependencies.getDatabaseObserver().registerNotificationProfileObserver(it) } + databaseFlowable { AppDependencies.databaseObserver.registerNotificationProfileObserver(it) } ) { _, _ -> Unit } } @@ -42,7 +42,7 @@ object RxDatabaseObserver { val listener = RxObserver(it) registerObserver(listener) - it.setCancellable { ApplicationDependencies.getDatabaseObserver().unregisterObserver(listener) } + it.setCancellable { AppDependencies.databaseObserver.unregisterObserver(listener) } listener.prime() }, diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java index 2d94e8f341..114ea5df40 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherDeletingErrorHandler.java @@ -8,7 +8,7 @@ import net.zetetic.database.DatabaseErrorHandler; import net.zetetic.database.sqlcipher.SQLiteDatabase; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.signal.core.util.CursorUtil; /** @@ -50,7 +50,7 @@ public final class SqlCipherDeletingErrorHandler implements DatabaseErrorHandler } } finally { Log.w(TAG, "Deleting database " + databaseName); - ApplicationDependencies.getApplication().deleteDatabase(databaseName); + AppDependencies.getApplication().deleteDatabase(databaseName); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt index 9802ae5d8c..b82f4b32a3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SqlCipherErrorHandler.kt @@ -9,7 +9,7 @@ import org.signal.core.util.CursorUtil import org.signal.core.util.ExceptionUtil import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.crypto.DatabaseSecretProvider -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.CountDownLatch import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicReference @@ -32,7 +32,7 @@ class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHan } try { - val result: DiagnosticResults = runDiagnostics(ApplicationDependencies.getApplication(), db) + val result: DiagnosticResults = runDiagnostics(AppDependencies.application, db) var lines: List = result.logs.split("\n") lines = listOf("Database '$databaseName' corrupted!", "[sqlite] $message", "Diagnostics results:") + lines diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt index 8234d37a6f..72ecd004fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt @@ -47,7 +47,7 @@ import org.thoughtcrime.securesms.database.model.ThreadRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.databaseprotos.MessageExtras import org.thoughtcrime.securesms.database.model.serialize -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobs.MultiDeviceDeleteSendSyncJob @@ -1149,7 +1149,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa notifyConversationListListeners() notifyConversationListeners(threadId) - ApplicationDependencies.getDatabaseObserver().notifyConversationDeleteListeners(threadId) + AppDependencies.databaseObserver.notifyConversationDeleteListeners(threadId) ConversationUtil.clearShortcuts(context, setOf(recipientIdForThreadId)) } @@ -1187,7 +1187,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa notifyConversationListListeners() notifyConversationListeners(selectedConversations) - ApplicationDependencies.getDatabaseObserver().notifyConversationDeleteListeners(selectedConversations) + AppDependencies.databaseObserver.notifyConversationDeleteListeners(selectedConversations) ConversationUtil.clearShortcuts(context, recipientIds) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java b/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java index c573939380..aced0f253d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/documents/IdentityKeyMismatch.java @@ -1,10 +1,7 @@ package org.thoughtcrime.securesms.database.documents; -import android.content.Context; import android.text.TextUtils; -import androidx.annotation.NonNull; - import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonGenerator; @@ -19,7 +16,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import org.signal.core.util.logging.Log; import org.signal.libsignal.protocol.IdentityKey; import org.signal.libsignal.protocol.InvalidKeyException; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.signal.core.util.Base64; @@ -56,7 +53,7 @@ public class IdentityKeyMismatch { if (!TextUtils.isEmpty(recipientId)) { return RecipientId.from(recipientId); } else { - return Recipient.external(ApplicationDependencies.getApplication(), address).getId(); + return Recipient.external(AppDependencies.getApplication(), address).getId(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/documents/NetworkFailure.java b/app/src/main/java/org/thoughtcrime/securesms/database/documents/NetworkFailure.java index b83ab2a7ac..6a501c45c1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/documents/NetworkFailure.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/documents/NetworkFailure.java @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.database.documents; -import android.content.Context; import android.text.TextUtils; import androidx.annotation.NonNull; @@ -8,8 +7,7 @@ import androidx.annotation.NonNull; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import org.thoughtcrime.securesms.ApplicationContext; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -36,7 +34,7 @@ public class NetworkFailure { if (!TextUtils.isEmpty(recipientId)) { return RecipientId.from(recipientId); } else { - return Recipient.external(ApplicationDependencies.getApplication(), address).getId(); + return Recipient.external(AppDependencies.getApplication(), address).getId(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java index b74a574e9f..2031591699 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/ClassicOpenHelper.java @@ -39,7 +39,7 @@ import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.MessageTypes; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.migrations.LegacyMigrationJob; import org.thoughtcrime.securesms.permissions.Permissions; @@ -431,7 +431,7 @@ public class ClassicOpenHelper extends SQLiteOpenHelper { db.endTransaction(); // DecryptingQueue.schedulePendingDecrypts(context, masterSecret); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V185_MessageRecipientsAndEditMessageMigration.kt b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V185_MessageRecipientsAndEditMessageMigration.kt index 7c493a9bbc..dcd8259942 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V185_MessageRecipientsAndEditMessageMigration.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V185_MessageRecipientsAndEditMessageMigration.kt @@ -14,7 +14,7 @@ import org.signal.core.util.requireLong import org.signal.core.util.requireNonNullString import org.signal.core.util.requireString import org.thoughtcrime.securesms.database.KeyValueDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId import org.whispersystems.signalservice.api.push.ServiceId.ACI @@ -248,7 +248,7 @@ object V185_MessageRecipientsAndEditMessageMigration : SignalDatabaseMigration { } private fun getSelfId(db: SQLiteDatabase): RecipientId? { - val idByAci: RecipientId? = getLocalAci(ApplicationDependencies.getApplication())?.let { aci -> + val idByAci: RecipientId? = getLocalAci(AppDependencies.application)?.let { aci -> db.rawQuery("SELECT _id FROM recipient WHERE uuid = ?", SqlUtil.buildArgs(aci)) .readToSingleObject { RecipientId.from(it.requireLong("_id")) } } @@ -259,7 +259,7 @@ object V185_MessageRecipientsAndEditMessageMigration : SignalDatabaseMigration { Log.w(TAG, "Failed to find by ACI! Will try by E164.") - val idByE164: RecipientId? = getLocalE164(ApplicationDependencies.getApplication())?.let { e164 -> + val idByE164: RecipientId? = getLocalE164(AppDependencies.application)?.let { e164 -> db.rawQuery("SELECT _id FROM recipient WHERE phone = ?", SqlUtil.buildArgs(e164)) .readToSingleObject { RecipientId.from(it.requireLong("_id")) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V188_FixMessageRecipientsAndEditMessageMigration.kt b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V188_FixMessageRecipientsAndEditMessageMigration.kt index ff9bb0d7e3..c5cd6b4335 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V188_FixMessageRecipientsAndEditMessageMigration.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/migration/V188_FixMessageRecipientsAndEditMessageMigration.kt @@ -14,7 +14,7 @@ import org.signal.core.util.requireLong import org.signal.core.util.requireNonNullString import org.signal.core.util.requireString import org.thoughtcrime.securesms.database.KeyValueDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId import org.whispersystems.signalservice.api.push.ServiceId.ACI @@ -274,7 +274,7 @@ object V188_FixMessageRecipientsAndEditMessageMigration : SignalDatabaseMigratio } private fun getSelfId(db: SQLiteDatabase): RecipientId? { - val idByAci: RecipientId? = getLocalAci(ApplicationDependencies.getApplication())?.let { aci -> + val idByAci: RecipientId? = getLocalAci(AppDependencies.application)?.let { aci -> db.rawQuery("SELECT _id FROM recipient WHERE uuid = ?", SqlUtil.buildArgs(aci)) .readToSingleObject { RecipientId.from(it.requireLong("_id")) } } @@ -285,7 +285,7 @@ object V188_FixMessageRecipientsAndEditMessageMigration : SignalDatabaseMigratio Log.w(TAG, "Failed to find by ACI! Will try by E164.") - val idByE164: RecipientId? = getLocalE164(ApplicationDependencies.getApplication())?.let { e164 -> + val idByE164: RecipientId? = getLocalE164(AppDependencies.application)?.let { e164 -> db.rawQuery("SELECT _id FROM recipient WHERE phone = ?", SqlUtil.buildArgs(e164)) .readToSingleObject { RecipientId.from(it.requireLong("_id")) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/GroupedThreadMediaLoader.java b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/GroupedThreadMediaLoader.java index 4d4d683e56..9d7f4af504 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/GroupedThreadMediaLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/GroupedThreadMediaLoader.java @@ -12,7 +12,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.MediaTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.CalendarDateOnly; import java.text.SimpleDateFormat; @@ -59,7 +59,7 @@ public final class GroupedThreadMediaLoader extends AsyncTaskLoader> @Override public @Nullable Pair loadInBackground() { - ApplicationDependencies.getDatabaseObserver().registerAttachmentObserver(observer); + AppDependencies.getDatabaseObserver().registerAttachmentObserver(observer); Cursor cursor = SignalDatabase.media().getGalleryMediaForThread(threadId, sorting); @@ -61,6 +61,6 @@ public final class PagingMediaLoader extends AsyncLoader> @Override protected void onAbandon() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer); + AppDependencies.getDatabaseObserver().unregisterObserver(observer); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryViewState.kt b/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryViewState.kt index 8f6ee7de91..aede7ba98b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryViewState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/StoryViewState.kt @@ -4,7 +4,7 @@ import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -52,9 +52,9 @@ enum class StoryViewState { refresh() } - ApplicationDependencies.getDatabaseObserver().registerStoryObserver(recipientId, storyObserver) + AppDependencies.databaseObserver.registerStoryObserver(recipientId, storyObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(storyObserver) + AppDependencies.databaseObserver.unregisterObserver(storyObserver) } refresh() diff --git a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountRepository.java b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountRepository.java index 111787598e..0f4994fad3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/delete/DeleteAccountRepository.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupManager; import org.thoughtcrime.securesms.util.ServiceUtil; import org.whispersystems.signalservice.api.util.PhoneNumberFormatter; @@ -50,8 +50,8 @@ class DeleteAccountRepository { onDeleteAccountEvent.accept(DeleteAccountEvent.CancelingSubscription.INSTANCE); InAppPaymentSubscriberRecord subscriber = InAppPaymentsRepository.requireSubscriber(InAppPaymentSubscriberRecord.Type.DONATION); - ServiceResponse cancelSubscriptionResponse = ApplicationDependencies.getDonationsService() - .cancelSubscription(subscriber.getSubscriberId()); + ServiceResponse cancelSubscriptionResponse = AppDependencies.getDonationsService() + .cancelSubscription(subscriber.getSubscriberId()); if (cancelSubscriptionResponse.getExecutionError().isPresent()) { Log.w(TAG, "deleteAccount: failed attempt to cancel subscription"); @@ -84,7 +84,7 @@ class DeleteAccountRepository { while (groupRecord != null) { if (groupRecord.getId().isPush() && groupRecord.isActive()) { if (!groupRecord.isV1Group()) { - GroupManager.leaveGroup(ApplicationDependencies.getApplication(), groupRecord.getId().requirePush(), true); + GroupManager.leaveGroup(AppDependencies.getApplication(), groupRecord.getId().requirePush(), true); } onDeleteAccountEvent.accept(new DeleteAccountEvent.LeaveGroupsProgress(groups.getCount(), ++groupsLeft)); } @@ -103,7 +103,7 @@ class DeleteAccountRepository { Log.i(TAG, "deleteAccount: attempting to delete account from server..."); try { - ApplicationDependencies.getSignalServiceAccountManager().deleteAccount(); + AppDependencies.getSignalServiceAccountManager().deleteAccount(); } catch (IOException e) { Log.w(TAG, "deleteAccount: failed to delete account from signal service", e); onDeleteAccountEvent.accept(DeleteAccountEvent.ServerDeletionFailed.INSTANCE); @@ -113,7 +113,7 @@ class DeleteAccountRepository { Log.i(TAG, "deleteAccount: successfully removed account from server"); Log.i(TAG, "deleteAccount: attempting to delete user data and close process..."); - if (!ServiceUtil.getActivityManager(ApplicationDependencies.getApplication()).clearApplicationUserData()) { + if (!ServiceUtil.getActivityManager(AppDependencies.getApplication()).clearApplicationUserData()) { Log.w(TAG, "deleteAccount: failed to delete user data"); onDeleteAccountEvent.accept(DeleteAccountEvent.LocalDataDeletionFailed.INSTANCE); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppDependencies.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppDependencies.kt new file mode 100644 index 0000000000..1f4974c547 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppDependencies.kt @@ -0,0 +1,346 @@ +package org.thoughtcrime.securesms.dependencies + +import android.annotation.SuppressLint +import android.app.Application +import androidx.annotation.MainThread +import io.reactivex.rxjava3.core.Observable +import io.reactivex.rxjava3.subjects.BehaviorSubject +import io.reactivex.rxjava3.subjects.Subject +import okhttp3.OkHttpClient +import org.signal.core.util.concurrent.DeadlockDetector +import org.signal.core.util.resettableLazy +import org.signal.libsignal.zkgroup.profiles.ClientZkProfileOperations +import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations +import org.thoughtcrime.securesms.components.TypingStatusRepository +import org.thoughtcrime.securesms.components.TypingStatusSender +import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl +import org.thoughtcrime.securesms.database.DatabaseObserver +import org.thoughtcrime.securesms.database.PendingRetryReceiptCache +import org.thoughtcrime.securesms.groups.GroupsV2Authorization +import org.thoughtcrime.securesms.jobmanager.JobManager +import org.thoughtcrime.securesms.megaphone.MegaphoneRepository +import org.thoughtcrime.securesms.messages.IncomingMessageObserver +import org.thoughtcrime.securesms.notifications.MessageNotifier +import org.thoughtcrime.securesms.payments.Payments +import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess +import org.thoughtcrime.securesms.recipients.LiveRecipientCache +import org.thoughtcrime.securesms.revealable.ViewOnceMessageManager +import org.thoughtcrime.securesms.service.DeletedCallEventManager +import org.thoughtcrime.securesms.service.ExpiringMessageManager +import org.thoughtcrime.securesms.service.ExpiringStoriesManager +import org.thoughtcrime.securesms.service.PendingRetryReceiptManager +import org.thoughtcrime.securesms.service.ScheduledMessageManager +import org.thoughtcrime.securesms.service.TrimThreadsByDateManager +import org.thoughtcrime.securesms.service.webrtc.SignalCallManager +import org.thoughtcrime.securesms.shakereport.ShakeToReport +import org.thoughtcrime.securesms.util.AppForegroundObserver +import org.thoughtcrime.securesms.util.EarlyMessageCache +import org.thoughtcrime.securesms.util.FrameRateTracker +import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache +import org.thoughtcrime.securesms.video.exo.SimpleExoPlayerPool +import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat +import org.whispersystems.signalservice.api.SignalServiceAccountManager +import org.whispersystems.signalservice.api.SignalServiceDataStore +import org.whispersystems.signalservice.api.SignalServiceMessageReceiver +import org.whispersystems.signalservice.api.SignalServiceMessageSender +import org.whispersystems.signalservice.api.SignalWebSocket +import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations +import org.whispersystems.signalservice.api.services.CallLinksService +import org.whispersystems.signalservice.api.services.DonationsService +import org.whispersystems.signalservice.api.services.ProfileService +import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState +import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration +import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork +import java.util.function.Supplier + +/** + * Location for storing and retrieving application-scoped singletons. Users must call + * [.init] before using any of the methods, preferably early on in + * [Application.onCreate]. + * + * All future application-scoped singletons should be written as normal objects, then placed here + * to manage their singleton-ness. + */ +@SuppressLint("StaticFieldLeak") +object AppDependencies { + private lateinit var _application: Application + private lateinit var provider: Provider + + // Needs special initialization because it needs to be created on the main thread + private lateinit var _appForegroundObserver: AppForegroundObserver + + @JvmStatic + @MainThread + fun init(application: Application, provider: Provider) { + if (this::_application.isInitialized || this::provider.isInitialized) { + throw IllegalStateException("Already initialized!") + } + + _application = application + AppDependencies.provider = provider + + _appForegroundObserver = provider.provideAppForegroundObserver() + _appForegroundObserver.begin() + } + + @JvmStatic + val isInitialized: Boolean + get() = this::_application.isInitialized + + @JvmStatic + val application: Application + get() = _application + + @JvmStatic + val appForegroundObserver: AppForegroundObserver + get() = _appForegroundObserver + + @JvmStatic + val recipientCache: LiveRecipientCache by lazy { + provider.provideRecipientCache() + } + + @JvmStatic + val jobManager: JobManager by lazy { + provider.provideJobManager() + } + + @JvmStatic + val frameRateTracker: FrameRateTracker by lazy { + provider.provideFrameRateTracker() + } + + @JvmStatic + val megaphoneRepository: MegaphoneRepository by lazy { + provider.provideMegaphoneRepository() + } + + @JvmStatic + val earlyMessageCache: EarlyMessageCache by lazy { + provider.provideEarlyMessageCache() + } + + @JvmStatic + val typingStatusRepository: TypingStatusRepository by lazy { + provider.provideTypingStatusRepository() + } + + @JvmStatic + val typingStatusSender: TypingStatusSender by lazy { + provider.provideTypingStatusSender() + } + + @JvmStatic + val databaseObserver: DatabaseObserver by lazy { + provider.provideDatabaseObserver() + } + + @JvmStatic + val trimThreadsByDateManager: TrimThreadsByDateManager by lazy { + provider.provideTrimThreadsByDateManager() + } + + @JvmStatic + val viewOnceMessageManager: ViewOnceMessageManager by lazy { + provider.provideViewOnceMessageManager() + } + + @JvmStatic + val expiringMessageManager: ExpiringMessageManager by lazy { + provider.provideExpiringMessageManager() + } + + @JvmStatic + val deletedCallEventManager: DeletedCallEventManager by lazy { + provider.provideDeletedCallEventManager() + } + + @JvmStatic + val signalCallManager: SignalCallManager by lazy { + provider.provideSignalCallManager() + } + + @JvmStatic + val shakeToReport: ShakeToReport by lazy { + provider.provideShakeToReport() + } + + @JvmStatic + val pendingRetryReceiptManager: PendingRetryReceiptManager by lazy { + provider.providePendingRetryReceiptManager() + } + + @JvmStatic + val pendingRetryReceiptCache: PendingRetryReceiptCache by lazy { + provider.providePendingRetryReceiptCache() + } + + @JvmStatic + val messageNotifier: MessageNotifier by lazy { + provider.provideMessageNotifier() + } + + @JvmStatic + val giphyMp4Cache: GiphyMp4Cache by lazy { + provider.provideGiphyMp4Cache() + } + + @JvmStatic + val exoPlayerPool: SimpleExoPlayerPool by lazy { + provider.provideExoPlayerPool() + } + + @JvmStatic + val deadlockDetector: DeadlockDetector by lazy { + provider.provideDeadlockDetector() + } + + @JvmStatic + val expireStoriesManager: ExpiringStoriesManager by lazy { + provider.provideExpiringStoriesManager() + } + + @JvmStatic + val scheduledMessageManager: ScheduledMessageManager by lazy { + provider.provideScheduledMessageManager() + } + + @JvmStatic + val androidCallAudioManager: AudioManagerCompat by lazy { + provider.provideAndroidCallAudioManager() + } + + private val _webSocketObserver: Subject = BehaviorSubject.create() + + /** + * An observable that emits the current state of the WebSocket connection across the various lifecycles + * of the [signalWebSocket]. + */ + @JvmStatic + val webSocketObserver: Observable = _webSocketObserver + + private val _networkModule = resettableLazy { + NetworkDependenciesModule(application, provider, _webSocketObserver) + } + private val networkModule by _networkModule + + @JvmStatic + val signalServiceNetworkAccess: SignalServiceNetworkAccess + get() = networkModule.signalServiceNetworkAccess + + @JvmStatic + val protocolStore: SignalServiceDataStoreImpl + get() = networkModule.protocolStore + + @JvmStatic + val signalServiceMessageSender: SignalServiceMessageSender + get() = networkModule.signalServiceMessageSender + + @JvmStatic + val signalServiceAccountManager: SignalServiceAccountManager + get() = networkModule.signalServiceAccountManager + + @JvmStatic + val signalServiceMessageReceiver: SignalServiceMessageReceiver + get() = networkModule.signalServiceMessageReceiver + + @JvmStatic + val incomingMessageObserver: IncomingMessageObserver + get() = networkModule.incomingMessageObserver + + @JvmStatic + val libsignalNetwork: LibSignalNetwork + get() = networkModule.libsignalNetwork + + @JvmStatic + val signalWebSocket: SignalWebSocket + get() = networkModule.signalWebSocket + + @JvmStatic + val groupsV2Authorization: GroupsV2Authorization + get() = networkModule.groupsV2Authorization + + @JvmStatic + val groupsV2Operations: GroupsV2Operations + get() = networkModule.groupsV2Operations + + @JvmStatic + val clientZkReceiptOperations + get() = networkModule.clientZkReceiptOperations + + @JvmStatic + val payments: Payments + get() = networkModule.payments + + @JvmStatic + val callLinksService: CallLinksService + get() = networkModule.callLinksService + + @JvmStatic + val profileService: ProfileService + get() = networkModule.profileService + + @JvmStatic + val donationsService: DonationsService + get() = networkModule.donationsService + + @JvmStatic + val okHttpClient: OkHttpClient + get() = networkModule.okHttpClient + + @JvmStatic + val signalOkHttpClient: OkHttpClient + get() = networkModule.signalOkHttpClient + + @JvmStatic + fun resetProtocolStores() { + networkModule.resetProtocolStores() + } + + @JvmStatic + fun resetNetwork() { + networkModule.closeConnections() + _networkModule.reset() + } + + interface Provider { + fun provideGroupsV2Operations(signalServiceConfiguration: SignalServiceConfiguration): GroupsV2Operations + fun provideSignalServiceAccountManager(signalServiceConfiguration: SignalServiceConfiguration, groupsV2Operations: GroupsV2Operations): SignalServiceAccountManager + fun provideSignalServiceMessageSender(signalWebSocket: SignalWebSocket, protocolStore: SignalServiceDataStore, signalServiceConfiguration: SignalServiceConfiguration): SignalServiceMessageSender + fun provideSignalServiceMessageReceiver(signalServiceConfiguration: SignalServiceConfiguration): SignalServiceMessageReceiver + fun provideSignalServiceNetworkAccess(): SignalServiceNetworkAccess + fun provideRecipientCache(): LiveRecipientCache + fun provideJobManager(): JobManager + fun provideFrameRateTracker(): FrameRateTracker + fun provideMegaphoneRepository(): MegaphoneRepository + fun provideEarlyMessageCache(): EarlyMessageCache + fun provideMessageNotifier(): MessageNotifier + fun provideIncomingMessageObserver(): IncomingMessageObserver + fun provideTrimThreadsByDateManager(): TrimThreadsByDateManager + fun provideViewOnceMessageManager(): ViewOnceMessageManager + fun provideExpiringStoriesManager(): ExpiringStoriesManager + fun provideExpiringMessageManager(): ExpiringMessageManager + fun provideDeletedCallEventManager(): DeletedCallEventManager + fun provideTypingStatusRepository(): TypingStatusRepository + fun provideTypingStatusSender(): TypingStatusSender + fun provideDatabaseObserver(): DatabaseObserver + fun providePayments(signalServiceAccountManager: SignalServiceAccountManager): Payments + fun provideShakeToReport(): ShakeToReport + fun provideAppForegroundObserver(): AppForegroundObserver + fun provideSignalCallManager(): SignalCallManager + fun providePendingRetryReceiptManager(): PendingRetryReceiptManager + fun providePendingRetryReceiptCache(): PendingRetryReceiptCache + fun provideSignalWebSocket(signalServiceConfigurationSupplier: Supplier, libSignalNetworkSupplier: Supplier): SignalWebSocket + fun provideProtocolStore(): SignalServiceDataStoreImpl + fun provideGiphyMp4Cache(): GiphyMp4Cache + fun provideExoPlayerPool(): SimpleExoPlayerPool + fun provideAndroidCallAudioManager(): AudioManagerCompat + fun provideDonationsService(signalServiceConfiguration: SignalServiceConfiguration, groupsV2Operations: GroupsV2Operations): DonationsService + fun provideCallLinksService(signalServiceConfiguration: SignalServiceConfiguration, groupsV2Operations: GroupsV2Operations): CallLinksService + fun provideProfileService(profileOperations: ClientZkProfileOperations, signalServiceMessageReceiver: SignalServiceMessageReceiver, signalWebSocket: SignalWebSocket): ProfileService + fun provideDeadlockDetector(): DeadlockDetector + fun provideClientZkReceiptOperations(signalServiceConfiguration: SignalServiceConfiguration): ClientZkReceiptOperations + fun provideScheduledMessageManager(): ScheduledMessageManager + fun provideLibsignalNetwork(config: SignalServiceConfiguration): LibSignalNetwork + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java deleted file mode 100644 index d80712700a..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java +++ /dev/null @@ -1,731 +0,0 @@ -package org.thoughtcrime.securesms.dependencies; - -import android.annotation.SuppressLint; -import android.app.Application; - -import androidx.annotation.MainThread; -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; - -import org.signal.core.util.concurrent.DeadlockDetector; -import org.signal.libsignal.zkgroup.profiles.ClientZkProfileOperations; -import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations; -import org.thoughtcrime.securesms.components.TypingStatusRepository; -import org.thoughtcrime.securesms.components.TypingStatusSender; -import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl; -import org.thoughtcrime.securesms.database.DatabaseObserver; -import org.thoughtcrime.securesms.database.PendingRetryReceiptCache; -import org.thoughtcrime.securesms.groups.GroupsV2Authorization; -import org.thoughtcrime.securesms.groups.GroupsV2AuthorizationMemoryValueCache; -import org.thoughtcrime.securesms.jobmanager.JobManager; -import org.thoughtcrime.securesms.keyvalue.SignalStore; -import org.thoughtcrime.securesms.megaphone.MegaphoneRepository; -import org.thoughtcrime.securesms.messages.IncomingMessageObserver; -import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor; -import org.thoughtcrime.securesms.notifications.MessageNotifier; -import org.thoughtcrime.securesms.payments.Payments; -import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess; -import org.thoughtcrime.securesms.push.SignalServiceTrustStore; -import org.thoughtcrime.securesms.recipients.LiveRecipientCache; -import org.thoughtcrime.securesms.revealable.ViewOnceMessageManager; -import org.thoughtcrime.securesms.service.DeletedCallEventManager; -import org.thoughtcrime.securesms.service.ExpiringMessageManager; -import org.thoughtcrime.securesms.service.ExpiringStoriesManager; -import org.thoughtcrime.securesms.service.PendingRetryReceiptManager; -import org.thoughtcrime.securesms.service.ScheduledMessageManager; -import org.thoughtcrime.securesms.service.TrimThreadsByDateManager; -import org.thoughtcrime.securesms.service.webrtc.SignalCallManager; -import org.thoughtcrime.securesms.shakereport.ShakeToReport; -import org.thoughtcrime.securesms.util.AppForegroundObserver; -import org.thoughtcrime.securesms.util.EarlyMessageCache; -import org.thoughtcrime.securesms.util.FrameRateTracker; -import org.thoughtcrime.securesms.video.exo.ExoPlayerPool; -import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache; -import org.thoughtcrime.securesms.video.exo.SimpleExoPlayerPool; -import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat; -import org.whispersystems.signalservice.api.SignalServiceAccountManager; -import org.whispersystems.signalservice.api.SignalServiceDataStore; -import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; -import org.whispersystems.signalservice.api.SignalServiceMessageSender; -import org.whispersystems.signalservice.api.SignalWebSocket; -import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations; -import org.whispersystems.signalservice.api.push.TrustStore; -import org.whispersystems.signalservice.api.services.CallLinksService; -import org.whispersystems.signalservice.api.services.DonationsService; -import org.whispersystems.signalservice.api.services.ProfileService; -import org.whispersystems.signalservice.api.util.Tls12SocketFactory; -import org.whispersystems.signalservice.internal.configuration.SignalServiceConfiguration; -import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager; -import org.whispersystems.signalservice.internal.util.Util; -import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork; - -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.util.function.Supplier; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - -import okhttp3.ConnectionSpec; -import okhttp3.OkHttpClient; - -/** - * Location for storing and retrieving application-scoped singletons. Users must call - * {@link #init(Application, Provider)} before using any of the methods, preferably early on in - * {@link Application#onCreate()}. - * - * All future application-scoped singletons should be written as normal objects, then placed here - * to manage their singleton-ness. - */ -@SuppressLint("StaticFieldLeak") -public class ApplicationDependencies { - - private static final Object LOCK = new Object(); - private static final Object FRAME_RATE_TRACKER_LOCK = new Object(); - private static final Object JOB_MANAGER_LOCK = new Object(); - private static final Object SIGNAL_HTTP_CLIENT_LOCK = new Object(); - private static final Object LIBSIGNAL_NETWORK_LOCK = new Object(); - - private static Application application; - private static Provider provider; - private static AppForegroundObserver appForegroundObserver; - - private static volatile SignalServiceAccountManager accountManager; - private static volatile SignalServiceMessageSender messageSender; - private static volatile SignalServiceMessageReceiver messageReceiver; - private static volatile IncomingMessageObserver incomingMessageObserver; - private static volatile LiveRecipientCache recipientCache; - private static volatile JobManager jobManager; - private static volatile FrameRateTracker frameRateTracker; - private static volatile MegaphoneRepository megaphoneRepository; - private static volatile GroupsV2Authorization groupsV2Authorization; - private static volatile GroupsV2Operations groupsV2Operations; - private static volatile EarlyMessageCache earlyMessageCache; - private static volatile TypingStatusRepository typingStatusRepository; - private static volatile TypingStatusSender typingStatusSender; - private static volatile DatabaseObserver databaseObserver; - private static volatile TrimThreadsByDateManager trimThreadsByDateManager; - private static volatile ViewOnceMessageManager viewOnceMessageManager; - private static volatile ExpiringStoriesManager expiringStoriesManager; - private static volatile ExpiringMessageManager expiringMessageManager; - private static volatile DeletedCallEventManager deletedCallEventManager; - private static volatile Payments payments; - private static volatile SignalCallManager signalCallManager; - private static volatile ShakeToReport shakeToReport; - private static volatile OkHttpClient okHttpClient; - private static volatile OkHttpClient signalOkHttpClient; - private static volatile PendingRetryReceiptManager pendingRetryReceiptManager; - private static volatile PendingRetryReceiptCache pendingRetryReceiptCache; - private static volatile SignalWebSocket signalWebSocket; - private static volatile MessageNotifier messageNotifier; - private static volatile SignalServiceDataStoreImpl protocolStore; - private static volatile GiphyMp4Cache giphyMp4Cache; - private static volatile SimpleExoPlayerPool exoPlayerPool; - private static volatile AudioManagerCompat audioManagerCompat; - private static volatile DonationsService donationsService; - private static volatile CallLinksService callLinksService; - private static volatile ProfileService profileService; - private static volatile DeadlockDetector deadlockDetector; - private static volatile ClientZkReceiptOperations clientZkReceiptOperations; - private static volatile ScheduledMessageManager scheduledMessagesManager; - private static volatile LibSignalNetwork libsignalNetwork; - - @MainThread - public static void init(@NonNull Application application, @NonNull Provider provider) { - synchronized (LOCK) { - if (ApplicationDependencies.application != null || ApplicationDependencies.provider != null) { - throw new IllegalStateException("Already initialized!"); - } - - ApplicationDependencies.application = application; - ApplicationDependencies.provider = provider; - ApplicationDependencies.appForegroundObserver = provider.provideAppForegroundObserver(); - - ApplicationDependencies.appForegroundObserver.begin(); - } - } - - @VisibleForTesting - public static boolean isInitialized() { - return ApplicationDependencies.application != null; - } - - public static @NonNull Application getApplication() { - return application; - } - - public static @NonNull SignalServiceAccountManager getSignalServiceAccountManager() { - SignalServiceAccountManager local = accountManager; - - if (local != null) { - return local; - } - - synchronized (LOCK) { - if (accountManager == null) { - accountManager = provider.provideSignalServiceAccountManager(getSignalServiceNetworkAccess().getConfiguration(), getGroupsV2Operations()); - } - return accountManager; - } - } - - public static @NonNull GroupsV2Authorization getGroupsV2Authorization() { - if (groupsV2Authorization == null) { - synchronized (LOCK) { - if (groupsV2Authorization == null) { - GroupsV2Authorization.ValueCache authCache = new GroupsV2AuthorizationMemoryValueCache(SignalStore.groupsV2AciAuthorizationCache()); - - groupsV2Authorization = new GroupsV2Authorization(getSignalServiceAccountManager().getGroupsV2Api(), authCache); - } - } - } - - return groupsV2Authorization; - } - - public static @NonNull GroupsV2Operations getGroupsV2Operations() { - if (groupsV2Operations == null) { - synchronized (LOCK) { - if (groupsV2Operations == null) { - groupsV2Operations = provider.provideGroupsV2Operations(getSignalServiceNetworkAccess().getConfiguration()); - } - } - } - - return groupsV2Operations; - } - - public static @NonNull SignalServiceMessageSender getSignalServiceMessageSender() { - SignalServiceMessageSender local = messageSender; - - if (local != null) { - return local; - } - - synchronized (LOCK) { - if (messageSender == null) { - messageSender = provider.provideSignalServiceMessageSender(getSignalWebSocket(), getProtocolStore(), getSignalServiceNetworkAccess().getConfiguration()); - } - return messageSender; - } - } - - public static @NonNull SignalServiceMessageReceiver getSignalServiceMessageReceiver() { - synchronized (LOCK) { - if (messageReceiver == null) { - messageReceiver = provider.provideSignalServiceMessageReceiver(getSignalServiceNetworkAccess().getConfiguration()); - } - return messageReceiver; - } - } - - public static void resetSignalServiceMessageReceiver() { - synchronized (LOCK) { - messageReceiver = null; - } - } - - public static void closeConnections() { - synchronized (LOCK) { - if (incomingMessageObserver != null) { - incomingMessageObserver.terminateAsync(); - } - - if (messageSender != null) { - messageSender.cancelInFlightRequests(); - } - - incomingMessageObserver = null; - messageReceiver = null; - accountManager = null; - messageSender = null; - } - } - - public static void resetAllNetworkConnections() { - synchronized (LOCK) { - closeConnections(); - if (libsignalNetwork != null) { - libsignalNetwork.resetSettings(getSignalServiceNetworkAccess().getConfiguration()); - } - if (signalWebSocket != null) { - signalWebSocket.forceNewWebSockets(); - } - } - } - - public static @NonNull SignalServiceNetworkAccess getSignalServiceNetworkAccess() { - return provider.provideSignalServiceNetworkAccess(); - } - - public static @NonNull LiveRecipientCache getRecipientCache() { - if (recipientCache == null) { - synchronized (LOCK) { - if (recipientCache == null) { - recipientCache = provider.provideRecipientCache(); - } - } - } - - return recipientCache; - } - - public static @NonNull JobManager getJobManager() { - if (jobManager == null) { - synchronized (JOB_MANAGER_LOCK) { - if (jobManager == null) { - jobManager = provider.provideJobManager(); - } - } - } - - return jobManager; - } - - public static @NonNull FrameRateTracker getFrameRateTracker() { - if (frameRateTracker == null) { - synchronized (FRAME_RATE_TRACKER_LOCK) { - if (frameRateTracker == null) { - frameRateTracker = provider.provideFrameRateTracker(); - } - } - } - - return frameRateTracker; - } - - public static @NonNull MegaphoneRepository getMegaphoneRepository() { - if (megaphoneRepository == null) { - synchronized (LOCK) { - if (megaphoneRepository == null) { - megaphoneRepository = provider.provideMegaphoneRepository(); - } - } - } - - return megaphoneRepository; - } - - public static @NonNull EarlyMessageCache getEarlyMessageCache() { - if (earlyMessageCache == null) { - synchronized (LOCK) { - if (earlyMessageCache == null) { - earlyMessageCache = provider.provideEarlyMessageCache(); - } - } - } - - return earlyMessageCache; - } - - public static @NonNull MessageNotifier getMessageNotifier() { - if (messageNotifier == null) { - synchronized (LOCK) { - if (messageNotifier == null) { - messageNotifier = provider.provideMessageNotifier(); - } - } - } - return messageNotifier; - } - - public static @NonNull IncomingMessageObserver getIncomingMessageObserver() { - IncomingMessageObserver local = incomingMessageObserver; - - if (local != null) { - return local; - } - - synchronized (LOCK) { - if (incomingMessageObserver == null) { - incomingMessageObserver = provider.provideIncomingMessageObserver(); - } - return incomingMessageObserver; - } - } - - public static @NonNull TrimThreadsByDateManager getTrimThreadsByDateManager() { - if (trimThreadsByDateManager == null) { - synchronized (LOCK) { - if (trimThreadsByDateManager == null) { - trimThreadsByDateManager = provider.provideTrimThreadsByDateManager(); - } - } - } - - return trimThreadsByDateManager; - } - - public static @NonNull ViewOnceMessageManager getViewOnceMessageManager() { - if (viewOnceMessageManager == null) { - synchronized (LOCK) { - if (viewOnceMessageManager == null) { - viewOnceMessageManager = provider.provideViewOnceMessageManager(); - } - } - } - - return viewOnceMessageManager; - } - - public static @NonNull ExpiringStoriesManager getExpireStoriesManager() { - if (expiringStoriesManager == null) { - synchronized (LOCK) { - if (expiringStoriesManager == null) { - expiringStoriesManager = provider.provideExpiringStoriesManager(); - } - } - } - - return expiringStoriesManager; - } - - public static @NonNull PendingRetryReceiptManager getPendingRetryReceiptManager() { - if (pendingRetryReceiptManager == null) { - synchronized (LOCK) { - if (pendingRetryReceiptManager == null) { - pendingRetryReceiptManager = provider.providePendingRetryReceiptManager(); - } - } - } - - return pendingRetryReceiptManager; - } - - public static @NonNull ExpiringMessageManager getExpiringMessageManager() { - if (expiringMessageManager == null) { - synchronized (LOCK) { - if (expiringMessageManager == null) { - expiringMessageManager = provider.provideExpiringMessageManager(); - } - } - } - - return expiringMessageManager; - } - - public static @NonNull DeletedCallEventManager getDeletedCallEventManager() { - if (deletedCallEventManager == null) { - synchronized (LOCK) { - if (deletedCallEventManager == null) { - deletedCallEventManager = provider.provideDeletedCallEventManager(); - } - } - } - - return deletedCallEventManager; - } - - public static @NonNull ScheduledMessageManager getScheduledMessageManager() { - if (scheduledMessagesManager == null) { - synchronized (LOCK) { - if (scheduledMessagesManager == null) { - scheduledMessagesManager = provider.provideScheduledMessageManager(); - } - } - } - - return scheduledMessagesManager; - } - - public static TypingStatusRepository getTypingStatusRepository() { - if (typingStatusRepository == null) { - synchronized (LOCK) { - if (typingStatusRepository == null) { - typingStatusRepository = provider.provideTypingStatusRepository(); - } - } - } - - return typingStatusRepository; - } - - public static TypingStatusSender getTypingStatusSender() { - if (typingStatusSender == null) { - synchronized (LOCK) { - if (typingStatusSender == null) { - typingStatusSender = provider.provideTypingStatusSender(); - } - } - } - - return typingStatusSender; - } - - public static @NonNull DatabaseObserver getDatabaseObserver() { - if (databaseObserver == null) { - synchronized (LOCK) { - if (databaseObserver == null) { - databaseObserver = provider.provideDatabaseObserver(); - } - } - } - - return databaseObserver; - } - - public static @NonNull Payments getPayments() { - if (payments == null) { - synchronized (LOCK) { - if (payments == null) { - payments = provider.providePayments(getSignalServiceAccountManager()); - } - } - } - - return payments; - } - - public static @NonNull ShakeToReport getShakeToReport() { - if (shakeToReport == null) { - synchronized (LOCK) { - if (shakeToReport == null) { - shakeToReport = provider.provideShakeToReport(); - } - } - } - - return shakeToReport; - } - - public static @NonNull SignalCallManager getSignalCallManager() { - if (signalCallManager == null) { - synchronized (LOCK) { - if (signalCallManager == null) { - signalCallManager = provider.provideSignalCallManager(); - } - } - } - - return signalCallManager; - } - - public static @NonNull OkHttpClient getOkHttpClient() { - if (okHttpClient == null) { - synchronized (LOCK) { - if (okHttpClient == null) { - okHttpClient = new OkHttpClient.Builder() - .addInterceptor(new StandardUserAgentInterceptor()) - .dns(SignalServiceNetworkAccess.DNS) - .build(); - } - } - } - - return okHttpClient; - } - - public static @NonNull OkHttpClient getSignalOkHttpClient() { - if (signalOkHttpClient == null) { - synchronized (SIGNAL_HTTP_CLIENT_LOCK) { - if (signalOkHttpClient == null) { - try { - OkHttpClient baseClient = ApplicationDependencies.getOkHttpClient(); - SSLContext sslContext = SSLContext.getInstance("TLS"); - TrustStore trustStore = new SignalServiceTrustStore(ApplicationDependencies.getApplication()); - TrustManager[] trustManagers = BlacklistingTrustManager.createFor(trustStore); - - sslContext.init(null, trustManagers, null); - - signalOkHttpClient = baseClient.newBuilder() - .sslSocketFactory(new Tls12SocketFactory(sslContext.getSocketFactory()), (X509TrustManager) trustManagers[0]) - .connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS)) - .build(); - } catch (NoSuchAlgorithmException | KeyManagementException e) { - throw new AssertionError(e); - } - } - } - } - - return signalOkHttpClient; - } - - public static @NonNull AppForegroundObserver getAppForegroundObserver() { - return appForegroundObserver; - } - - public static @NonNull PendingRetryReceiptCache getPendingRetryReceiptCache() { - if (pendingRetryReceiptCache == null) { - synchronized (LOCK) { - if (pendingRetryReceiptCache == null) { - pendingRetryReceiptCache = provider.providePendingRetryReceiptCache(); - } - } - } - - return pendingRetryReceiptCache; - } - - public static @NonNull SignalWebSocket getSignalWebSocket() { - if (signalWebSocket == null) { - synchronized (LOCK) { - if (signalWebSocket == null) { - signalWebSocket = provider.provideSignalWebSocket(() -> getSignalServiceNetworkAccess().getConfiguration(), ApplicationDependencies::getLibsignalNetwork); - } - } - } - return signalWebSocket; - } - - public static @NonNull SignalServiceDataStoreImpl getProtocolStore() { - if (protocolStore == null) { - synchronized (LOCK) { - if (protocolStore == null) { - protocolStore = provider.provideProtocolStore(); - } - } - } - - return protocolStore; - } - - public static void resetProtocolStores() { - synchronized (LOCK) { - protocolStore = null; - } - } - - public static @NonNull GiphyMp4Cache getGiphyMp4Cache() { - if (giphyMp4Cache == null) { - synchronized (LOCK) { - if (giphyMp4Cache == null) { - giphyMp4Cache = provider.provideGiphyMp4Cache(); - } - } - } - return giphyMp4Cache; - } - - public static @NonNull ExoPlayerPool getExoPlayerPool() { - if (exoPlayerPool == null) { - synchronized (LOCK) { - if (exoPlayerPool == null) { - exoPlayerPool = provider.provideExoPlayerPool(); - } - } - } - return exoPlayerPool; - } - - public static @NonNull AudioManagerCompat getAndroidCallAudioManager() { - if (audioManagerCompat == null) { - synchronized (LOCK) { - if (audioManagerCompat == null) { - audioManagerCompat = provider.provideAndroidCallAudioManager(); - } - } - } - return audioManagerCompat; - } - - public static @NonNull DonationsService getDonationsService() { - if (donationsService == null) { - synchronized (LOCK) { - if (donationsService == null) { - donationsService = provider.provideDonationsService(getSignalServiceNetworkAccess().getConfiguration(), getGroupsV2Operations()); - } - } - } - return donationsService; - } - - public static @NonNull CallLinksService getCallLinksService() { - if (callLinksService == null) { - synchronized (LOCK) { - if (callLinksService == null) { - callLinksService = provider.provideCallLinksService(getSignalServiceNetworkAccess().getConfiguration(), getGroupsV2Operations()); - } - } - } - return callLinksService; - } - - public static @NonNull ProfileService getProfileService() { - if (profileService == null) { - synchronized (LOCK) { - if (profileService == null) { - profileService = provider.provideProfileService(ApplicationDependencies.getGroupsV2Operations().getProfileOperations(), - ApplicationDependencies.getSignalServiceMessageReceiver(), - ApplicationDependencies.getSignalWebSocket()); - } - } - } - return profileService; - } - - public static @NonNull ClientZkReceiptOperations getClientZkReceiptOperations() { - if (clientZkReceiptOperations == null) { - synchronized (LOCK) { - if (clientZkReceiptOperations == null) { - clientZkReceiptOperations = provider.provideClientZkReceiptOperations(getSignalServiceNetworkAccess().getConfiguration()); - } - } - } - return clientZkReceiptOperations; - } - - public static @NonNull DeadlockDetector getDeadlockDetector() { - if (deadlockDetector == null) { - synchronized (LOCK) { - if (deadlockDetector == null) { - deadlockDetector = provider.provideDeadlockDetector(); - } - } - } - return deadlockDetector; - } - - public static @NonNull LibSignalNetwork getLibsignalNetwork() { - if (libsignalNetwork == null) { - synchronized (LIBSIGNAL_NETWORK_LOCK) { - if (libsignalNetwork == null) { - libsignalNetwork = provider.provideLibsignalNetwork(getSignalServiceNetworkAccess().getConfiguration()); - } - } - } - return libsignalNetwork; - } - - public interface Provider { - @NonNull GroupsV2Operations provideGroupsV2Operations(@NonNull SignalServiceConfiguration signalServiceConfiguration); - @NonNull SignalServiceAccountManager provideSignalServiceAccountManager(@NonNull SignalServiceConfiguration signalServiceConfiguration, @NonNull GroupsV2Operations groupsV2Operations); - @NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket, @NonNull SignalServiceDataStore protocolStore, @NonNull SignalServiceConfiguration signalServiceConfiguration); - @NonNull SignalServiceMessageReceiver provideSignalServiceMessageReceiver(@NonNull SignalServiceConfiguration signalServiceConfiguration); - @NonNull SignalServiceNetworkAccess provideSignalServiceNetworkAccess(); - @NonNull LiveRecipientCache provideRecipientCache(); - @NonNull JobManager provideJobManager(); - @NonNull FrameRateTracker provideFrameRateTracker(); - @NonNull MegaphoneRepository provideMegaphoneRepository(); - @NonNull EarlyMessageCache provideEarlyMessageCache(); - @NonNull MessageNotifier provideMessageNotifier(); - @NonNull IncomingMessageObserver provideIncomingMessageObserver(); - @NonNull TrimThreadsByDateManager provideTrimThreadsByDateManager(); - @NonNull ViewOnceMessageManager provideViewOnceMessageManager(); - @NonNull ExpiringStoriesManager provideExpiringStoriesManager(); - @NonNull ExpiringMessageManager provideExpiringMessageManager(); - @NonNull DeletedCallEventManager provideDeletedCallEventManager(); - @NonNull TypingStatusRepository provideTypingStatusRepository(); - @NonNull TypingStatusSender provideTypingStatusSender(); - @NonNull DatabaseObserver provideDatabaseObserver(); - @NonNull Payments providePayments(@NonNull SignalServiceAccountManager signalServiceAccountManager); - @NonNull ShakeToReport provideShakeToReport(); - @NonNull AppForegroundObserver provideAppForegroundObserver(); - @NonNull SignalCallManager provideSignalCallManager(); - @NonNull PendingRetryReceiptManager providePendingRetryReceiptManager(); - @NonNull PendingRetryReceiptCache providePendingRetryReceiptCache(); - @NonNull SignalWebSocket provideSignalWebSocket(@NonNull Supplier signalServiceConfigurationSupplier, @NonNull Supplier libSignalNetworkSupplier); - @NonNull SignalServiceDataStoreImpl provideProtocolStore(); - @NonNull GiphyMp4Cache provideGiphyMp4Cache(); - @NonNull SimpleExoPlayerPool provideExoPlayerPool(); - @NonNull AudioManagerCompat provideAndroidCallAudioManager(); - @NonNull DonationsService provideDonationsService(@NonNull SignalServiceConfiguration signalServiceConfiguration, @NonNull GroupsV2Operations groupsV2Operations); - @NonNull CallLinksService provideCallLinksService(@NonNull SignalServiceConfiguration signalServiceConfiguration, @NonNull GroupsV2Operations groupsV2Operations); - @NonNull ProfileService provideProfileService(@NonNull ClientZkProfileOperations profileOperations, @NonNull SignalServiceMessageReceiver signalServiceMessageReceiver, @NonNull SignalWebSocket signalWebSocket); - @NonNull DeadlockDetector provideDeadlockDetector(); - @NonNull ClientZkReceiptOperations provideClientZkReceiptOperations(@NonNull SignalServiceConfiguration signalServiceConfiguration); - @NonNull ScheduledMessageManager provideScheduledMessageManager(); - @NonNull LibSignalNetwork provideLibsignalNetwork(@NonNull SignalServiceConfiguration config); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java index 04dc85c96f..c0c082e8b5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java @@ -104,9 +104,9 @@ import java.util.concurrent.TimeUnit; import java.util.function.Supplier; /** - * Implementation of {@link ApplicationDependencies.Provider} that provides real app dependencies. + * Implementation of {@link AppDependencies.Provider} that provides real app dependencies. */ -public class ApplicationDependencyProvider implements ApplicationDependencies.Provider { +public class ApplicationDependencyProvider implements AppDependencies.Provider { private final Application context; diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/NetworkDependenciesModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/NetworkDependenciesModule.kt new file mode 100644 index 0000000000..750d2c3328 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/NetworkDependenciesModule.kt @@ -0,0 +1,160 @@ +/* + * Copyright 2024 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.thoughtcrime.securesms.dependencies + +import android.app.Application +import io.reactivex.rxjava3.disposables.CompositeDisposable +import io.reactivex.rxjava3.kotlin.plusAssign +import io.reactivex.rxjava3.subjects.Subject +import okhttp3.ConnectionSpec +import okhttp3.OkHttpClient +import org.signal.core.util.resettableLazy +import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations +import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl +import org.thoughtcrime.securesms.groups.GroupsV2Authorization +import org.thoughtcrime.securesms.groups.GroupsV2AuthorizationMemoryValueCache +import org.thoughtcrime.securesms.keyvalue.SignalStore +import org.thoughtcrime.securesms.messages.IncomingMessageObserver +import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor +import org.thoughtcrime.securesms.payments.Payments +import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess +import org.thoughtcrime.securesms.push.SignalServiceTrustStore +import org.whispersystems.signalservice.api.SignalServiceAccountManager +import org.whispersystems.signalservice.api.SignalServiceMessageReceiver +import org.whispersystems.signalservice.api.SignalServiceMessageSender +import org.whispersystems.signalservice.api.SignalWebSocket +import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations +import org.whispersystems.signalservice.api.push.TrustStore +import org.whispersystems.signalservice.api.services.CallLinksService +import org.whispersystems.signalservice.api.services.DonationsService +import org.whispersystems.signalservice.api.services.ProfileService +import org.whispersystems.signalservice.api.util.Tls12SocketFactory +import org.whispersystems.signalservice.api.websocket.WebSocketConnectionState +import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager +import org.whispersystems.signalservice.internal.util.Util +import org.whispersystems.signalservice.internal.websocket.LibSignalNetwork +import java.security.KeyManagementException +import java.security.NoSuchAlgorithmException +import javax.net.ssl.SSLContext +import javax.net.ssl.X509TrustManager + +/** + * A subset of [AppDependencies] that relies on the network. We bundle them together because when the network + * needs to get reset, we just throw out the whole thing and recreate it. + */ +class NetworkDependenciesModule( + private val application: Application, + private val provider: AppDependencies.Provider, + private val webSocketStateSubject: Subject +) { + + private val disposables: CompositeDisposable = CompositeDisposable() + + val signalServiceNetworkAccess: SignalServiceNetworkAccess by lazy { + provider.provideSignalServiceNetworkAccess() + } + + private val _protocolStore = resettableLazy { + provider.provideProtocolStore() + } + val protocolStore: SignalServiceDataStoreImpl by _protocolStore + + private val _signalServiceMessageSender = resettableLazy { + provider.provideSignalServiceMessageSender(signalWebSocket, protocolStore, signalServiceNetworkAccess.getConfiguration()) + } + val signalServiceMessageSender: SignalServiceMessageSender by _signalServiceMessageSender + + val incomingMessageObserver: IncomingMessageObserver by lazy { + provider.provideIncomingMessageObserver() + } + + val signalServiceAccountManager: SignalServiceAccountManager by lazy { + provider.provideSignalServiceAccountManager(signalServiceNetworkAccess.getConfiguration(), groupsV2Operations) + } + + val libsignalNetwork: LibSignalNetwork by lazy { + provider.provideLibsignalNetwork(signalServiceNetworkAccess.getConfiguration()) + } + + val signalWebSocket: SignalWebSocket by lazy { + provider.provideSignalWebSocket({ signalServiceNetworkAccess.getConfiguration() }, { libsignalNetwork }).also { + disposables += it.webSocketState.subscribe { webSocketStateSubject.onNext(it) } + } + } + + val groupsV2Authorization: GroupsV2Authorization by lazy { + val authCache: GroupsV2Authorization.ValueCache = GroupsV2AuthorizationMemoryValueCache(SignalStore.groupsV2AciAuthorizationCache()) + GroupsV2Authorization(signalServiceAccountManager.groupsV2Api, authCache) + } + + val groupsV2Operations: GroupsV2Operations by lazy { + provider.provideGroupsV2Operations(signalServiceNetworkAccess.getConfiguration()) + } + + val clientZkReceiptOperations: ClientZkReceiptOperations by lazy { + provider.provideClientZkReceiptOperations(signalServiceNetworkAccess.getConfiguration()) + } + + val signalServiceMessageReceiver: SignalServiceMessageReceiver by lazy { + provider.provideSignalServiceMessageReceiver(signalServiceNetworkAccess.getConfiguration()) + } + + val payments: Payments by lazy { + provider.providePayments(signalServiceAccountManager) + } + + val callLinksService: CallLinksService by lazy { + provider.provideCallLinksService(signalServiceNetworkAccess.getConfiguration(), groupsV2Operations) + } + + val profileService: ProfileService by lazy { + provider.provideProfileService(groupsV2Operations.profileOperations, signalServiceMessageReceiver, signalWebSocket) + } + + val donationsService: DonationsService by lazy { + provider.provideDonationsService(signalServiceNetworkAccess.getConfiguration(), groupsV2Operations) + } + + val okHttpClient: OkHttpClient by lazy { + OkHttpClient.Builder() + .addInterceptor(StandardUserAgentInterceptor()) + .dns(SignalServiceNetworkAccess.DNS) + .build() + } + + val signalOkHttpClient: OkHttpClient by lazy { + try { + val baseClient = okHttpClient + val sslContext = SSLContext.getInstance("TLS") + val trustStore: TrustStore = SignalServiceTrustStore(application) + val trustManagers = BlacklistingTrustManager.createFor(trustStore) + + sslContext.init(null, trustManagers, null) + + baseClient.newBuilder() + .sslSocketFactory(Tls12SocketFactory(sslContext.socketFactory), trustManagers[0] as X509TrustManager) + .connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS)) + .build() + } catch (e: NoSuchAlgorithmException) { + throw AssertionError(e) + } catch (e: KeyManagementException) { + throw AssertionError(e) + } + } + + fun closeConnections() { + incomingMessageObserver.terminateAsync() + if (_signalServiceMessageSender.isInitialized()) { + signalServiceMessageSender.cancelInFlightRequests() + } + disposables.clear() + } + + fun resetProtocolStores() { + _protocolStore.reset() + _signalServiceMessageSender.reset() + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferSetupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferSetupFragment.java index 151e1704fe..9b8594e53c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferSetupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/devicetransfer/olddevice/OldDeviceTransferSetupFragment.java @@ -14,7 +14,7 @@ import org.signal.core.util.PendingIntentFlags; import org.signal.devicetransfer.DeviceToDeviceTransferService; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.devicetransfer.DeviceTransferSetupFragment; import org.thoughtcrime.securesms.devicetransfer.SetupStep; import org.thoughtcrime.securesms.jobs.LocalBackupJob; @@ -33,7 +33,7 @@ public final class OldDeviceTransferSetupFragment extends DeviceTransferSetupFra @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - ApplicationDependencies.getJobManager().cancelAllInQueue(LocalBackupJob.QUEUE); + AppDependencies.getJobManager().cancelAllInQueue(LocalBackupJob.QUEUE); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiSource.kt b/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiSource.kt index 91d8f09187..185b280456 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/emoji/EmojiSource.kt @@ -7,7 +7,7 @@ import org.thoughtcrime.securesms.components.emoji.EmojiPageModel import org.thoughtcrime.securesms.components.emoji.StaticEmojiPageModel import org.thoughtcrime.securesms.components.emoji.parsing.EmojiDrawInfo import org.thoughtcrime.securesms.components.emoji.parsing.EmojiTree -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.ScreenDensity import java.io.InputStream @@ -107,7 +107,7 @@ class EmojiSource( return null } - val context = ApplicationDependencies.getApplication() + val context = AppDependencies.application val version = EmojiFiles.Version.readVersion(context) ?: return null val emojiData = EmojiFiles.getLatestEmojiData(context, version)?.let { it.copy( @@ -123,7 +123,7 @@ class EmojiSource( } private fun loadAssetBasedEmojis(): EmojiSource { - val emojiData: InputStream = ApplicationDependencies.getApplication().assets.open("emoji/emoji_data.json") + val emojiData: InputStream = AppDependencies.application.assets.open("emoji/emoji_data.json") emojiData.use { val parsedData: ParsedEmojiData = EmojiJsonParser.parse(it, ::getAssetsUri).getOrThrow() diff --git a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmFetchManager.kt b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmFetchManager.kt index 281c8e628a..4804cdfe7e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmFetchManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmFetchManager.kt @@ -12,7 +12,7 @@ import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MessageFetchJob import org.thoughtcrime.securesms.messages.WebSocketDrainer import org.thoughtcrime.securesms.notifications.NotificationChannels @@ -152,7 +152,7 @@ object FcmFetchManager { FcmJobService.schedule(context) } else { Log.w(TAG, "[API ${Build.VERSION.SDK_INT}] Failed to retrieve messages. Scheduling on JobManager (API " + Build.VERSION.SDK_INT + ").") - ApplicationDependencies.getJobManager().add(MessageFetchJob()) + AppDependencies.jobManager.add(MessageFetchJob()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmJobService.java b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmJobService.java index 53fc6fd256..f7cd3093c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmJobService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmJobService.java @@ -11,7 +11,7 @@ import androidx.annotation.RequiresApi; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.messages.WebSocketDrainer; import org.thoughtcrime.securesms.util.ServiceUtil; @@ -39,7 +39,7 @@ public class FcmJobService extends JobService { public boolean onStartJob(JobParameters params) { Log.d(TAG, "onStartJob()"); - if (ApplicationDependencies.getAppForegroundObserver().isForegrounded()) { + if (AppDependencies.getAppForegroundObserver().isForegrounded()) { Log.i(TAG, "App is foregrounded. No need to run."); return false; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmReceiveService.java b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmReceiveService.java index fd27519c3d..5d56adaa7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmReceiveService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/gcm/FcmReceiveService.java @@ -10,7 +10,7 @@ import com.google.firebase.messaging.FirebaseMessagingService; import com.google.firebase.messaging.RemoteMessage; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.FcmRefreshJob; import org.thoughtcrime.securesms.jobs.SubmitRateLimitPushChallengeJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -43,14 +43,14 @@ public class FcmReceiveService extends FirebaseMessagingService { } else if (rateLimitChallenge != null) { handleRateLimitPushChallenge(rateLimitChallenge); } else { - handleReceivedNotification(ApplicationDependencies.getApplication(), remoteMessage); + handleReceivedNotification(AppDependencies.getApplication(), remoteMessage); } } @Override public void onDeletedMessages() { Log.w(TAG, "onDeleteMessages() -- Messages may have been dropped. Doing a normal message fetch."); - handleReceivedNotification(ApplicationDependencies.getApplication(), null); + handleReceivedNotification(AppDependencies.getApplication(), null); } @Override @@ -62,7 +62,7 @@ public class FcmReceiveService extends FirebaseMessagingService { return; } - ApplicationDependencies.getJobManager().add(new FcmRefreshJob()); + AppDependencies.getJobManager().add(new FcmRefreshJob()); } @Override @@ -100,6 +100,6 @@ public class FcmReceiveService extends FirebaseMessagingService { private static void handleRateLimitPushChallenge(@NonNull String challenge) { Log.d(TAG, "Got a rate limit push challenge."); - ApplicationDependencies.getJobManager().add(new SubmitRateLimitPushChallengeJob(challenge)); + AppDependencies.getJobManager().add(new SubmitRateLimitPushChallengeJob(challenge)); } } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PagedDataSource.java b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PagedDataSource.java index 788a82994a..7711feda52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PagedDataSource.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4PagedDataSource.java @@ -9,7 +9,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.signal.paging.PagedDataSource; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.giph.model.GiphyImage; import org.thoughtcrime.securesms.giph.model.GiphyResponse; import org.thoughtcrime.securesms.net.ContentProxySelector; @@ -50,7 +50,7 @@ final class GiphyMp4PagedDataSource implements PagedDataSource { } public static Factory createFactory() { - return new Factory(ApplicationDependencies.getSignalOkHttpClient()); + return new Factory(AppDependencies.getSignalOkHttpClient()); } public static class Factory implements ModelLoaderFactory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/GiftBadgeModel.kt b/app/src/main/java/org/thoughtcrime/securesms/glide/GiftBadgeModel.kt index 2538c383e9..5292299a9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/GiftBadgeModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/GiftBadgeModel.kt @@ -13,7 +13,7 @@ import okhttp3.OkHttpClient import org.signal.libsignal.zkgroup.receipts.ReceiptCredentialPresentation import org.thoughtcrime.securesms.components.settings.app.subscription.getBadge import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.io.InputStream import java.security.MessageDigest import java.util.Locale @@ -46,7 +46,7 @@ data class GiftBadgeModel(val giftBadge: GiftBadge) : Key { override fun loadData(priority: Priority, callback: DataFetcher.DataCallback) { try { val receiptCredentialPresentation = ReceiptCredentialPresentation(giftBadge.giftBadge.redemptionToken.toByteArray()) - val giftBadgeResponse = ApplicationDependencies.getDonationsService().getDonationsConfiguration(Locale.getDefault()) + val giftBadgeResponse = AppDependencies.donationsService.getDonationsConfiguration(Locale.getDefault()) if (giftBadgeResponse.result.isPresent) { val badge = giftBadgeResponse.result.get().getBadge(receiptCredentialPresentation.receiptLevel.toInt()) okHttpStreamFetcher = OkHttpStreamFetcher(client, GlideUrl(badge.imageUrl.toString())) @@ -91,7 +91,7 @@ data class GiftBadgeModel(val giftBadge: GiftBadge) : Key { companion object { @JvmStatic fun createFactory(): Factory { - return Factory(ApplicationDependencies.getSignalOkHttpClient()) + return Factory(AppDependencies.signalOkHttpClient) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java index 11184aa4b2..ed42194eb6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.GV2UpdateDescription; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.v2.GroupCandidateHelper; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.groups.v2.GroupLinkPassword; @@ -106,9 +106,9 @@ final class GroupManagerV2 { GroupManagerV2(@NonNull Context context) { this(context, SignalDatabase.groups(), - ApplicationDependencies.getSignalServiceAccountManager().getGroupsV2Api(), - ApplicationDependencies.getGroupsV2Operations(), - ApplicationDependencies.getGroupsV2Authorization(), + AppDependencies.getSignalServiceAccountManager().getGroupsV2Api(), + AppDependencies.getGroupsV2Operations(), + AppDependencies.getGroupsV2Authorization(), SignalStore.account().getServiceIds(), new GroupCandidateHelper(), new SendGroupUpdateHelper(context)); @@ -469,7 +469,7 @@ final class GroupManagerV2 { if (!groupCandidate.hasValidProfileKeyCredential()) { Log.w(TAG, "[updateSelfProfileKeyInGroup] No credential available, repairing"); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); return null; } @@ -495,7 +495,7 @@ final class GroupManagerV2 { if (!groupCandidate.hasValidProfileKeyCredential()) { Log.w(TAG, "[AcceptInvite] No credential available, repairing"); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); return null; } @@ -799,7 +799,7 @@ final class GroupManagerV2 { try { groupsV2Api.putNewGroup(newGroup, authorization.getAuthorizationForToday(serviceIds, groupSecretParams)); - DecryptedGroup decryptedGroup = groupsV2Api.getGroup(groupSecretParams, ApplicationDependencies.getGroupsV2Authorization().getAuthorizationForToday(serviceIds, groupSecretParams)); + DecryptedGroup decryptedGroup = groupsV2Api.getGroup(groupSecretParams, AppDependencies.getGroupsV2Authorization().getAuthorizationForToday(serviceIds, groupSecretParams)); if (decryptedGroup == null) { throw new GroupChangeFailedException(); } @@ -948,15 +948,15 @@ final class GroupManagerV2 { } catch (GroupNotAMemberException e) { Log.w(TAG, "Despite adding self to group, server says we are not a member, scheduling refresh of group info " + groupId, e); - ApplicationDependencies.getJobManager() - .add(new RequestGroupV2InfoJob(groupId)); + AppDependencies.getJobManager() + .add(new RequestGroupV2InfoJob(groupId)); throw new GroupChangeFailedException(e); } catch (IOException e) { Log.w(TAG, "Group data fetch failed, scheduling refresh of group info " + groupId, e); - ApplicationDependencies.getJobManager() - .add(new RequestGroupV2InfoJob(groupId)); + AppDependencies.getJobManager() + .add(new RequestGroupV2InfoJob(groupId)); throw e; } @@ -1226,7 +1226,7 @@ final class GroupManagerV2 { if (plainGroupChange != null && DecryptedGroupUtil.changeIsSilent(plainGroupChange)) { if (sendToMembers) { - ApplicationDependencies.getJobManager().add(PushGroupSilentUpdateSendJob.create(context, groupId, groupMutation.getNewGroupState(), outgoingMessage)); + AppDependencies.getJobManager().add(PushGroupSilentUpdateSendJob.create(context, groupId, groupMutation.getNewGroupState(), outgoingMessage)); } return new RecipientAndThread(groupRecipient, -1); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java b/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java index fa3209e380..3de4b93203 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/LiveGroup.java @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.ui.GroupMemberEntry; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; import org.thoughtcrime.securesms.groups.v2.GroupLinkUrlAndStatus; @@ -39,8 +39,8 @@ public final class LiveGroup { private static final Comparator LOCAL_FIRST = (m1, m2) -> Boolean.compare(m2.getMember().isSelf(), m1.getMember().isSelf()); private static final Comparator ADMIN_FIRST = (m1, m2) -> Boolean.compare(m2.isAdmin(), m1.isAdmin()); - private static final Comparator HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(ApplicationDependencies.getApplication())); - private static final Comparator ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(ApplicationDependencies.getApplication())); + private static final Comparator HAS_DISPLAY_NAME = (m1, m2) -> Boolean.compare(m2.getMember().hasAUserSetDisplayName(AppDependencies.getApplication()), m1.getMember().hasAUserSetDisplayName(AppDependencies.getApplication())); + private static final Comparator ALPHABETICAL = (m1, m2) -> m1.getMember().getDisplayName(AppDependencies.getApplication()).compareToIgnoreCase(m2.getMember().getDisplayName(AppDependencies.getApplication())); private static final Comparator MEMBER_ORDER = ComparatorCompat.chain(LOCAL_FIRST) .thenComparing(ADMIN_FIRST) .thenComparing(HAS_DISPLAY_NAME) @@ -54,7 +54,7 @@ public final class LiveGroup { private final LiveData groupLink; public LiveGroup(@NonNull GroupId groupId) { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); MutableLiveData liveRecipient = new MutableLiveData<>(); this.groupDatabase = SignalDatabase.groups(); @@ -123,7 +123,7 @@ public final class LiveGroup { if (!TextUtils.isEmpty(title)) { return title; } - return recipient.getDisplayName(ApplicationDependencies.getApplication()); + return recipient.getDisplayName(AppDependencies.getApplication()); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersRepository.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersRepository.java index 13cd9ca28d..e1b7073607 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersRepository.java @@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread; import org.thoughtcrime.securesms.contacts.SelectedContact; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -18,7 +18,7 @@ final class AddMembersRepository { AddMembersRepository(@NonNull GroupId groupId) { this.groupId = groupId; - this.context = ApplicationDependencies.getApplication(); + this.context = AppDependencies.getApplication(); } @WorkerThread diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.java index b84cb81340..4e2e5a3b8f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addmembers/AddMembersViewModel.java @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contacts.SelectedContact; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -54,7 +54,7 @@ public final class AddMembersViewModel extends ViewModel { } private static @NonNull String titleOrDefault(@Nullable String title) { - return TextUtils.isEmpty(title) ? ApplicationDependencies.getApplication().getString(R.string.Recipient_unknown) + return TextUtils.isEmpty(title) ? AppDependencies.getApplication().getString(R.string.Recipient_unknown) : Objects.requireNonNull(title); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java index 7d35384a09..66b439c611 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/addtogroup/AddToGroupViewModel.java @@ -8,7 +8,7 @@ import androidx.lifecycle.ViewModelProvider; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason; import org.thoughtcrime.securesms.groups.ui.GroupErrors; import org.thoughtcrime.securesms.groups.v2.GroupAddMembersResult; @@ -21,8 +21,6 @@ import java.util.Collections; import java.util.List; import java.util.Objects; -import kotlin.Unit; - public final class AddToGroupViewModel extends ViewModel { private final Application context; @@ -31,7 +29,7 @@ public final class AddToGroupViewModel extends ViewModel { private final SingleLiveEvent events = new SingleLiveEvent<>(); private AddToGroupViewModel(@NonNull RecipientId recipientId) { - this.context = ApplicationDependencies.getApplication(); + this.context = AppDependencies.getApplication(); this.recipientId = recipientId; this.repository = new GroupManagementRepository(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminViewModel.java index d786dc2337..8d5f520c4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/chooseadmin/ChooseNewAdminViewModel.java @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider; import com.annimon.stream.Stream; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.LiveGroup; import org.thoughtcrime.securesms.groups.ui.GroupChangeResult; @@ -65,7 +65,7 @@ final class ChooseNewAdminViewModel extends ViewModel { @Override public @NonNull T create(@NonNull Class modelClass) { //noinspection ConstantConditions - return modelClass.cast(new ChooseNewAdminViewModel(groupId, new ChooseNewAdminRepository(ApplicationDependencies.getApplication()))); + return modelClass.cast(new ChooseNewAdminViewModel(groupId, new ChooseNewAdminRepository(AppDependencies.getApplication()))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupCandidateHelper.java b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupCandidateHelper.java index 8421819cf5..ae7144c0ad 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupCandidateHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupCandidateHelper.java @@ -7,7 +7,7 @@ import org.signal.core.util.logging.Log; import org.signal.libsignal.zkgroup.profiles.ExpiringProfileKeyCredential; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.ProfileUtil; @@ -28,7 +28,7 @@ public class GroupCandidateHelper { private final RecipientTable recipientTable; public GroupCandidateHelper() { - signalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager(); + signalServiceAccountManager = AppDependencies.getSignalServiceAccountManager(); recipientTable = SignalDatabase.recipients(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupManagementRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupManagementRepository.kt index a51780c7dc..15841215d9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupManagementRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/GroupManagementRepository.kt @@ -10,7 +10,7 @@ import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.contacts.sync.ContactDiscovery import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupChangeBusyException import org.thoughtcrime.securesms.groups.GroupChangeException import org.thoughtcrime.securesms.groups.GroupChangeFailedException @@ -26,7 +26,7 @@ private val TAG: String = Log.tag(GroupManagementRepository::class.java) /** * Single source repository for managing GV2 groups. */ -class GroupManagementRepository @JvmOverloads constructor(private val context: Context = ApplicationDependencies.getApplication()) { +class GroupManagementRepository @JvmOverloads constructor(private val context: Context = AppDependencies.application) { fun addMembers(groupRecipient: Recipient, selected: List, consumer: Consumer) { addMembers(null, groupRecipient, selected, consumer) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt index 8f6b5c58d8..3fcbaf77d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.database.model.GroupRecord import org.thoughtcrime.securesms.database.model.GroupsV2UpdateMessageConverter.translateDecryptedChange import org.thoughtcrime.securesms.database.model.databaseprotos.DecryptedGroupV2Context import org.thoughtcrime.securesms.database.model.databaseprotos.GV2UpdateDescription -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupMutation import org.thoughtcrime.securesms.groups.GroupNotAMemberException @@ -95,10 +95,10 @@ class GroupsV2StateProcessor private constructor( } } - private val groupsApi = ApplicationDependencies.getSignalServiceAccountManager().getGroupsV2Api() - private val groupsV2Authorization = ApplicationDependencies.getGroupsV2Authorization() + private val groupsApi = AppDependencies.signalServiceAccountManager.groupsV2Api + private val groupsV2Authorization = AppDependencies.groupsV2Authorization private val groupId = GroupId.v2(groupSecretParams.getPublicParams().getGroupIdentifier()) - private val profileAndMessageHelper = ProfileAndMessageHelper.create(serviceIds.getAci(), groupMasterKey, groupId) + private val profileAndMessageHelper = ProfileAndMessageHelper.create(serviceIds.aci, groupMasterKey, groupId) private val logPrefix = "[$groupId]" @@ -327,12 +327,12 @@ class GroupsV2StateProcessor private constructor( profileAndMessageHelper.persistLearnedProfileKeys(profileKeys) if (performCdsLookup) { - ApplicationDependencies.getJobManager().add(DirectoryRefreshJob(false)) + AppDependencies.jobManager.add(DirectoryRefreshJob(false)) } if (hasRemainingRemoteChanges) { Log.i(TAG, "$logPrefix There are more revisions on the server for this group, scheduling for later") - ApplicationDependencies.getJobManager().add(RequestGroupV2InfoJob(groupId)) + AppDependencies.jobManager.add(RequestGroupV2InfoJob(groupId)) } return InternalUpdateResult.Updated(currentLocalState!!) @@ -447,7 +447,7 @@ class GroupsV2StateProcessor private constructor( .any { it.promotePendingPniAciMembers.isNotEmpty() } if (performCdsLookup) { - ApplicationDependencies.getJobManager().add(DirectoryRefreshJob(false)) + AppDependencies.jobManager.add(DirectoryRefreshJob(false)) } return InternalUpdateResult.Updated(updatedGroupState) @@ -472,7 +472,7 @@ class GroupsV2StateProcessor private constructor( } if (needsAvatarFetch) { - ApplicationDependencies.getJobManager().add(AvatarGroupsV2DownloadJob(groupId, updatedGroupState.avatar)) + AppDependencies.jobManager.add(AvatarGroupsV2DownloadJob(groupId, updatedGroupState.avatar)) } profileAndMessageHelper.setProfileSharing(groupStateDiff, updatedGroupState) @@ -507,7 +507,7 @@ class GroupsV2StateProcessor private constructor( if (addedBy.isBlocked && (previousGroupState == null || !DecryptedGroupUtil.isRequesting(previousGroupState, aci))) { Log.i(TAG, "Added by a blocked user. Leaving group.") - ApplicationDependencies.getJobManager().add(LeaveGroupV2Job(groupId)) + AppDependencies.jobManager.add(LeaveGroupV2Job(groupId)) return } else if ((addedBy.isSystemContact || addedBy.isProfileSharing) && !addedBy.isHidden) { Log.i(TAG, "Group 'adder' is trusted. contact: " + addedBy.isSystemContact + ", profileSharing: " + addedBy.isProfileSharing) @@ -524,7 +524,7 @@ class GroupsV2StateProcessor private constructor( if (addedBy?.isBlocked == true) { Log.i(TAG, "Added to group $groupId by a blocked user ${addedBy.id}. Leaving group.") - ApplicationDependencies.getJobManager().add(LeaveGroupV2Job(groupId)) + AppDependencies.jobManager.add(LeaveGroupV2Job(groupId)) return } else { Log.i(TAG, "Added to $groupId, but not enabling profile sharing as we are a pending member.") @@ -623,7 +623,7 @@ class GroupsV2StateProcessor private constructor( Log.i(TAG, "Learned ${updated.size} new profile keys, fetching profiles") for (job in RetrieveProfileJob.forRecipients(updated)) { - ApplicationDependencies.getJobManager().runSynchronously(job, 5000) + AppDependencies.jobManager.runSynchronously(job, 5000) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/AlarmManagerScheduler.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/AlarmManagerScheduler.java index dc918f2502..bd4e16c57a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/AlarmManagerScheduler.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/AlarmManagerScheduler.java @@ -14,7 +14,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.PendingIntentFlags; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.List; import java.util.UUID; @@ -63,7 +63,7 @@ public class AlarmManagerScheduler implements Scheduler { @Override public void onReceive(Context context, Intent intent) { Log.i(TAG, "Received an alarm to retry a job."); - ApplicationDependencies.getJobManager().wakeUp(); + AppDependencies.getJobManager().wakeUp(); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobSchedulerScheduler.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobSchedulerScheduler.java index d3d4a978f0..bb37c0b199 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobSchedulerScheduler.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/JobSchedulerScheduler.java @@ -15,7 +15,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.List; import java.util.Locale; @@ -69,7 +69,7 @@ public final class JobSchedulerScheduler implements Scheduler { @Override public boolean onStartJob(JobParameters params) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); Log.i(TAG, "Waking due to job: " + params.getJobId()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraint.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraint.java index 54231054eb..d250cd567f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraint.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraint.java @@ -5,7 +5,7 @@ import android.app.job.JobInfo; import androidx.annotation.NonNull; import androidx.annotation.RequiresApi; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Constraint; /** @@ -21,7 +21,7 @@ public final class DecryptionsDrainedConstraint implements Constraint { @Override public boolean isMet() { - return ApplicationDependencies.getIncomingMessageObserver().getDecryptionDrained(); + return AppDependencies.getIncomingMessageObserver().getDecryptionDrained(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraintObserver.java b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraintObserver.java index 5539f13374..f95084daae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraintObserver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobmanager/impl/DecryptionsDrainedConstraintObserver.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.jobmanager.impl; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.ConstraintObserver; /** @@ -16,7 +16,7 @@ public class DecryptionsDrainedConstraintObserver implements ConstraintObserver @Override public void register(@NonNull Notifier notifier) { - ApplicationDependencies.getIncomingMessageObserver().addDecryptionDrainedListener(() -> { + AppDependencies.getIncomingMessageObserver().addDecryptionDrainedListener(() -> { notifier.onConstraintMet(REASON); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AccountConsistencyWorkerJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/AccountConsistencyWorkerJob.kt index 59dc62346f..4d6d2b87fa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AccountConsistencyWorkerJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AccountConsistencyWorkerJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.Base64 import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -25,7 +25,7 @@ class AccountConsistencyWorkerJob private constructor(parameters: Parameters) : @JvmStatic fun enqueueIfNecessary() { if (System.currentTimeMillis() - SignalStore.misc().lastConsistencyCheckTime > 3.days.inWholeMilliseconds) { - ApplicationDependencies.getJobManager().add(AccountConsistencyWorkerJob()) + AppDependencies.jobManager.add(AccountConsistencyWorkerJob()) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentBackfillJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentBackfillJob.kt index ef2995690a..30766d8e36 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentBackfillJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentBackfillJob.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.backup.v2.BackupV2Event import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.ArchiveAttachmentBackfillJobData @@ -91,7 +91,7 @@ class ArchiveAttachmentBackfillJob private constructor( val resetCount = SignalDatabase.attachments.resetPendingArchiveBackfills() if (resetCount > 0) { Log.w(TAG, "We thought we were done, but $resetCount items were still in progress! Need to run again to retry.") - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( ArchiveAttachmentBackfillJob( progress = (totalCount ?: resetCount) - resetCount, totalCount = totalCount ?: resetCount @@ -160,7 +160,7 @@ class ArchiveAttachmentBackfillJob private constructor( Log.d(TAG, "Beginning upload...") val remoteAttachment: SignalServiceAttachmentPointer = try { - ApplicationDependencies.getSignalServiceMessageSender().uploadAttachment(attachmentStream) + AppDependencies.signalServiceMessageSender.uploadAttachment(attachmentStream) } catch (e: IOException) { Log.w(TAG, "Failed to upload $attachmentId", e) return Result.retry(defaultBackoff()) @@ -226,7 +226,7 @@ class ArchiveAttachmentBackfillJob private constructor( } private fun reenqueueWithIncrementedProgress() { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( ArchiveAttachmentBackfillJob( totalCount = totalCount, progress = progress?.inc()?.coerceAtMost(totalCount ?: 0) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentJob.kt index 8304a91e81..f707a29989 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveAttachmentJob.kt @@ -4,7 +4,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.attachments.AttachmentId import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.ArchiveAttachmentJobData @@ -30,7 +30,7 @@ class ArchiveAttachmentJob private constructor(private val attachmentId: Attachm return } - ApplicationDependencies.getJobManager().add(ArchiveAttachmentJob(attachmentId)) + AppDependencies.jobManager.add(ArchiveAttachmentJob(attachmentId)) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt index 91b57e91f9..8e443ebda3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ArchiveThumbnailUploadJob.kt @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.attachments.PointerAttachment import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.backup.v2.BackupRepository.getThumbnailMediaName import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.ArchiveThumbnailUploadJobData @@ -47,7 +47,7 @@ class ArchiveThumbnailUploadJob private constructor( fun enqueueIfNecessary(attachmentId: AttachmentId) { if (SignalStore.backup().backsUpMedia) { - ApplicationDependencies.getJobManager().add(ArchiveThumbnailUploadJob(attachmentId)) + AppDependencies.jobManager.add(ArchiveThumbnailUploadJob(attachmentId)) } } } @@ -111,7 +111,7 @@ class ArchiveThumbnailUploadJob private constructor( val stream = buildSignalServiceAttachmentStream(thumbnailResult, resumableUpload) val attachmentPointer: Attachment = try { - val pointer = ApplicationDependencies.getSignalServiceMessageSender().uploadAttachment(stream) + val pointer = AppDependencies.signalServiceMessageSender.uploadAttachment(stream) PointerAttachment.forPointer(Optional.of(pointer)).get() } catch (e: IOException) { Log.w(TAG, "Failed to upload attachment", e) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.kt index 83c8c9157c..99045da4cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentDownloadJob.kt @@ -21,7 +21,7 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.PartProgressEvent import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobLogger.format @@ -136,7 +136,7 @@ class AttachmentDownloadJob private constructor( doWork() if (!SignalDatabase.messages.isStory(messageId)) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, forConversation(0)) + AppDependencies.messageNotifier.updateNotification(context, forConversation(0)) } } @@ -180,7 +180,7 @@ class AttachmentDownloadJob private constructor( attachment.archiveMediaId == null && SignalStore.backup().backsUpMedia ) { - ApplicationDependencies.getJobManager().add(ArchiveAttachmentJob(attachmentId)) + AppDependencies.jobManager.add(ArchiveAttachmentJob(attachmentId)) } } @@ -221,7 +221,7 @@ class AttachmentDownloadJob private constructor( false } - val messageReceiver = ApplicationDependencies.getSignalServiceMessageReceiver() + val messageReceiver = AppDependencies.signalServiceMessageReceiver val pointer = createAttachmentPointer(attachment, useArchiveCdn) val progressListener = object : SignalServiceAttachment.ProgressListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentHashBackfillJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentHashBackfillJob.kt index be32017fe2..295eb0e976 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentHashBackfillJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentHashBackfillJob.kt @@ -10,7 +10,7 @@ import org.signal.core.util.drain import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.attachments.AttachmentId import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import java.io.File import java.io.FileNotFoundException @@ -58,7 +58,7 @@ class AttachmentHashBackfillJob private constructor(parameters: Parameters) : Jo if (!file.exists()) { Log.w(TAG, "File does not exist! Clearing all usages.", true) SignalDatabase.attachments.clearUsagesOfDataFile(file) - ApplicationDependencies.getJobManager().add(AttachmentHashBackfillJob()) + AppDependencies.jobManager.add(AttachmentHashBackfillJob()) return Result.success() } @@ -90,7 +90,7 @@ class AttachmentHashBackfillJob private constructor(parameters: Parameters) : Jo // Sleep just so we don't hammer the device with hash calculations and disk I/O ThreadUtil.sleep(1000) - ApplicationDependencies.getJobManager().add(AttachmentHashBackfillJob()) + AppDependencies.jobManager.add(AttachmentHashBackfillJob()) return Result.success() } @@ -100,7 +100,7 @@ class AttachmentHashBackfillJob private constructor(parameters: Parameters) : Jo SignalDatabase.attachments.markDataFileAsUnhashable(file) } ?: Log.w(TAG, "Job failed, but no active file is set!") - ApplicationDependencies.getJobManager().add(AttachmentHashBackfillJob()) + AppDependencies.jobManager.add(AttachmentHashBackfillJob()) } class Factory : Job.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.kt index edb56342bb..c014c0d064 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AttachmentUploadJob.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentUploadUtil import org.thoughtcrime.securesms.attachments.PointerAttachment import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.PartProgressEvent import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -128,7 +128,7 @@ class AttachmentUploadJob private constructor( throw NotPushRegisteredException() } - val messageSender = ApplicationDependencies.getSignalServiceMessageSender() + val messageSender = AppDependencies.signalServiceMessageSender val databaseAttachment = SignalDatabase.attachments.getAttachment(attachmentId) ?: throw InvalidAttachmentException("Cannot find the specified attachment.") val timeSinceUpload = System.currentTimeMillis() - databaseAttachment.uploadTimestamp @@ -146,7 +146,7 @@ class AttachmentUploadJob private constructor( if (uploadSpec == null) { Log.d(TAG, "Need an upload spec. Fetching...") - uploadSpec = ApplicationDependencies.getSignalServiceMessageSender().getResumableUploadSpec().toProto() + uploadSpec = AppDependencies.signalServiceMessageSender.getResumableUploadSpec().toProto() } else { Log.d(TAG, "Re-using existing upload spec.") } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AutomaticSessionResetJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AutomaticSessionResetJob.java index 6f6934d5a2..44e8a5c887 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AutomaticSessionResetJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AutomaticSessionResetJob.java @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.databaseprotos.DeviceLastResetTime; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.impl.DecryptionsDrainedConstraint; @@ -87,7 +87,7 @@ public class AutomaticSessionResetJob extends BaseJob { @Override protected void onRun() throws Exception { - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSessions(recipientId, deviceId); + AppDependencies.getProtocolStore().aci().sessions().archiveSessions(recipientId, deviceId); SignalDatabase.senderKeyShared().deleteAllFor(recipientId); insertLocalMessage(); @@ -125,7 +125,7 @@ public class AutomaticSessionResetJob extends BaseJob { private void insertLocalMessage() { MessageTable.InsertResult result = SignalDatabase.messages().insertChatSessionRefreshedMessage(recipientId, deviceId, sentTimestamp - 1); - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(result.getThreadId())); + AppDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(result.getThreadId())); } private void sendNullMessage() throws IOException { @@ -136,7 +136,7 @@ public class AutomaticSessionResetJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress address = RecipientUtil.toSignalServiceAddress(context, recipient); Optional unidentifiedAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV1DownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV1DownloadJob.java index 76b9dec005..18166034cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV1DownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV1DownloadJob.java @@ -8,7 +8,7 @@ import org.signal.libsignal.protocol.InvalidMessageException; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -84,7 +84,7 @@ public final class AvatarGroupsV1DownloadJob extends BaseJob { attachment = File.createTempFile("avatar", "tmp", context.getCacheDir()); attachment.deleteOnExit(); - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); SignalServiceAttachmentPointer pointer = new SignalServiceAttachmentPointer(0, new SignalServiceAttachmentRemoteId.V2(avatarId), contentType, key, Optional.of(0), Optional.empty(), 0, 0, digest, Optional.empty(), 0, fileName, false, false, false, Optional.empty(), Optional.empty(), System.currentTimeMillis()); InputStream inputStream = receiver.retrieveAttachment(pointer, attachment, AvatarHelper.AVATAR_DOWNLOAD_FAILSAFE_MAX_SIZE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV2DownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV2DownloadJob.java index 36621c3962..5a47eb8d80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV2DownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/AvatarGroupsV2DownloadJob.java @@ -12,7 +12,7 @@ import org.signal.libsignal.zkgroup.groups.GroupSecretParams; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -115,7 +115,7 @@ public final class AvatarGroupsV2DownloadJob extends BaseJob { File attachment = File.createTempFile("avatar", "gv2", context.getCacheDir()); attachment.deleteOnExit(); - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); byte[] encryptedData; try (FileInputStream inputStream = receiver.retrieveGroupsV2ProfileAvatar(cdnKey, attachment, AVATAR_DOWNLOAD_FAIL_SAFE_MAX_SIZE)) { @@ -123,7 +123,7 @@ public final class AvatarGroupsV2DownloadJob extends BaseJob { StreamUtil.readFully(inputStream, encryptedData); - GroupsV2Operations operations = ApplicationDependencies.getGroupsV2Operations(); + GroupsV2Operations operations = AppDependencies.getGroupsV2Operations(); GroupsV2Operations.GroupOperations groupOperations = operations.forGroup(groupSecretParams); return groupOperations.decryptAvatar(encryptedData); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupMessagesJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupMessagesJob.kt index d2d25c2e2a..15b28e67e9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupMessagesJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupMessagesJob.kt @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.attachments.DatabaseAttachment import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.backup.v2.BackupV2Event import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobmanager.impl.WifiConstraint @@ -37,7 +37,7 @@ class BackupMessagesJob private constructor(parameters: Parameters) : BaseJob(pa const val QUEUE = "BackupMessagesQueue" fun enqueue() { - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager jobManager.add(BackupMessagesJob()) } } @@ -92,7 +92,7 @@ class BackupMessagesJob private constructor(parameters: Parameters) : BaseJob(pa } } if (needToBackfill > 0) { - ApplicationDependencies.getJobManager().add(ArchiveAttachmentBackfillJob(totalCount = totalCount, progress = progress - needToBackfill)) + AppDependencies.jobManager.add(ArchiveAttachmentBackfillJob(totalCount = totalCount, progress = progress - needToBackfill)) return true } return false @@ -112,7 +112,7 @@ class BackupMessagesJob private constructor(parameters: Parameters) : BaseJob(pa override fun onRun() { EventBus.getDefault().postSticky(BackupV2Event(type = BackupV2Event.Type.PROGRESS_MESSAGES, count = 0, estimatedTotalCount = 0)) - val tempBackupFile = BlobProvider.getInstance().forNonAutoEncryptingSingleSessionOnDisk(ApplicationDependencies.getApplication()) + val tempBackupFile = BlobProvider.getInstance().forNonAutoEncryptingSingleSessionOnDisk(AppDependencies.application) val outputStream = FileOutputStream(tempBackupFile) BackupRepository.export(outputStream = outputStream, append = { tempBackupFile.appendBytes(it) }, plaintext = false) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreJob.kt index 274795e7ba..69da6dd7b9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreJob.kt @@ -10,7 +10,7 @@ import org.signal.libsignal.zkgroup.profiles.ProfileKey import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.backup.RestoreState import org.thoughtcrime.securesms.backup.v2.BackupRepository -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -76,7 +76,7 @@ class BackupRestoreJob private constructor(parameters: Parameters) : BaseJob(par override fun shouldCancel() = isCanceled } - val tempBackupFile = BlobProvider.getInstance().forNonAutoEncryptingSingleSessionOnDisk(ApplicationDependencies.getApplication()) + val tempBackupFile = BlobProvider.getInstance().forNonAutoEncryptingSingleSessionOnDisk(AppDependencies.application) if (!BackupRepository.downloadBackupFile(tempBackupFile, progressListener)) { Log.e(TAG, "Failed to download backup file") throw IOException() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreMediaJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreMediaJob.kt index 37ea9f3420..58e4c7178d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreMediaJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupRestoreMediaJob.kt @@ -8,7 +8,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -47,7 +47,7 @@ class BackupRestoreMediaJob private constructor(parameters: Parameters) : BaseJo throw NotPushRegisteredException() } - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager val batchSize = 100 val restoreTime = System.currentTimeMillis() var restoreJobBatch: List diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java index 304ae8dc1d..0f27fb9920 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BoostReceiptRequestResponseJob.java @@ -21,7 +21,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.errors.Do import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource; import org.thoughtcrime.securesms.database.model.databaseprotos.DonationErrorValue; import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -119,11 +119,11 @@ public class BoostReceiptRequestResponseJob extends BaseJob { RefreshOwnProfileJob refreshOwnProfileJob = RefreshOwnProfileJob.forBoost(); MultiDeviceProfileContentUpdateJob multiDeviceProfileContentUpdateJob = new MultiDeviceProfileContentUpdateJob(); - return ApplicationDependencies.getJobManager() - .startChain(requestReceiptJob) - .then(redeemReceiptJob) - .then(refreshOwnProfileJob) - .then(multiDeviceProfileContentUpdateJob); + return AppDependencies.getJobManager() + .startChain(requestReceiptJob) + .then(redeemReceiptJob) + .then(refreshOwnProfileJob) + .then(multiDeviceProfileContentUpdateJob); } public static JobManager.Chain createJobChainForGift(@NonNull String paymentIntentId, @@ -138,9 +138,9 @@ public class BoostReceiptRequestResponseJob extends BaseJob { GiftSendJob giftSendJob = new GiftSendJob(recipientId, additionalMessage); - return ApplicationDependencies.getJobManager() - .startChain(requestReceiptJob) - .then(giftSendJob); + return AppDependencies.getJobManager() + .startChain(requestReceiptJob) + .then(giftSendJob); } private BoostReceiptRequestResponseJob(@NonNull Parameters parameters, @@ -212,7 +212,7 @@ public class BoostReceiptRequestResponseJob extends BaseJob { secureRandom.nextBytes(randomBytes); ReceiptSerial receiptSerial = new ReceiptSerial(randomBytes); - ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); + ClientZkReceiptOperations operations = AppDependencies.getClientZkReceiptOperations(); requestContext = operations.createReceiptCredentialRequestContext(secureRandom, receiptSerial); } else { @@ -220,8 +220,8 @@ public class BoostReceiptRequestResponseJob extends BaseJob { } Log.d(TAG, "Submitting credential to server", true); - ServiceResponse response = ApplicationDependencies.getDonationsService() - .submitBoostReceiptCredentialRequestSync(paymentIntentId, requestContext.getRequest(), donationProcessor); + ServiceResponse response = AppDependencies.getDonationsService() + .submitBoostReceiptCredentialRequestSync(paymentIntentId, requestContext.getRequest(), donationProcessor); if (response.getApplicationError().isPresent()) { handleApplicationError(context, response, donationErrorSource); @@ -344,7 +344,7 @@ public class BoostReceiptRequestResponseJob extends BaseJob { } private ReceiptCredentialPresentation getReceiptCredentialPresentation(@NonNull ReceiptCredential receiptCredential) throws RetryableException { - ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); + ClientZkReceiptOperations operations = AppDependencies.getClientZkReceiptOperations(); try { return operations.createReceiptCredentialPresentation(receiptCredential); @@ -356,7 +356,7 @@ public class BoostReceiptRequestResponseJob extends BaseJob { } private ReceiptCredential getReceiptCredential(@NonNull ReceiptCredentialResponse response) throws RetryableException { - ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); + ClientZkReceiptOperations operations = AppDependencies.getClientZkReceiptOperations(); try { return operations.receiveReceiptCredential(requestContext, response); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkPeekJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkPeekJob.kt index 8793c7c534..0c480d5e49 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkPeekJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkPeekJob.kt @@ -6,7 +6,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -57,7 +57,7 @@ internal class CallLinkPeekJob private constructor( return } - ApplicationDependencies.getSignalCallManager().peekCallLinkCall(callLinkRecipientId) + AppDependencies.signalCallManager.peekCallLinkCall(callLinkRecipientId) } override fun onShouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkUpdateSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkUpdateSendJob.kt index dee97ce24d..9c5e270b26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkUpdateSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLinkUpdateSendJob.kt @@ -8,7 +8,7 @@ package org.thoughtcrime.securesms.jobs import okio.ByteString.Companion.toByteString import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.CallLinkUpdateSendJobData @@ -82,7 +82,7 @@ class CallLinkUpdateSendJob private constructor( type = callLinkUpdateType ) - ApplicationDependencies.getSignalServiceMessageSender() + AppDependencies.signalServiceMessageSender .sendSyncMessage(SignalServiceSyncMessage.forCallLinkUpdate(callLinkUpdate), Optional.empty()) if (callLinkUpdateType == CallLinkUpdate.Type.DELETE) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLogEventSendJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLogEventSendJob.kt index 81de40c107..a6ccff06b0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLogEventSendJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallLogEventSendJob.kt @@ -8,7 +8,7 @@ package org.thoughtcrime.securesms.jobs import androidx.annotation.WorkerThread import okio.ByteString.Companion.toByteString import org.thoughtcrime.securesms.database.CallTable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.CallLogEventSendJobData @@ -97,7 +97,7 @@ class CallLogEventSendJob private constructor( override fun onFailure() = Unit override fun onRun() { - ApplicationDependencies.getSignalServiceMessageSender() + AppDependencies.signalServiceMessageSender .sendSyncMessage( SignalServiceSyncMessage.forCallLogEvent(callLogEvent), Optional.empty() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallSyncEventJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallSyncEventJob.kt index 493f140230..c38be29603 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CallSyncEventJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CallSyncEventJob.kt @@ -4,7 +4,7 @@ import org.signal.core.util.logging.Log import org.signal.ringrtc.CallId import org.thoughtcrime.securesms.database.CallTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -77,7 +77,7 @@ class CallSyncEventJob private constructor( fun enqueueDeleteSyncEvents(deletedCalls: Set) { deletedCalls.chunked(50).forEach { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( createForDelete(it) ) } @@ -127,7 +127,7 @@ class CallSyncEventJob private constructor( val syncMessage = createSyncMessage(syncTimestamp, callSyncEvent, call.type) return try { - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(syncMessage), Optional.empty()) + AppDependencies.signalServiceMessageSender.sendSyncMessage(SignalServiceSyncMessage.forCallEvent(syncMessage), Optional.empty()) null } catch (e: Exception) { Log.w(TAG, "Unable to send call event sync message for ${callSyncEvent.callId}", e) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CheckServiceReachabilityJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/CheckServiceReachabilityJob.kt index 8a98a9c46f..d91b6f2b8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CheckServiceReachabilityJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CheckServiceReachabilityJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -33,10 +33,10 @@ class CheckServiceReachabilityJob private constructor(params: Parameters) : Base @JvmStatic fun enqueueIfNecessary() { - val isCensored = ApplicationDependencies.getSignalServiceNetworkAccess().isCensored() + val isCensored = AppDependencies.signalServiceNetworkAccess.isCensored() val timeSinceLastCheck = System.currentTimeMillis() - SignalStore.misc().lastCensorshipServiceReachabilityCheckTime if (SignalStore.account().isRegistered && isCensored && timeSinceLastCheck > TimeUnit.DAYS.toMillis(1)) { - ApplicationDependencies.getJobManager().add(CheckServiceReachabilityJob()) + AppDependencies.jobManager.add(CheckServiceReachabilityJob()) } } } @@ -56,7 +56,7 @@ class CheckServiceReachabilityJob private constructor(params: Parameters) : Base return } - if (!ApplicationDependencies.getSignalServiceNetworkAccess().isCensored()) { + if (!AppDependencies.signalServiceNetworkAccess.isCensored()) { Log.w(TAG, "Not currently censored, skipping.") SignalStore.misc().lastCensorshipServiceReachabilityCheckTime = System.currentTimeMillis() return @@ -66,7 +66,7 @@ class CheckServiceReachabilityJob private constructor(params: Parameters) : Base val uncensoredWebsocket = OkHttpWebSocketConnection( "uncensored-test", - ApplicationDependencies.getSignalServiceNetworkAccess().uncensoredConfiguration, + AppDependencies.signalServiceNetworkAccess.uncensoredConfiguration, Optional.of( StaticCredentialsProvider( SignalStore.account().aci, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java index 88175b2079..ed9bf54699 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/CleanPreKeysJob.java @@ -7,7 +7,7 @@ import org.signal.core.util.logging.Log; import org.signal.libsignal.protocol.state.SignalProtocolStore; import org.thoughtcrime.securesms.crypto.PreKeyUtil; import org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -38,8 +38,8 @@ public class CleanPreKeysJob extends BaseJob { @Override public void onRun() { - PreKeyUtil.cleanSignedPreKeys(ApplicationDependencies.getProtocolStore().aci(), SignalStore.account().aciPreKeys()); - PreKeyUtil.cleanSignedPreKeys(ApplicationDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys()); + PreKeyUtil.cleanSignedPreKeys(AppDependencies.getProtocolStore().aci(), SignalStore.account().aciPreKeys()); + PreKeyUtil.cleanSignedPreKeys(AppDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt index 52b10942f7..3a34fd44be 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutRankingUpdateJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import android.os.Build import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.recipients.Recipient @@ -33,14 +33,14 @@ class ConversationShortcutRankingUpdateJob private constructor( @JvmStatic fun enqueueForOutgoingIfNecessary(recipient: Recipient) { if (Build.VERSION.SDK_INT >= 34) { - ApplicationDependencies.getJobManager().add(ConversationShortcutRankingUpdateJob(recipient, Direction.OUTGOING)) + AppDependencies.jobManager.add(ConversationShortcutRankingUpdateJob(recipient, Direction.OUTGOING)) } } @JvmStatic fun enqueueForIncomingIfNecessary(recipient: Recipient) { if (Build.VERSION.SDK_INT >= 34) { - ApplicationDependencies.getJobManager().add(ConversationShortcutRankingUpdateJob(recipient, Direction.INCOMING)) + AppDependencies.jobManager.add(ConversationShortcutRankingUpdateJob(recipient, Direction.INCOMING)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutUpdateJob.java index dc169584c5..6d5f45b23b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ConversationShortcutUpdateJob.java @@ -7,13 +7,12 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.transport.RetryLaterException; import org.thoughtcrime.securesms.util.ConversationUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; -import org.thoughtcrime.securesms.util.Util; import java.util.ArrayList; import java.util.List; @@ -31,7 +30,7 @@ public class ConversationShortcutUpdateJob extends BaseJob { public static final String KEY = "ConversationShortcutUpdateJob"; public static void enqueue() { - ApplicationDependencies.getJobManager().add(new ConversationShortcutUpdateJob()); + AppDependencies.getJobManager().add(new ConversationShortcutUpdateJob()); } private ConversationShortcutUpdateJob() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java index 22bd637bb5..7556d2fbbd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/DonationReceiptRedemptionJob.java @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.DonationErrorValue; import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge; import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -98,10 +98,10 @@ public class DonationReceiptRedemptionJob extends BaseJob { RefreshOwnProfileJob refreshOwnProfileJob = new RefreshOwnProfileJob(); MultiDeviceProfileContentUpdateJob multiDeviceProfileContentUpdateJob = new MultiDeviceProfileContentUpdateJob(); - return ApplicationDependencies.getJobManager() - .startChain(redemptionJob) - .then(refreshOwnProfileJob) - .then(multiDeviceProfileContentUpdateJob); + return AppDependencies.getJobManager() + .startChain(redemptionJob) + .then(refreshOwnProfileJob) + .then(multiDeviceProfileContentUpdateJob); } private DonationReceiptRedemptionJob(long giftMessageId, boolean primary, @NonNull DonationErrorSource errorSource, long uiSessionKey, @NonNull Job.Parameters parameters) { @@ -192,8 +192,8 @@ public class DonationReceiptRedemptionJob extends BaseJob { } Log.d(TAG, "Attempting to redeem token... isForSubscription: " + isForSubscription(), true); - ServiceResponse response = ApplicationDependencies.getDonationsService() - .redeemReceipt(presentation, + ServiceResponse response = AppDependencies.getDonationsService() + .redeemReceipt(presentation, SignalStore.donationsValues().getDisplayBadgesOnProfile(), makePrimary); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/DownloadLatestEmojiDataJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/DownloadLatestEmojiDataJob.java index dcaf8de96e..1aea7ced0c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/DownloadLatestEmojiDataJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/DownloadLatestEmojiDataJob.java @@ -11,7 +11,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.components.emoji.EmojiPageModel; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.emoji.EmojiData; import org.thoughtcrime.securesms.emoji.EmojiDownloader; import org.thoughtcrime.securesms.emoji.EmojiFiles; @@ -60,7 +60,7 @@ public class DownloadLatestEmojiDataJob extends BaseJob { if (nextScheduledCheck <= System.currentTimeMillis()) { Log.i(TAG, "Scheduling DownloadLatestEmojiDataJob."); - ApplicationDependencies.getJobManager().add(new DownloadLatestEmojiDataJob(false)); + AppDependencies.getJobManager().add(new DownloadLatestEmojiDataJob(false)); EmojiFiles.Version version = EmojiFiles.Version.readVersion(context); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/EmojiSearchIndexDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/EmojiSearchIndexDownloadJob.java index 43b139a00a..21513521cb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/EmojiSearchIndexDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/EmojiSearchIndexDownloadJob.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.EmojiSearchData; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.EmojiValues; @@ -52,7 +52,7 @@ public final class EmojiSearchIndexDownloadJob extends BaseJob { } public static void scheduleImmediately() { - ApplicationDependencies.getJobManager().add(new EmojiSearchIndexDownloadJob()); + AppDependencies.getJobManager().add(new EmojiSearchIndexDownloadJob()); } public static void scheduleIfNecessary() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ExternalLaunchDonationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ExternalLaunchDonationJob.kt index f3e272c5ec..3f992f61e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ExternalLaunchDonationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ExternalLaunchDonationJob.kt @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.DonationErrorValue import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -57,7 +57,7 @@ class ExternalLaunchDonationJob private constructor( } } - private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, ApplicationDependencies.getOkHttpClient()) + private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, AppDependencies.okHttpClient) override fun serialize(): ByteArray { return stripe3DSData.toProtoBytes() @@ -142,10 +142,10 @@ class ExternalLaunchDonationJob private constructor( Log.i(TAG, "Setting default payment method...", true) val setPaymentMethodResponse = if (stripe3DSData.paymentSourceType == PaymentSourceType.Stripe.IDEAL) { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .setDefaultIdealPaymentMethod(subscriber.subscriberId, stripeSetupIntent.id) } else { - ApplicationDependencies.getDonationsService() + AppDependencies.donationsService .setDefaultStripePaymentMethod(subscriber.subscriberId, stripeSetupIntent.paymentMethod!!) } @@ -161,7 +161,7 @@ class ExternalLaunchDonationJob private constructor( val levelUpdateOperation = RecurringInAppPaymentRepository.getOrCreateLevelUpdateOperation(TAG, subscriptionLevel) Log.d(TAG, "Attempting to set user subscription level to $subscriptionLevel", true) - val updateSubscriptionLevelResponse = ApplicationDependencies.getDonationsService().updateSubscriptionLevel( + val updateSubscriptionLevelResponse = AppDependencies.donationsService.updateSubscriptionLevel( subscriber.subscriberId, subscriptionLevel, subscriber.currencyCode, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java index 6eb15f6804..5d7e3c1a93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/FcmRefreshJob.java @@ -33,7 +33,7 @@ import org.signal.core.util.PendingIntentFlags; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.PlayServicesProblemActivity; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.gcm.FcmUtil; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -100,7 +100,7 @@ public class FcmRefreshJob extends BaseJob { Log.i(TAG, "Token didn't change."); } - ApplicationDependencies.getSignalServiceAccountManager().setGcmId(token); + AppDependencies.getSignalServiceAccountManager().setGcmId(token); SignalStore.account().setFcmToken(token.get()); } else { throw new RetryLaterException(new IOException("Failed to retrieve a token.")); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ForceUpdateGroupV2Job.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ForceUpdateGroupV2Job.java index 12117f855f..0a73929fd0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ForceUpdateGroupV2Job.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ForceUpdateGroupV2Job.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -34,7 +34,7 @@ public final class ForceUpdateGroupV2Job extends BaseJob { group.get().isV2Group() && group.get().getLastForceUpdateTimestamp() + FORCE_UPDATE_INTERVAL < System.currentTimeMillis() ) { - ApplicationDependencies.getJobManager().add(new ForceUpdateGroupV2Job(groupId)); + AppDependencies.getJobManager().add(new ForceUpdateGroupV2Job(groupId)); } }); } @@ -65,7 +65,7 @@ public final class ForceUpdateGroupV2Job extends BaseJob { @Override public void onRun() { - ApplicationDependencies.getJobManager().add(new ForceUpdateGroupV2WorkerJob(groupId)); + AppDependencies.getJobManager().add(new ForceUpdateGroupV2WorkerJob(groupId)); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ForegroundServiceUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ForegroundServiceUtil.kt index f9cadd24ca..9db7227a7c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ForegroundServiceUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ForegroundServiceUtil.kt @@ -12,7 +12,7 @@ import androidx.annotation.WorkerThread import androidx.core.content.ContextCompat import org.signal.core.util.PendingIntentFlags import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.service.GenericForegroundService import org.thoughtcrime.securesms.service.NotificationController import org.thoughtcrime.securesms.util.ServiceUtil @@ -137,7 +137,7 @@ object ForegroundServiceUtil { private fun blockUntilCapable(context: Context, timeout: Long = DEFAULT_TIMEOUT): Boolean { val alarmManager = ServiceUtil.getAlarmManager(context) - if (Build.VERSION.SDK_INT < 31 || ApplicationDependencies.getAppForegroundObserver().isForegrounded) { + if (Build.VERSION.SDK_INT < 31 || AppDependencies.appForegroundObserver.isForegrounded) { return true } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GenerateAudioWaveFormJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/GenerateAudioWaveFormJob.kt index ae0b3cea19..125deed6e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GenerateAudioWaveFormJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GenerateAudioWaveFormJob.kt @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentId import org.thoughtcrime.securesms.attachments.DatabaseAttachment import org.thoughtcrime.securesms.audio.AudioWaveForms import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.util.MediaUtil @@ -31,7 +31,7 @@ class GenerateAudioWaveFormJob private constructor(private val attachmentId: Att if (Build.VERSION.SDK_INT < 23) { Log.i(TAG, "Unable to generate waveform on this version of Android") } else { - ApplicationDependencies.getJobManager().add(GenerateAudioWaveFormJob(attachmentId)) + AppDependencies.jobManager.add(GenerateAudioWaveFormJob(attachmentId)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java index bb723cac02..6212301ff1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekJob.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.jobs; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -24,7 +24,7 @@ public final class GroupCallPeekJob extends BaseJob { @NonNull private final RecipientId groupRecipientId; public static void enqueue(@NonNull RecipientId groupRecipientId) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); String queue = QUEUE + groupRecipientId.serialize(); Parameters.Builder parameters = new Parameters.Builder() .setQueue(queue) @@ -44,7 +44,7 @@ public final class GroupCallPeekJob extends BaseJob { @Override protected void onRun() { - ApplicationDependencies.getJobManager().add(new GroupCallPeekWorkerJob(groupRecipientId)); + AppDependencies.getJobManager().add(new GroupCallPeekWorkerJob(groupRecipientId)); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java index 226687a5b0..a3bf355912 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallPeekWorkerJob.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.jobs; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -34,7 +34,7 @@ final class GroupCallPeekWorkerJob extends BaseJob { @Override protected void onRun() { - ApplicationDependencies.getSignalCallManager().peekGroupCall(groupRecipientId); + AppDependencies.getSignalCallManager().peekGroupCall(groupRecipientId); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallUpdateSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallUpdateSendJob.java index 4847e82e14..60882161eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallUpdateSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupCallUpdateSendJob.java @@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread; import com.annimon.stream.Stream; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.messages.GroupSendUtil; @@ -176,7 +176,7 @@ public class GroupCallUpdateSendJob extends BaseJob { false); if (includesSelf) { - results.add(ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage)); + results.add(AppDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage)); syncTimestamp = dataMessage.getTimestamp(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupRingCleanupJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupRingCleanupJob.kt index 5f6139e458..5250053a19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupRingCleanupJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupRingCleanupJob.kt @@ -6,7 +6,7 @@ package org.thoughtcrime.securesms.jobs import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import java.util.concurrent.TimeUnit @@ -21,7 +21,7 @@ class GroupRingCleanupJob private constructor(parameters: Parameters) : BaseJob( @JvmStatic fun enqueue() { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( GroupRingCleanupJob( Parameters.Builder() .addConstraint(NetworkConstraint.KEY) @@ -42,7 +42,7 @@ class GroupRingCleanupJob private constructor(parameters: Parameters) : BaseJob( override fun onRun() { SignalDatabase.calls.getLatestRingingCalls().forEach { - ApplicationDependencies.getSignalCallManager().peekGroupCall(it.peer) + AppDependencies.signalCallManager.peekGroupCall(it.peer) } SignalDatabase.calls.markRingingCallsAsMissed() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupV2UpdateSelfProfileKeyJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupV2UpdateSelfProfileKeyJob.java index a9d8fa1194..c697b36531 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupV2UpdateSelfProfileKeyJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupV2UpdateSelfProfileKeyJob.java @@ -9,7 +9,7 @@ import org.signal.core.util.logging.Log; import org.signal.storageservice.protos.groups.local.DecryptedMember; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupChangeBusyException; import org.thoughtcrime.securesms.groups.GroupChangeFailedException; import org.thoughtcrime.securesms.groups.GroupId; @@ -128,7 +128,7 @@ public final class GroupV2UpdateSelfProfileKeyJob extends BaseJob { if (selfMember != null && !selfMember.profileKey.equals(selfProfileKey)) { Log.w(TAG, "Profile key mismatch for group " + id + " -- enqueueing job"); foundMismatch = true; - ApplicationDependencies.getJobManager().add(GroupV2UpdateSelfProfileKeyJob.withQueueLimits(id)); + AppDependencies.getJobManager().add(GroupV2UpdateSelfProfileKeyJob.withQueueLimits(id)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentAuthCheckJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentAuthCheckJob.kt index bf17c2dec2..7037031c96 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentAuthCheckJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentAuthCheckJob.kt @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -51,7 +51,7 @@ class InAppPaymentAuthCheckJob private constructor(parameters: Parameters) : Bas const val KEY = "InAppPaymentAuthCheckJob" } - private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, ApplicationDependencies.getOkHttpClient()) + private val stripeApi = StripeApi(Environment.Donations.STRIPE_CONFIGURATION, this, this, AppDependencies.okHttpClient) override fun serialize(): ByteArray? = null @@ -211,9 +211,9 @@ class InAppPaymentAuthCheckJob private constructor(parameters: Parameters) : Bas Log.i(TAG, "Setting default payment method...", true) val setPaymentMethodResponse = if (inAppPayment.data.paymentMethodType == InAppPaymentData.PaymentMethodType.IDEAL) { - ApplicationDependencies.getDonationsService().setDefaultIdealPaymentMethod(subscriber.subscriberId, stripeSetupIntent.id) + AppDependencies.donationsService.setDefaultIdealPaymentMethod(subscriber.subscriberId, stripeSetupIntent.id) } else { - ApplicationDependencies.getDonationsService().setDefaultStripePaymentMethod(subscriber.subscriberId, stripeSetupIntent.paymentMethod) + AppDependencies.donationsService.setDefaultStripePaymentMethod(subscriber.subscriberId, stripeSetupIntent.paymentMethod) } when (val result = checkResult(setPaymentMethodResponse)) { @@ -230,7 +230,7 @@ class InAppPaymentAuthCheckJob private constructor(parameters: Parameters) : Bas val updateOperation: LevelUpdateOperation = RecurringInAppPaymentRepository.getOrCreateLevelUpdateOperation(TAG, level) Log.d(TAG, "Attempting to set user subscription level to $level", true) - val updateLevelResponse = ApplicationDependencies.getDonationsService().updateSubscriptionLevel( + val updateLevelResponse = AppDependencies.donationsService.updateSubscriptionLevel( subscriber.subscriberId, level, subscriber.currencyCode, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentKeepAliveJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentKeepAliveJob.kt index 6826b3cfb9..cd232789c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentKeepAliveJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentKeepAliveJob.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.FiatValue import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -81,8 +81,8 @@ class InAppPaymentKeepAliveJob private constructor( @JvmStatic fun enqueueAndTrackTime(now: Duration) { - ApplicationDependencies.getJobManager().add(create(InAppPaymentSubscriberRecord.Type.DONATION)) - ApplicationDependencies.getJobManager().add(create(InAppPaymentSubscriberRecord.Type.BACKUP)) + AppDependencies.jobManager.add(create(InAppPaymentSubscriberRecord.Type.DONATION)) + AppDependencies.jobManager.add(create(InAppPaymentSubscriberRecord.Type.BACKUP)) SignalStore.donationsValues().setLastKeepAliveLaunchTime(now.inWholeMilliseconds) } } @@ -100,12 +100,12 @@ class InAppPaymentKeepAliveJob private constructor( return } - val response: ServiceResponse = ApplicationDependencies.getDonationsService().putSubscription(subscriber.subscriberId) + val response: ServiceResponse = AppDependencies.donationsService.putSubscription(subscriber.subscriberId) verifyResponse(response) info(type, "Successful call to putSubscription") - val activeSubscriptionResponse: ServiceResponse = ApplicationDependencies.getDonationsService().getSubscription(subscriber.subscriberId) + val activeSubscriptionResponse: ServiceResponse = AppDependencies.donationsService.getSubscription(subscriber.subscriberId) verifyResponse(activeSubscriptionResponse) info(type, "Successful call to GET active subscription") @@ -220,7 +220,7 @@ class InAppPaymentKeepAliveJob private constructor( val (badge, label) = if (oldInAppPayment == null) { info(type, "Old payment not found in database. Loading badge / label information from donations configuration.") - val configuration = ApplicationDependencies.getDonationsService().getDonationsConfiguration(Locale.getDefault()) + val configuration = AppDependencies.donationsService.getDonationsConfiguration(Locale.getDefault()) if (configuration.result.isPresent) { val subscriptionConfig = configuration.result.get().levels[subscription.level] if (subscriptionConfig == null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt index 0c9f9df3d6..8bf4b2ee74 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentOneTimeContextJob.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaym import org.thoughtcrime.securesms.database.InAppPaymentTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobManager.Chain import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -57,14 +57,14 @@ class InAppPaymentOneTimeContextJob private constructor( fun createJobChain(inAppPayment: InAppPaymentTable.InAppPayment, makePrimary: Boolean = false): Chain { return when (inAppPayment.type) { InAppPaymentTable.Type.ONE_TIME_DONATION -> { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(create(inAppPayment)) .then(InAppPaymentRedemptionJob.create(inAppPayment, makePrimary)) .then(RefreshOwnProfileJob()) .then(MultiDeviceProfileContentUpdateJob()) } InAppPaymentTable.Type.ONE_TIME_GIFT -> { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(create(inAppPayment)) .then(InAppPaymentGiftSendJob.create(inAppPayment)) } @@ -111,7 +111,7 @@ class InAppPaymentOneTimeContextJob private constructor( val (inAppPayment, requestContext) = getAndValidateInAppPayment() info("Submitting request context to server...") - val serviceResponse = ApplicationDependencies.getDonationsService().submitBoostReceiptCredentialRequestSync( + val serviceResponse = AppDependencies.donationsService.submitBoostReceiptCredentialRequestSync( inAppPayment.data.redemption!!.paymentIntentId, requestContext.request, inAppPayment.data.paymentMethodType.toDonationProcessor() @@ -121,7 +121,7 @@ class InAppPaymentOneTimeContextJob private constructor( handleApplicationError(inAppPayment, serviceResponse) } else if (serviceResponse.result.isPresent) { val receiptCredential = try { - ApplicationDependencies.getClientZkReceiptOperations().receiveReceiptCredential(requestContext, serviceResponse.result.get()) + AppDependencies.clientZkReceiptOperations.receiveReceiptCredential(requestContext, serviceResponse.result.get()) } catch (e: VerificationFailedException) { warning("Failed to receive credential.", e) throw InAppPaymentRetryException(e) @@ -130,7 +130,7 @@ class InAppPaymentOneTimeContextJob private constructor( if (isCredentialValid(inAppPayment, receiptCredential)) { info("Validated credential. Getting presentation.") val receiptCredentialPresentation = try { - ApplicationDependencies.getClientZkReceiptOperations().createReceiptCredentialPresentation(receiptCredential) + AppDependencies.clientZkReceiptOperations.createReceiptCredentialPresentation(receiptCredential) } catch (e: VerificationFailedException) { warning("Failed to get presentation from credential.") throw InAppPaymentRetryException(e) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt index b7efe25ea9..16a8a7f345 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DonationReceiptRecord import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobManager.Chain import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -59,7 +59,7 @@ class InAppPaymentRecurringContextJob private constructor( } fun createJobChain(inAppPayment: InAppPaymentTable.InAppPayment, makePrimary: Boolean = false): Chain { - return ApplicationDependencies.getJobManager() + return AppDependencies.jobManager .startChain(create(inAppPayment)) .then(InAppPaymentRedemptionJob.create(inAppPayment, makePrimary)) .then(RefreshOwnProfileJob()) @@ -212,7 +212,7 @@ class InAppPaymentRecurringContextJob private constructor( } private fun getActiveSubscription(inAppPayment: InAppPaymentTable.InAppPayment): ActiveSubscription { - val activeSubscriptionResponse = ApplicationDependencies.getDonationsService().getSubscription(inAppPayment.subscriberId) + val activeSubscriptionResponse = AppDependencies.donationsService.getSubscription(inAppPayment.subscriberId) return if (activeSubscriptionResponse.result.isPresent) { activeSubscriptionResponse.result.get() } else if (activeSubscriptionResponse.applicationError.isPresent) { @@ -352,7 +352,7 @@ class InAppPaymentRecurringContextJob private constructor( ) { info("Submitting receipt credential request") val response: ServiceResponse = when (inAppPayment.type) { - InAppPaymentTable.Type.RECURRING_DONATION -> ApplicationDependencies.getDonationsService().submitReceiptCredentialRequestSync(inAppPayment.subscriberId!!, requestContext.request) + InAppPaymentTable.Type.RECURRING_DONATION -> AppDependencies.donationsService.submitReceiptCredentialRequestSync(inAppPayment.subscriberId!!, requestContext.request) else -> throw Exception("Unsupported type: ${inAppPayment.type}") } @@ -430,7 +430,7 @@ class InAppPaymentRecurringContextJob private constructor( requestContext: ReceiptCredentialRequestContext, response: ReceiptCredentialResponse ) { - val operations = ApplicationDependencies.getClientZkReceiptOperations() + val operations = AppDependencies.clientZkReceiptOperations val receiptCredential: ReceiptCredential = try { operations.receiveReceiptCredential(requestContext, response) } catch (e: VerificationFailedException) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt index f191b514b0..689fb1785e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRedemptionJob.kt @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge import org.thoughtcrime.securesms.database.model.databaseprotos.InAppPaymentData -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.InAppPaymentRedemptionJobData @@ -46,7 +46,7 @@ class InAppPaymentRedemptionJob private constructor( * Utilized when active subscription is in the REDEMPTION_STARTED stage of the redemption pipeline */ fun enqueueJobChainForRecurringKeepAlive(inAppPayment: InAppPaymentTable.InAppPayment) { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(create(inAppPayment, makePrimary = false)) .then(RefreshOwnProfileJob()) .then(MultiDeviceProfileContentUpdateJob()) @@ -156,8 +156,8 @@ class InAppPaymentRedemptionJob private constructor( val receiptCredentialPresentation = ReceiptCredentialPresentation(credentialBytes) Log.d(TAG, "Attempting to redeem receipt credential presentation...", true) - val serviceResponse = ApplicationDependencies - .getDonationsService() + val serviceResponse = AppDependencies + .donationsService .redeemReceipt( receiptCredentialPresentation, SignalStore.donationsValues().getDisplayBadgesOnProfile(), @@ -207,8 +207,8 @@ class InAppPaymentRedemptionJob private constructor( val receiptCredentialPresentation = ReceiptCredentialPresentation(credentialBytes.toByteArray()) Log.d(TAG, "Attempting to redeem receipt credential presentation...", true) - val serviceResponse = ApplicationDependencies - .getDonationsService() + val serviceResponse = AppDependencies + .donationsService .redeemReceipt( receiptCredentialPresentation, SignalStore.donationsValues().getDisplayBadgesOnProfile(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.java index c45e9c2ae2..e37271b06c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/IndividualSendJob.java @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.RecipientTable.UnidentifiedAccessMode import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -103,7 +103,7 @@ public class IndividualSendJob extends PushSendJob { try { OutgoingMessage message = SignalDatabase.messages().getOutgoingMessage(messageId); if (message.getScheduledDate() != -1) { - ApplicationDependencies.getScheduledMessageManager().scheduleIfNecessary(); + AppDependencies.getScheduledMessageManager().scheduleIfNecessary(); return; } @@ -142,7 +142,7 @@ public class IndividualSendJob extends PushSendJob { { SignalLocalMetrics.IndividualMessageSend.onJobStarted(messageId); - ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager(); + ExpiringMessageManager expirationManager = AppDependencies.getExpiringMessageManager(); MessageTable database = SignalDatabase.messages(); OutgoingMessage message = database.getOutgoingMessage(messageId); long threadId = database.getMessageRecord(messageId).getThreadId(); @@ -208,7 +208,7 @@ public class IndividualSendJob extends PushSendJob { warn(TAG, "Failure", uue); database.markAsSentFailed(messageId); notifyMediaMessageDeliveryFailed(context, messageId); - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(false)); } catch (UntrustedIdentityException uie) { warn(TAG, "Failure", uie); RecipientId recipientId = Recipient.external(context, uie.getIdentifier()).getId(); @@ -251,7 +251,7 @@ public class IndividualSendJob extends PushSendJob { throw new UndeliverableMessageException(messageRecipient.getId() + " not registered!"); } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress address = RecipientUtil.toSignalServiceAddress(context, messageRecipient); List attachments = Stream.of(message.getAttachments()).filterNot(Attachment::isSticker).toList(); List serviceAttachments = getAttachmentPointersFor(attachments); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2Job.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2Job.kt index fd469d6a6c..5879bee802 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2Job.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2Job.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.jobs -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData @@ -34,7 +34,7 @@ class LeaveGroupV2Job(parameters: Parameters, private val groupId: GroupId.V2) : } override fun onRun() { - ApplicationDependencies.getJobManager().add(LeaveGroupV2WorkerJob(groupId)) + AppDependencies.jobManager.add(LeaveGroupV2WorkerJob(groupId)) } override fun onShouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2WorkerJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2WorkerJob.kt index 1226917b93..15c4f2edef 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2WorkerJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupV2WorkerJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupChangeBusyException import org.thoughtcrime.securesms.groups.GroupChangeFailedException import org.thoughtcrime.securesms.groups.GroupId @@ -50,7 +50,7 @@ class LeaveGroupV2WorkerJob(parameters: Parameters, private val groupId: GroupId SignalDatabase.recipients.setProfileSharing(groupRecipient.id, enabled = false) SignalDatabase.threads.setEntireThreadRead(threadId) SignalDatabase.threads.update(threadId, unarchive = false, allowDeletion = false) - ApplicationDependencies.getMessageNotifier().updateNotification(context) + AppDependencies.messageNotifier.updateNotification(context) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LinkedDeviceInactiveCheckJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/LinkedDeviceInactiveCheckJob.kt index 78d573535d..bba015755b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LinkedDeviceInactiveCheckJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LinkedDeviceInactiveCheckJob.kt @@ -8,7 +8,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.Base64 import org.signal.core.util.logging.Log import org.signal.core.util.roundedString -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.devicelist.protos.DeviceName import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -40,14 +40,14 @@ class LinkedDeviceInactiveCheckJob private constructor( @JvmStatic fun enqueue() { - ApplicationDependencies.getJobManager().add(LinkedDeviceInactiveCheckJob()) + AppDependencies.jobManager.add(LinkedDeviceInactiveCheckJob()) } @JvmStatic fun enqueueIfNecessary() { val timeSinceLastCheck = System.currentTimeMillis() - SignalStore.misc().linkedDeviceLastActiveCheckTime if (timeSinceLastCheck > 1.days.inWholeMilliseconds || timeSinceLastCheck < 0) { - ApplicationDependencies.getJobManager().add(LinkedDeviceInactiveCheckJob()) + AppDependencies.jobManager.add(LinkedDeviceInactiveCheckJob()) } } } @@ -58,7 +58,7 @@ class LinkedDeviceInactiveCheckJob private constructor( override fun run(): Result { val devices = try { - ApplicationDependencies.getSignalServiceAccountManager().devices + AppDependencies.signalServiceAccountManager.devices } catch (e: IOException) { return Result.retry(defaultBackoff()) } @@ -79,7 +79,7 @@ class LinkedDeviceInactiveCheckJob private constructor( .minBy { it.lastSeen } .let { val nameProto = DeviceName.ADAPTER.decode(Base64.decode(it.getName())) - val decryptedBytes = DeviceNameCipher.decryptDeviceName(nameProto, ApplicationDependencies.getProtocolStore().aci().identityKeyPair) ?: return@let null + val decryptedBytes = DeviceNameCipher.decryptDeviceName(nameProto, AppDependencies.protocolStore.aci().identityKeyPair) ?: return@let null val name = String(decryptedBytes) LeastActiveLinkedDevice( diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJob.java index 6b20849007..b0779186f8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LocalBackupJob.java @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.backup.FullBackupExporter; import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider; import org.thoughtcrime.securesms.database.NoExternalStorageException; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.notifications.NotificationChannels; @@ -49,7 +49,7 @@ public final class LocalBackupJob extends BaseJob { public static final String TEMP_BACKUP_FILE_SUFFIX = ".tmp"; public static void enqueue(boolean force) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); Parameters.Builder parameters = new Parameters.Builder() .setQueue(QUEUE) .setMaxInstancesForFactory(1) @@ -58,7 +58,7 @@ public final class LocalBackupJob extends BaseJob { jobManager.cancelAllInQueue(QUEUE); } - if (BackupUtil.isUserSelectionRequired(ApplicationDependencies.getApplication())) { + if (BackupUtil.isUserSelectionRequired(AppDependencies.getApplication())) { jobManager.add(new LocalBackupJobApi29(parameters.build())); } else { jobManager.add(new LocalBackupJob(parameters.build())); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MessageFetchJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MessageFetchJob.java index 4f8c01dedf..7b9de2bfdf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MessageFetchJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MessageFetchJob.java @@ -8,7 +8,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.messages.WebSocketDrainer; @@ -125,7 +125,7 @@ public final class MessageFetchJob extends BaseJob { @Override public void close() { - ApplicationDependencies.getAppForegroundObserver().removeListener(this); + AppDependencies.getAppForegroundObserver().removeListener(this); closeNotificationController(); } @@ -157,7 +157,7 @@ public final class MessageFetchJob extends BaseJob { static ForegroundServiceController create(@NonNull Context context) { ForegroundServiceController instance = new ForegroundServiceController(context); - ApplicationDependencies.getAppForegroundObserver().addListener(instance); + AppDependencies.getAppForegroundObserver().addListener(instance); return instance; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java index 0d51b806d6..88b62b8f80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceBlockedUpdateJob.java @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.RecipientTable.RecipientReader; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.net.NotPushRegisteredException; @@ -87,7 +87,7 @@ public class MultiDeviceBlockedUpdateJob extends BaseJob { } } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forBlocked(new BlockedListMessage(blockedIndividuals, blockedGroups)), UnidentifiedAccessUtil.getAccessForSync(context)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceCallLinkSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceCallLinkSyncJob.kt index 7add42ad57..edb40b854b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceCallLinkSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceCallLinkSyncJob.kt @@ -7,7 +7,7 @@ package org.thoughtcrime.securesms.jobs import okio.ByteString.Companion.toByteString import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.service.webrtc.links.CallLinkCredentials @@ -57,7 +57,7 @@ class MultiDeviceCallLinkSyncJob private constructor( val syncMessage = SignalServiceSyncMessage.forCallLinkUpdate(callLinkUpdate) try { - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(syncMessage, Optional.empty()) + AppDependencies.signalServiceMessageSender.sendSyncMessage(syncMessage, Optional.empty()) } catch (e: Exception) { Log.w(TAG, "Unable to send call link update message.", e) throw e diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java index ec93751ce1..623facd24c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceConfigurationUpdateJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -101,7 +101,7 @@ public class MultiDeviceConfigurationUpdateJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forConfiguration(new ConfigurationMessage(Optional.of(readReceiptsEnabled), Optional.of(unidentifiedDeliveryIndicatorsEnabled), Optional.of(typingIndicatorsEnabled), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactSyncJob.kt index 23f8c4f1f5..403d0bc6e4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactSyncJob.kt @@ -4,7 +4,7 @@ import org.signal.core.util.logging.Log import org.signal.libsignal.protocol.InvalidMessageException import org.thoughtcrime.securesms.database.IdentityTable.VerifiedStatus import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -59,7 +59,7 @@ class MultiDeviceContactSyncJob(parameters: Parameters, private val attachmentPo try { val contactsFile: File = BlobProvider.getInstance().forNonAutoEncryptingSingleSessionOnDisk(context) - ApplicationDependencies.getSignalServiceMessageReceiver() + AppDependencies.signalServiceMessageReceiver .retrieveAttachment(contactAttachment, contactsFile, MAX_ATTACHMENT_SIZE) .use(this::processContactFile) } catch (e: MissingConfigurationException) { @@ -108,7 +108,7 @@ class MultiDeviceContactSyncJob(parameters: Parameters, private val attachmentPo } if (recipient.serviceId.isPresent) { - ApplicationDependencies.getProtocolStore().aci().identities().saveIdentityWithoutSideEffects( + AppDependencies.protocolStore.aci().identities().saveIdentityWithoutSideEffects( recipient.id, recipient.serviceId.get(), contact.verified.get().identityKey, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index fe6f025dc2..8a4fc0e8a6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -156,7 +156,7 @@ public class MultiDeviceContactUpdateJob extends BaseJob { return; } - Optional identityRecord = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.getId()); + Optional identityRecord = AppDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.getId()); Optional verifiedMessage = getVerifiedMessage(recipient, identityRecord); Map inboxPositions = SignalDatabase.threads().getInboxPositions(); Set archived = SignalDatabase.threads().getArchivedRecipients(); @@ -178,7 +178,7 @@ public class MultiDeviceContactUpdateJob extends BaseJob { long length = BlobProvider.getInstance().calculateFileSize(context, updateUri); - sendUpdate(ApplicationDependencies.getSignalServiceMessageSender(), + sendUpdate(AppDependencies.getSignalServiceMessageSender(), BlobProvider.getInstance().getStream(context, updateUri), length, false); @@ -195,7 +195,7 @@ public class MultiDeviceContactUpdateJob extends BaseJob { private void generateFullContactUpdate() throws IOException, UntrustedIdentityException, NetworkException { - boolean isAppVisible = ApplicationDependencies.getAppForegroundObserver().isForegrounded(); + boolean isAppVisible = AppDependencies.getAppForegroundObserver().isForegrounded(); long timeSinceLastSync = System.currentTimeMillis() - TextSecurePreferences.getLastFullContactSyncTime(context); Log.d(TAG, "Requesting a full contact sync. forced = " + forceSync + ", appVisible = " + isAppVisible + ", timeSinceLastSync = " + timeSinceLastSync + " ms"); @@ -219,7 +219,7 @@ public class MultiDeviceContactUpdateJob extends BaseJob { Set archived = SignalDatabase.threads().getArchivedRecipients(); for (Recipient recipient : recipients) { - Optional identity = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.getId()); + Optional identity = AppDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.getId()); Optional verified = getVerifiedMessage(recipient, identity); Optional name = Optional.ofNullable(recipient.isSystemContact() ? recipient.getDisplayName(context) : recipient.getGroupName(context)); Optional profileKey = ProfileKeyUtil.profileKeyOptional(recipient.getProfileKey()); @@ -262,7 +262,7 @@ public class MultiDeviceContactUpdateJob extends BaseJob { long length = BlobProvider.getInstance().calculateFileSize(context, updateUri); - sendUpdate(ApplicationDependencies.getSignalServiceMessageSender(), + sendUpdate(AppDependencies.getSignalServiceMessageSender(), BlobProvider.getInstance().getStream(context, updateUri), length, true); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJob.kt index 9674605f91..a13ca3d767 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceDeleteSendSyncJob.kt @@ -12,7 +12,7 @@ import org.signal.core.util.logging.Log import org.signal.core.util.orNull import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.DeleteSyncJobData @@ -54,7 +54,7 @@ class MultiDeviceDeleteSendSyncJob private constructor( @WorkerThread @JvmStatic fun enqueueMessageDeletes(messageRecords: Set) { - if (!TextSecurePreferences.isMultiDevice(ApplicationDependencies.getApplication())) { + if (!TextSecurePreferences.isMultiDevice(AppDependencies.application)) { return } @@ -64,13 +64,13 @@ class MultiDeviceDeleteSendSyncJob private constructor( } messageRecords.chunked(CHUNK_SIZE).forEach { chunk -> - ApplicationDependencies.getJobManager().add(createMessageDeletes(chunk)) + AppDependencies.jobManager.add(createMessageDeletes(chunk)) } } @WorkerThread fun enqueueThreadDeletes(threads: List>>, isFullDelete: Boolean) { - if (!TextSecurePreferences.isMultiDevice(ApplicationDependencies.getApplication())) { + if (!TextSecurePreferences.isMultiDevice(AppDependencies.application)) { return } @@ -80,7 +80,7 @@ class MultiDeviceDeleteSendSyncJob private constructor( } threads.chunked(THREAD_CHUNK_SIZE).forEach { chunk -> - ApplicationDependencies.getJobManager().add(createThreadDeletes(chunk, isFullDelete)) + AppDependencies.jobManager.add(createThreadDeletes(chunk, isFullDelete)) } } @@ -250,7 +250,7 @@ class MultiDeviceDeleteSendSyncJob private constructor( val syncMessageContent = deleteForMeContent(deleteForMe) return try { - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(syncMessageContent, true, Optional.empty()).isSuccess + AppDependencies.signalServiceMessageSender.sendSyncMessage(syncMessageContent, true, Optional.empty()).isSuccess } catch (e: IOException) { Log.w(TAG, "Unable to send message delete sync", e) false diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceKeysUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceKeysUpdateJob.java index f7acf6d1d2..e2bdc25f00 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceKeysUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceKeysUpdateJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -70,7 +70,7 @@ public class MultiDeviceKeysUpdateJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); StorageKey storageServiceKey = SignalStore.storageService().getOrCreateStorageKey(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forKeys(new KeysMessage(Optional.ofNullable(storageServiceKey), Optional.of(SignalStore.svr().getOrCreateMasterKey()))), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceMessageRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceMessageRequestResponseJob.java index 2f199d2758..9f67afe940 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceMessageRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceMessageRequestResponseJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -103,7 +103,7 @@ public class MultiDeviceMessageRequestResponseJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); Recipient recipient = Recipient.resolved(threadRecipient); if (!recipient.isGroup() && !recipient.getHasServiceId()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceOutgoingPaymentSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceOutgoingPaymentSyncJob.java index c17eac8cc5..dd7f5b8c50 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceOutgoingPaymentSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceOutgoingPaymentSyncJob.java @@ -7,7 +7,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -116,8 +116,8 @@ public final class MultiDeviceOutgoingPaymentSyncJob extends BaseJob { txoIdentification.keyImages); - ApplicationDependencies.getSignalServiceMessageSender() - .sendSyncMessage(SignalServiceSyncMessage.forOutgoingPayment(outgoingPaymentMessage), + AppDependencies.getSignalServiceMessageSender() + .sendSyncMessage(SignalServiceSyncMessage.forOutgoingPayment(outgoingPaymentMessage), UnidentifiedAccessUtil.getAccessForSync(context)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileContentUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileContentUpdateJob.java index 174420b76f..813f682e82 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileContentUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileContentUpdateJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.net.NotPushRegisteredException; @@ -56,7 +56,7 @@ public class MultiDeviceProfileContentUpdateJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forFetchLatest(SignalServiceSyncMessage.FetchType.LOCAL_PROFILE), UnidentifiedAccessUtil.getAccessForSync(context)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java index 511cea5064..ef8e8f638d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceProfileKeyUpdateJob.java @@ -8,13 +8,12 @@ import org.signal.core.util.logging.Log; import org.signal.libsignal.zkgroup.profiles.ProfileKey; import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.net.NotPushRegisteredException; import org.thoughtcrime.securesms.recipients.Recipient; -import org.thoughtcrime.securesms.recipients.RecipientUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.whispersystems.signalservice.api.SignalServiceMessageSender; import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; @@ -90,7 +89,7 @@ public class MultiDeviceProfileKeyUpdateJob extends BaseJob { out.close(); - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder() .withStream(new ByteArrayInputStream(baos.toByteArray())) .withContentType("application/octet-stream") diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java index 77dc5546a6..8102a3f483 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceReadUpdateJob.java @@ -10,7 +10,7 @@ import org.signal.core.util.ListUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.MessageTable.SyncMessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -68,7 +68,7 @@ public class MultiDeviceReadUpdateJob extends BaseJob { * maximum size. */ public static void enqueue(@NonNull List messageIds) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); List> messageIdChunks = ListUtil.chunk(messageIds, SendReadReceiptJob.MAX_TIMESTAMPS); if (messageIdChunks.size() > 1) { @@ -120,7 +120,7 @@ public class MultiDeviceReadUpdateJob extends BaseJob { } } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forRead(readMessages), UnidentifiedAccessUtil.getAccessForSync(context)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java index 1cab0aea43..3658bbdac5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackOperationJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -90,7 +90,7 @@ public class MultiDeviceStickerPackOperationJob extends BaseJob { default: throw new AssertionError("No matching type?"); } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); StickerPackOperationMessage stickerPackOperation = new StickerPackOperationMessage(packIdBytes, packKeyBytes, remoteType); messageSender.sendSyncMessage(SignalServiceSyncMessage.forStickerPackOperations(Collections.singletonList(stickerPackOperation)), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java index 4779d431af..0a360557c7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStickerPackSyncJob.java @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable.StickerPackRecordReader; import org.thoughtcrime.securesms.database.model.StickerPackRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.net.NotPushRegisteredException; @@ -79,7 +79,7 @@ public class MultiDeviceStickerPackSyncJob extends BaseJob { } } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forStickerPackOperations(operations), UnidentifiedAccessUtil.getAccessForSync(context)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorageSyncRequestJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorageSyncRequestJob.java index cce2ad1267..02125a3220 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorageSyncRequestJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorageSyncRequestJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.net.NotPushRegisteredException; @@ -56,7 +56,7 @@ public class MultiDeviceStorageSyncRequestJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forFetchLatest(SignalServiceSyncMessage.FetchType.STORAGE_MANIFEST), UnidentifiedAccessUtil.getAccessForSync(context)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorySendSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorySendSyncJob.kt index f97c9dea16..d061ab78e9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorySendSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceStorySendSyncJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -57,7 +57,7 @@ class MultiDeviceStorySendSyncJob private constructor(parameters: Parameters, pr val updateManifest = SignalDatabase.storySends.getLocalManifest(sentTimestamp) val recipientsSet: Set = updateManifest.toRecipientsSet() val transcriptMessage: SignalServiceSyncMessage = SignalServiceSyncMessage.forSentTranscript(buildSentTranscript(recipientsSet)) - val sendMessageResult = ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(transcriptMessage, Optional.empty()) + val sendMessageResult = AppDependencies.signalServiceMessageSender.sendSyncMessage(transcriptMessage, Optional.empty()) Log.i(TAG, "Sent transcript message with ${recipientsSet.size} recipients") diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceSubscriptionSyncRequestJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceSubscriptionSyncRequestJob.kt index 4d329bf8fa..273e07850f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceSubscriptionSyncRequestJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceSubscriptionSyncRequestJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.net.NotPushRegisteredException @@ -33,7 +33,7 @@ class MultiDeviceSubscriptionSyncRequestJob private constructor(parameters: Para .build() ) - ApplicationDependencies.getJobManager().add(job) + AppDependencies.jobManager.add(job) } } @@ -55,7 +55,7 @@ class MultiDeviceSubscriptionSyncRequestJob private constructor(parameters: Para return } - val messageSender = ApplicationDependencies.getSignalServiceMessageSender() + val messageSender = AppDependencies.signalServiceMessageSender messageSender.sendSyncMessage( SignalServiceSyncMessage.forFetchLatest(SignalServiceSyncMessage.FetchType.SUBSCRIPTION_STATUS), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java index 687c09dad9..18b3e3395b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceVerifiedUpdateJob.java @@ -9,7 +9,7 @@ import org.signal.libsignal.protocol.IdentityKey; import org.signal.libsignal.protocol.InvalidKeyException; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.IdentityTable.VerifiedStatus; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -104,7 +104,7 @@ public class MultiDeviceVerifiedUpdateJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); Recipient recipient = Recipient.resolved(destination); if (recipient.isUnregistered()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewOnceOpenJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewOnceOpenJob.java index 52570ea04e..a1860019da 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewOnceOpenJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewOnceOpenJob.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.MessageTable.SyncMessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -82,7 +82,7 @@ public class MultiDeviceViewOnceOpenJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); Recipient recipient = Recipient.resolved(RecipientId.from(messageId.recipientId)); if (recipient.isUnregistered()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewedUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewedUpdateJob.java index 788ee76db2..f74879289a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewedUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceViewedUpdateJob.java @@ -10,7 +10,7 @@ import org.signal.core.util.ListUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.MessageTable.SyncMessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -68,7 +68,7 @@ public class MultiDeviceViewedUpdateJob extends BaseJob { * maximum size. */ public static void enqueue(@NonNull List messageIds) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); List> messageIdChunks = ListUtil.chunk(messageIds, SendReadReceiptJob.MAX_TIMESTAMPS); if (messageIdChunks.size() > 1) { @@ -120,7 +120,7 @@ public class MultiDeviceViewedUpdateJob extends BaseJob { } } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); messageSender.sendSyncMessage(SignalServiceSyncMessage.forViewed(viewedMessages), UnidentifiedAccessUtil.getAccessForSync(context)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/NullMessageSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/NullMessageSendJob.java index c1deb83d50..5253a2c2c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/NullMessageSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/NullMessageSendJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -72,7 +72,7 @@ public class NullMessageSendJob extends BaseJob { Log.w(TAG, recipient.getId() + " not registered!"); } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress address = RecipientUtil.toSignalServiceAddress(context, recipient); Optional unidentifiedAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/OptimizeMessageSearchIndexJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/OptimizeMessageSearchIndexJob.kt index 427bcfe311..1090a4885f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/OptimizeMessageSearchIndexJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/OptimizeMessageSearchIndexJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.transport.RetryLaterException @@ -21,7 +21,7 @@ class OptimizeMessageSearchIndexJob private constructor(parameters: Parameters) @JvmStatic fun enqueue() { - ApplicationDependencies.getJobManager().add(OptimizeMessageSearchIndexJob()) + AppDependencies.jobManager.add(OptimizeMessageSearchIndexJob()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentLedgerUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentLedgerUpdateJob.java index df9dd46b0c..c88c3f0ead 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentLedgerUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentLedgerUpdateJob.java @@ -8,7 +8,7 @@ import com.mobilecoin.lib.exceptions.FogSyncException; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -75,9 +75,9 @@ public final class PaymentLedgerUpdateJob extends BaseJob { } } - MobileCoinLedgerWrapper ledger = ApplicationDependencies.getPayments() - .getWallet() - .tryGetFullLedger(minimumBlockIndex); + MobileCoinLedgerWrapper ledger = AppDependencies.getPayments() + .getWallet() + .tryGetFullLedger(minimumBlockIndex); if (ledger == null) { Log.i(TAG, "Ledger not updated yet, waiting for a minimum block index"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentNotificationSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentNotificationSendJob.java index 18764d8cf3..b2a0c517e5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentNotificationSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentNotificationSendJob.java @@ -7,7 +7,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.net.NotPushRegisteredException; @@ -81,7 +81,7 @@ public final class PaymentNotificationSendJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress address = RecipientUtil.toSignalServiceAddress(context, recipient); Optional unidentifiedAccess = UnidentifiedAccessUtil.getAccessFor(context, recipient); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentSendJob.java index 4922ea507b..f2800304b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentSendJob.java @@ -7,7 +7,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -79,10 +79,10 @@ public final class PaymentSendJob extends BaseJob { amount, totalFee); - JobManager.Chain chain = ApplicationDependencies.getJobManager() - .startChain(sendJob) - .then(new PaymentTransactionCheckJob(uuid, QUEUE)) - .then(new MultiDeviceOutgoingPaymentSyncJob(uuid)); + JobManager.Chain chain = AppDependencies.getJobManager() + .startChain(sendJob) + .then(new PaymentTransactionCheckJob(uuid, QUEUE)) + .then(new MultiDeviceOutgoingPaymentSyncJob(uuid)); if (recipientId != null) { chain.then(PaymentNotificationSendJob.create(recipientId, uuid, recipientId.toQueueKey(true))); @@ -135,7 +135,7 @@ public final class PaymentSendJob extends BaseJob { Stopwatch stopwatch = new Stopwatch("Payment submission"); - Wallet wallet = ApplicationDependencies.getPayments().getWallet(); + Wallet wallet = AppDependencies.getPayments().getWallet(); PaymentTable paymentDatabase = SignalDatabase.payments(); paymentDatabase.createOutgoingPayment(uuid, @@ -165,10 +165,10 @@ public final class PaymentSendJob extends BaseJob { mobileCoinTransaction.getFee(), mobileCoinTransaction.getTransaction(), mobileCoinTransaction.getReceipt()); Log.i(TAG, "Defrag entered with id " + defragUuid); - ApplicationDependencies.getJobManager() - .startChain(new PaymentTransactionCheckJob(defragUuid, QUEUE)) - .then(new MultiDeviceOutgoingPaymentSyncJob(defragUuid)) - .enqueue(); + AppDependencies.getJobManager() + .startChain(new PaymentTransactionCheckJob(defragUuid, QUEUE)) + .then(new MultiDeviceOutgoingPaymentSyncJob(defragUuid)) + .enqueue(); } stopwatch.split("Defrag"); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentTransactionCheckJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentTransactionCheckJob.java index aee9be4f9f..ac78e90748 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentTransactionCheckJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PaymentTransactionCheckJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.BackoffUtil; @@ -62,7 +62,7 @@ public final class PaymentTransactionCheckJob extends BaseJob { return; } - Payments payments = ApplicationDependencies.getPayments(); + Payments payments = AppDependencies.getPayments(); switch (payment.getDirection()) { case SENT: { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PnpInitializeDevicesJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PnpInitializeDevicesJob.kt index 2c9f6b3d78..6a83f7204e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PnpInitializeDevicesJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PnpInitializeDevicesJob.kt @@ -16,7 +16,7 @@ import org.signal.libsignal.protocol.util.KeyHelper import org.signal.libsignal.protocol.util.Medium import org.thoughtcrime.securesms.components.settings.app.changenumber.ChangeNumberRepository import org.thoughtcrime.securesms.crypto.PreKeyUtil -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -52,7 +52,7 @@ class PnpInitializeDevicesJob private constructor(parameters: Parameters) : Base return } - ApplicationDependencies.getJobManager().add(PnpInitializeDevicesJob()) + AppDependencies.jobManager.add(PnpInitializeDevicesJob()) } } @@ -117,8 +117,8 @@ class PnpInitializeDevicesJob private constructor(parameters: Parameters) : Base } private fun initializeDevices(newE164: String): Single> { - val accountManager = ApplicationDependencies.getSignalServiceAccountManager() - val messageSender = ApplicationDependencies.getSignalServiceMessageSender() + val accountManager = AppDependencies.signalServiceAccountManager + val messageSender = AppDependencies.signalServiceMessageSender return Single.fromCallable { var completed = false @@ -157,9 +157,9 @@ class PnpInitializeDevicesJob private constructor(parameters: Parameters) : Base newE164: String ): PniKeyDistributionRequest { val selfIdentifier: String = SignalStore.account().requireAci().toString() - val aciProtocolStore: SignalProtocolStore = ApplicationDependencies.getProtocolStore().aci() - val pniProtocolStore: SignalProtocolStore = ApplicationDependencies.getProtocolStore().pni() - val messageSender = ApplicationDependencies.getSignalServiceMessageSender() + val aciProtocolStore: SignalProtocolStore = AppDependencies.protocolStore.aci() + val pniProtocolStore: SignalProtocolStore = AppDependencies.protocolStore.pni() + val messageSender = AppDependencies.signalServiceMessageSender val pniIdentity: IdentityKeyPair = SignalStore.account().pniIdentityKey val deviceMessages = mutableListOf() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt index fb79eda0d5..c3fc83ee60 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PreKeysSyncJob.kt @@ -9,7 +9,7 @@ import org.signal.libsignal.protocol.state.SignalProtocolStore import org.signal.libsignal.protocol.state.SignedPreKeyRecord import org.thoughtcrime.securesms.crypto.PreKeyUtil import org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.jobs.protos.PreKeysSyncJobData @@ -72,26 +72,26 @@ class PreKeysSyncJob private constructor( @JvmStatic fun enqueue() { - ApplicationDependencies.getJobManager().add(create()) + AppDependencies.jobManager.add(create()) } @JvmStatic fun enqueueIfNeeded() { if (!SignalStore.account().aciPreKeys.isSignedPreKeyRegistered || !SignalStore.account().pniPreKeys.isSignedPreKeyRegistered) { Log.i(TAG, "Some signed/last-resort prekeys aren't registered yet. Enqueuing a job. ACI: ${SignalStore.account().aciPreKeys.isSignedPreKeyRegistered} PNI: ${SignalStore.account().pniPreKeys.isSignedPreKeyRegistered}") - ApplicationDependencies.getJobManager().add(PreKeysSyncJob()) + AppDependencies.jobManager.add(PreKeysSyncJob()) } else if (SignalStore.account().aciPreKeys.activeSignedPreKeyId < 0 || SignalStore.account().pniPreKeys.activeSignedPreKeyId < 0) { Log.i(TAG, "Some signed prekeys aren't active yet. Enqueuing a job. ACI: ${SignalStore.account().aciPreKeys.activeSignedPreKeyId >= 0} PNI: ${SignalStore.account().pniPreKeys.activeSignedPreKeyId >= 0}") - ApplicationDependencies.getJobManager().add(PreKeysSyncJob()) + AppDependencies.jobManager.add(PreKeysSyncJob()) } else if (SignalStore.account().aciPreKeys.lastResortKyberPreKeyId < 0 || SignalStore.account().pniPreKeys.lastResortKyberPreKeyId < 0) { Log.i(TAG, "Some last-resort kyber prekeys aren't active yet. Enqueuing a job. ACI: ${SignalStore.account().aciPreKeys.lastResortKyberPreKeyId >= 0} PNI: ${SignalStore.account().pniPreKeys.lastResortKyberPreKeyId >= 0}") - ApplicationDependencies.getJobManager().add(PreKeysSyncJob()) + AppDependencies.jobManager.add(PreKeysSyncJob()) } else { val timeSinceLastFullRefresh = System.currentTimeMillis() - SignalStore.misc().lastFullPrekeyRefreshTime if (timeSinceLastFullRefresh >= REFRESH_INTERVAL || timeSinceLastFullRefresh < 0) { Log.i(TAG, "Scheduling a prekey refresh. Time since last full refresh: $timeSinceLastFullRefresh ms") - ApplicationDependencies.getJobManager().add(PreKeysSyncJob()) + AppDependencies.jobManager.add(PreKeysSyncJob()) } else { Log.d(TAG, "No prekey job needed. Time since last full refresh: $timeSinceLastFullRefresh ms") } @@ -128,10 +128,10 @@ class PreKeysSyncJob private constructor( warn(TAG, ServiceIdType.ACI, "Active Signed EC: ${SignalStore.account().aciPreKeys.activeSignedPreKeyId}, Last Resort Kyber: ${SignalStore.account().aciPreKeys.lastResortKyberPreKeyId}") warn(TAG, ServiceIdType.PNI, "Active Signed EC: ${SignalStore.account().pniPreKeys.activeSignedPreKeyId}, Last Resort Kyber: ${SignalStore.account().pniPreKeys.lastResortKyberPreKeyId}") - if (!checkPreKeyConsistency(ServiceIdType.ACI, ApplicationDependencies.getProtocolStore().aci(), SignalStore.account().aciPreKeys)) { + if (!checkPreKeyConsistency(ServiceIdType.ACI, AppDependencies.protocolStore.aci(), SignalStore.account().aciPreKeys)) { warn(TAG, ServiceIdType.ACI, "Prekey consistency check failed! Must rotate keys!") true - } else if (!checkPreKeyConsistency(ServiceIdType.PNI, ApplicationDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys)) { + } else if (!checkPreKeyConsistency(ServiceIdType.PNI, AppDependencies.protocolStore.pni(), SignalStore.account().pniPreKeys)) { warn(TAG, ServiceIdType.PNI, "Prekey consistency check failed! Must rotate keys! (ACI consistency check must have passed)") true } else { @@ -150,8 +150,8 @@ class PreKeysSyncJob private constructor( warn(TAG, "Forced prekey rotation was requested, but we already did a forced refresh ${System.currentTimeMillis() - SignalStore.misc().lastForcedPreKeyRefresh} ms ago. Ignoring.") } - syncPreKeys(ServiceIdType.ACI, SignalStore.account().aci, ApplicationDependencies.getProtocolStore().aci(), SignalStore.account().aciPreKeys, forceRotation) - syncPreKeys(ServiceIdType.PNI, SignalStore.account().pni, ApplicationDependencies.getProtocolStore().pni(), SignalStore.account().pniPreKeys, forceRotation) + syncPreKeys(ServiceIdType.ACI, SignalStore.account().aci, AppDependencies.protocolStore.aci(), SignalStore.account().aciPreKeys, forceRotation) + syncPreKeys(ServiceIdType.PNI, SignalStore.account().pni, AppDependencies.protocolStore.pni(), SignalStore.account().pniPreKeys, forceRotation) SignalStore.misc().lastFullPrekeyRefreshTime = System.currentTimeMillis() if (forceRotation) { @@ -165,7 +165,7 @@ class PreKeysSyncJob private constructor( return } - val accountManager = ApplicationDependencies.getSignalServiceAccountManager() + val accountManager = AppDependencies.signalServiceAccountManager val availablePreKeyCounts: OneTimePreKeyCounts = accountManager.getPreKeyCounts(serviceIdType) val signedPreKeyToUpload: SignedPreKeyRecord? = signedPreKeyUploadIfNeeded(serviceIdType, protocolStore, metadataStore, forceRotation) @@ -258,7 +258,7 @@ class PreKeysSyncJob private constructor( @Throws(IOException::class) private fun checkPreKeyConsistency(serviceIdType: ServiceIdType, protocolStore: SignalServiceAccountDataStore, metadataStore: PreKeyMetadataStore): Boolean { - val result: NetworkResult = ApplicationDependencies.getSignalServiceAccountManager().keysApi.checkRepeatedUseKeys( + val result: NetworkResult = AppDependencies.signalServiceAccountManager.keysApi.checkRepeatedUseKeys( serviceIdType = serviceIdType, identityKey = protocolStore.identityKeyPair.publicKey, signedPreKeyId = metadataStore.activeSignedPreKeyId, @@ -289,7 +289,7 @@ class PreKeysSyncJob private constructor( override fun onFailure() { Log.w(TAG, "Failed to sync prekeys. Enqueuing an account consistency check.") - ApplicationDependencies.getJobManager().add(AccountConsistencyWorkerJob()) + AppDependencies.jobManager.add(AccountConsistencyWorkerJob()) } private fun log(serviceIdType: ServiceIdType, message: String) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java index c478c57489..f6981d9970 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSendJob.java @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.database.documents.NetworkFailure; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobLogger; @@ -124,7 +124,7 @@ public final class PushGroupSendJob extends PushSendJob { if (!filterAddresses.isEmpty()) { throw new MmsException("Cannot schedule a group message with filter addresses!"); } - ApplicationDependencies.getScheduledMessageManager().scheduleIfNecessary(); + AppDependencies.getScheduledMessageManager().scheduleIfNecessary(); return; } @@ -188,7 +188,7 @@ public final class PushGroupSendJob extends PushSendJob { SignalLocalMetrics.GroupMessageSend.setSentTimestamp(messageId, message.getSentTimeMillis()); - ApplicationDependencies.getJobManager().cancelAllInQueue(TypingSendJob.getQueue(threadId)); + AppDependencies.getJobManager().cancelAllInQueue(TypingSendJob.getQueue(threadId)); if (database.isSent(messageId)) { log(TAG, String.valueOf(message.getSentTimeMillis()), "Message " + messageId + " was already sent. Ignoring."); @@ -470,8 +470,8 @@ public final class PushGroupSendJob extends PushSendJob { if (message.getExpiresIn() > 0 && !message.isExpirationUpdate()) { database.markExpireStarted(messageId); - ApplicationDependencies.getExpiringMessageManager() - .scheduleDeletion(messageId, true, message.getExpiresIn()); + AppDependencies.getExpiringMessageManager() + .scheduleDeletion(messageId, true, message.getExpiresIn()); } if (message.isViewOnce()) { @@ -479,7 +479,7 @@ public final class PushGroupSendJob extends PushSendJob { } if (message.getStoryType().isStory()) { - ApplicationDependencies.getExpireStoriesManager().scheduleIfNecessary(); + AppDependencies.getExpireStoriesManager().scheduleIfNecessary(); } } else if (!existingIdentityMismatches.isEmpty()) { Log.w(TAG, "Failing because there were " + existingIdentityMismatches.size() + " identity mismatches."); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessEarlyMessagesJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessEarlyMessagesJob.kt index 536ea23288..4a0a40b302 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessEarlyMessagesJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessEarlyMessagesJob.kt @@ -4,7 +4,7 @@ import org.signal.core.util.logging.Log import org.signal.core.util.orNull import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.ServiceMessageId -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.messages.MessageContentProcessor import org.thoughtcrime.securesms.util.EarlyMessageCacheEntry @@ -33,7 +33,7 @@ class PushProcessEarlyMessagesJob private constructor(parameters: Parameters) : } override fun onRun() { - val earlyIds: List = ApplicationDependencies.getEarlyMessageCache().allReferencedIds + val earlyIds: List = AppDependencies.earlyMessageCache.allReferencedIds .filter { SignalDatabase.messages.getMessageFor(it.sentTimestamp, it.sender) != null } .sortedBy { it.sentTimestamp } @@ -41,7 +41,7 @@ class PushProcessEarlyMessagesJob private constructor(parameters: Parameters) : Log.i(TAG, "There are ${earlyIds.size} items in the early message cache with matches.") for (id: ServiceMessageId in earlyIds) { - val earlyEntries: List? = ApplicationDependencies.getEarlyMessageCache().retrieve(id.sender, id.sentTimestamp).orNull() + val earlyEntries: List? = AppDependencies.earlyMessageCache.retrieve(id.sender, id.sentTimestamp).orNull() if (earlyEntries != null) { for (entry in earlyEntries) { @@ -80,7 +80,7 @@ class PushProcessEarlyMessagesJob private constructor(parameters: Parameters) : */ @JvmStatic fun enqueue() { - val jobManger = ApplicationDependencies.getJobManager() + val jobManger = AppDependencies.jobManager val youngestProcessJobId: String? = jobManger.find { it.factoryKey == PushProcessMessageJob.KEY } .maxByOrNull { it.createTime } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageErrorJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageErrorJob.kt index 200bc63ecc..1a6ae7d416 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageErrorJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageErrorJob.kt @@ -8,7 +8,7 @@ package org.thoughtcrime.securesms.jobs import android.content.Context import androidx.annotation.WorkerThread import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData @@ -92,7 +92,7 @@ class PushProcessMessageErrorJob private constructor( @WorkerThread private fun createParameters(exceptionMetadata: ExceptionMetadata): Parameters { - val context: Context = ApplicationDependencies.getApplication() + val context: Context = AppDependencies.application val recipient = exceptionMetadata.groupId?.let { Recipient.externalPossiblyMigratedGroup(it) } ?: Recipient.external(context, exceptionMetadata.sender) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.kt index d172d5082b..7acf736236 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushProcessMessageJob.kt @@ -4,7 +4,7 @@ import okio.ByteString import okio.ByteString.Companion.toByteString import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase.Companion.groups -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupChangeBusyException import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.ChangeNumberConstraint @@ -156,7 +156,7 @@ class PushProcessMessageJob private constructor( if (!isGroup && empty1to1QueueCache.contains(queueName)) { return true } - val queueEmpty = ApplicationDependencies.getJobManager().isQueueEmpty(queueName) + val queueEmpty = AppDependencies.jobManager.isQueueEmpty(queueName) if (!isGroup && queueEmpty) { empty1to1QueueCache.add(queueName) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java index 5781de9aa9..649618961e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -40,7 +40,7 @@ import org.thoughtcrime.securesms.database.model.ParentStoryId; import org.thoughtcrime.securesms.database.model.StickerRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList; import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.PartProgressEvent; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -114,7 +114,7 @@ public abstract class PushSendJob extends SendJob { ) { warn(TAG, "It's been too long since rotating our signed prekeys (ACI: " + timeSinceAciSignedPreKeyRotation + " ms, PNI: " + timeSincePniSignedPreKeyRotation + " ms)! Attempting to rotate now."); - Optional state = ApplicationDependencies.getJobManager().runSynchronously(PreKeysSyncJob.create(), TimeUnit.SECONDS.toMillis(30)); + Optional state = AppDependencies.getJobManager().runSynchronously(PreKeysSyncJob.create(), TimeUnit.SECONDS.toMillis(30)); if (state.isPresent() && state.get() == JobTracker.JobState.SUCCESS) { log(TAG, "Successfully refreshed prekeys. Continuing."); @@ -141,7 +141,7 @@ public abstract class PushSendJob extends SendJob { if (getRunAttempt() > 1) { Log.i(TAG, "Scheduling service outage detection job."); - ApplicationDependencies.getJobManager().add(new ServiceOutageDetectionJob()); + AppDependencies.getJobManager().add(new ServiceOutageDetectionJob()); } } @@ -330,9 +330,9 @@ public abstract class PushSendJob extends SendJob { if (threadId != -1 && recipient != null) { if (isStory) { SignalDatabase.messages().markAsNotNotified(messageId); - ApplicationDependencies.getMessageNotifier().notifyStoryDeliveryFailed(context, recipient, ConversationId.forConversation(threadId)); + AppDependencies.getMessageNotifier().notifyStoryDeliveryFailed(context, recipient, ConversationId.forConversation(threadId)); } else { - ApplicationDependencies.getMessageNotifier().notifyMessageDeliveryFailed(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReplyStoryId)); + AppDependencies.getMessageNotifier().notifyMessageDeliveryFailed(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReplyStoryId)); } } } @@ -380,7 +380,7 @@ public abstract class PushSendJob extends SendJob { .withHeight(thumbnailData.getHeight()) .withLength(thumbnailData.getData().length) .withStream(new ByteArrayInputStream(thumbnailData.getData())) - .withResumableUploadSpec(ApplicationDependencies.getSignalServiceMessageSender().getResumableUploadSpec()); + .withResumableUploadSpec(AppDependencies.getSignalServiceMessageSender().getResumableUploadSpec()); thumbnail = builder.build(); } @@ -555,7 +555,7 @@ public abstract class PushSendJob extends SendJob { Log.d(TAG, "All certificates are valid."); } catch (InvalidCertificateException e) { Log.w(TAG, "A certificate was invalid at send time. Fetching new ones.", e); - if (!ApplicationDependencies.getJobManager().runSynchronously(new RotateCertificateJob(), 5000).isPresent()) { + if (!AppDependencies.getJobManager().runSynchronously(new RotateCertificateJob(), 5000).isPresent()) { throw new IOException("Timeout rotating certificate"); } } @@ -568,7 +568,7 @@ public abstract class PushSendJob extends SendJob { try { if (proofRequired.getOptions().contains(ProofRequiredException.Option.PUSH_CHALLENGE)) { - ApplicationDependencies.getSignalServiceAccountManager().requestRateLimitPushChallenge(); + AppDependencies.getSignalServiceAccountManager().requestRateLimitPushChallenge(); Log.i(TAG, "[Proof Required] Successfully requested a challenge. Waiting up to " + PUSH_CHALLENGE_TIMEOUT + " ms."); boolean success = new PushChallengeRequest(PUSH_CHALLENGE_TIMEOUT).blockUntilSuccess(); @@ -605,7 +605,7 @@ public abstract class PushSendJob extends SendJob { if (recipient != null) { ParentStoryId.GroupReply groupReply = SignalDatabase.messages().getParentStoryIdForGroupReply(messageId); - ApplicationDependencies.getMessageNotifier().notifyProofRequired(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReply)); + AppDependencies.getMessageNotifier().notifyProofRequired(context, recipient, ConversationId.fromThreadAndReply(threadId, groupReply)); } else { Log.w(TAG, "[Proof Required] No recipient! Couldn't notify."); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java index 2a8b54d3f1..88ab45ad5f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -240,7 +240,7 @@ public class ReactionSendJob extends BaseJob { null); if (includesSelf) { - results.add(ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage)); + results.add(AppDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage)); } GroupSendJobHelper.SendResult groupResult = GroupSendJobHelper.getCompletedSends(destinations, results); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RebuildMessageSearchIndexJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RebuildMessageSearchIndexJob.kt index f393801670..3b03a7483e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RebuildMessageSearchIndexJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RebuildMessageSearchIndexJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.DataRestoreConstraint import org.thoughtcrime.securesms.transport.RetryLaterException @@ -18,7 +18,7 @@ class RebuildMessageSearchIndexJob private constructor(params: Parameters) : Bas const val KEY = "RebuildMessageSearchIndexJob" fun enqueue() { - ApplicationDependencies.getJobManager().add(RebuildMessageSearchIndexJob()) + AppDependencies.jobManager.add(RebuildMessageSearchIndexJob()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java index 94aea6f2ca..0cc952867f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java @@ -8,11 +8,10 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.AppCapabilities; import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; -import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode; import org.thoughtcrime.securesms.keyvalue.SvrValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -92,7 +91,7 @@ public class RefreshAttributesJob extends BaseJob { boolean universalUnidentifiedAccess = TextSecurePreferences.isUniversalUnidentifiedAccess(context); String registrationLockV2 = null; SvrValues svrValues = SignalStore.svr(); - int pniRegistrationId = new RegistrationRepository(ApplicationDependencies.getApplication()).getPniRegistrationId(); + int pniRegistrationId = new RegistrationRepository(AppDependencies.getApplication()).getPniRegistrationId(); String recoveryPassword = svrValues.getRecoveryPassword(); if (svrValues.isRegistrationLockEnabled()) { @@ -125,7 +124,7 @@ public class RefreshAttributesJob extends BaseJob { recoveryPassword ); - ApplicationDependencies.getSignalServiceAccountManager().setAccountAttributes(accountAttributes); + AppDependencies.getSignalServiceAccountManager().setAccountAttributes(accountAttributes); hasRefreshedThisAppCycle = true; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshCallLinkDetailsJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshCallLinkDetailsJob.kt index 49589ef120..d0dc447ceb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshCallLinkDetailsJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshCallLinkDetailsJob.kt @@ -7,7 +7,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.concurrent.safeBlockingGet import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.service.webrtc.links.CallLinkCredentials @@ -45,7 +45,7 @@ class RefreshCallLinkDetailsJob private constructor( override fun onFailure() = Unit override fun onRun() { - val manager: SignalCallLinkManager = ApplicationDependencies.getSignalCallManager().callLinkManager + val manager: SignalCallLinkManager = AppDependencies.signalCallManager.callLinkManager val credentials = CallLinkCredentials( linkKeyBytes = callLinkUpdate.rootKey!!.toByteArray(), adminPassBytes = callLinkUpdate.adminPassKey?.toByteArray() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java index 9d1b8ccd82..5b2671eeb3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshOwnProfileJob.java @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -128,7 +128,7 @@ public class RefreshOwnProfileJob extends BaseJob { if (!self.getProfileName().isEmpty()) { Log.w(TAG, "We have a name locally. Scheduling a profile upload."); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); } else { Log.w(TAG, "We don't have a name locally, either!"); } @@ -208,7 +208,7 @@ public class RefreshOwnProfileJob extends BaseJob { private static void setProfileAvatar(@Nullable String avatar) { Log.d(TAG, "Saving " + (!Util.isEmpty(avatar) ? "non-" : "") + "empty avatar."); - ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(Recipient.self(), avatar)); + AppDependencies.getJobManager().add(new RetrieveProfileAvatarJob(Recipient.self(), avatar)); } private void setProfileCapabilities(@Nullable SignalServiceProfile.Capabilities capabilities) { @@ -222,13 +222,13 @@ public class RefreshOwnProfileJob extends BaseJob { private void ensureUnidentifiedAccessCorrect(@Nullable String unidentifiedAccessVerifier, boolean universalUnidentifiedAccess) { if (unidentifiedAccessVerifier == null) { Log.w(TAG, "No unidentified access is set remotely! Refreshing attributes."); - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); return; } if (TextSecurePreferences.isUniversalUnidentifiedAccess(context) != universalUnidentifiedAccess) { Log.w(TAG, "The universal access flag doesn't match our local value (local: " + TextSecurePreferences.isUniversalUnidentifiedAccess(context) + ", remote: " + universalUnidentifiedAccess + ")! Refreshing attributes."); - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); return; } @@ -245,7 +245,7 @@ public class RefreshOwnProfileJob extends BaseJob { if (!verified) { Log.w(TAG, "Unidentified access failed to verify! Refreshing attributes."); - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); } } @@ -282,10 +282,10 @@ public class RefreshOwnProfileJob extends BaseJob { } private void syncWithStorageServiceThenUploadProfile() { - ApplicationDependencies.getJobManager() - .startChain(new StorageSyncJob()) - .then(new ProfileUploadJob()) - .enqueue(); + AppDependencies.getJobManager() + .startChain(new StorageSyncJob()) + .then(new ProfileUploadJob()) + .enqueue(); } private static void checkUsernameIsInSync() { @@ -294,7 +294,7 @@ public class RefreshOwnProfileJob extends BaseJob { try { String localUsername = SignalStore.account().getUsername(); - WhoAmIResponse whoAmIResponse = ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI(); + WhoAmIResponse whoAmIResponse = AppDependencies.getSignalServiceAccountManager().getWhoAmI(); String remoteUsernameHash = whoAmIResponse.getUsernameHash(); String localUsernameHash = localUsername != null ? Base64.encodeUrlSafeWithoutPadding(new Username(localUsername).getHash()) : null; @@ -320,7 +320,7 @@ public class RefreshOwnProfileJob extends BaseJob { UsernameLinkComponents localUsernameLink = SignalStore.account().getUsernameLink(); if (localUsernameLink != null) { - byte[] remoteEncryptedUsername = ApplicationDependencies.getSignalServiceAccountManager().getEncryptedUsernameFromLinkServerId(localUsernameLink.getServerId()); + byte[] remoteEncryptedUsername = AppDependencies.getSignalServiceAccountManager().getEncryptedUsernameFromLinkServerId(localUsernameLink.getServerId()); Username.UsernameLink combinedLink = new Username.UsernameLink(localUsernameLink.getEntropy(), remoteEncryptedUsername); Username remoteUsername = Username.fromLink(combinedLink); @@ -387,8 +387,8 @@ public class RefreshOwnProfileJob extends BaseJob { boolean isDueToPaymentFailure = false; if (subscriber != null) { - ServiceResponse response = ApplicationDependencies.getDonationsService() - .getSubscription(subscriber.getSubscriberId()); + ServiceResponse response = AppDependencies.getDonationsService() + .getSubscription(subscriber.getSubscriberId()); if (response.getResult().isPresent()) { ActiveSubscription activeSubscription = response.getResult().get(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshSvrCredentialsJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshSvrCredentialsJob.kt index 397f1c9cab..10ddb32fd4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshSvrCredentialsJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshSvrCredentialsJob.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -27,7 +27,7 @@ class RefreshSvrCredentialsJob private constructor(parameters: Parameters) : Bas if (SignalStore.svr().hasPin() && SignalStore.account().isRegistered) { val lastTimestamp = SignalStore.svr().lastRefreshAuthTimestamp if (lastTimestamp + FREQUENCY.inWholeMilliseconds < System.currentTimeMillis() || lastTimestamp > System.currentTimeMillis()) { - ApplicationDependencies.getJobManager().add(RefreshSvrCredentialsJob()) + AppDependencies.jobManager.add(RefreshSvrCredentialsJob()) } else { Log.d(TAG, "Do not need to refresh credentials. Last refresh: $lastTimestamp") } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.java index 313ef1e5e8..a84ab4b0a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteConfigRefreshJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -51,7 +51,7 @@ public class RemoteConfigRefreshJob extends BaseJob { return; } - RemoteConfigResult result = ApplicationDependencies.getSignalServiceAccountManager().getRemoteConfig(); + RemoteConfigResult result = AppDependencies.getSignalServiceAccountManager().getRemoteConfig(); FeatureFlags.update(result.getConfig()); SignalStore.misc().setLastKnownServerTime(TimeUnit.SECONDS.toMillis(result.getServerEpochTimeSeconds()), System.currentTimeMillis()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java index 3110804339..5f5b8de94b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.database.model.DistributionListId; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -69,7 +69,7 @@ public class RemoteDeleteSendJob extends BaseJob { if (conversationRecipient.isDistributionList()) { recipients = SignalDatabase.storySends().getRemoteDeleteRecipients(message.getId(), message.getTimestamp()); if (recipients.isEmpty()) { - return ApplicationDependencies.getJobManager().startChain(MultiDeviceStorySendSyncJob.create(message.getDateSent(), messageId)); + return AppDependencies.getJobManager().startChain(MultiDeviceStorySendSyncJob.create(message.getDateSent(), messageId)); } } else { recipients = conversationRecipient.isGroup() ? Stream.of(conversationRecipient.getParticipantIds()).toList() @@ -88,11 +88,11 @@ public class RemoteDeleteSendJob extends BaseJob { .build()); if (conversationRecipient.isDistributionList()) { - return ApplicationDependencies.getJobManager() - .startChain(sendJob) - .then(MultiDeviceStorySendSyncJob.create(message.getDateSent(), messageId)); + return AppDependencies.getJobManager() + .startChain(sendJob) + .then(MultiDeviceStorySendSyncJob.create(message.getDateSent(), messageId)); } else { - return ApplicationDependencies.getJobManager().startChain(sendJob); + return AppDependencies.getJobManager().startChain(sendJob); } } @@ -225,7 +225,7 @@ public class RemoteDeleteSendJob extends BaseJob { null); if (conversationRecipient.isSelf()) { - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage); + AppDependencies.getSignalServiceMessageSender().sendSyncMessage(dataMessage); } return GroupSendJobHelper.getCompletedSends(destinations, results); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java index 53069b4f9b..d183342f20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.MessageTable.ReportSpamData; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -20,7 +20,6 @@ import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulRespons import org.whispersystems.signalservice.api.push.exceptions.ServerRejectedException; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.TimeUnit; @@ -94,7 +93,7 @@ public class ReportSpamJob extends BaseJob { } int count = 0; - SignalServiceAccountManager signalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager signalServiceAccountManager = AppDependencies.getSignalServiceAccountManager(); for (ReportSpamData data : reportSpamData) { RecipientId recipientId = data.getRecipientId(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupV2InfoJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupV2InfoJob.java index 48a3038e30..9f2c9d9825 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupV2InfoJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupV2InfoJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.v2.processing.GroupsV2StateProcessor; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -68,7 +68,7 @@ public final class RequestGroupV2InfoJob extends BaseJob { @Override public void onRun() { - ApplicationDependencies.getJobManager().add(new RequestGroupV2InfoWorkerJob(groupId, toRevision)); + AppDependencies.getJobManager().add(new RequestGroupV2InfoWorkerJob(groupId, toRevision)); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResendMessageJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResendMessageJob.java index a60d2ecbcd..7f1cf661df 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResendMessageJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResendMessageJob.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.DistributionListRecord; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -133,7 +133,7 @@ public class ResendMessageJob extends BaseJob { Log.i(TAG, "[" + sentTimestamp + " ] Resending message to " + recipientId + " (urgent: " + urgent + ", contentHint: " + contentHint.name() + ", groupId: " + groupId + ", distributionId: " + distributionId + ")"); - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); Recipient recipient = Recipient.resolved(recipientId); if (recipient.isUnregistered()) { @@ -182,10 +182,10 @@ public class ResendMessageJob extends BaseJob { result = messageSender.resendContent(address, access, sentTimestamp, contentToSend, contentHint, Optional.ofNullable(groupId).map(GroupId::getDecodedId), urgent); } catch (IllegalStateException e) { Log.w(TAG, "Failed to resend content. Archiving session and trying again.", e); - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSessions(recipientId, SignalServiceAddress.DEFAULT_DEVICE_ID); - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSiblingSessions(recipient.requireServiceId().toProtocolAddress(SignalServiceAddress.DEFAULT_DEVICE_ID)); - ApplicationDependencies.getProtocolStore().pni().sessions().archiveSessions(recipientId, SignalServiceAddress.DEFAULT_DEVICE_ID); - ApplicationDependencies.getProtocolStore().pni().sessions().archiveSiblingSessions(recipient.requireServiceId().toProtocolAddress(SignalServiceAddress.DEFAULT_DEVICE_ID)); + AppDependencies.getProtocolStore().aci().sessions().archiveSessions(recipientId, SignalServiceAddress.DEFAULT_DEVICE_ID); + AppDependencies.getProtocolStore().aci().sessions().archiveSiblingSessions(recipient.requireServiceId().toProtocolAddress(SignalServiceAddress.DEFAULT_DEVICE_ID)); + AppDependencies.getProtocolStore().pni().sessions().archiveSessions(recipientId, SignalServiceAddress.DEFAULT_DEVICE_ID); + AppDependencies.getProtocolStore().pni().sessions().archiveSiblingSessions(recipient.requireServiceId().toProtocolAddress(SignalServiceAddress.DEFAULT_DEVICE_ID)); SignalDatabase.senderKeyShared().deleteAllFor(recipientId); result = messageSender.resendContent(address, access, sentTimestamp, contentToSend, contentHint, Optional.ofNullable(groupId).map(GroupId::getDecodedId), urgent); @@ -198,7 +198,7 @@ public class ResendMessageJob extends BaseJob { .map(device -> recipient.requireServiceId().toProtocolAddress(device)) .collect(Collectors.toList()); - ApplicationDependencies.getProtocolStore().aci().markSenderKeySharedWith(distributionId, addresses); + AppDependencies.getProtocolStore().aci().markSenderKeySharedWith(distributionId, addresses); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResetSvrGuessCountJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResetSvrGuessCountJob.kt index 91a8bfcc54..93023a1428 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResetSvrGuessCountJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResetSvrGuessCountJob.kt @@ -6,7 +6,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -76,7 +76,7 @@ class ResetSvrGuessCountJob private constructor( val masterKey: MasterKey = SignalStore.svr().getOrCreateMasterKey() val svr2Result = if (!svr2Complete) { - resetGuessCount(ApplicationDependencies.getSignalServiceAccountManager().getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE), pin, masterKey) + resetGuessCount(AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE), pin, masterKey) } else { Log.d(TAG, "Already reset guess count on SVR2. Skipping.") Result.success() diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreAttachmentJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreAttachmentJob.kt index 1478e8fe9c..69e661748b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreAttachmentJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RestoreAttachmentJob.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.backup.v2.BackupRepository import org.thoughtcrime.securesms.backup.v2.BackupRepository.getThumbnailMediaName import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.PartProgressEvent import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobLogger.format @@ -90,7 +90,7 @@ class RestoreAttachmentJob private constructor( } fun modifyPriorities(ids: Set, priority: Int) { - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager jobManager.update { spec -> val jobData = getJsonJobData(spec) if (jobSpecMatchesAnyAttachmentId(jobData, ids) && spec.priority != priority) { @@ -159,7 +159,7 @@ class RestoreAttachmentJob private constructor( doWork() if (!SignalDatabase.messages.isStory(messageId)) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, forConversation(0)) + AppDependencies.messageNotifier.updateNotification(context, forConversation(0)) } } @@ -232,7 +232,7 @@ class RestoreAttachmentJob private constructor( false } - val messageReceiver = ApplicationDependencies.getSignalServiceMessageReceiver() + val messageReceiver = AppDependencies.signalServiceMessageReceiver val pointer = createAttachmentPointer(attachment, useArchiveCdn) val progressListener = object : SignalServiceAttachment.ProgressListener { @@ -451,7 +451,7 @@ class RestoreAttachmentJob private constructor( } val cdnCredentials = BackupRepository.getCdnReadCredentials(attachment.archiveCdn).successOrThrow().headers - val messageReceiver = ApplicationDependencies.getSignalServiceMessageReceiver() + val messageReceiver = AppDependencies.signalServiceMessageReceiver val pointer = createThumbnailPointer(attachment) Log.w(TAG, "Downloading thumbnail for $attachmentId mediaName=${attachment.getThumbnailMediaName()}") diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java index 47147ff4a5..c0763a5a96 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java @@ -4,14 +4,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; -import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.whispersystems.signalservice.internal.push.http.ResumableUploadSpec; import java.io.IOException; -import java.util.concurrent.TimeUnit; /** * No longer used. Functionality has been merged into {@link AttachmentUploadJob}. @@ -31,8 +29,8 @@ public class ResumableUploadSpecJob extends BaseJob { @Override protected void onRun() throws Exception { - ResumableUploadSpec resumableUploadSpec = ApplicationDependencies.getSignalServiceMessageSender() - .getResumableUploadSpec(); + ResumableUploadSpec resumableUploadSpec = AppDependencies.getSignalServiceMessageSender() + .getResumableUploadSpec(); setOutputData(new JsonJobData.Builder() .putString(KEY_RESUME_SPEC, resumableUploadSpec.serialize()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java index 85c220b0c9..49a411c0b8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileAvatarJob.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.ProfileAvatarFileDetails; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -47,7 +47,7 @@ public class RetrieveProfileAvatarJob extends BaseJob { private final boolean forceUpdate; public static void enqueueForceUpdate(Recipient recipient) { - SignalExecutors.BOUNDED.execute(() -> ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(recipient, recipient.resolve().getProfileAvatar(), true))); + SignalExecutors.BOUNDED.execute(() -> AppDependencies.getJobManager().add(new RetrieveProfileAvatarJob(recipient, recipient.resolve().getProfileAvatar(), true))); } public RetrieveProfileAvatarJob(Recipient recipient, String profileAvatar) { @@ -121,7 +121,7 @@ public class RetrieveProfileAvatarJob extends BaseJob { File downloadDestination = File.createTempFile("avatar", "jpg", context.getCacheDir()); try { - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); try (InputStream avatarStream = receiver.retrieveProfileAvatar(profileAvatar, downloadDestination, profileKey, AvatarHelper.AVATAR_DOWNLOAD_FAILSAFE_MAX_SIZE)) { AvatarHelper.setAvatar(context, recipient.getId(), avatarStream); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.kt index 0e5dfd0ce3..a7f35812be 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveProfileJob.kt @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.database.RecipientTable.PhoneNumberSharingStat import org.thoughtcrime.securesms.database.RecipientTable.UnidentifiedAccessMode import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.RecipientRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -305,7 +305,7 @@ class RetrieveProfileJob private constructor(parameters: Parameters, private val } val identityKey = IdentityKey(decode(identityKeyValue), 0) - if (!ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.id).isPresent) { + if (!AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipient.id).isPresent) { Log.w(TAG, "Still first use for ${recipient.id}") return } @@ -414,11 +414,11 @@ class RetrieveProfileJob private constructor(parameters: Parameters, private val } if (writeChangeEvent || localDisplayName.isEmpty()) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyConversationListListeners() val threadId = SignalDatabase.threads.getThreadIdFor(recipient.id) if (threadId != null) { SignalDatabase.runPostSuccessfulTransaction { - ApplicationDependencies.getMessageNotifier().updateNotification(context, forConversation(threadId)) + AppDependencies.messageNotifier.updateNotification(context, forConversation(threadId)) } } } @@ -487,7 +487,7 @@ class RetrieveProfileJob private constructor(parameters: Parameters, private val if (profileAvatar != recipient.profileAvatar) { SignalDatabase.runPostSuccessfulTransaction(DEDUPE_KEY_RETRIEVE_AVATAR + recipient.id) { SignalExecutors.BOUNDED.execute { - ApplicationDependencies.getJobManager().add(RetrieveProfileAvatarJob(recipient, profileAvatar)) + AppDependencies.jobManager.add(RetrieveProfileAvatarJob(recipient, profileAvatar)) } } } @@ -533,7 +533,7 @@ class RetrieveProfileJob private constructor(parameters: Parameters, private val @WorkerThread fun enqueue(recipientId: RecipientId) { forRecipients(setOf(recipientId)).firstOrNull()?.let { job -> - ApplicationDependencies.getJobManager().add(job) + AppDependencies.jobManager.add(job) } } @@ -544,7 +544,7 @@ class RetrieveProfileJob private constructor(parameters: Parameters, private val @JvmStatic @WorkerThread fun enqueue(recipientIds: Set) { - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager for (job in forRecipients(recipientIds)) { jobManager.add(job) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveRemoteAnnouncementsJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveRemoteAnnouncementsJob.kt index b145ba4651..b4268fa2c7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveRemoteAnnouncementsJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RetrieveRemoteAnnouncementsJob.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.model.addButton import org.thoughtcrime.securesms.database.model.addLink import org.thoughtcrime.securesms.database.model.addStyle import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -74,7 +74,7 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool .build() ) - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(CreateReleaseChannelJob.create()) .then(job) .enqueue() @@ -238,9 +238,9 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool if (insertResult != null) { addedNewNotes = addedNewNotes || (note.releaseNote.includeBoostMessage ?: true) SignalDatabase.attachments.getAttachmentsForMessage(insertResult.messageId) - .forEach { ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, false)) } + .forEach { AppDependencies.jobManager.add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, false)) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) TrimThreadJob.enqueueAsync(insertResult.threadId) highestVersion = max(highestVersion, note.releaseNote.androidMinVersion!!.toInt()) @@ -309,7 +309,7 @@ class RetrieveRemoteAnnouncementsJob private constructor(private val force: Bool SignalDatabase.remoteMegaphones.insert(record) if (record.imageUrl != null) { - ApplicationDependencies.getJobManager().add(FetchRemoteMegaphoneImageJob(record.uuid, record.imageUrl)) + AppDependencies.jobManager.add(FetchRemoteMegaphoneImageJob(record.uuid, record.imageUrl)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java index 0eb39c5f29..e5824fb3d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RotateCertificateJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.CertificateType; @@ -56,7 +56,7 @@ public final class RotateCertificateJob extends BaseJob { } synchronized (RotateCertificateJob.class) { - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); Collection certificateTypes = SignalStore.phoneNumberPrivacy() .getAllCertificateTypes(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java index f33eab6023..15c97081f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java @@ -8,7 +8,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -99,7 +99,7 @@ public class SendDeliveryReceiptJob extends BaseJob { throw new NotPushRegisteredException(); } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); Recipient recipient = Recipient.resolved(recipientId); if (recipient.isSelf()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java index 10a4962839..34716e5c93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendReadReceiptJob.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -102,7 +102,7 @@ public class SendReadReceiptJob extends BaseJob { return; } - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); List> messageIdChunks = ListUtil.chunk(markedMessageInfos, MAX_TIMESTAMPS); if (messageIdChunks.size() > 1) { @@ -183,7 +183,7 @@ public class SendReadReceiptJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress remoteAddress = RecipientUtil.toSignalServiceAddress(context, recipient); SignalServiceReceiptMessage receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.READ, messageSentTimestamps, timestamp); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendRetryReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendRetryReceiptJob.java index b2f60f08f8..b1d2ddf8b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendRetryReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendRetryReceiptJob.java @@ -8,7 +8,7 @@ import org.signal.libsignal.protocol.InvalidMessageException; import org.signal.libsignal.protocol.InvalidKeyException; import org.signal.libsignal.protocol.message.DecryptionErrorMessage; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -92,7 +92,7 @@ public final class SendRetryReceiptJob extends BaseJob { Optional group = groupId.map(GroupId::getDecodedId); Log.i(TAG, "Sending retry receipt for " + errorMessage.getTimestamp() + " to " + recipientId + ", device: " + errorMessage.getDeviceId()); - ApplicationDependencies.getSignalServiceMessageSender().sendRetryReceipt(address, access, group, errorMessage); + AppDependencies.getSignalServiceMessageSender().sendRetryReceipt(address, access, group, errorMessage); } @Override @@ -102,7 +102,7 @@ public final class SendRetryReceiptJob extends BaseJob { @Override public void onFailure() { - ApplicationDependencies.getJobManager().add(new AutomaticSessionResetJob(recipientId, errorMessage.getDeviceId(), System.currentTimeMillis())); + AppDependencies.getJobManager().add(new AutomaticSessionResetJob(recipientId, errorMessage.getDeviceId(), System.currentTimeMillis())); } public static final class Factory implements Job.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendViewedReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendViewedReceiptJob.java index b8cb662b57..58d4d4669c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendViewedReceiptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendViewedReceiptJob.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.StoryType; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -100,7 +100,7 @@ public class SendViewedReceiptJob extends BaseJob { * maximum size. */ public static void enqueue(long threadId, @NonNull RecipientId recipientId, List markedMessageInfos) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); List> messageIdChunks = ListUtil.chunk(markedMessageInfos, MAX_TIMESTAMPS); if (messageIdChunks.size() > 1) { @@ -201,7 +201,7 @@ public class SendViewedReceiptJob extends BaseJob { return; } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); SignalServiceAddress remoteAddress = RecipientUtil.toSignalServiceAddress(context, recipient); SignalServiceReceiptMessage receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.VIEWED, messageSentTimestamps, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SenderKeyDistributionSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SenderKeyDistributionSendJob.java index e6e59a54a9..16583cd1a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SenderKeyDistributionSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SenderKeyDistributionSendJob.java @@ -9,7 +9,7 @@ import org.signal.libsignal.protocol.message.SenderKeyDistributionMessage; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.DistributionListRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -116,7 +116,7 @@ public final class SenderKeyDistributionSendJob extends BaseJob { } } - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); List address = Collections.singletonList(RecipientUtil.toSignalServiceAddress(context, targetRecipient)); SenderKeyDistributionMessage message = messageSender.getOrCreateNewGroupSession(distributionId); List> access = UnidentifiedAccessUtil.getAccessFor(context, Collections.singletonList(targetRecipient)); @@ -130,7 +130,7 @@ public final class SenderKeyDistributionSendJob extends BaseJob { .map(device -> targetRecipient.requireServiceId().toProtocolAddress(device)) .collect(Collectors.toList()); - ApplicationDependencies.getProtocolStore().aci().markSenderKeySharedWith(distributionId, addresses); + AppDependencies.getProtocolStore().aci().markSenderKeySharedWith(distributionId, addresses); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java index a1dbbf8fcd..6947949264 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerDownloadJob.java @@ -8,7 +8,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable; import org.thoughtcrime.securesms.database.model.IncomingSticker; import org.thoughtcrime.securesms.database.model.StickerRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -97,7 +97,7 @@ public class StickerDownloadJob extends BaseJob { return; } - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); byte[] packIdBytes = Hex.fromStringCondensed(sticker.getPackId ()); byte[] packKeyBytes = Hex.fromStringCondensed(sticker.getPackKey()); InputStream stream = receiver.retrieveSticker(packIdBytes, packKeyBytes, sticker.getStickerId()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java index ed59f43653..05674297d9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StickerPackDownloadJob.java @@ -9,7 +9,7 @@ import org.signal.libsignal.protocol.InvalidMessageException; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable; import org.thoughtcrime.securesms.database.model.IncomingSticker; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -113,8 +113,8 @@ public class StickerPackDownloadJob extends BaseJob { return; } - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); - JobManager jobManager = ApplicationDependencies.getJobManager(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); + JobManager jobManager = AppDependencies.getJobManager(); StickerTable stickerDatabase = SignalDatabase.stickers(); byte[] packIdBytes = Hex.fromStringCondensed(packId); byte[] packKeyBytes = Hex.fromStringCondensed(packKey); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageAccountRestoreJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageAccountRestoreJob.java index 5f9c553843..99e77bea83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageAccountRestoreJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageAccountRestoreJob.java @@ -4,15 +4,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.signal.libsignal.usernames.BaseUsernameException; -import org.signal.libsignal.usernames.Username; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.JobTracker; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; -import org.thoughtcrime.securesms.keyvalue.AccountValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.profiles.manage.UsernameRepository; import org.thoughtcrime.securesms.recipients.Recipient; @@ -68,7 +65,7 @@ public class StorageAccountRestoreJob extends BaseJob { @Override protected void onRun() throws Exception { - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); StorageKey storageServiceKey = SignalStore.storageService().getOrCreateStorageKey(); Log.i(TAG, "Retrieving manifest..."); @@ -76,7 +73,7 @@ public class StorageAccountRestoreJob extends BaseJob { if (!manifest.isPresent()) { Log.w(TAG, "Manifest did not exist or was undecryptable (bad key). Not restoring. Force-pushing."); - ApplicationDependencies.getJobManager().add(new StorageForcePushJob()); + AppDependencies.getJobManager().add(new StorageForcePushJob()); return; } @@ -125,7 +122,7 @@ public class StorageAccountRestoreJob extends BaseJob { Log.i(TAG, "No username to reclaim."); } - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (accountRecord.getAvatarUrlPath().isPresent()) { Log.i(TAG, "Fetching avatar..."); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageForcePushJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageForcePushJob.java index be128bac95..ec78f4f7c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageForcePushJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageForcePushJob.java @@ -10,7 +10,7 @@ import org.signal.libsignal.protocol.InvalidKeyException; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.UnknownStorageIdTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -87,7 +87,7 @@ public class StorageForcePushJob extends BaseJob { } StorageKey storageServiceKey = SignalStore.storageService().getOrCreateStorageKey(); - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); RecipientTable recipientTable = SignalDatabase.recipients(); UnknownStorageIdTable storageIdTable = SignalDatabase.unknownStorageIds(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java index 3b9c0f6e8f..078d218b8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StorageSyncJob.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.UnknownStorageIdTable; import org.thoughtcrime.securesms.database.model.RecipientRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -194,7 +194,7 @@ public class StorageSyncJob extends BaseJob { boolean needsMultiDeviceSync = performSync(); if (TextSecurePreferences.isMultiDevice(context) && needsMultiDeviceSync) { - ApplicationDependencies.getJobManager().add(new MultiDeviceStorageSyncRequestJob()); + AppDependencies.getJobManager().add(new MultiDeviceStorageSyncRequestJob()); } SignalStore.storageService().onSyncCompleted(); @@ -202,14 +202,14 @@ public class StorageSyncJob extends BaseJob { if (SignalStore.account().isPrimaryDevice()) { Log.w(TAG, "Failed to decrypt remote storage! Force-pushing and syncing the storage key to linked devices.", e); - ApplicationDependencies.getJobManager().startChain(new MultiDeviceKeysUpdateJob()) - .then(new StorageForcePushJob()) - .then(new MultiDeviceStorageSyncRequestJob()) - .enqueue(); + AppDependencies.getJobManager().startChain(new MultiDeviceKeysUpdateJob()) + .then(new StorageForcePushJob()) + .then(new MultiDeviceStorageSyncRequestJob()) + .enqueue(); } else { Log.w(TAG, "Failed to decrypt remote storage! Requesting new keys from primary.", e); SignalStore.storageService().clearStorageKeyFromPrimary(); - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forRequest(RequestMessage.forType(SyncMessage.Request.Type.KEYS)), UnidentifiedAccessUtil.getAccessForSync(context)); + AppDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forRequest(RequestMessage.forType(SyncMessage.Request.Type.KEYS)), UnidentifiedAccessUtil.getAccessForSync(context)); } } } @@ -226,7 +226,7 @@ public class StorageSyncJob extends BaseJob { private boolean performSync() throws IOException, RetryLaterException, InvalidKeyException { final Stopwatch stopwatch = new Stopwatch("StorageSync"); final SQLiteDatabase db = SignalDatabase.getRawDatabase(); - final SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + final SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); final UnknownStorageIdTable storageIdDatabase = SignalDatabase.unknownStorageIds(); final StorageKey storageServiceKey = SignalStore.storageService().getOrCreateStorageKey(); @@ -303,7 +303,7 @@ public class StorageSyncJob extends BaseJob { db.setTransactionSuccessful(); } finally { db.endTransaction(); - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners(); + AppDependencies.getDatabaseObserver().notifyConversationListListeners(); stopwatch.split("remote-merge-transaction"); } } else { @@ -392,14 +392,14 @@ public class StorageSyncJob extends BaseJob { } Log.i(TAG, "Enqueueing a storage sync job to handle any possible merges after applying unknown records."); - ApplicationDependencies.getJobManager().add(new StorageSyncJob()); + AppDependencies.getJobManager().add(new StorageSyncJob()); } stopwatch.split("known-unknowns"); if (needsForcePush && SignalStore.account().isPrimaryDevice()) { Log.w(TAG, "Scheduling a force push."); - ApplicationDependencies.getJobManager().add(new StorageForcePushJob()); + AppDependencies.getJobManager().add(new StorageForcePushJob()); } stopwatch.stop(TAG); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/StoryOnboardingDownloadJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/StoryOnboardingDownloadJob.kt index ddd9e7bda5..7519eaba5d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/StoryOnboardingDownloadJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/StoryOnboardingDownloadJob.kt @@ -8,7 +8,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.MessageTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.StoryType -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -54,7 +54,7 @@ class StoryOnboardingDownloadJob private constructor(parameters: Parameters) : B } Log.d(TAG, "Attempting to enqueue StoryOnboardingDownloadJob...") - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(CreateReleaseChannelJob.create()) .then(create()) .enqueue() @@ -155,7 +155,7 @@ class StoryOnboardingDownloadJob private constructor(parameters: Parameters) : B Log.i(TAG, "Enqueueing download jobs...") insertResults.forEach { insertResult -> SignalDatabase.attachments.getAttachmentsForMessage(insertResult.messageId).forEach { - ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, true)) + AppDependencies.jobManager.add(AttachmentDownloadJob(insertResult.messageId, it.attachmentId, true)) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubmitRateLimitPushChallengeJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubmitRateLimitPushChallengeJob.java index b3c3fb1e56..f0d117b8d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubmitRateLimitPushChallengeJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubmitRateLimitPushChallengeJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.greenrobot.eventbus.EventBus; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; @@ -51,7 +51,7 @@ public final class SubmitRateLimitPushChallengeJob extends BaseJob { @Override protected void onRun() throws Exception { - ApplicationDependencies.getSignalServiceAccountManager().submitRateLimitPushChallenge(challenge); + AppDependencies.getSignalServiceAccountManager().submitRateLimitPushChallenge(challenge); SignalStore.rateLimit().onProofAccepted(); EventBus.getDefault().post(new SuccessEvent()); RateLimitUtil.retryAllRateLimitedMessages(context); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionKeepAliveJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionKeepAliveJob.java index 57bd423353..7ce91038a1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionKeepAliveJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionKeepAliveJob.java @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.manage.Do import org.thoughtcrime.securesms.components.settings.app.subscription.manage.DonationRedemptionJobWatcher; import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription; @@ -68,14 +68,14 @@ public class SubscriptionKeepAliveJob extends BaseJob { return; } - ServiceResponse response = ApplicationDependencies.getDonationsService() - .putSubscription(subscriber.getSubscriberId()); + ServiceResponse response = AppDependencies.getDonationsService() + .putSubscription(subscriber.getSubscriberId()); verifyResponse(response); Log.i(TAG, "Successful call to PUT subscription ID", true); - ServiceResponse activeSubscriptionResponse = ApplicationDependencies.getDonationsService() - .getSubscription(subscriber.getSubscriberId()); + ServiceResponse activeSubscriptionResponse = AppDependencies.getDonationsService() + .getSubscription(subscriber.getSubscriberId()); verifyResponse(activeSubscriptionResponse); Log.i(TAG, "Successful call to GET active subscription", true); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java index b5e05c8f2b..c91a0b0a6f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/SubscriptionReceiptRequestResponseJob.java @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.database.model.DonationReceiptRecord; import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.DonationErrorValue; import org.thoughtcrime.securesms.database.model.databaseprotos.TerminalDonationQueue; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobmanager.JsonJobData; @@ -94,11 +94,11 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { RefreshOwnProfileJob refreshOwnProfileJob = RefreshOwnProfileJob.forSubscription(); MultiDeviceProfileContentUpdateJob multiDeviceProfileContentUpdateJob = new MultiDeviceProfileContentUpdateJob(); - return ApplicationDependencies.getJobManager() - .startChain(requestReceiptJob) - .then(redeemReceiptJob) - .then(refreshOwnProfileJob) - .then(multiDeviceProfileContentUpdateJob); + return AppDependencies.getJobManager() + .startChain(requestReceiptJob) + .then(redeemReceiptJob) + .then(refreshOwnProfileJob) + .then(multiDeviceProfileContentUpdateJob); } private SubscriptionReceiptRequestResponseJob(@NonNull Parameters parameters, @@ -217,8 +217,8 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { } Log.d(TAG, "Submitting receipt credential request."); - ServiceResponse response = ApplicationDependencies.getDonationsService() - .submitReceiptCredentialRequestSync(subscriberId, requestContext.getRequest()); + ServiceResponse response = AppDependencies.getDonationsService() + .submitReceiptCredentialRequestSync(subscriberId, requestContext.getRequest()); if (response.getApplicationError().isPresent()) { handleApplicationError(response); @@ -250,8 +250,8 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { } private @NonNull ActiveSubscription getLatestSubscriptionInformation() throws Exception { - ServiceResponse activeSubscription = ApplicationDependencies.getDonationsService() - .getSubscription(subscriberId); + ServiceResponse activeSubscription = AppDependencies.getDonationsService() + .getSubscription(subscriberId); if (activeSubscription.getResult().isPresent()) { return activeSubscription.getResult().get(); @@ -265,7 +265,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { } private ReceiptCredentialPresentation getReceiptCredentialPresentation(@NonNull ReceiptCredential receiptCredential) throws RetryableException { - ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); + ClientZkReceiptOperations operations = AppDependencies.getClientZkReceiptOperations(); try { return operations.createReceiptCredentialPresentation(receiptCredential); @@ -276,7 +276,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { } private ReceiptCredential getReceiptCredential(@NonNull ReceiptCredentialRequestContext requestContext, @NonNull ReceiptCredentialResponse response) throws RetryableException { - ClientZkReceiptOperations operations = ApplicationDependencies.getClientZkReceiptOperations(); + ClientZkReceiptOperations operations = AppDependencies.getClientZkReceiptOperations(); try { return operations.receiveReceiptCredential(requestContext, response); @@ -364,7 +364,7 @@ public class SubscriptionReceiptRequestResponseJob extends BaseJob { SignalStore.donationsValues().setUnexpectedSubscriptionCancelationTimestamp(subscription.getEndOfCurrentPeriod()); SignalStore.donationsValues().setShowMonthlyDonationCanceledDialog(true); - ApplicationDependencies.getDonationsService().getDonationsConfiguration(Locale.getDefault()).getResult().ifPresent(config -> { + AppDependencies.getDonationsService().getDonationsConfiguration(Locale.getDefault()).getResult().ifPresent(config -> { SignalStore.donationsValues().setExpiredBadge(DonationsConfigurationExtensionsKt.getBadge(config, subscription.getLevel())); }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/Svr2MirrorJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/Svr2MirrorJob.kt index 86a34c5bd6..8fede87d7a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/Svr2MirrorJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/Svr2MirrorJob.kt @@ -6,7 +6,7 @@ package org.thoughtcrime.securesms.jobs import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -72,7 +72,7 @@ class Svr2MirrorJob private constructor(parameters: Parameters, private var seri return Result.success() } - val svr2: SecureValueRecoveryV2 = ApplicationDependencies.getSignalServiceAccountManager().getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) + val svr2: SecureValueRecoveryV2 = AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) val session: PinChangeSession = serializedChangeSession?.let { session -> svr2.resumePinChangeSession(pin, SignalStore.svr().getOrCreateMasterKey(), session) @@ -84,7 +84,7 @@ class Svr2MirrorJob private constructor(parameters: Parameters, private var seri is BackupResponse.Success -> { Log.i(TAG, "Successfully migrated to SVR2! $svr2") SignalStore.svr().appendAuthTokenToList(response.authorization.asBasic()) - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) Result.success() } is BackupResponse.ApplicationError -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java index b1fde980ec..cbcc6ecc0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ThreadUpdateJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; @@ -39,7 +39,7 @@ public final class ThreadUpdateJob extends BaseJob { public static void enqueue(long threadId) { SignalDatabase.runPostSuccessfulTransaction(KEY + threadId, () -> { - ApplicationDependencies.getJobManager().add(new ThreadUpdateJob(threadId)); + AppDependencies.getJobManager().add(new ThreadUpdateJob(threadId)); }); } @@ -56,7 +56,7 @@ public final class ThreadUpdateJob extends BaseJob { @Override protected void onRun() throws Exception { SignalDatabase.threads().update(threadId, true); - if (!ApplicationDependencies.getIncomingMessageObserver().getDecryptionDrained()) { + if (!AppDependencies.getIncomingMessageObserver().getDecryptionDrained()) { ThreadUtil.sleep(DEBOUNCE_INTERVAL_WITH_BACKLOG); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/TrimThreadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/TrimThreadJob.java index 5b51f1f18e..d2400ee657 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/TrimThreadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/TrimThreadJob.java @@ -23,7 +23,7 @@ import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.keyvalue.KeepMessagesDuration; @@ -42,7 +42,7 @@ public class TrimThreadJob extends BaseJob { public static void enqueueAsync(long threadId) { if (SignalStore.settings().getKeepMessagesDuration() != KeepMessagesDuration.FOREVER || SignalStore.settings().isTrimByLengthEnabled()) { - SignalExecutors.BOUNDED.execute(() -> ApplicationDependencies.getJobManager().add(new TrimThreadJob(threadId))); + SignalExecutors.BOUNDED.execute(() -> AppDependencies.getJobManager().add(new TrimThreadJob(threadId))); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt index 4372d8f322..9dfc3d0dae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/emoji/EmojiKeyboardPageViewModel.kt @@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.emoji.EmojiPageModel import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.EmojiHeader import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.emoji.EmojiCategory import org.thoughtcrime.securesms.util.DefaultValueLiveData import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -68,7 +68,7 @@ class EmojiKeyboardPageViewModel(private val repository: EmojiKeyboardPageReposi companion object { fun getStartingTab(): String { - return if (RecentEmojiPageModel.hasRecents(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY)) { + return if (RecentEmojiPageModel.hasRecents(AppDependencies.application, TextSecurePreferences.RECENT_STORAGE_KEY)) { RecentEmojiPageModel.KEY } else { EmojiCategory.PEOPLE.key diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt index bb39c6655a..77978b2054 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/sticker/StickerKeyboardPageFragment.kt @@ -15,7 +15,7 @@ import org.signal.libsignal.protocol.util.Pair import org.thoughtcrime.securesms.LoggingFragment import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.DatabaseObserver -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView import org.thoughtcrime.securesms.stickers.StickerEventListener import org.thoughtcrime.securesms.stickers.StickerRolloverTouchListener @@ -98,14 +98,14 @@ open class StickerKeyboardPageFragment : view.findViewById(R.id.sticker_manage).setOnClickListener { findListener()?.onStickerManagementClicked() } - ApplicationDependencies.getDatabaseObserver().registerStickerObserver(this) - ApplicationDependencies.getDatabaseObserver().registerStickerPackObserver(this) + AppDependencies.databaseObserver.registerStickerObserver(this) + AppDependencies.databaseObserver.registerStickerPackObserver(this) view.addOnLayoutChangeListener(this) } override fun onDestroyView() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(this) + AppDependencies.databaseObserver.unregisterObserver(this) requireView().removeOnLayoutChangeListener(this) super.onDestroyView() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/AccountValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/AccountValues.kt index c4af2cca45..48231d577c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/AccountValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/AccountValues.kt @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.crypto.MasterCipher import org.thoughtcrime.securesms.crypto.ProfileKeyUtil import org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.PreKeysSyncJob import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.service.KeyCachingService @@ -88,11 +88,11 @@ internal class AccountValues internal constructor(store: KeyValueStore) : Signal init { if (!store.containsKey(KEY_ACI)) { - migrateFromSharedPrefsV1(ApplicationDependencies.getApplication()) + migrateFromSharedPrefsV1(AppDependencies.application) } if (!store.containsKey(KEY_ACI_IDENTITY_PUBLIC_KEY)) { - migrateFromSharedPrefsV2(ApplicationDependencies.getApplication()) + migrateFromSharedPrefsV2(AppDependencies.application) } store.getString(KEY_PNI, null)?.let { pni -> @@ -360,7 +360,7 @@ internal class AccountValues internal constructor(store: KeyValueStore) : Signal putBoolean(KEY_IS_REGISTERED, registered) - ApplicationDependencies.getIncomingMessageObserver().notifyRegistrationChanged() + AppDependencies.incomingMessageObserver.notifyRegistrationChanged() if (previous != registered) { Recipient.self().live().refresh() @@ -378,7 +378,7 @@ internal class AccountValues internal constructor(store: KeyValueStore) : Signal fun clearRegistrationButKeepCredentials() { putBoolean(KEY_IS_REGISTERED, false) - ApplicationDependencies.getIncomingMessageObserver().notifyRegistrationChanged() + AppDependencies.incomingMessageObserver.notifyRegistrationChanged() Recipient.self().live().refresh() } @@ -449,7 +449,7 @@ internal class AccountValues internal constructor(store: KeyValueStore) : Signal val self = Recipient.self() SignalDatabase.recipients.setProfileKey(self.id, newProfileKey) - ApplicationDependencies.getGroupsV2Authorization().clear() + AppDependencies.groupsV2Authorization.clear() } /** Do not alter. If you need to migrate more stuff, create a new method. */ diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/PinValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/PinValues.java index e5f7c607ee..8a140cb773 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/PinValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/PinValues.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.keyvalue; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.lock.SignalPinReminders; import org.thoughtcrime.securesms.lock.v2.PinKeyboardType; import org.thoughtcrime.securesms.util.TextSecurePreferences; @@ -78,11 +78,11 @@ public final class PinValues extends SignalStoreValues { } public long getCurrentInterval() { - return getLong(NEXT_INTERVAL, TextSecurePreferences.getRegistrationLockNextReminderInterval(ApplicationDependencies.getApplication())); + return getLong(NEXT_INTERVAL, TextSecurePreferences.getRegistrationLockNextReminderInterval(AppDependencies.getApplication())); } public long getLastSuccessfulEntryTime() { - return getLong(LAST_SUCCESSFUL_ENTRY, TextSecurePreferences.getRegistrationLockLastReminderTime(ApplicationDependencies.getApplication())); + return getLong(LAST_SUCCESSFUL_ENTRY, TextSecurePreferences.getRegistrationLockLastReminderTime(AppDependencies.getApplication())); } public void setKeyboardType(@NonNull PinKeyboardType keyboardType) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java index 2220d03c21..018fa82b27 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SettingsValues.java @@ -9,15 +9,11 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.LiveData; -import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.mms.SentMediaQuality; import org.thoughtcrime.securesms.preferences.widgets.NotificationPrivacyPreference; -import org.thoughtcrime.securesms.recipients.Recipient; -import org.thoughtcrime.securesms.storage.StorageSyncHelper; import org.thoughtcrime.securesms.util.SingleLiveEvent; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.webrtc.CallDataMode; @@ -210,7 +206,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull Theme getTheme() { - return Theme.deserialize(getString(THEME, TextSecurePreferences.getTheme(ApplicationDependencies.getApplication()))); + return Theme.deserialize(getString(THEME, TextSecurePreferences.getTheme(AppDependencies.getApplication()))); } public void setTheme(@NonNull Theme theme) { @@ -219,7 +215,7 @@ public final class SettingsValues extends SignalStoreValues { } public int getMessageFontSize() { - return getInteger(MESSAGE_FONT_SIZE, TextSecurePreferences.getMessageBodyTextSize(ApplicationDependencies.getApplication())); + return getInteger(MESSAGE_FONT_SIZE, TextSecurePreferences.getMessageBodyTextSize(AppDependencies.getApplication())); } public int getMessageQuoteFontSize(@NonNull Context context) { @@ -255,16 +251,16 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull String getLanguage() { - return TextSecurePreferences.getLanguage(ApplicationDependencies.getApplication()); + return TextSecurePreferences.getLanguage(AppDependencies.getApplication()); } public void setLanguage(@NonNull String language) { - TextSecurePreferences.setLanguage(ApplicationDependencies.getApplication(), language); + TextSecurePreferences.setLanguage(AppDependencies.getApplication(), language); onConfigurationSettingChanged.postValue(LANGUAGE); } public boolean isPreferSystemEmoji() { - return getBoolean(PREFER_SYSTEM_EMOJI, TextSecurePreferences.isSystemEmojiPreferred(ApplicationDependencies.getApplication())); + return getBoolean(PREFER_SYSTEM_EMOJI, TextSecurePreferences.isSystemEmojiPreferred(AppDependencies.getApplication())); } public void setPreferSystemEmoji(boolean useSystemEmoji) { @@ -272,7 +268,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isEnterKeySends() { - return getBoolean(ENTER_KEY_SENDS, TextSecurePreferences.isEnterSendsEnabled(ApplicationDependencies.getApplication())); + return getBoolean(ENTER_KEY_SENDS, TextSecurePreferences.isEnterSendsEnabled(AppDependencies.getApplication())); } public void setEnterKeySends(boolean enterKeySends) { @@ -280,7 +276,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isBackupEnabled() { - return getBoolean(BACKUPS_ENABLED, TextSecurePreferences.isBackupEnabled(ApplicationDependencies.getApplication())); + return getBoolean(BACKUPS_ENABLED, TextSecurePreferences.isBackupEnabled(AppDependencies.getApplication())); } public void setBackupEnabled(boolean backupEnabled) { @@ -301,7 +297,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isSmsDeliveryReportsEnabled() { - return getBoolean(SMS_DELIVERY_REPORTS_ENABLED, TextSecurePreferences.isSmsDeliveryReportsEnabled(ApplicationDependencies.getApplication())); + return getBoolean(SMS_DELIVERY_REPORTS_ENABLED, TextSecurePreferences.isSmsDeliveryReportsEnabled(AppDependencies.getApplication())); } public void setSmsDeliveryReportsEnabled(boolean smsDeliveryReportsEnabled) { @@ -309,7 +305,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isWifiCallingCompatibilityModeEnabled() { - return getBoolean(WIFI_CALLING_COMPATIBILITY_MODE_ENABLED, TextSecurePreferences.isWifiSmsEnabled(ApplicationDependencies.getApplication())); + return getBoolean(WIFI_CALLING_COMPATIBILITY_MODE_ENABLED, TextSecurePreferences.isWifiSmsEnabled(AppDependencies.getApplication())); } public void setWifiCallingCompatibilityModeEnabled(boolean wifiCallingCompatibilityModeEnabled) { @@ -321,7 +317,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isMessageNotificationsEnabled() { - return getBoolean(MESSAGE_NOTIFICATIONS_ENABLED, TextSecurePreferences.isNotificationsEnabled(ApplicationDependencies.getApplication())); + return getBoolean(MESSAGE_NOTIFICATIONS_ENABLED, TextSecurePreferences.isNotificationsEnabled(AppDependencies.getApplication())); } public void setMessageNotificationSound(@NonNull Uri sound) { @@ -329,7 +325,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull Uri getMessageNotificationSound() { - String result = getString(MESSAGE_NOTIFICATION_SOUND, TextSecurePreferences.getNotificationRingtone(ApplicationDependencies.getApplication()).toString()); + String result = getString(MESSAGE_NOTIFICATION_SOUND, TextSecurePreferences.getNotificationRingtone(AppDependencies.getApplication()).toString()); if (result.startsWith("file:")) { result = Settings.System.DEFAULT_NOTIFICATION_URI.toString(); @@ -339,7 +335,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isMessageVibrateEnabled() { - return getBoolean(MESSAGE_VIBRATE_ENABLED, TextSecurePreferences.isNotificationVibrateEnabled(ApplicationDependencies.getApplication())); + return getBoolean(MESSAGE_VIBRATE_ENABLED, TextSecurePreferences.isNotificationVibrateEnabled(AppDependencies.getApplication())); } public void setMessageVibrateEnabled(boolean messageVibrateEnabled) { @@ -347,7 +343,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull String getMessageLedColor() { - return getString(MESSAGE_LED_COLOR, TextSecurePreferences.getNotificationLedColor(ApplicationDependencies.getApplication())); + return getString(MESSAGE_LED_COLOR, TextSecurePreferences.getNotificationLedColor(AppDependencies.getApplication())); } public void setMessageLedColor(@NonNull String ledColor) { @@ -355,7 +351,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull String getMessageLedBlinkPattern() { - return getString(MESSAGE_LED_BLINK_PATTERN, TextSecurePreferences.getNotificationLedPattern(ApplicationDependencies.getApplication())); + return getString(MESSAGE_LED_BLINK_PATTERN, TextSecurePreferences.getNotificationLedPattern(AppDependencies.getApplication())); } public void setMessageLedBlinkPattern(@NonNull String blinkPattern) { @@ -363,7 +359,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isMessageNotificationsInChatSoundsEnabled() { - return getBoolean(MESSAGE_IN_CHAT_SOUNDS_ENABLED, TextSecurePreferences.isInThreadNotifications(ApplicationDependencies.getApplication())); + return getBoolean(MESSAGE_IN_CHAT_SOUNDS_ENABLED, TextSecurePreferences.isInThreadNotifications(AppDependencies.getApplication())); } public void setMessageNotificationsInChatSoundsEnabled(boolean inChatSoundsEnabled) { @@ -371,7 +367,7 @@ public final class SettingsValues extends SignalStoreValues { } public int getMessageNotificationsRepeatAlerts() { - return getInteger(MESSAGE_REPEAT_ALERTS, TextSecurePreferences.getRepeatAlertsCount(ApplicationDependencies.getApplication())); + return getInteger(MESSAGE_REPEAT_ALERTS, TextSecurePreferences.getRepeatAlertsCount(AppDependencies.getApplication())); } public void setMessageNotificationsRepeatAlerts(int count) { @@ -379,7 +375,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull NotificationPrivacyPreference getMessageNotificationsPrivacy() { - return new NotificationPrivacyPreference(getString(MESSAGE_NOTIFICATION_PRIVACY, TextSecurePreferences.getNotificationPrivacy(ApplicationDependencies.getApplication()).toString())); + return new NotificationPrivacyPreference(getString(MESSAGE_NOTIFICATION_PRIVACY, TextSecurePreferences.getNotificationPrivacy(AppDependencies.getApplication()).toString())); } public void setMessageNotificationsPrivacy(@NonNull NotificationPrivacyPreference messageNotificationsPrivacy) { @@ -387,7 +383,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isCallNotificationsEnabled() { - return getBoolean(CALL_NOTIFICATIONS_ENABLED, TextSecurePreferences.isCallNotificationsEnabled(ApplicationDependencies.getApplication())); + return getBoolean(CALL_NOTIFICATIONS_ENABLED, TextSecurePreferences.isCallNotificationsEnabled(AppDependencies.getApplication())); } public void setCallNotificationsEnabled(boolean callNotificationsEnabled) { @@ -395,7 +391,7 @@ public final class SettingsValues extends SignalStoreValues { } public @NonNull Uri getCallRingtone() { - String result = getString(CALL_RINGTONE, TextSecurePreferences.getCallNotificationRingtone(ApplicationDependencies.getApplication()).toString()); + String result = getString(CALL_RINGTONE, TextSecurePreferences.getCallNotificationRingtone(AppDependencies.getApplication()).toString()); if (result != null && result.startsWith("file:")) { result = Settings.System.DEFAULT_RINGTONE_URI.toString(); @@ -409,7 +405,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isCallVibrateEnabled() { - return getBoolean(CALL_VIBRATE_ENABLED, TextSecurePreferences.isCallNotificationVibrateEnabled(ApplicationDependencies.getApplication())); + return getBoolean(CALL_VIBRATE_ENABLED, TextSecurePreferences.isCallNotificationVibrateEnabled(AppDependencies.getApplication())); } public void setCallVibrateEnabled(boolean callVibrateEnabled) { @@ -417,7 +413,7 @@ public final class SettingsValues extends SignalStoreValues { } public boolean isNotifyWhenContactJoinsSignal() { - return getBoolean(NOTIFY_WHEN_CONTACT_JOINS_SIGNAL, TextSecurePreferences.isNewContactsNotificationEnabled(ApplicationDependencies.getApplication())); + return getBoolean(NOTIFY_WHEN_CONTACT_JOINS_SIGNAL, TextSecurePreferences.isNewContactsNotificationEnabled(AppDependencies.getApplication())); } public void setNotifyWhenContactJoinsSignal(boolean notifyWhenContactJoinsSignal) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SignalStore.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SignalStore.java index f30c715b64..3fd6af8a73 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SignalStore.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/SignalStore.java @@ -5,7 +5,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceDataStore; import org.thoughtcrime.securesms.database.KeyValueDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.SignalUncaughtExceptionHandler; import java.util.ArrayList; @@ -54,7 +54,7 @@ public final class SignalStore { if (instance == null) { synchronized (SignalStore.class) { if (instance == null) { - instance = new SignalStore(new KeyValueStore(KeyValueDatabase.getInstance(ApplicationDependencies.getApplication()))); + instance = new SignalStore(new KeyValueStore(KeyValueDatabase.getInstance(AppDependencies.getApplication()))); } } } @@ -91,7 +91,7 @@ public final class SignalStore { this.storyValues = new StoryValues(store); this.apkUpdate = new ApkUpdateValues(store); this.backupValues = new BackupValues(store); - this.plainTextValues = new PlainTextSharedPrefsDataStore(ApplicationDependencies.getApplication()); + this.plainTextValues = new PlainTextSharedPrefsDataStore(AppDependencies.getApplication()); } public static void onFirstEverAppLaunch() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java index a7862cc785..cbc42c06f2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewRepository.java @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.calls.links.CallLinks; import org.thoughtcrime.securesms.database.AttachmentTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupManager; import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl; @@ -96,7 +96,7 @@ public class LinkPreviewRepository { public @NonNull Single> getLinkPreview(@NonNull String url) { return Single.>create(emitter -> { - RequestController controller = getLinkPreview(ApplicationDependencies.getApplication(), + RequestController controller = getLinkPreview(AppDependencies.getApplication(), url, new Callback() { @Override @@ -234,12 +234,12 @@ public class LinkPreviewRepository { byte[] data = OkHttpUtil.readAsBytes(bodyStream, FAILSAFE_MAX_IMAGE_SIZE); Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); Optional thumbnail = Optional.empty(); - PushMediaConstraints.MediaConfig mediaConfig = PushMediaConstraints.MediaConfig.getDefault(ApplicationDependencies.getApplication()); + PushMediaConstraints.MediaConfig mediaConfig = PushMediaConstraints.MediaConfig.getDefault(AppDependencies.getApplication()); if (bitmap != null) { for (final int maxDimension : mediaConfig.getImageSizeTargets()) { ImageCompressionUtil.Result result = ImageCompressionUtil.compressWithinConstraints( - ApplicationDependencies.getApplication(), + AppDependencies.getApplication(), MediaUtil.IMAGE_JPEG, bitmap, maxDimension, @@ -279,7 +279,7 @@ public class LinkPreviewRepository { byte[] packIdBytes = Hex.fromStringCondensed(packIdString); byte[] packKeyBytes = Hex.fromStringCondensed(packKeyString); - SignalServiceMessageReceiver receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + SignalServiceMessageReceiver receiver = AppDependencies.getSignalServiceMessageReceiver(); SignalServiceStickerManifest manifest = receiver.retrieveStickerManifest(packIdBytes, packKeyBytes); String title = OptionalUtil.or(manifest.getTitle(), manifest.getAuthor()).orElse(""); @@ -320,11 +320,11 @@ public class LinkPreviewRepository { return () -> { }; } - Disposable disposable = ApplicationDependencies.getSignalCallManager() - .getCallLinkManager() - .readCallLink(new CallLinkCredentials(callLinkRootKey.getKeyBytes(), null)) - .observeOn(Schedulers.io()) - .subscribe( + Disposable disposable = AppDependencies.getSignalCallManager() + .getCallLinkManager() + .readCallLink(new CallLinkCredentials(callLinkRootKey.getKeyBytes(), null)) + .observeOn(Schedulers.io()) + .subscribe( result -> { if (result instanceof ReadCallLinkResult.Success) { ReadCallLinkResult.Success success = (ReadCallLinkResult.Success) result; diff --git a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java index d20c0ab0ee..6ba70ac4fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/linkpreview/LinkPreviewViewModel.java @@ -13,7 +13,7 @@ import androidx.lifecycle.ViewModelProvider; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.attachments.AttachmentId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.net.RequestController; import org.thoughtcrime.securesms.util.Debouncer; @@ -210,7 +210,7 @@ public class LinkPreviewViewModel extends ViewModel { } private @Nullable RequestController performRequest(String url) { - return repository.getLinkPreview(ApplicationDependencies.getApplication(), url, new LinkPreviewRepository.Callback() { + return repository.getLinkPreview(AppDependencies.getApplication(), url, new LinkPreviewRepository.Callback() { @Override public void onSuccess(@NonNull LinkPreview linkPreview) { ThreadUtil.runOnMain(() -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt index 5ea3c6b256..be7f4fabb8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt @@ -9,7 +9,7 @@ import androidx.core.view.ViewCompat import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.lock.v2.ConfirmSvrPinViewModel.SaveAnimation import org.thoughtcrime.securesms.megaphone.Megaphones import org.thoughtcrime.securesms.registration.RegistrationUtil @@ -117,6 +117,6 @@ internal class ConfirmSvrPinFragment : BaseSvrPinFragment factories = JobManagerFactories.getConstraintFactories(ApplicationDependencies.getApplication()); + Map factories = JobManagerFactories.getConstraintFactories(AppDependencies.getApplication()); int keyLength = Stream.of(factories.keySet()).map(String::length).max(Integer::compareTo).orElse(0); for (Map.Entry entry : factories.entrySet()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionExoPlayerPool.kt b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionExoPlayerPool.kt index a6a4f953b2..1920f7b5b7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionExoPlayerPool.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionExoPlayerPool.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.logsubmit import android.content.Context -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.video.exo.ExoPlayerPool /** @@ -11,7 +11,7 @@ class LogSectionExoPlayerPool : LogSection { override fun getTitle(): String = "EXOPLAYER POOL" override fun getContent(context: Context): CharSequence { - val poolStats = ApplicationDependencies.getExoPlayerPool().getPoolStats() + val poolStats = AppDependencies.exoPlayerPool.getPoolStats() val owners: Map> = poolStats.owners.groupBy { it.tag } val output = StringBuilder() diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionJobs.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionJobs.java index 0a36ffaa1d..fd2052be18 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionJobs.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionJobs.java @@ -4,7 +4,7 @@ import android.content.Context; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; public class LogSectionJobs implements LogSection { @@ -15,6 +15,6 @@ public class LogSectionJobs implements LogSection { @Override public @NonNull CharSequence getContent(@NonNull Context context) { - return ApplicationDependencies.getJobManager().getDebugInfo(); + return AppDependencies.getJobManager().getDebugInfo(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionLocalMetrics.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionLocalMetrics.java index f96c9b034f..02f399bff7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionLocalMetrics.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionLocalMetrics.java @@ -7,7 +7,7 @@ import androidx.annotation.NonNull; import org.thoughtcrime.securesms.database.LocalMetricsDatabase; import org.thoughtcrime.securesms.database.LocalMetricsDatabase.EventMetrics; import org.thoughtcrime.securesms.database.LocalMetricsDatabase.SplitMetrics; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.List; @@ -19,7 +19,7 @@ final class LogSectionLocalMetrics implements LogSection { @Override public @NonNull CharSequence getContent(@NonNull Context context) { - List metrics = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()).getMetrics(); + List metrics = LocalMetricsDatabase.getInstance(AppDependencies.getApplication()).getMetrics(); StringBuilder builder = new StringBuilder(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionSystemInfo.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionSystemInfo.java index 3ae1ba0bdf..3831e29153 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionSystemInfo.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionSystemInfo.java @@ -16,7 +16,7 @@ import com.google.android.gms.common.GoogleApiAvailability; import org.signal.core.util.FontUtil; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.emoji.EmojiFiles; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor; @@ -75,7 +75,7 @@ public class LogSectionSystemInfo implements LogSection { builder.append("RecipientId : ").append(SignalStore.registrationValues().isRegistrationComplete() ? Recipient.self().getId() : "N/A").append("\n"); builder.append("ACI : ").append(getCensoredAci(context)).append("\n"); builder.append("Device ID : ").append(SignalStore.account().getDeviceId()).append("\n"); - builder.append("Censored : ").append(ApplicationDependencies.getSignalServiceNetworkAccess().isCensored()).append("\n"); + builder.append("Censored : ").append(AppDependencies.getSignalServiceNetworkAccess().isCensored()).append("\n"); builder.append("Network Status : ").append(NetworkUtil.getNetworkStatus(context)).append("\n"); builder.append("Play Services : ").append(getPlayServicesString(context)).append("\n"); builder.append("FCM : ").append(SignalStore.account().isFcmEnabled()).append("\n"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionThreadDump.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionThreadDump.java index b4137e417f..eee74fabd6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionThreadDump.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/LogSectionThreadDump.java @@ -4,8 +4,7 @@ import android.content.Context; import androidx.annotation.NonNull; -import org.signal.core.util.concurrent.DeadlockDetector; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.text.SimpleDateFormat; import java.util.Date; @@ -23,8 +22,8 @@ public class LogSectionThreadDump implements LogSection { @Override public @NonNull CharSequence getContent(@NonNull Context context) { - Map traces = ApplicationDependencies.getDeadlockDetector().getLastThreadDump(); - long time = ApplicationDependencies.getDeadlockDetector().getLastThreadDumpTime(); + Map traces = AppDependencies.getDeadlockDetector().getLastThreadDump(); + long time = AppDependencies.getDeadlockDetector().getLastThreadDumpTime(); if (traces == null) { return "None"; diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java index 9c7c9ea99c..cd8dbc5020 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogRepository.java @@ -20,7 +20,7 @@ import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Scrubber; import org.signal.core.util.tracing.Tracer; import org.thoughtcrime.securesms.database.LogDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.net.StandardUserAgentInterceptor; import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess; @@ -106,7 +106,7 @@ public class SubmitDebugLogRepository { private final ExecutorService executor; public SubmitDebugLogRepository() { - this.context = ApplicationDependencies.getApplication(); + this.context = AppDependencies.getApplication(); this.executor = SignalExecutors.SERIAL; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogViewModel.java index 404b384a90..842c05c1bf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/logsubmit/SubmitDebugLogViewModel.java @@ -19,7 +19,7 @@ import org.signal.paging.PagingConfig; import org.signal.paging.PagingController; import org.signal.paging.ProxyPagingController; import org.thoughtcrime.securesms.database.LogDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.SingleLiveEvent; import java.util.ArrayList; @@ -54,9 +54,9 @@ public class SubmitDebugLogViewModel extends ViewModel { this.staticLines.addAll(staticLines); Log.blockUntilAllWritesFinished(); - LogDatabase.getInstance(ApplicationDependencies.getApplication()).logs().trimToSize(); + LogDatabase.getInstance(AppDependencies.getApplication()).logs().trimToSize(); - LogDataSource dataSource = new LogDataSource(ApplicationDependencies.getApplication(), staticLines, firstViewTime); + LogDataSource dataSource = new LogDataSource(AppDependencies.getApplication(), staticLines, firstViewTime); PagingConfig config = new PagingConfig.Builder().setPageSize(100) .setBufferPages(3) .setStartIndex(0) diff --git a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java index 25c790f425..44d800e51d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/longmessage/LongMessageViewModel.java @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; import org.thoughtcrime.securesms.database.DatabaseObserver; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.Optional; @@ -25,7 +25,7 @@ class LongMessageViewModel extends ViewModel { repository.getMessage(application, messageId, longMessage -> { if (longMessage.isPresent()) { - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(longMessage.get().getMessageRecord().getThreadId(), threadObserver); + AppDependencies.getDatabaseObserver().registerConversationObserver(longMessage.get().getMessageRecord().getThreadId(), threadObserver); } message.postValue(longMessage); @@ -38,7 +38,7 @@ class LongMessageViewModel extends ViewModel { @Override protected void onCleared() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(threadObserver); + AppDependencies.getDatabaseObserver().unregisterObserver(threadObserver); } static class Factory extends ViewModelProvider.NewInstanceFactory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt index 62bf917430..fd5e7c0103 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt @@ -54,7 +54,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.MediaTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.databinding.FragmentMediaPreviewV2Binding -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mediapreview.caption.ExpandingCaptionView import org.thoughtcrime.securesms.mediapreview.mediarail.CenterDecoration import org.thoughtcrime.securesms.mediapreview.mediarail.MediaRailAdapter @@ -154,7 +154,7 @@ class MediaPreviewV2Fragment : LoggingFragment(R.layout.fragment_media_preview_v val threadId = args.threadId viewModel.fetchAttachments(requireContext(), startingAttachmentId, threadId, sorting) val dbObserver = DatabaseObserver.Observer { viewModel.fetchAttachments(requireContext(), startingAttachmentId, threadId, sorting, true) } - ApplicationDependencies.getDatabaseObserver().registerAttachmentObserver(dbObserver) + AppDependencies.databaseObserver.registerAttachmentObserver(dbObserver) this.dbChangeObserver = dbObserver } @@ -513,7 +513,7 @@ class MediaPreviewV2Fragment : LoggingFragment(R.layout.fragment_media_preview_v super.onDestroy() val observer = dbChangeObserver if (observer != null) { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) + AppDependencies.databaseObserver.unregisterObserver(observer) dbChangeObserver = null } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java index 7c3ef97284..4b774f444b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaRepository.java @@ -21,7 +21,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.MediaUtil; import org.signal.core.util.SqlUtil; @@ -74,7 +74,7 @@ public class MediaRepository { return Collections.emptyList(); } - return getMediaInBucket(ApplicationDependencies.getApplication(), Media.ALL_MEDIA_BUCKET_ID); + return getMediaInBucket(AppDependencies.getApplication(), Media.ALL_MEDIA_BUCKET_ID); }) .onErrorReturn(t -> { Log.w(TAG, "Unable to get recent media", t); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaUploadRepository.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaUploadRepository.java index 2d3b6bfe7e..52b6737562 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaUploadRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/MediaUploadRepository.java @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentId; import org.thoughtcrime.securesms.database.AttachmentTable; import org.thoughtcrime.securesms.database.AttachmentTable.TransformProperties; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.mms.GifSlide; import org.thoughtcrime.securesms.mms.ImageSlide; @@ -157,7 +157,7 @@ public class MediaUploadRepository { } private void cancelUploadInternal(@NonNull Media media) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); PreUploadResult result = uploadResults.get(media); if (result != null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt index 17d953d689..fdaa6346ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.Mention import org.thoughtcrime.securesms.database.model.StoryType import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.keyvalue.StorySend import org.thoughtcrime.securesms.mediasend.CompositeMediaTransform @@ -295,7 +295,7 @@ class MediaSelectionRepository(context: Context) { scheduledDate: Long ) { val slideDeck = SlideDeck() - val context: Context = ApplicationDependencies.getApplication() + val context: Context = AppDependencies.application for (mediaItem in nonUploadedMedia) { if (MediaUtil.isVideoType(mediaItem.mimeType)) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/UntrustedRecords.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/UntrustedRecords.kt index 8fdb76a371..f985c4283c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/UntrustedRecords.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/UntrustedRecords.kt @@ -8,7 +8,7 @@ import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.IdentityRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import java.util.concurrent.TimeUnit @@ -43,8 +43,8 @@ object UntrustedRecords { .flatten() val calculatedUntrustedWindow = System.currentTimeMillis() - changedSince - return ApplicationDependencies - .getProtocolStore() + return AppDependencies + .protocolStore .aci() .identities() .getIdentityRecords(recipients) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationViewModel.kt index 36ea4b7f30..006890bc34 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationViewModel.kt @@ -20,7 +20,7 @@ import io.reactivex.rxjava3.subjects.Subject import org.signal.core.util.getParcelableCompat import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.fonts.TextFont import org.thoughtcrime.securesms.fonts.TextToScript import org.thoughtcrime.securesms.fonts.TypefaceCache @@ -49,7 +49,7 @@ class TextStoryPostCreationViewModel(private val repository: TextStoryPostSendRe disposables += Observable.combineLatest(textFontSubject, scriptGuess, ::Pair) .observeOn(Schedulers.io()) .distinctUntilChanged() - .switchMapSingle { (textFont, script) -> TypefaceCache.get(ApplicationDependencies.getApplication(), textFont, script) } + .switchMapSingle { (textFont, script) -> TypefaceCache.get(AppDependencies.application, textFont, script) } .subscribeOn(Schedulers.io()) .subscribe { internalTypeface.onNext(it) diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java index ee221798e8..7aa4292475 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/ClientDeprecatedActivity.java @@ -8,7 +8,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.ThreadUtil; import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.PlayStoreUtil; @@ -54,7 +54,7 @@ public class ClientDeprecatedActivity extends PassphraseRequiredActivity { .setTitle(R.string.ClientDeprecatedActivity_warning) .setMessage(R.string.ClientDeprecatedActivity_your_version_of_signal_has_expired_you_can_view_your_message_history) .setPositiveButton(R.string.ClientDeprecatedActivity_dont_update, (dialog, which) -> { - ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.CLIENT_DEPRECATED, () -> { + AppDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.CLIENT_DEPRECATED, () -> { ThreadUtil.runOnMain(this::finish); }); }) diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java index e23ba413a4..d9f62c6498 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/Megaphones.java @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MegaphoneRecord; import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -198,7 +198,7 @@ public final class Megaphones { return new Megaphone.Builder(Event.PINS_FOR_ALL, Megaphone.Style.FULLSCREEN) .enableSnooze(null) .setOnVisibleListener((megaphone, listener) -> { - if (new NetworkConstraint.Factory(ApplicationDependencies.getApplication()).create().isMet()) { + if (new NetworkConstraint.Factory(AppDependencies.getApplication()).create().isMet()) { listener.onMegaphoneNavigationRequested(SvrMigrationActivity.createIntent(), SvrMigrationActivity.REQUEST_NEW_PIN); } }) @@ -209,7 +209,7 @@ public final class Megaphones { .setTitle(R.string.KbsMegaphone__create_a_pin) .setBody(R.string.KbsMegaphone__pins_keep_information_thats_stored_with_signal_encrytped) .setActionButton(R.string.KbsMegaphone__create_pin, (megaphone, listener) -> { - Intent intent = CreateSvrPinActivity.getIntentForPinCreate(ApplicationDependencies.getApplication()); + Intent intent = CreateSvrPinActivity.getIntentForPinCreate(AppDependencies.getApplication()); listener.onMegaphoneNavigationRequested(intent, CreateSvrPinActivity.REQUEST_NEW_PIN); }) @@ -418,7 +418,7 @@ public final class Megaphones { } private static boolean shouldShowTurnOffCircumventionMegaphone() { - return ApplicationDependencies.getSignalServiceNetworkAccess().isCensored() && + return AppDependencies.getSignalServiceNetworkAccess().isCensored() && SignalStore.misc().isServiceReachableWithoutCircumvention(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt index 652f528905..358a6e3f1b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/RemoteMegaphoneRepository.kt @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.database.RemoteMegaphoneTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord import org.thoughtcrime.securesms.database.model.RemoteMegaphoneRecord.ActionId -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.megaphone.RemoteMegaphoneRepository.Action import org.thoughtcrime.securesms.providers.BlobProvider import org.thoughtcrime.securesms.recipients.Recipient @@ -37,7 +37,7 @@ object RemoteMegaphoneRepository { private val TAG = Log.tag(RemoteMegaphoneRepository::class.java) private val db: RemoteMegaphoneTable = SignalDatabase.remoteMegaphones - private val context: Application = ApplicationDependencies.getApplication() + private val context: Application = AppDependencies.application private val snooze: Action = Action { _, controller, remote -> controller.onMegaphoneSnooze(Megaphones.Event.REMOTE_MEGAPHONE) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetails.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetails.java index e755fda460..4359dd5fc5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetails.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetails.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import com.annimon.stream.ComparatorCompat; import org.thoughtcrime.securesms.conversation.ConversationMessage; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.Collection; import java.util.Comparator; @@ -13,8 +13,8 @@ import java.util.List; import java.util.TreeSet; public final class MessageDetails { - private static final Comparator HAS_DISPLAY_NAME = (r1, r2) -> Boolean.compare(r2.getRecipient().hasAUserSetDisplayName(ApplicationDependencies.getApplication()), r1.getRecipient().hasAUserSetDisplayName(ApplicationDependencies.getApplication())); - private static final Comparator ALPHABETICAL = (r1, r2) -> r1.getRecipient().getDisplayName(ApplicationDependencies.getApplication()).compareToIgnoreCase(r2.getRecipient().getDisplayName(ApplicationDependencies.getApplication())); + private static final Comparator HAS_DISPLAY_NAME = (r1, r2) -> Boolean.compare(r2.getRecipient().hasAUserSetDisplayName(AppDependencies.getApplication()), r1.getRecipient().hasAUserSetDisplayName(AppDependencies.getApplication())); + private static final Comparator ALPHABETICAL = (r1, r2) -> r1.getRecipient().getDisplayName(AppDependencies.getApplication()).compareToIgnoreCase(r2.getRecipient().getDisplayName(AppDependencies.getApplication())); private static final Comparator RECIPIENT_COMPARATOR = ComparatorCompat.chain(HAS_DISPLAY_NAME).thenComparing(ALPHABETICAL); private final ConversationMessage conversationMessage; diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsRepository.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsRepository.java index 076a431494..30ac8eeb47 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageDetailsRepository.java @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.database.documents.IdentityKeyMismatch; import org.thoughtcrime.securesms.database.documents.NetworkFailure; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.whispersystems.signalservice.api.push.DistributionId; @@ -34,7 +34,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers; public final class MessageDetailsRepository { - private final Context context = ApplicationDependencies.getApplication(); + private final Context context = AppDependencies.getApplication(); @NonNull LiveData getMessageRecord(Long messageId) { return new MessageRecordLiveData(new MessageId(messageId)); @@ -65,8 +65,8 @@ public final class MessageDetailsRepository { } }; - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageObserver); - emitter.setCancellable(() -> ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageObserver)); + AppDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageObserver); + emitter.setCancellable(() -> AppDependencies.getDatabaseObserver().unregisterObserver(messageObserver)); messageObserver.onMessageChanged(messageId); }).observeOn(Schedulers.io()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageRecordLiveData.java b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageRecordLiveData.java index 7370e9c9f5..c279b4ee23 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageRecordLiveData.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagedetails/MessageRecordLiveData.java @@ -5,12 +5,11 @@ import androidx.lifecycle.LiveData; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.DatabaseObserver; -import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.NoSuchMessageException; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; final class MessageRecordLiveData extends LiveData { @@ -29,7 +28,7 @@ final class MessageRecordLiveData extends LiveData { @Override protected void onInactive() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer); + AppDependencies.getDatabaseObserver().unregisterObserver(observer); } @WorkerThread @@ -42,7 +41,7 @@ final class MessageRecordLiveData extends LiveData { } postValue(record); - ApplicationDependencies.getDatabaseObserver().registerVerboseConversationObserver(record.getThreadId(), observer); + AppDependencies.getDatabaseObserver().registerVerboseConversationObserver(record.getThreadId(), observer); } catch (NoSuchMessageException ignored) { postValue(null); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/RoutineMessageFetchReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/RoutineMessageFetchReceiver.java index 83aa19d2d2..52b63f8934 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/RoutineMessageFetchReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messageprocessingalarm/RoutineMessageFetchReceiver.java @@ -15,7 +15,7 @@ import androidx.annotation.NonNull; import org.signal.core.util.PendingIntentFlags; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JobTracker; import org.thoughtcrime.securesms.jobs.MessageFetchJob; import org.thoughtcrime.securesms.util.FeatureFlags; @@ -43,7 +43,7 @@ public final class RoutineMessageFetchReceiver extends BroadcastReceiver { startOrUpdateAlarm(context); } else if (BROADCAST_ACTION.equals(intent.getAction())) { - if (ApplicationDependencies.getAppForegroundObserver().isForegrounded()) { + if (AppDependencies.getAppForegroundObserver().isForegrounded()) { Log.i(TAG, "App is foregrounded"); return; } @@ -60,8 +60,8 @@ public final class RoutineMessageFetchReceiver extends BroadcastReceiver { SignalExecutors.BOUNDED.submit(() -> { Log.i(TAG, "Running PushNotificationReceiveJob"); - Optional jobState = ApplicationDependencies.getJobManager() - .runSynchronously(new MessageFetchJob(), jobTimeout); + Optional jobState = AppDependencies.getJobManager() + .runSynchronously(new MessageFetchJob(), jobTimeout); Log.i(TAG, "PushNotificationReceiveJob ended: " + (jobState.isPresent() ? jobState.get().toString() : "Job did not complete")); }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestRepository.java b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestRepository.java index 3886aa414d..2a5614768d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestRepository.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupChangeException; import org.thoughtcrime.securesms.groups.GroupManager; import org.thoughtcrime.securesms.groups.ui.GroupChangeErrorCallback; @@ -200,7 +200,7 @@ public final class MessageRequestRepository { MessageSender.sendProfileKey(threadId); List messageIds = SignalDatabase.threads().setEntireThreadRead(threadId); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); MarkReadReceiver.process(messageIds); List viewedInfos = SignalDatabase.messages().getViewedIncomingMessages(threadId); @@ -208,7 +208,7 @@ public final class MessageRequestRepository { SendViewedReceiptJob.enqueue(threadId, recipientId, viewedInfos); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forAccept(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forAccept(recipientId)); } insertMessageRequestAccept(recipient, threadId); @@ -270,7 +270,7 @@ public final class MessageRequestRepository { } if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forDelete(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forDelete(recipientId)); } ThreadTable threadTable = SignalDatabase.threads(); @@ -308,7 +308,7 @@ public final class MessageRequestRepository { Recipient.live(recipientId).refresh(); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forBlock(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forBlock(recipientId)); } onMessageRequestBlocked.run(); @@ -365,10 +365,10 @@ public final class MessageRequestRepository { Recipient.live(recipientId).refresh(); - ApplicationDependencies.getJobManager().add(new ReportSpamJob(threadId, System.currentTimeMillis())); + AppDependencies.getJobManager().add(new ReportSpamJob(threadId, System.currentTimeMillis())); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forBlockAndReportSpam(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forBlockAndReportSpam(recipientId)); } onMessageRequestBlocked.run(); @@ -392,10 +392,10 @@ public final class MessageRequestRepository { Log.w(TAG, "Unable to insert report spam message", e); } - ApplicationDependencies.getJobManager().add(new ReportSpamJob(threadId, System.currentTimeMillis())); + AppDependencies.getJobManager().add(new ReportSpamJob(threadId, System.currentTimeMillis())); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forReportSpam(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forReportSpam(recipientId)); } onReported.run(); @@ -420,7 +420,7 @@ public final class MessageRequestRepository { RecipientUtil.unblock(recipient); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forAccept(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forAccept(recipientId)); } onMessageRequestUnblocked.run(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/CallMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/CallMessageProcessor.kt index 991fb4d208..32cc1cb212 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/CallMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/CallMessageProcessor.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.messages import org.signal.ringrtc.CallId import org.thoughtcrime.securesms.database.model.IdentityRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.messages.MessageContentProcessor.Companion.log import org.thoughtcrime.securesms.messages.MessageContentProcessor.Companion.warn import org.thoughtcrime.securesms.recipients.Recipient @@ -57,9 +57,9 @@ object CallMessageProcessor { } val remotePeer = RemotePeer(senderRecipientId, CallId(offerId)) - val remoteIdentityKey = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(senderRecipientId).map { (_, identityKey): IdentityRecord -> identityKey.serialize() }.get() + val remoteIdentityKey = AppDependencies.protocolStore.aci().identities().getIdentityRecord(senderRecipientId).map { (_, identityKey): IdentityRecord -> identityKey.serialize() }.get() - ApplicationDependencies.getSignalCallManager() + AppDependencies.signalCallManager .receivedOffer( CallMetadata(remotePeer, metadata.sourceDeviceId), OfferMetadata(offer.opaque?.toByteArray(), OfferMessage.Type.fromProto(offer.type!!)), @@ -87,9 +87,9 @@ object CallMessageProcessor { } val remotePeer = RemotePeer(senderRecipientId, CallId(answerId)) - val remoteIdentityKey = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(senderRecipientId).map { (_, identityKey): IdentityRecord -> identityKey.serialize() }.get() + val remoteIdentityKey = AppDependencies.protocolStore.aci().identities().getIdentityRecord(senderRecipientId).map { (_, identityKey): IdentityRecord -> identityKey.serialize() }.get() - ApplicationDependencies.getSignalCallManager() + AppDependencies.signalCallManager .receivedAnswer( CallMetadata(remotePeer, metadata.sourceDeviceId), AnswerMetadata(answer.opaque?.toByteArray()), @@ -117,7 +117,7 @@ object CallMessageProcessor { if (iceCandidates.isNotEmpty()) { val remotePeer = RemotePeer(senderRecipientId, CallId(callId)) - ApplicationDependencies.getSignalCallManager() + AppDependencies.signalCallManager .receivedIceCandidates( CallMetadata(remotePeer, metadata.sourceDeviceId), iceCandidates @@ -143,7 +143,7 @@ object CallMessageProcessor { } val remotePeer = RemotePeer(senderRecipientId, CallId(hangupId)) - ApplicationDependencies.getSignalCallManager() + AppDependencies.signalCallManager .receivedCallHangup( CallMetadata(remotePeer, metadata.sourceDeviceId), HangupMetadata(HangupMessage.Type.fromProto(hangup.type), hangupDeviceId ?: 0) @@ -161,7 +161,7 @@ object CallMessageProcessor { } val remotePeer = RemotePeer(senderRecipientId, CallId(busyId)) - ApplicationDependencies.getSignalCallManager().receivedCallBusy(CallMetadata(remotePeer, metadata.sourceDeviceId)) + AppDependencies.signalCallManager.receivedCallBusy(CallMetadata(remotePeer, metadata.sourceDeviceId)) } private fun handleCallOpaqueMessage(envelope: Envelope, metadata: EnvelopeMetadata, opaque: Opaque, senderServiceId: ServiceId, serverDeliveredTimestamp: Long) { @@ -179,7 +179,7 @@ object CallMessageProcessor { messageAgeSeconds = (serverDeliveredTimestamp - envelope.serverTimestamp!!).milliseconds.inWholeSeconds } - ApplicationDependencies.getSignalCallManager() + AppDependencies.signalCallManager .receivedOpaqueMessage( OpaqueMessageMetadata( senderServiceId.rawUuid, diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/DataMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/DataMessageProcessor.kt index 13f1dd4b05..3cc0f38ce4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/DataMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/DataMessageProcessor.kt @@ -42,7 +42,7 @@ import org.thoughtcrime.securesms.database.model.StickerRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge import org.thoughtcrime.securesms.database.model.toBodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob @@ -192,15 +192,15 @@ object DataMessageProcessor { } if (metadata.sealedSender && messageId != null) { - SignalExecutors.BOUNDED.execute { ApplicationDependencies.getJobManager().add(SendDeliveryReceiptJob(senderRecipient.id, message.timestamp!!, messageId)) } + SignalExecutors.BOUNDED.execute { AppDependencies.jobManager.add(SendDeliveryReceiptJob(senderRecipient.id, message.timestamp!!, messageId)) } } else if (!metadata.sealedSender) { if (RecipientUtil.shouldHaveProfileKey(threadRecipient)) { Log.w(MessageContentProcessor.TAG, "Received an unsealed sender message from " + senderRecipient.id + ", but they should already have our profile key. Correcting.") if (groupId != null) { Log.i(MessageContentProcessor.TAG, "Message was to a GV2 group. Ensuring our group profile keys are up to date.") - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(RefreshAttributesJob(false)) .then(GroupV2UpdateSelfProfileKeyJob.withQueueLimits(groupId)) .enqueue() @@ -208,8 +208,8 @@ object DataMessageProcessor { Log.i(MessageContentProcessor.TAG, "Message was to a 1:1. Ensuring this user has our profile key.") val profileSendJob = ProfileKeySendJob.create(SignalDatabase.threads.getOrCreateThreadIdFor(threadRecipient), true) if (profileSendJob != null) { - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(RefreshAttributesJob(false)) .then(profileSendJob) .enqueue() @@ -222,7 +222,7 @@ object DataMessageProcessor { val timeSinceLastSync = System.currentTimeMillis() - SignalStore.misc().lastCdsForegroundSyncTime if (timeSinceLastSync > FeatureFlags.cdsForegroundSyncInterval() || timeSinceLastSync < 0) { log(envelope.timestamp!!, "New 1:1 chat. Scheduling a CDS sync to see if they match someone in our contacts.") - ApplicationDependencies.getJobManager().add(DirectoryRefreshJob(false)) + AppDependencies.jobManager.add(DirectoryRefreshJob(false)) SignalStore.misc().lastCdsForegroundSyncTime = System.currentTimeMillis() } else { warn(envelope.timestamp!!, "New 1:1 chat, but performed a CDS sync $timeSinceLastSync ms ago, which is less than our threshold. Skipping CDS sync.") @@ -278,7 +278,7 @@ object DataMessageProcessor { val insertResult: InsertResult? = insertPlaceholder(sender, timestamp, groupId) if (insertResult != null) { SignalDatabase.messages.markAsInvalidMessage(insertResult.messageId) - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) } } @@ -303,9 +303,9 @@ object DataMessageProcessor { val insertResult: InsertResult? = SignalDatabase.messages.insertMessageInbox(incomingMessage).orNull() return if (insertResult != null) { - ApplicationDependencies.getProtocolStore().aci().deleteAllSessions(metadata.sourceServiceId.toString()) + AppDependencies.protocolStore.aci().deleteAllSessions(metadata.sourceServiceId.toString()) SecurityEvent.broadcastSecurityUpdateEvent(context) - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) insertResult } else { null @@ -460,9 +460,9 @@ object DataMessageProcessor { SignalDatabase.messages.setTransactionSuccessful() if (parentStoryId.isGroupReply()) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.fromThreadAndReply(insertResult.threadId, parentStoryId as GroupReply)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.fromThreadAndReply(insertResult.threadId, parentStoryId as GroupReply)) } else { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) TrimThreadJob.enqueueAsync(insertResult.threadId) } @@ -514,7 +514,7 @@ object DataMessageProcessor { if (targetMessage == null) { warn(envelope.timestamp!!, "[handleReaction] Could not find matching message! Putting it in the early message cache. timestamp: " + targetSentTimestamp + " author: " + targetAuthor.id) if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(targetAuthor.id, targetSentTimestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(targetAuthor.id, targetSentTimestamp, earlyMessageCacheEntry) PushProcessEarlyMessagesJob.enqueue() } return null @@ -547,11 +547,11 @@ object DataMessageProcessor { if (isRemove) { SignalDatabase.reactions.deleteReaction(targetMessageId, senderRecipientId) - ApplicationDependencies.getMessageNotifier().updateNotification(context) + AppDependencies.messageNotifier.updateNotification(context) } else { val reactionRecord = ReactionRecord(emoji!!, senderRecipientId, message.timestamp!!, System.currentTimeMillis()) SignalDatabase.reactions.addReaction(targetMessageId, reactionRecord) - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.fromMessageRecord(targetMessage)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.fromMessageRecord(targetMessage)) } return targetMessageId @@ -571,13 +571,13 @@ object DataMessageProcessor { SignalDatabase.messages.deleteRemotelyDeletedStory(targetMessage.id) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.fromMessageRecord(targetMessage)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.fromMessageRecord(targetMessage)) MessageId(targetMessage.id) } else if (targetMessage == null) { warn(envelope.timestamp!!, "[handleRemoteDelete] Could not find matching message! timestamp: $targetSentTimestamp author: $senderRecipientId") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(senderRecipientId, targetSentTimestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(senderRecipientId, targetSentTimestamp, earlyMessageCacheEntry) PushProcessEarlyMessagesJob.enqueue() } @@ -671,7 +671,7 @@ object DataMessageProcessor { val insertResult: InsertResult? = SignalDatabase.messages.insertMessageInbox(mediaMessage, -1).orNull() if (insertResult != null) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) return insertResult } } catch (e: PublicKeyConflictException) { @@ -682,7 +682,7 @@ object DataMessageProcessor { throw StorageFailedException(e, metadata.sourceServiceId.toString(), metadata.sourceDeviceId) } finally { SignalDatabase.runPostSuccessfulTransaction { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(PaymentTransactionCheckJob(uuid, queue)) .then(PaymentLedgerUpdateJob.updateLedger()) .enqueue() @@ -790,9 +790,9 @@ object DataMessageProcessor { SignalDatabase.messages.setTransactionSuccessful() if (parentStoryId.isGroupReply()) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.fromThreadAndReply(insertResult.threadId, parentStoryId as GroupReply)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.fromThreadAndReply(insertResult.threadId, parentStoryId as GroupReply)) } else { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) TrimThreadJob.enqueueAsync(insertResult.threadId) } @@ -855,7 +855,7 @@ object DataMessageProcessor { } return if (insertResult != null) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) TrimThreadJob.enqueueAsync(insertResult.threadId) insertResult } else { @@ -938,14 +938,14 @@ object DataMessageProcessor { AttachmentDownloadJob(insertResult.messageId, attachmentId, false) } } - ApplicationDependencies.getJobManager().addAll(downloadJobs) + AppDependencies.jobManager.addAll(downloadJobs) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) TrimThreadJob.enqueueAsync(insertResult.threadId) if (message.isViewOnce == true) { - ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary() + AppDependencies.viewOnceMessageManager.scheduleIfNecessary() } } @@ -992,7 +992,7 @@ object DataMessageProcessor { localMetrics?.onInsertedTextMessage() return if (insertResult != null) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(insertResult.threadId)) insertResult } else { null @@ -1031,7 +1031,7 @@ object DataMessageProcessor { if (threadId > 0 && TextSecurePreferences.isTypingIndicatorsEnabled(context)) { debug("Typing stopped on thread $threadId due to an incoming message.") - ApplicationDependencies.getTypingStatusRepository().onTypingStopped(threadId, senderRecipient, device, true) + AppDependencies.typingStatusRepository.onTypingStopped(threadId, senderRecipient, device, true) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/EditMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/EditMessageProcessor.kt index 6fc3dd2a7c..98b4ef20d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/EditMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/EditMessageProcessor.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.toBodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob import org.thoughtcrime.securesms.jobs.PushProcessEarlyMessagesJob @@ -56,7 +56,7 @@ object EditMessageProcessor { warn(envelope.timestamp!!, "[handleEditMessage] Could not find matching message! timestamp: ${editMessage.targetSentTimestamp} author: ${senderRecipient.id}") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(senderRecipient.id, editMessage.targetSentTimestamp!!, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(senderRecipient.id, editMessage.targetSentTimestamp!!, earlyMessageCacheEntry) PushProcessEarlyMessagesJob.enqueue() } @@ -95,11 +95,11 @@ object EditMessageProcessor { if (insertResult != null) { SignalExecutors.BOUNDED.execute { - ApplicationDependencies.getJobManager().add(SendDeliveryReceiptJob(senderRecipient.id, message.timestamp!!, MessageId(insertResult.messageId))) + AppDependencies.jobManager.add(SendDeliveryReceiptJob(senderRecipient.id, message.timestamp!!, MessageId(insertResult.messageId))) } if (targetMessage.expireStarted > 0) { - ApplicationDependencies.getExpiringMessageManager() + AppDependencies.expiringMessageManager .scheduleDeletion( insertResult.messageId, true, @@ -108,7 +108,7 @@ object EditMessageProcessor { ) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, forConversation(insertResult.threadId)) + AppDependencies.messageNotifier.updateNotification(context, forConversation(insertResult.threadId)) } } @@ -166,7 +166,7 @@ object EditMessageProcessor { val downloadJobs: List = insertResult.insertedAttachments.mapNotNull { (_, attachmentId) -> AttachmentDownloadJob(insertResult.messageId, attachmentId, false) } - ApplicationDependencies.getJobManager().addAll(downloadJobs) + AppDependencies.jobManager.addAll(downloadJobs) } } return insertResult diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/GroupSendUtil.java b/app/src/main/java/org/thoughtcrime/securesms/messages/GroupSendUtil.java index a9cdf11ad1..ae89d62c92 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/GroupSendUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/GroupSendUtil.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.MessageSendLogTables; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.DistributionListId; import org.thoughtcrime.securesms.database.model.MessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.Recipient; @@ -65,7 +65,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; -import java.util.stream.Stream; public final class GroupSendUtil { @@ -298,7 +297,7 @@ public final class GroupSendUtil { } List allResults = new ArrayList<>(allTargets.size()); - SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + SignalServiceMessageSender messageSender = AppDependencies.getSignalServiceMessageSender(); if (senderKeyTargets.size() > 0 && distributionId != null) { long keyCreateTime = SenderKeyUtil.getCreateTimeForOurKey(distributionId); diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt index 0aef80671d..be5218eb9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.kt @@ -14,7 +14,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.crypto.ReentrantSessionLock import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupsV2ProcessingLock import org.thoughtcrime.securesms.jobmanager.impl.BackoffUtil import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint @@ -74,7 +74,7 @@ class IncomingMessageObserver(private val context: Application) { const val FOREGROUND_ID = 313399 private val censored: Boolean - get() = ApplicationDependencies.getSignalServiceNetworkAccess().isCensored() + get() = AppDependencies.signalServiceNetworkAccess.isCensored() } private val decryptionDrainedListeners: MutableList = CopyOnWriteArrayList() @@ -128,7 +128,7 @@ class IncomingMessageObserver(private val context: Application) { } } - ApplicationDependencies.getAppForegroundObserver().addListener(object : AppForegroundObserver.Listener { + AppDependencies.appForegroundObserver.addListener(object : AppForegroundObserver.Listener { override fun onForeground() { onAppForegrounded() } @@ -236,7 +236,7 @@ class IncomingMessageObserver(private val context: Application) { } private fun disconnect() { - ApplicationDependencies.getSignalWebSocket().disconnect() + AppDependencies.signalWebSocket.disconnect() } @JvmOverloads @@ -372,8 +372,8 @@ class IncomingMessageObserver(private val context: Application) { waitForConnectionNecessary() Log.i(TAG, "Making websocket connection....") - val signalWebSocket = ApplicationDependencies.getSignalWebSocket() - val webSocketDisposable = signalWebSocket.webSocketState.subscribe { state: WebSocketConnectionState -> + val signalWebSocket = AppDependencies.signalWebSocket + val webSocketDisposable = AppDependencies.webSocketObserver.subscribe { state: WebSocketConnectionState -> Log.d(TAG, "WebSocket State: $state") // Any state change at all means that we are not drained @@ -405,7 +405,7 @@ class IncomingMessageObserver(private val context: Application) { if (followUpOperations != null) { Log.d(TAG, "Running ${followUpOperations.size} follow-up operations...") val jobs = followUpOperations.mapNotNull { it.run() } - ApplicationDependencies.getJobManager().addAllChains(jobs) + AppDependencies.jobManager.addAllChains(jobs) } signalWebSocket.sendAck(response) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt index afecbad986..41dd13111e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageContentProcessor.kt @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.database.model.GroupRecord import org.thoughtcrime.securesms.database.model.MessageLogEntry import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.PendingRetryReceiptModel -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupChangeBusyException import org.thoughtcrime.securesms.groups.GroupId @@ -71,7 +71,7 @@ open class MessageContentProcessor(private val context: Context) { @JvmStatic @JvmOverloads - fun create(context: Context = ApplicationDependencies.getApplication()): MessageContentProcessor { + fun create(context: Context = AppDependencies.application): MessageContentProcessor { return MessageContentProcessor(context) } @@ -201,7 +201,7 @@ open class MessageContentProcessor(private val context: Context) { val threadId = SignalDatabase.threads.getThreadIdFor(destination.id) if (threadId != null) { val lastSeen = SignalDatabase.threads.getConversationMetadata(threadId).lastSeen - val visibleThread = ApplicationDependencies.getMessageNotifier().visibleThread.map(ConversationId::threadId).orElse(-1L) + val visibleThread = AppDependencies.messageNotifier.visibleThread.map(ConversationId::threadId).orElse(-1L) if (threadId != visibleThread && lastSeen > 0 && lastSeen < pending.receivedTimestamp) { receivedTime = pending.receivedTimestamp @@ -307,7 +307,7 @@ open class MessageContentProcessor(private val context: Context) { .insertMessageInbox(textMessage) .ifPresent { marker(it.messageId) - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(it.threadId)) + AppDependencies.messageNotifier.updateNotification(context, ConversationId.forConversation(it.threadId)) } } } @@ -328,8 +328,8 @@ open class MessageContentProcessor(private val context: Context) { handleMessage(senderRecipient, envelope, content, metadata, serverDeliveredTimestamp, processingEarlyContent, localMetric) - val earlyCacheEntries: List? = ApplicationDependencies - .getEarlyMessageCache() + val earlyCacheEntries: List? = AppDependencies + .earlyMessageCache .retrieve(senderRecipient.id, envelope.timestamp!!) .orNull() @@ -395,7 +395,7 @@ open class MessageContentProcessor(private val context: Context) { MessageState.CORRUPT_MESSAGE, MessageState.NO_SESSION -> { warn(timestamp, "Discovered old enqueued bad encrypted message. Scheduling reset.") - ApplicationDependencies.getJobManager().add(AutomaticSessionResetJob(sender.id, exceptionMetadata.senderDevice, timestamp)) + AppDependencies.jobManager.add(AutomaticSessionResetJob(sender.id, exceptionMetadata.senderDevice, timestamp)) } MessageState.DUPLICATE_MESSAGE -> warn(timestamp, "Duplicate message. Dropping.") @@ -420,7 +420,7 @@ open class MessageContentProcessor(private val context: Context) { return } - val pending: PendingRetryReceiptModel? = ApplicationDependencies.getPendingRetryReceiptCache().get(senderRecipient.id, envelope.timestamp!!) + val pending: PendingRetryReceiptModel? = AppDependencies.pendingRetryReceiptCache.get(senderRecipient.id, envelope.timestamp!!) val receivedTime: Long = handlePendingRetry(pending, envelope.timestamp!!, threadRecipient) log(envelope.timestamp!!, "Beginning message processing. Sender: " + formatSender(senderRecipient.id, metadata.sourceServiceId, metadata.sourceDeviceId)) @@ -518,7 +518,7 @@ open class MessageContentProcessor(private val context: Context) { if (pending != null) { warn(envelope.timestamp!!, "Pending retry was processed. Deleting.") - ApplicationDependencies.getPendingRetryReceiptCache().delete(pending) + AppDependencies.pendingRetryReceiptCache.delete(pending) } } @@ -553,10 +553,10 @@ open class MessageContentProcessor(private val context: Context) { if (typingMessage.hasStarted) { Log.d(TAG, "Typing started on thread $threadId") - ApplicationDependencies.getTypingStatusRepository().onTypingStarted(context, threadId, senderRecipient, metadata.sourceDeviceId) + AppDependencies.typingStatusRepository.onTypingStarted(context, threadId, senderRecipient, metadata.sourceDeviceId) } else { Log.d(TAG, "Typing stopped on thread $threadId") - ApplicationDependencies.getTypingStatusRepository().onTypingStopped(threadId, senderRecipient, metadata.sourceDeviceId, false) + AppDependencies.typingStatusRepository.onTypingStopped(threadId, senderRecipient, metadata.sourceDeviceId, false) } } @@ -633,7 +633,7 @@ open class MessageContentProcessor(private val context: Context) { if (messageLogEntry != null) { warn(envelope.timestamp!!, "[RetryReceipt-SK] Found MSL entry for ${requester.id} ($requesterAddress) with timestamp $sentTimestamp. Scheduling a resend.") - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( ResendMessageJob( messageLogEntry.recipientId, messageLogEntry.dateSent, @@ -646,7 +646,7 @@ open class MessageContentProcessor(private val context: Context) { ) } else { warn(envelope.timestamp!!, "[RetryReceipt-SK] Unable to find MSL entry for ${requester.id} ($requesterAddress) with timestamp $sentTimestamp for ${if (groupId != null) "group $groupId" else "distribution list"}. Scheduling a job to send them the SenderKeyDistributionMessage. Membership will be checked there.") - ApplicationDependencies.getJobManager().add(SenderKeyDistributionSendJob(requester.id, threadRecipient.id)) + AppDependencies.jobManager.add(SenderKeyDistributionSendJob(requester.id, threadRecipient.id)) } } @@ -661,7 +661,7 @@ open class MessageContentProcessor(private val context: Context) { if (decryptionErrorMessage.ratchetKey.isPresent) { if (ratchetKeyMatches(requester, metadata.sourceDeviceId, decryptionErrorMessage.ratchetKey.get())) { warn(envelope.timestamp!!, "[RetryReceipt-I] Ratchet key matches. Archiving the session.") - ApplicationDependencies.getProtocolStore().aci().sessions().archiveSession(requester.requireServiceId(), metadata.sourceDeviceId) + AppDependencies.protocolStore.aci().sessions().archiveSession(requester.requireServiceId(), metadata.sourceDeviceId) archivedSession = true } else { log(envelope.timestamp!!, "[RetryReceipt-I] Ratchet key does not match. Leaving the session as-is.") @@ -672,7 +672,7 @@ open class MessageContentProcessor(private val context: Context) { if (messageLogEntry != null) { warn(envelope.timestamp!!, "[RetryReceipt-I] Found an entry in the MSL. Resending.") - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( ResendMessageJob( messageLogEntry.recipientId, messageLogEntry.dateSent, @@ -685,7 +685,7 @@ open class MessageContentProcessor(private val context: Context) { ) } else if (archivedSession) { warn(envelope.timestamp!!, "[RetryReceipt-I] Could not find an entry in the MSL, but we archived the session, so we're sending a null message to complete the reset.") - ApplicationDependencies.getJobManager().add(NullMessageSendJob(requester.id)) + AppDependencies.jobManager.add(NullMessageSendJob(requester.id)) } else { warn(envelope.timestamp!!, "[RetryReceipt-I] Could not find an entry in the MSL. Skipping.") } @@ -702,7 +702,7 @@ open class MessageContentProcessor(private val context: Context) { private fun ratchetKeyMatches(recipient: Recipient, deviceId: Int, ratchetKey: ECPublicKey): Boolean { val address = recipient.resolve().requireAci().toProtocolAddress(deviceId) - val session = ApplicationDependencies.getProtocolStore().aci().loadSession(address) + val session = AppDependencies.protocolStore.aci().loadSession(address) return session.currentRatchetKeyMatches(ratchetKey) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt index 57d6b7d5df..9f55e2c30a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/MessageDecryptor.kt @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.crypto.ReentrantSessionLock import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.jobmanager.JobManager @@ -360,8 +360,8 @@ object MessageDecryptor { return@FollowUpOperation null } - ApplicationDependencies.getPendingRetryReceiptCache().insert(sender.id, senderDevice, envelope.timestamp!!, receivedTimestamp, threadId) - ApplicationDependencies.getPendingRetryReceiptManager().scheduleIfNecessary() + AppDependencies.pendingRetryReceiptCache.insert(sender.id, senderDevice, envelope.timestamp!!, receivedTimestamp, threadId) + AppDependencies.pendingRetryReceiptManager.scheduleIfNecessary() null } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/ReceiptMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/ReceiptMessageProcessor.kt index bf4ac20b41..46c9faaaa4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/ReceiptMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/ReceiptMessageProcessor.kt @@ -4,7 +4,7 @@ import android.annotation.SuppressLint import android.content.Context import org.signal.core.util.Stopwatch import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.PushProcessEarlyMessagesJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.messages.MessageContentProcessor.Companion.log @@ -88,7 +88,7 @@ object ReceiptMessageProcessor { for (targetTimestamp in missingTargetTimestamps) { warn(envelope.timestamp!!, "[handleReadReceipt] Could not find matching message! targetTimestamp: $targetTimestamp, receiptAuthor: $senderRecipientId | Receipt, so associating with message from self ($selfId)") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(selfId, targetTimestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(selfId, targetTimestamp, earlyMessageCacheEntry) } } } @@ -133,7 +133,7 @@ object ReceiptMessageProcessor { for (targetTimestamp in missingTargetTimestamps) { warn(envelope.timestamp!!, "[handleViewedReceipt] Could not find matching message! targetTimestamp: $targetTimestamp, receiptAuthor: $senderRecipientId | Receipt so associating with message from self ($selfId)") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(selfId, targetTimestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(selfId, targetTimestamp, earlyMessageCacheEntry) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/StoryMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/StoryMessageProcessor.kt index a7d14b94c7..397bd9bcc1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/StoryMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/StoryMessageProcessor.kt @@ -10,7 +10,7 @@ import org.thoughtcrime.securesms.database.model.StoryType import org.thoughtcrime.securesms.database.model.databaseprotos.ChatColor import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost import org.thoughtcrime.securesms.database.model.toBodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.messages.MessageContentProcessor.Companion.log import org.thoughtcrime.securesms.messages.MessageContentProcessor.Companion.warn import org.thoughtcrime.securesms.messages.SignalServiceProtoUtil.groupId @@ -91,7 +91,7 @@ object StoryMessageProcessor { if (insertResult != null) { Stories.enqueueNextStoriesForDownload(threadRecipient.id, false, FeatureFlags.storiesAutoDownloadMaximum()) - ApplicationDependencies.getExpireStoriesManager().scheduleIfNecessary() + AppDependencies.expireStoriesManager.scheduleIfNecessary() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt index 5189323ec8..78cb82d49b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/SyncMessageProcessor.kt @@ -40,7 +40,7 @@ import org.thoughtcrime.securesms.database.model.StoryType import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge import org.thoughtcrime.securesms.database.model.toBodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.BadGroupIdException import org.thoughtcrime.securesms.groups.GroupChangeBusyException import org.thoughtcrime.securesms.groups.GroupId @@ -241,7 +241,7 @@ object SyncMessageProcessor { if (threadId != -1L) { SignalDatabase.threads.setRead(threadId, true) - ApplicationDependencies.getMessageNotifier().updateNotification(context) + AppDependencies.messageNotifier.updateNotification(context) } if (SignalStore.rateLimit().needsRecaptcha()) { @@ -249,7 +249,7 @@ object SyncMessageProcessor { RateLimitUtil.retryAllRateLimitedMessages(context) } - ApplicationDependencies.getMessageNotifier().setLastDesktopActivityTimestamp(sent.timestamp!!) + AppDependencies.messageNotifier.setLastDesktopActivityTimestamp(sent.timestamp!!) } catch (e: MmsException) { throw StorageFailedException(e, metadata.sourceServiceId.toString(), metadata.sourceDeviceId) } @@ -268,7 +268,7 @@ object SyncMessageProcessor { val address = SignalProtocolAddress(pni.toString(), SignalServiceAddress.DEFAULT_DEVICE_ID) - if (ApplicationDependencies.getProtocolStore().aci().identities().getIdentity(address) != null) { + if (AppDependencies.protocolStore.aci().identities().getIdentity(address) != null) { log(envelope.timestamp!!, "Ignoring identity on sent transcript for $pni because we already have one.") continue } @@ -276,7 +276,7 @@ object SyncMessageProcessor { try { log(envelope.timestamp!!, "Saving identity from sent transcript for $pni") val identityKey = IdentityKey(status.destinationIdentityKey!!.toByteArray()) - ApplicationDependencies.getProtocolStore().aci().identities().saveIdentity(address, identityKey) + AppDependencies.protocolStore.aci().identities().saveIdentity(address, identityKey) } catch (e: InvalidKeyException) { warn(envelope.timestamp!!, "Failed to deserialize identity key for $pni") } @@ -307,7 +307,7 @@ object SyncMessageProcessor { if (targetMessage == null) { warn(envelope.timestamp!!, "[handleSynchronizeSentEditMessage] Could not find matching message! targetTimestamp: $targetSentTimestamp author: $senderRecipientId") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(senderRecipientId, targetSentTimestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(senderRecipientId, targetSentTimestamp, earlyMessageCacheEntry) PushProcessEarlyMessagesJob.enqueue() } } else if (MessageConstraintsUtil.isValidEditMessageReceive(targetMessage, senderRecipient, envelope.serverTimestamp!!)) { @@ -375,7 +375,7 @@ object SyncMessageProcessor { SignalDatabase.messages.markAsSent(messageId, true) if (targetMessage.expireStarted > 0) { SignalDatabase.messages.markExpireStarted(messageId, targetMessage.expireStarted) - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted) + AppDependencies.expiringMessageManager.scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted) } if (toRecipient.isSelf) { @@ -436,7 +436,7 @@ object SyncMessageProcessor { if (targetMessage.expireStarted > 0) { SignalDatabase.messages.markExpireStarted(messageId, targetMessage.expireStarted) - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted) + AppDependencies.expiringMessageManager.scheduleDeletion(messageId, true, targetMessage.expireStarted, targetMessage.expireStarted) } if (toRecipient.isSelf) { @@ -447,7 +447,7 @@ object SyncMessageProcessor { if (syncAttachments.isNotEmpty()) { SignalDatabase.runPostSuccessfulTransaction { for (attachment in attachments) { - ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(messageId, attachment.attachmentId, false)) + AppDependencies.jobManager.add(AttachmentDownloadJob(messageId, attachment.attachmentId, false)) } } } @@ -547,7 +547,7 @@ object SyncMessageProcessor { SignalDatabase.runPostSuccessfulTransaction { for (attachment in attachments) { - ApplicationDependencies.getJobManager().add(AttachmentDownloadJob(messageId, attachment.attachmentId, false)) + AppDependencies.jobManager.add(AttachmentDownloadJob(messageId, attachment.attachmentId, false)) } } } @@ -615,7 +615,7 @@ object SyncMessageProcessor { val threadId: Long = SignalDatabase.threads.getOrCreateThreadIdFor(recipient) if (!recipient.isGroup) { - ApplicationDependencies.getProtocolStore().aci().deleteAllSessions(recipient.requireServiceId().toString()) + AppDependencies.protocolStore.aci().deleteAllSessions(recipient.requireServiceId().toString()) SecurityEvent.broadcastSecurityUpdateEvent(context) val messageId = SignalDatabase.messages.insertMessageOutbox( outgoingEndSessionMessage, @@ -749,8 +749,8 @@ object SyncMessageProcessor { if (dataMessage.expireTimerDuration > Duration.ZERO) { SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0) - ApplicationDependencies - .getExpiringMessageManager() + AppDependencies + .expiringMessageManager .scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds) } if (recipient.isSelf) { @@ -817,7 +817,7 @@ object SyncMessageProcessor { if (dataMessage.expireTimerDuration > Duration.ZERO) { SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0) - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds) + AppDependencies.expiringMessageManager.scheduleDeletion(messageId, true, sent.expirationStartTimestamp ?: 0, dataMessage.expireTimerDuration.inWholeMilliseconds) } if (recipient.isSelf) { SignalDatabase.messages.incrementDeliveryReceiptCount(sent.timestamp!!, recipient.id, System.currentTimeMillis()) @@ -827,7 +827,7 @@ object SyncMessageProcessor { SignalDatabase.runPostSuccessfulTransaction { val downloadJobs: List = attachments.map { AttachmentDownloadJob(messageId, it.attachmentId, false) } for (attachment in attachments) { - ApplicationDependencies.getJobManager().addAll(downloadJobs) + AppDependencies.jobManager.addAll(downloadJobs) } } @@ -872,7 +872,7 @@ object SyncMessageProcessor { SignalDatabase.messages.markAsSent(messageId, true) if (expiresInMillis > 0) { SignalDatabase.messages.markExpireStarted(messageId, sent.expirationStartTimestamp ?: 0) - ApplicationDependencies.getExpiringMessageManager().scheduleDeletion(messageId, isGroup, sent.expirationStartTimestamp ?: 0, expiresInMillis) + AppDependencies.expiringMessageManager.scheduleDeletion(messageId, isGroup, sent.expirationStartTimestamp ?: 0, expiresInMillis) } if (recipient.isSelf) { @@ -892,10 +892,10 @@ object SyncMessageProcessor { } when (message.type) { - Request.Type.CONTACTS -> ApplicationDependencies.getJobManager().add(MultiDeviceContactUpdateJob(true)) - Request.Type.BLOCKED -> ApplicationDependencies.getJobManager().add(MultiDeviceBlockedUpdateJob()) + Request.Type.CONTACTS -> AppDependencies.jobManager.add(MultiDeviceContactUpdateJob(true)) + Request.Type.BLOCKED -> AppDependencies.jobManager.add(MultiDeviceBlockedUpdateJob()) Request.Type.CONFIGURATION -> { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( MultiDeviceConfigurationUpdateJob( TextSecurePreferences.isReadReceiptsEnabled(context), TextSecurePreferences.isTypingIndicatorsEnabled(context), @@ -903,9 +903,9 @@ object SyncMessageProcessor { SignalStore.settings().isLinkPreviewsEnabled ) ) - ApplicationDependencies.getJobManager().add(MultiDeviceStickerPackSyncJob()) + AppDependencies.jobManager.add(MultiDeviceStickerPackSyncJob()) } - Request.Type.KEYS -> ApplicationDependencies.getJobManager().add(MultiDeviceKeysUpdateJob()) + Request.Type.KEYS -> AppDependencies.jobManager.add(MultiDeviceKeysUpdateJob()) else -> warn(envelopeTimestamp, "Unknown request type: ${message.type}") } } @@ -930,7 +930,7 @@ object SyncMessageProcessor { for (id in unhandled) { warn(envelopeTimestamp, "[handleSynchronizeReadMessage] Could not find matching message! timestamp: ${id.timetamp} author: ${id.recipientId}") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(id.recipientId, id.timetamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(id.recipientId, id.timetamp, earlyMessageCacheEntry) } } @@ -938,8 +938,8 @@ object SyncMessageProcessor { PushProcessEarlyMessagesJob.enqueue() } - ApplicationDependencies - .getMessageNotifier() + AppDependencies + .messageNotifier .apply { setLastDesktopActivityTimestamp(envelopeTimestamp) cancelDelayedNotifications() @@ -974,7 +974,7 @@ object SyncMessageProcessor { SignalDatabase.messages.setIncomingMessagesViewed(toMarkViewed) SignalDatabase.messages.setOutgoingGiftsRevealed(toMarkViewed) - ApplicationDependencies.getMessageNotifier().apply { + AppDependencies.messageNotifier.apply { setLastDesktopActivityTimestamp(envelopeTimestamp) cancelDelayedNotifications() updateNotification(context) @@ -998,12 +998,12 @@ object SyncMessageProcessor { } else { warn(envelopeTimestamp.toString(), "Got a view-once open message for a message we don't have!") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(author, timestamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(author, timestamp, earlyMessageCacheEntry) PushProcessEarlyMessagesJob.enqueue() } } - ApplicationDependencies.getMessageNotifier().apply { + AppDependencies.messageNotifier.apply { setLastDesktopActivityTimestamp(envelopeTimestamp) cancelDelayedNotifications() updateNotification(context) @@ -1019,7 +1019,7 @@ object SyncMessageProcessor { private fun handleSynchronizeStickerPackOperation(stickerPackOperations: List, envelopeTimestamp: Long) { log(envelopeTimestamp, "Synchronize sticker pack operation.") - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager for (operation in stickerPackOperations) { if (operation.packId != null && operation.packKey != null && operation.type != null) { @@ -1066,7 +1066,7 @@ object SyncMessageProcessor { private fun handleSynchronizeFetchMessage(fetchType: FetchLatest.Type, envelopeTimestamp: Long) { log(envelopeTimestamp, "Received fetch request with type: $fetchType") when (fetchType) { - FetchLatest.Type.LOCAL_PROFILE -> ApplicationDependencies.getJobManager().add(RefreshOwnProfileJob()) + FetchLatest.Type.LOCAL_PROFILE -> AppDependencies.jobManager.add(RefreshOwnProfileJob()) FetchLatest.Type.STORAGE_MANIFEST -> StorageSyncHelper.scheduleSyncForDataChange() FetchLatest.Type.SUBSCRIPTION_STATUS -> warn(envelopeTimestamp, "Dropping subscription status fetch message.") else -> warn(envelopeTimestamp, "Received a fetch message for an unknown type.") @@ -1164,7 +1164,7 @@ object SyncMessageProcessor { if (address == null && recipientId == null) { log(envelopeTimestamp, "Inserting defrag") - address = ApplicationDependencies.getPayments().wallet.mobileCoinPublicAddress + address = AppDependencies.payments.wallet.mobileCoinPublicAddress recipientId = Recipient.self().id } @@ -1217,7 +1217,7 @@ object SyncMessageProcessor { val attachment: SignalServiceAttachmentPointer = contactsMessage.blob!!.toSignalServiceAttachmentPointer() - ApplicationDependencies.getJobManager().add(MultiDeviceContactSyncJob(attachment)) + AppDependencies.jobManager.add(MultiDeviceContactSyncJob(attachment)) } private fun handleSynchronizeCallEvent(callEvent: SyncMessage.CallEvent, envelopeTimestamp: Long) { @@ -1329,7 +1329,7 @@ object SyncMessageProcessor { ) } - ApplicationDependencies.getJobManager().add(RefreshCallLinkDetailsJob(callLinkUpdate)) + AppDependencies.jobManager.add(RefreshCallLinkDetailsJob(callLinkUpdate)) } private fun handleSynchronizeOneToOneCallEvent(callEvent: SyncMessage.CallEvent, envelopeTimestamp: Long) { @@ -1473,7 +1473,7 @@ object SyncMessageProcessor { handleSynchronizeLocalOnlyConversationDeletes(deleteForMe.localOnlyConversationDeletes, envelopeTimestamp) } - ApplicationDependencies.getMessageNotifier().updateNotification(context) + AppDependencies.messageNotifier.updateNotification(context) } private fun handleSynchronizeMessageDeletes(messageDeletes: List, envelopeTimestamp: Long, earlyMessageCacheEntry: EarlyMessageCacheEntry?) { @@ -1489,7 +1489,7 @@ object SyncMessageProcessor { for (syncMessage in unhandled) { warn(envelopeTimestamp, "[handleSynchronizeDeleteForMe] Could not find matching message! timestamp: ${syncMessage.timetamp} author: ${syncMessage.recipientId}") if (earlyMessageCacheEntry != null) { - ApplicationDependencies.getEarlyMessageCache().store(syncMessage.recipientId, syncMessage.timetamp, earlyMessageCacheEntry) + AppDependencies.earlyMessageCache.store(syncMessage.recipientId, syncMessage.timetamp, earlyMessageCacheEntry) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/WebSocketDrainer.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/WebSocketDrainer.kt index af974161f2..37a4331489 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/WebSocketDrainer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/WebSocketDrainer.kt @@ -5,7 +5,7 @@ import androidx.annotation.AnyThread import androidx.annotation.WorkerThread import org.signal.core.util.Stopwatch import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobTracker import org.thoughtcrime.securesms.jobmanager.JobTracker.JobListener @@ -50,8 +50,8 @@ object WebSocketDrainer { var websocketDrainTimeout = requestedWebsocketDrainTimeoutMs - val context = ApplicationDependencies.getApplication() - val incomingMessageObserver = ApplicationDependencies.getIncomingMessageObserver() + val context = AppDependencies.application + val incomingMessageObserver = AppDependencies.incomingMessageObserver val powerManager = ServiceUtil.getPowerManager(context) val doze = PowerManagerCompat.isDeviceIdleMode(powerManager) @@ -67,7 +67,7 @@ object WebSocketDrainer { } val wakeLockTag = WAKELOCK_PREFIX + System.currentTimeMillis() - val wakeLock = WakeLockUtil.acquire(ApplicationDependencies.getApplication(), PowerManager.PARTIAL_WAKE_LOCK, websocketDrainTimeout + QUEUE_TIMEOUT, wakeLockTag) + val wakeLock = WakeLockUtil.acquire(AppDependencies.application, PowerManager.PARTIAL_WAKE_LOCK, websocketDrainTimeout + QUEUE_TIMEOUT, wakeLockTag) return try { drainAndProcess(websocketDrainTimeout, incomingMessageObserver, keepAliveToken) @@ -86,7 +86,7 @@ object WebSocketDrainer { private fun drainAndProcess(timeout: Long, incomingMessageObserver: IncomingMessageObserver, keepAliveToken: String): Boolean { val stopwatch = Stopwatch("websocket-strategy") - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager val queueListener = QueueFindingJobListener() jobManager.addListener( @@ -148,7 +148,7 @@ object WebSocketDrainer { private fun blockUntilJobQueueDrained(queue: String, timeoutMs: Long): Boolean { val startTime = System.currentTimeMillis() - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager val markerJob = MarkerJob(queue) val jobState = jobManager.runSynchronously(markerJob, timeoutMs) diff --git a/app/src/main/java/org/thoughtcrime/securesms/messages/protocol/BufferedProtocolStore.kt b/app/src/main/java/org/thoughtcrime/securesms/messages/protocol/BufferedProtocolStore.kt index 1c26fe61e4..6ed04c0f60 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messages/protocol/BufferedProtocolStore.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messages/protocol/BufferedProtocolStore.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.messages.protocol -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.whispersystems.signalservice.api.push.ServiceId @@ -32,8 +32,8 @@ class BufferedProtocolStore private constructor( * Writes any buffered data to disk. You can continue to use the same buffered store afterwards. */ fun flushToDisk() { - aciStore.second.flushToDisk(ApplicationDependencies.getProtocolStore().aci()) - pniStore.second.flushToDisk(ApplicationDependencies.getProtocolStore().pni()) + aciStore.second.flushToDisk(AppDependencies.protocolStore.aci()) + pniStore.second.flushToDisk(AppDependencies.protocolStore.pni()) } companion object { diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountConsistencyMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountConsistencyMigrationJob.kt index 30294af951..9374618544 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountConsistencyMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountConsistencyMigrationJob.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.AccountConsistencyWorkerJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -34,7 +34,7 @@ internal class AccountConsistencyMigrationJob( return } - ApplicationDependencies.getJobManager().add(AccountConsistencyWorkerJob()) + AppDependencies.jobManager.add(AccountConsistencyWorkerJob()) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountRecordMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountRecordMigrationJob.java index 40bdcce6c6..e55719050b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountRecordMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/AccountRecordMigrationJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.StorageSyncJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -47,7 +47,7 @@ public class AccountRecordMigrationJob extends MigrationJob { } SignalDatabase.recipients().markNeedsSync(Recipient.self().getId()); - ApplicationDependencies.getJobManager().add(new StorageSyncJob()); + AppDependencies.getJobManager().add(new StorageSyncJob()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/AttachmentHashBackfillMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/AttachmentHashBackfillMigrationJob.kt index 3b8718a7c2..bd479a2f0b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/AttachmentHashBackfillMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/AttachmentHashBackfillMigrationJob.kt @@ -6,7 +6,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.AttachmentHashBackfillJob import java.lang.Exception @@ -26,7 +26,7 @@ internal class AttachmentHashBackfillMigrationJob(parameters: Parameters = Param override fun isUiBlocking(): Boolean = false override fun performMigration() { - ApplicationDependencies.getJobManager().add(AttachmentHashBackfillJob()) + AppDependencies.jobManager.add(AttachmentHashBackfillJob()) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/AttributesMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/AttributesMigrationJob.java index 6ad5ac48c8..4bd984b260 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/AttributesMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/AttributesMigrationJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob; @@ -39,9 +39,9 @@ public final class AttributesMigrationJob extends MigrationJob { @Override public void performMigration() { Log.i(TAG, "Scheduling attributes upload and profile refresh job chain"); - ApplicationDependencies.getJobManager().startChain(new RefreshAttributesJob()) - .then(new RefreshOwnProfileJob()) - .enqueue(); + AppDependencies.getJobManager().startChain(new RefreshAttributesJob()) + .then(new RefreshOwnProfileJob()) + .enqueue(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/AvatarIdRemovalMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/AvatarIdRemovalMigrationJob.java index c97e6f0bf9..37e7e051e0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/AvatarIdRemovalMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/AvatarIdRemovalMigrationJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob; @@ -38,7 +38,7 @@ public class AvatarIdRemovalMigrationJob extends MigrationJob { @Override public void performMigration() { - ApplicationDependencies.getJobManager().add(new RefreshOwnProfileJob()); + AppDependencies.getJobManager().add(new RefreshOwnProfileJob()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/ContactLinkRebuildMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/ContactLinkRebuildMigrationJob.kt index ee6bb3180c..8886bea192 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/ContactLinkRebuildMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/ContactLinkRebuildMigrationJob.kt @@ -12,7 +12,7 @@ import org.signal.contacts.SystemContactsRepository import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.BuildConfig import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.SyncSystemContactLinksJob @@ -53,7 +53,7 @@ internal class ContactLinkRebuildMigrationJob(parameters: Parameters = Parameter removeIfMissing = true ) - ApplicationDependencies.getJobManager().add(SyncSystemContactLinksJob()) + AppDependencies.jobManager.add(SyncSystemContactLinksJob()) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiDownloadMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiDownloadMigrationJob.java index 6ad2f3ef32..2b75986320 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiDownloadMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiDownloadMigrationJob.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.migrations; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob; import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob; @@ -35,7 +35,7 @@ public final class EmojiDownloadMigrationJob extends MigrationJob { @Override public void performMigration() { - ApplicationDependencies.getJobManager().add(new DownloadLatestEmojiDataJob(false)); + AppDependencies.getJobManager().add(new DownloadLatestEmojiDataJob(false)); EmojiSearchIndexDownloadJob.scheduleImmediately(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiSearchIndexCheckMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiSearchIndexCheckMigrationJob.java index 926c3c9203..ecca5b38c4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiSearchIndexCheckMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/EmojiSearchIndexCheckMigrationJob.java @@ -6,9 +6,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.SqlUtil; import org.thoughtcrime.securesms.database.EmojiSearchTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.Job; -import org.thoughtcrime.securesms.jobs.DownloadLatestEmojiDataJob; import org.thoughtcrime.securesms.jobs.EmojiSearchIndexDownloadJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/IdentityTableCleanupMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/IdentityTableCleanupMigrationJob.kt index 880a66dbfa..db52da109c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/IdentityTableCleanupMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/IdentityTableCleanupMigrationJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.IdentityTable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.AccountConsistencyWorkerJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -41,7 +41,7 @@ internal class IdentityTableCleanupMigrationJob( return } - ApplicationDependencies.getProtocolStore().aci().identities().saveIdentityWithoutSideEffects( + AppDependencies.protocolStore.aci().identities().saveIdentityWithoutSideEffects( Recipient.self().id, SignalStore.account().aci!!, SignalStore.account().aciIdentityKey.publicKey, @@ -51,7 +51,7 @@ internal class IdentityTableCleanupMigrationJob( true ) - ApplicationDependencies.getProtocolStore().pni().identities().saveIdentityWithoutSideEffects( + AppDependencies.protocolStore.pni().identities().saveIdentityWithoutSideEffects( Recipient.self().id, SignalStore.account().pni!!, SignalStore.account().pniIdentityKey.publicKey, @@ -61,7 +61,7 @@ internal class IdentityTableCleanupMigrationJob( true ) - ApplicationDependencies.getJobManager().add(AccountConsistencyWorkerJob()) + AppDependencies.jobManager.add(AccountConsistencyWorkerJob()) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java index 7a52900e09..ff36ec38cb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/LegacyMigrationJob.java @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.MessageTable.MmsReader; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.MessageRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; @@ -144,7 +144,7 @@ public class LegacyMigrationJob extends MigrationJob { // } if (lastSeenVersion < CONTACTS_ACCOUNT_VERSION) { - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(false)); } if (lastSeenVersion < MEDIA_DOWNLOAD_CONTROLS_VERSION) { @@ -152,12 +152,12 @@ public class LegacyMigrationJob extends MigrationJob { } if (lastSeenVersion < REDPHONE_SUPPORT_VERSION) { - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false)); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(false)); } if (lastSeenVersion < PROFILES) { - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(false)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(false)); } if (lastSeenVersion < SCREENSHOTS) { @@ -226,12 +226,12 @@ public class LegacyMigrationJob extends MigrationJob { if (lastSeenVersion < UNIDENTIFIED_DELIVERY) { Log.i(TAG, "Scheduling UD attributes refresh."); - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); } if (lastSeenVersion < SIGNALING_KEY_DEPRECATION) { Log.i(TAG, "Scheduling a RefreshAttributesJob to remove the signaling key remotely."); - ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); + AppDependencies.getJobManager().add(new RefreshAttributesJob()); } } @@ -255,7 +255,7 @@ public class LegacyMigrationJob extends MigrationJob { attachmentDb.setTransferState(attachment.mmsId, attachment.attachmentId, AttachmentTable.TRANSFER_PROGRESS_DONE); } else if (record != null && !record.isOutgoing() && record.isPush()) { Log.i(TAG, "queuing new attachment download job for incoming push part " + attachment.attachmentId + "."); - ApplicationDependencies.getJobManager().add(new AttachmentDownloadJob(attachment.mmsId, attachment.attachmentId, false, false)); + AppDependencies.getJobManager().add(new AttachmentDownloadJob(attachment.mmsId, attachment.attachmentId, false, false)); } reader.close(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/PinOptOutMigration.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/PinOptOutMigration.java index c4d0273ae9..4506ed0939 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/PinOptOutMigration.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/PinOptOutMigration.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob; @@ -41,10 +41,10 @@ public final class PinOptOutMigration extends MigrationJob { Log.w(TAG, "Discovered a legacy opt-out user! Resetting the state."); SignalStore.svr().optOut(); - ApplicationDependencies.getJobManager().startChain(new RefreshAttributesJob()) - .then(new RefreshOwnProfileJob()) - .then(new StorageForcePushJob()) - .enqueue(); + AppDependencies.getJobManager().startChain(new RefreshAttributesJob()) + .then(new RefreshOwnProfileJob()) + .then(new StorageForcePushJob()) + .enqueue(); } else if (SignalStore.svr().hasOptedOut()) { Log.i(TAG, "Discovered an opt-out user, but they're already in a good state. No action required."); } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/PniAccountInitializationMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/PniAccountInitializationMigrationJob.java index 9d5ca9fd22..9ea8ac555b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/PniAccountInitializationMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/PniAccountInitializationMigrationJob.java @@ -8,7 +8,7 @@ import org.signal.libsignal.protocol.state.PreKeyRecord; import org.signal.libsignal.protocol.state.SignedPreKeyRecord; import org.thoughtcrime.securesms.crypto.PreKeyUtil; import org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -70,8 +70,8 @@ public class PniAccountInitializationMigrationJob extends MigrationJob { Log.w(TAG, "Already generated the PNI identity. Skipping this step."); } - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); - SignalServiceAccountDataStore protocolStore = ApplicationDependencies.getProtocolStore().pni(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); + SignalServiceAccountDataStore protocolStore = AppDependencies.getProtocolStore().pni(); PreKeyMetadataStore metadataStore = SignalStore.account().pniPreKeys(); if (!metadataStore.isSignedPreKeyRegistered()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/PniMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/PniMigrationJob.java index 6035f6cdc8..b392168f76 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/PniMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/PniMigrationJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -47,7 +47,7 @@ public class PniMigrationJob extends MigrationJob { return; } - PNI pni = PNI.parseOrNull(ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI().getPni()); + PNI pni = PNI.parseOrNull(AppDependencies.getSignalServiceAccountManager().getWhoAmI().getPni()); if (pni == null) { throw new IOException("Invalid PNI!"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/PnpLaunchMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/PnpLaunchMigrationJob.kt index 314ed73c23..2ecd4f34a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/PnpLaunchMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/PnpLaunchMigrationJob.kt @@ -5,7 +5,7 @@ package org.thoughtcrime.securesms.migrations -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.ProfileUploadJob import org.thoughtcrime.securesms.jobs.RefreshAttributesJob @@ -24,7 +24,7 @@ internal class PnpLaunchMigrationJob(parameters: Parameters = Parameters.Builder override fun isUiBlocking(): Boolean = false override fun performMigration() { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(RefreshAttributesJob()) .then(ProfileUploadJob()) .enqueue() diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/ProfileMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/ProfileMigrationJob.java index 8d1e12deaa..289d30cacc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/ProfileMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/ProfileMigrationJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; @@ -38,7 +38,7 @@ public final class ProfileMigrationJob extends MigrationJob { @Override public void performMigration() { Log.i(TAG, "Scheduling profile upload job"); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/RecheckPaymentsMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/RecheckPaymentsMigrationJob.kt index 64458944eb..1aac61632c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/RecheckPaymentsMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/RecheckPaymentsMigrationJob.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob import org.thoughtcrime.securesms.jobs.PaymentTransactionCheckJob @@ -37,7 +37,7 @@ internal class RecheckPaymentsMigrationJob( if (jobs.isNotEmpty()) { jobs += PaymentLedgerUpdateJob.updateLedger() } - ApplicationDependencies.getJobManager().addAll(jobs) + AppDependencies.jobManager.addAll(jobs) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerAdditionMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerAdditionMigrationJob.java index a18c17505d..f00eb709d5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerAdditionMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerAdditionMigrationJob.java @@ -6,7 +6,7 @@ import androidx.annotation.Nullable; import com.annimon.stream.Stream; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -57,7 +57,7 @@ public class StickerAdditionMigrationJob extends MigrationJob { @Override public void performMigration() { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); for (BlessedPacks.Pack pack : packs) { Log.i(TAG, "Installing reference for blessed pack: " + pack.getPackId()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerDayByDayMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerDayByDayMigrationJob.java index 1b16c34854..7280bf412c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerDayByDayMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerDayByDayMigrationJob.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.migrations; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob; import org.thoughtcrime.securesms.stickers.BlessedPacks; @@ -35,7 +35,7 @@ public class StickerDayByDayMigrationJob extends MigrationJob { @Override public void performMigration() { - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.DAY_BY_DAY.getPackId(), BlessedPacks.DAY_BY_DAY.getPackKey(), false)); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerLaunchMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerLaunchMigrationJob.java index 3e83ae3f32..8c119ee3b5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerLaunchMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerLaunchMigrationJob.java @@ -7,7 +7,7 @@ import androidx.annotation.Nullable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackOperationJob; @@ -49,7 +49,7 @@ public class StickerLaunchMigrationJob extends MigrationJob { } private static void installPack(@NonNull Context context, @NonNull BlessedPacks.Pack pack) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); StickerTable stickerDatabase = SignalDatabase.stickers(); if (stickerDatabase.isPackAvailableAsReference(pack.getPackId())) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerMyDailyLifeMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerMyDailyLifeMigrationJob.java index 608b1334ab..916578aa41 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerMyDailyLifeMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StickerMyDailyLifeMigrationJob.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.migrations; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob; import org.thoughtcrime.securesms.stickers.BlessedPacks; @@ -35,7 +35,7 @@ public class StickerMyDailyLifeMigrationJob extends MigrationJob { @Override public void performMigration() { - ApplicationDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.MY_DAILY_LIFE.getPackId(), BlessedPacks.MY_DAILY_LIFE.getPackKey(), false)); + AppDependencies.getJobManager().add(StickerPackDownloadJob.forInstall(BlessedPacks.MY_DAILY_LIFE.getPackId(), BlessedPacks.MY_DAILY_LIFE.getPackKey(), false)); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageCapabilityMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageCapabilityMigrationJob.java index c7be56d8bb..28245dba36 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageCapabilityMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageCapabilityMigrationJob.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob; @@ -49,7 +49,7 @@ public class StorageCapabilityMigrationJob extends MigrationJob { @Override public void performMigration() { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); jobManager.startChain(new RefreshAttributesJob()).then(new RefreshOwnProfileJob()).enqueue(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageFixLocalUnknownMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageFixLocalUnknownMigrationJob.kt index 488395884a..e631e5ddd8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageFixLocalUnknownMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageFixLocalUnknownMigrationJob.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log import org.signal.core.util.withinTransaction import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob import org.thoughtcrime.securesms.jobs.StorageSyncJob @@ -42,7 +42,7 @@ internal class StorageFixLocalUnknownMigrationJob( SignalDatabase.unknownStorageIds.delete(danglingLocalUnknownIds) } - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager if (TextSecurePreferences.isMultiDevice(context)) { Log.i(TAG, "Multi-device.") diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageServiceMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageServiceMigrationJob.java index dcaad4fd44..4c562f0cf6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageServiceMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/StorageServiceMigrationJob.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob; @@ -50,7 +50,7 @@ public class StorageServiceMigrationJob extends MigrationJob { SignalDatabase.recipients().markNeedsSync(Recipient.self().getId()); - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (TextSecurePreferences.isMultiDevice(context)) { Log.i(TAG, "Multi-device."); diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/Svr2MirrorMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/Svr2MirrorMigrationJob.kt index 37d5a807ab..3441b99f0d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/Svr2MirrorMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/Svr2MirrorMigrationJob.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.Svr2MirrorJob @@ -22,7 +22,7 @@ internal class Svr2MirrorMigrationJob( override fun isUiBlocking(): Boolean = false override fun performMigration() { - ApplicationDependencies.getJobManager().add(Svr2MirrorJob()) + AppDependencies.jobManager.add(Svr2MirrorJob()) } override fun shouldRetry(e: Exception): Boolean = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/SyncKeysMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/SyncKeysMigrationJob.kt index dd26dc4573..6fd2a9b311 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/SyncKeysMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/SyncKeysMigrationJob.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.migrations -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob import org.thoughtcrime.securesms.util.TextSecurePreferences @@ -22,7 +22,7 @@ internal class SyncKeysMigrationJob( override fun performMigration() { if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceKeysUpdateJob()) + AppDependencies.jobManager.add(MultiDeviceKeysUpdateJob()) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/TrimByLengthSettingsMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/TrimByLengthSettingsMigrationJob.java index 66737f6816..4f35cffd14 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/TrimByLengthSettingsMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/TrimByLengthSettingsMigrationJob.java @@ -7,7 +7,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -35,7 +35,7 @@ public class TrimByLengthSettingsMigrationJob extends MigrationJob { @Override void performMigration() throws Exception { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(ApplicationDependencies.getApplication()); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(AppDependencies.getApplication()); if (preferences.contains(THREAD_TRIM_ENABLED)) { SignalStore.settings().setThreadTrimByLengthEnabled(preferences.getBoolean(THREAD_TRIM_ENABLED, false)); //noinspection ConstantConditions diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/UpdateSmsJobsMigrationJob.kt b/app/src/main/java/org/thoughtcrime/securesms/migrations/UpdateSmsJobsMigrationJob.kt index 076ca6fb79..0f026cc0c5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/UpdateSmsJobsMigrationJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/UpdateSmsJobsMigrationJob.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.migrations import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JsonJobData import org.thoughtcrime.securesms.jobmanager.persistence.JobSpec @@ -34,7 +34,7 @@ internal class UpdateSmsJobsMigrationJob( val idOffset = SignalStore.plaintext().smsMigrationIdOffset check(idOffset >= 0) { "Invalid ID offset of $idOffset -- this shouldn't be possible!" } - ApplicationDependencies.getJobManager().update { jobSpec -> + AppDependencies.jobManager.update { jobSpec -> when (jobSpec.factoryKey) { "PushTextSendJob" -> jobSpec.updateAndSerialize("message_id", null, idOffset) "ReactionSendJob" -> jobSpec.updateAndSerialize("message_id", "is_mms", idOffset) diff --git a/app/src/main/java/org/thoughtcrime/securesms/migrations/UuidMigrationJob.java b/app/src/main/java/org/thoughtcrime/securesms/migrations/UuidMigrationJob.java index 81368b2cc7..8658606882 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/migrations/UuidMigrationJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/migrations/UuidMigrationJob.java @@ -8,7 +8,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -71,7 +71,7 @@ public class UuidMigrationJob extends MigrationJob { private static void fetchOwnUuid(@NonNull Context context) throws IOException { RecipientId self = Recipient.self().getId(); - ACI localUuid = ACI.parseOrNull(ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI().getAci()); + ACI localUuid = ACI.parseOrNull(AppDependencies.getSignalServiceAccountManager().getWhoAmI().getAci()); if (localUuid == null) { throw new IOException("Invalid UUID!"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java b/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java index d19aec7732..98bd375068 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/PushMediaConstraints.java @@ -6,7 +6,7 @@ import androidx.annotation.IntRange; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.LocaleFeatureFlags; import org.thoughtcrime.securesms.util.Util; @@ -22,7 +22,7 @@ public class PushMediaConstraints extends MediaConstraints { private final MediaConfig currentConfig; public PushMediaConstraints(@Nullable SentMediaQuality sentMediaQuality) { - currentConfig = getCurrentConfig(ApplicationDependencies.getApplication(), sentMediaQuality); + currentConfig = getCurrentConfig(AppDependencies.getApplication(), sentMediaQuality); } @Override @@ -153,7 +153,7 @@ public class PushMediaConstraints extends MediaConstraints { } public static @Nullable MediaConfig forLevel(int level) { - boolean isLowMemory = Util.isLowMemory(ApplicationDependencies.getApplication()); + boolean isLowMemory = Util.isLowMemory(AppDependencies.getApplication()); return Arrays.stream(values()) .filter(v -> v.level == level && v.isLowMemory == isLowMemory) diff --git a/app/src/main/java/org/thoughtcrime/securesms/net/DeviceTransferBlockingInterceptor.java b/app/src/main/java/org/thoughtcrime/securesms/net/DeviceTransferBlockingInterceptor.java index e7f30db7ce..692ca3c901 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/net/DeviceTransferBlockingInterceptor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/net/DeviceTransferBlockingInterceptor.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.net; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import java.io.IOException; @@ -50,11 +50,11 @@ public final class DeviceTransferBlockingInterceptor implements Interceptor { public void blockNetwork() { blockNetworking = true; - ApplicationDependencies.closeConnections(); + AppDependencies.resetNetwork(); } public void unblockNetwork() { blockNetworking = false; - ApplicationDependencies.getIncomingMessageObserver(); + AppDependencies.getIncomingMessageObserver(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/net/SequentialDns.java b/app/src/main/java/org/thoughtcrime/securesms/net/SequentialDns.java index 34d5c7cf71..9a8ae334a1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/net/SequentialDns.java +++ b/app/src/main/java/org/thoughtcrime/securesms/net/SequentialDns.java @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.net; import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.NetworkUtil; import java.net.InetAddress; @@ -38,10 +38,10 @@ public class SequentialDns implements Dns { Log.w(TAG, String.format(Locale.ENGLISH, "Didn't find any addresses for %s using %s. Continuing.", hostname, dns.getClass().getSimpleName())); } } catch (UnknownHostException e) { - Log.w(TAG, String.format(Locale.ENGLISH, "Failed to resolve %s using %s. Continuing. Network Type: %s", hostname, dns.getClass().getSimpleName(), NetworkUtil.getNetworkTypeDescriptor(ApplicationDependencies.getApplication()))); + Log.w(TAG, String.format(Locale.ENGLISH, "Failed to resolve %s using %s. Continuing. Network Type: %s", hostname, dns.getClass().getSimpleName(), NetworkUtil.getNetworkTypeDescriptor(AppDependencies.getApplication()))); } } - Log.w(TAG, "Failed to resolve using any DNS. Network Type: " + NetworkUtil.getNetworkTypeDescriptor(ApplicationDependencies.getApplication())); + Log.w(TAG, "Failed to resolve using any DNS. Network Type: " + NetworkUtil.getNetworkTypeDescriptor(AppDependencies.getApplication())); throw new UnknownHostException(hostname); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/DeleteNotificationReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/DeleteNotificationReceiver.java index 10986db1b2..5bebe8c00e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/DeleteNotificationReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/DeleteNotificationReceiver.java @@ -7,7 +7,7 @@ import android.content.Intent; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.notifications.v2.ConversationId; import java.util.ArrayList; @@ -23,7 +23,7 @@ public class DeleteNotificationReceiver extends BroadcastReceiver { @Override public void onReceive(final Context context, Intent intent) { if (DELETE_NOTIFICATION_ACTION.equals(intent.getAction())) { - MessageNotifier notifier = ApplicationDependencies.getMessageNotifier(); + MessageNotifier notifier = AppDependencies.getMessageNotifier(); final long[] ids = intent.getLongArrayExtra(EXTRA_IDS); final boolean[] mms = intent.getBooleanArrayExtra(EXTRA_MMS); diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java index 2a4761f31c..8196b0369a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/MarkReadReceiver.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.MessageTable.ExpirationInfo; import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo; import org.thoughtcrime.securesms.database.MessageTable.SyncMessageId; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.CallLogEventSendJob; import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob; import org.thoughtcrime.securesms.jobs.SendReadReceiptJob; @@ -45,7 +45,7 @@ public class MarkReadReceiver extends BroadcastReceiver { final ArrayList threads = intent.getParcelableArrayListExtra(THREADS_EXTRA); if (threads != null) { - MessageNotifier notifier = ApplicationDependencies.getMessageNotifier(); + MessageNotifier notifier = AppDependencies.getMessageNotifier(); for (ConversationId thread : threads) { notifier.removeStickyThread(thread); } @@ -65,7 +65,7 @@ public class MarkReadReceiver extends BroadcastReceiver { process(messageIdsCollection); processCallEvents(threads, System.currentTimeMillis()); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); finisher.finish(); }); } @@ -113,7 +113,7 @@ public class MarkReadReceiver extends BroadcastReceiver { for (RecipientId peer : peers) { CallTable.Call lastCallInThread = SignalDatabase.calls().markAllCallEventsWithPeerBeforeTimestampRead(peer, timestamp); if (lastCallInThread != null) { - ApplicationDependencies.getJobManager().add(CallLogEventSendJob.forMarkedAsReadInConversation(lastCallInThread)); + AppDependencies.getJobManager().add(CallLogEventSendJob.forMarkedAsReadInConversation(lastCallInThread)); } } } @@ -123,8 +123,8 @@ public class MarkReadReceiver extends BroadcastReceiver { long now = System.currentTimeMillis(); SignalDatabase.messages().markExpireStarted(Stream.of(expirationInfo).map(info -> new kotlin.Pair<>(info.getId(), now)).toList()); - ApplicationDependencies.getExpiringMessageManager() - .scheduleDeletion(Stream.of(expirationInfo).map(info -> info.copy(info.getId(), info.getExpiresIn(), now, info.isMms())).toList()); + AppDependencies.getExpiringMessageManager() + .scheduleDeletion(Stream.of(expirationInfo).map(info -> info.copy(info.getId(), info.getExpiresIn(), now, info.isMms())).toList()); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java index af3089c922..57a663b51f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/MessageNotifier.java @@ -8,10 +8,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.signal.core.util.concurrent.SignalExecutors; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.notifications.v2.ConversationId; import org.thoughtcrime.securesms.recipients.Recipient; -import org.thoughtcrime.securesms.util.BubbleUtil; import java.util.Optional; @@ -34,7 +33,7 @@ public interface MessageNotifier { @Override public void onReceive(final Context context, final Intent intent) { SignalExecutors.BOUNDED.execute(() -> { - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); }); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCancellationHelper.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCancellationHelper.java index 8c32d75112..9f6b4d29ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCancellationHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCancellationHelper.java @@ -13,7 +13,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.notifications.v2.DefaultMessageNotifier; import org.thoughtcrime.securesms.notifications.v2.ConversationId; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -186,7 +186,7 @@ public final class NotificationCancellationHelper { } Long threadId = SignalDatabase.threads().getThreadIdFor(recipientId); - Optional focusedThread = ApplicationDependencies.getMessageNotifier().getVisibleThread(); + Optional focusedThread = AppDependencies.getMessageNotifier().getVisibleThread(); Long focusedThreadId = focusedThread.map(ConversationId::getThreadId).orElse(null); Long focusedGroupStoryId = focusedThread.map(ConversationId::getGroupStoryId).orElse(null); diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java index a9fd327311..d0e3dfd42d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/NotificationChannels.java @@ -31,7 +31,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.RecipientTable.VibrateState; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -89,7 +89,7 @@ public class NotificationChannels { if (instance == null) { synchronized (NotificationChannels.class) { if (instance == null) { - instance = new NotificationChannels(ApplicationDependencies.getApplication()); + instance = new NotificationChannels(AppDependencies.getApplication()); } } } @@ -694,7 +694,7 @@ public class NotificationChannels { } if (oldVersion < Version.AUDIO_ATTRIBUTE_CHANGE) { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); int existingMessageChannelVersion = TextSecurePreferences.getNotificationMessagesChannelVersion(context); int newMessageChannelVersion = existingMessageChannelVersion + 1; String existingChannelId = "messages_" + existingMessageChannelVersion; diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java index 1bc78e3a3e..e1fc8aa36d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/RemoteReplyReceiver.java @@ -30,7 +30,7 @@ import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.ParentStoryId; import org.thoughtcrime.securesms.database.model.StoryType; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.mms.OutgoingMessage; import org.thoughtcrime.securesms.notifications.v2.DefaultMessageNotifier; import org.thoughtcrime.securesms.notifications.v2.ConversationId; @@ -114,13 +114,13 @@ public class RemoteReplyReceiver extends BroadcastReceiver { throw new AssertionError("Unknown Reply method"); } - ApplicationDependencies.getMessageNotifier() - .addStickyThread(new ConversationId(threadId, groupStoryId != Long.MIN_VALUE ? groupStoryId : null), + AppDependencies.getMessageNotifier() + .addStickyThread(new ConversationId(threadId, groupStoryId != Long.MIN_VALUE ? groupStoryId : null), intent.getLongExtra(EARLIEST_TIMESTAMP, System.currentTimeMillis())); List messageIds = SignalDatabase.threads().setRead(threadId, true); - ApplicationDependencies.getMessageNotifier().updateNotification(context); + AppDependencies.getMessageNotifier().updateNotification(context); MarkReadReceiver.process(messageIds); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/SlowNotificationHeuristics.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/SlowNotificationHeuristics.kt index a2a85f925d..c99adb908c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/SlowNotificationHeuristics.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/SlowNotificationHeuristics.kt @@ -10,7 +10,7 @@ import android.text.TextUtils import androidx.annotation.WorkerThread import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.LocalMetricsDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.DeviceProperties import org.thoughtcrime.securesms.util.FeatureFlags @@ -102,7 +102,7 @@ object SlowNotificationHeuristics { return false } val configuration = getConfiguration() - val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()) + val db = LocalMetricsDatabase.getInstance(AppDependencies.application) val metrics = db.getMetrics() @@ -133,7 +133,7 @@ object SlowNotificationHeuristics { */ @JvmStatic fun isPotentiallyCausedByBatteryOptimizations(): Boolean { - val applicationContext = ApplicationDependencies.getApplication() + val applicationContext = AppDependencies.application if (DeviceProperties.getDataSaverState(applicationContext) == DeviceProperties.DataSaverState.ENABLED) { return false } @@ -187,7 +187,7 @@ object SlowNotificationHeuristics { Log.d(TAG, "not enough messages for message latency") return false } - val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()) + val db = LocalMetricsDatabase.getInstance(AppDependencies.application) for ((percentage, threshold) in percentiles.entries) { val averageLatency = db.eventPercent(SignalLocalMetrics.MessageLatency.NAME_HIGH, percentage.coerceAtMost(100).coerceAtLeast(0)) @@ -200,7 +200,7 @@ object SlowNotificationHeuristics { } private fun haveEnoughData(eventName: String, minimumEventAgeMs: Long): Boolean { - val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()) + val db = LocalMetricsDatabase.getInstance(AppDependencies.application) val oldestEvent = db.getOldestMetricTime(eventName) diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt index 303a8e68cc..a53a73a790 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/DefaultMessageNotifier.kt @@ -15,7 +15,7 @@ import org.signal.core.util.PendingIntentFlags import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.messages.IncomingMessageObserver import org.thoughtcrime.securesms.notifications.MessageNotifier @@ -395,8 +395,8 @@ private class CancelableExecutor { } if (!canceled.get()) { Log.i(TAG, "Not canceled, notifying...") - ApplicationDependencies.getMessageNotifier().cancelDelayedNotifications() - ApplicationDependencies.getMessageNotifier().updateNotification(context, thread) + AppDependencies.messageNotifier.cancelDelayedNotifications() + AppDependencies.messageNotifier.updateNotification(context, thread) } else { Log.w(TAG, "Canceled, not notifying...") } diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt index 4f1d5e4a59..2c62829d82 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationExtensions.kt @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri import org.thoughtcrime.securesms.notifications.NotificationIds import org.thoughtcrime.securesms.recipients.Recipient @@ -42,7 +42,7 @@ fun Recipient.getContactDrawable(context: Context): Drawable? { try { val transforms: MutableList> = mutableListOf() if (shouldBlurAvatar) { - transforms += BlurTransformation(ApplicationDependencies.getApplication(), 0.25f, BlurTransformation.MAX_RADIUS) + transforms += BlurTransformation(AppDependencies.application, 0.25f, BlurTransformation.MAX_RADIUS) } transforms += CircleCrop() diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt index 30523116ec..7c413736f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationFactory.kt @@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.conversation.ConversationIntents import org.thoughtcrime.securesms.conversation.colors.AvatarColor import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.NotificationChannels import org.thoughtcrime.securesms.notifications.NotificationIds @@ -201,7 +201,7 @@ object NotificationFactory { private fun shouldAlert(conversation: NotificationConversation, lastNotificationTimestamp: Long, alertOverride: Boolean): Boolean { val throttle: Duration = when { conversation.recipient.isGroup && (conversation.mostRecentNotification as? MessageNotification)?.hasSelfMention == false -> GROUP_THROTTLE - ApplicationDependencies.getIncomingMessageObserver().decryptionDrained -> STILL_DECRYPTING_INDIVIDUAL_THROTTLE + AppDependencies.incomingMessageObserver.decryptionDrained -> STILL_DECRYPTING_INDIVIDUAL_THROTTLE else -> 0.seconds } val canAlertBasedOnTime: Boolean = lastNotificationTimestamp < System.currentTimeMillis() - throttle.inWholeMilliseconds || lastNotificationTimestamp > System.currentTimeMillis() diff --git a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationThumbnails.kt b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationThumbnails.kt index 2d4d1dbbae..f9e259d1b7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationThumbnails.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/notifications/v2/NotificationThumbnails.kt @@ -7,7 +7,7 @@ import org.signal.core.util.asListContains import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.model.MessageId -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader import org.thoughtcrime.securesms.mms.Slide import org.thoughtcrime.securesms.providers.BlobProvider @@ -143,7 +143,7 @@ object NotificationThumbnails { thumbnailCache[messageId] = CachedThumbnail(thumbnailUri, result.mimeType) } - ApplicationDependencies.getMessageNotifier().updateNotification(context, notificationItem.thread) + AppDependencies.messageNotifier.updateNotification(context, notificationItem.thread) } else { Log.i(TAG, "Unable to compress attachment thumbnail for $messageId") } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/DataExportUtil.java b/app/src/main/java/org/thoughtcrime/securesms/payments/DataExportUtil.java index 6fc50b8e9b..02ba083832 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/DataExportUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/DataExportUtil.java @@ -8,7 +8,7 @@ import androidx.annotation.RequiresApi; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.reconciliation.LedgerReconcile; import org.thoughtcrime.securesms.recipients.Recipient; @@ -42,7 +42,7 @@ public final class DataExportUtil { @RequiresApi(api = 26) private static @NonNull String createTsv(@NonNull List payments) { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); StringBuilder sb = new StringBuilder(); sb.append(String.format(Locale.US, "%s\t%s\t%s\t%s\t%s%n", "Date Time", "From", "To", "Amount", "Fee")); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/FiatMoneyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/payments/FiatMoneyUtil.java index dc2b1eb094..10aa67405d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/FiatMoneyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/FiatMoneyUtil.java @@ -7,7 +7,7 @@ import androidx.lifecycle.LiveData; import org.signal.core.util.logging.Log; import org.signal.core.util.money.FiatMoney; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.livedata.LiveDataUtil; @@ -33,10 +33,10 @@ public final class FiatMoneyUtil { public static @NonNull LiveData> getExchange(@NonNull LiveData amount) { return LiveDataUtil.mapAsync(amount, a -> { try { - return ApplicationDependencies.getPayments() - .getCurrencyExchange(false) - .getExchangeRate(SignalStore.paymentsValues().currentCurrency()) - .exchange(a); + return AppDependencies.getPayments() + .getCurrencyExchange(false) + .getExchangeRate(SignalStore.paymentsValues().currentCurrency()) + .exchange(a); } catch (IOException e) { Log.w(TAG, e); return Optional.empty(); @@ -68,7 +68,7 @@ public final class FiatMoneyUtil { if (amount.getTimestamp() > 0 && options.displayTime) { return resources.getString(R.string.CurrencyAmountFormatter_s_at_s, formattedAmount, - DateUtils.getTimeString(ApplicationDependencies.getApplication(), Locale.getDefault(), amount.getTimestamp())); + DateUtils.getTimeString(AppDependencies.getApplication(), Locale.getDefault(), amount.getTimestamp())); } return formattedAmount; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java index cc1ef83d15..00171b0ec6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/MobileCoinConfig.java @@ -7,7 +7,7 @@ import androidx.annotation.RawRes; import com.mobilecoin.lib.ClientConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.internal.push.AuthCredentials; @@ -45,7 +45,7 @@ public abstract class MobileCoinConfig { } protected static Set getTrustRoots(@RawRes int pemResource) { - try (InputStream inputStream = ApplicationDependencies.getApplication().getResources().openRawResource(pemResource)) { + try (InputStream inputStream = AppDependencies.getApplication().getResources().openRawResource(pemResource)) { Collection certificates = CertificateFactory.getInstance("X.509") .generateCertificates(inputStream); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/MoneyView.java b/app/src/main/java/org/thoughtcrime/securesms/payments/MoneyView.java index ea2491eb3e..9e512e2819 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/MoneyView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/MoneyView.java @@ -13,7 +13,7 @@ import androidx.appcompat.widget.AppCompatTextView; import androidx.core.content.ContextCompat; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.DateUtils; import org.whispersystems.signalservice.api.payments.Currency; import org.whispersystems.signalservice.api.payments.FormatterOptions; @@ -101,7 +101,7 @@ public final class MoneyView extends AppCompatTextView { if (timestamp > 0L) { balanceSpan = new SpannableString(getResources().getString(R.string.CurrencyAmountFormatter_s_at_s, balance, - DateUtils.getTimeString(ApplicationDependencies.getApplication(), Locale.getDefault(), timestamp))); + DateUtils.getTimeString(AppDependencies.getApplication(), Locale.getDefault(), timestamp))); } else { balanceSpan = new SpannableString(balance); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/PaymentTransactionLiveData.java b/app/src/main/java/org/thoughtcrime/securesms/payments/PaymentTransactionLiveData.java index a1497c47e2..bd15807e4b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/PaymentTransactionLiveData.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/PaymentTransactionLiveData.java @@ -7,7 +7,7 @@ import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.PaymentTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.concurrent.SerialMonoLifoExecutor; import java.util.UUID; @@ -30,12 +30,12 @@ public final class PaymentTransactionLiveData extends LiveData currencyConversions.getTimestamp())) { currencyConversions = newCurrencyConversions; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/UnreadPaymentsRepository.java b/app/src/main/java/org/thoughtcrime/securesms/payments/UnreadPaymentsRepository.java index 7e94be2631..c3938da7db 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/UnreadPaymentsRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/UnreadPaymentsRepository.java @@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread; import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.UUID; import java.util.concurrent.Executor; @@ -26,13 +26,13 @@ public class UnreadPaymentsRepository { @WorkerThread private void markAllPaymentsSeenInternal() { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); SignalDatabase.payments().markAllSeen(); } @WorkerThread private void markPaymentSeenInternal(@NonNull UUID paymentId) { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); SignalDatabase.payments().markPaymentSeen(paymentId); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseRepository.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseRepository.java index 4fdb65bb0a..854ed7691d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseRepository.java @@ -6,7 +6,7 @@ import androidx.core.util.Consumer; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; import org.thoughtcrime.securesms.keyvalue.PaymentsValues; @@ -30,7 +30,7 @@ class PaymentsRecoveryPhraseRepository { case ENTROPY_CHANGED: Log.i(TAG, "restoreMnemonic: mnemonic resulted in entropy mismatch, flushing cached values"); SignalDatabase.payments().deleteAll(); - ApplicationDependencies.getPayments().closeWallet(); + AppDependencies.getPayments().closeWallet(); updateProfileAndFetchLedger(); break; case ENTROPY_UNCHANGED: @@ -47,9 +47,9 @@ class PaymentsRecoveryPhraseRepository { } private void updateProfileAndFetchLedger() { - ApplicationDependencies.getJobManager() - .startChain(new ProfileUploadJob()) - .then(PaymentLedgerUpdateJob.updateLedger()) - .enqueue(); + AppDependencies.getJobManager() + .startChain(new ProfileUploadJob()) + .then(PaymentLedgerUpdateJob.updateLedger()) + .enqueue(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentViewModel.java index 731d8634ac..2ce16dd0d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/confirm/ConfirmPaymentViewModel.java @@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProvider; import org.signal.core.util.logging.Log; import org.signal.core.util.money.FiatMoney; import org.thoughtcrime.securesms.database.PaymentTable.PaymentTransaction; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.CreatePaymentDetails; import org.thoughtcrime.securesms.payments.FiatMoneyUtil; @@ -201,7 +201,7 @@ final class ConfirmPaymentViewModel extends ViewModel { return modelClass.cast(new ConfirmPaymentViewModel(new ConfirmPaymentState(createPaymentDetails.getPayee(), createPaymentDetails.getAmount(), createPaymentDetails.getNote()), - new ConfirmPaymentRepository(ApplicationDependencies.getPayments().getWallet()))); + new ConfirmPaymentRepository(AppDependencies.getPayments().getWallet()))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/create/CreatePaymentViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/payments/create/CreatePaymentViewModel.java index 21d919baee..38caae8ba7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/create/CreatePaymentViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/create/CreatePaymentViewModel.java @@ -12,7 +12,7 @@ import androidx.lifecycle.ViewModelProvider; import org.signal.core.util.logging.Log; import org.signal.core.util.money.FiatMoney; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.Balance; import org.thoughtcrime.securesms.payments.CreatePaymentDetails; @@ -74,15 +74,15 @@ public class CreatePaymentViewModel extends ViewModel { LiveData> liveExchangeRate = LiveDataUtil.mapAsync(SignalStore.paymentsValues().liveCurrentCurrency(), currency -> { try { - return Optional.ofNullable(ApplicationDependencies.getPayments() - .getCurrencyExchange(true) - .getExchangeRate(currency)); + return Optional.ofNullable(AppDependencies.getPayments() + .getCurrencyExchange(true) + .getExchangeRate(currency)); } catch (IOException e1) { Log.w(TAG, "Unable to get fresh exchange data, falling back to cached", e1); try { - return Optional.ofNullable(ApplicationDependencies.getPayments() - .getCurrencyExchange(false) - .getExchangeRate(currency)); + return Optional.ofNullable(AppDependencies.getPayments() + .getCurrencyExchange(false) + .getExchangeRate(currency)); } catch (IOException e2) { Log.w(TAG, "Unable to get any exchange data", e2); return Optional.empty(); @@ -90,7 +90,7 @@ public class CreatePaymentViewModel extends ViewModel { } }); - inputState.update(liveExchangeRate, (rate, state) -> updateAmount(ApplicationDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE)); + inputState.update(liveExchangeRate, (rate, state) -> updateAmount(AppDependencies.getApplication(), state.updateExchangeRate(rate), AmountKeyboardGlyph.NONE)); } @NonNull LiveData getEnclaveFailure() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsActivity.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsActivity.java index 864da5101c..5fa22dab30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsActivity.java @@ -11,7 +11,7 @@ import androidx.navigation.Navigation; import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob; import org.thoughtcrime.securesms.payments.preferences.details.PaymentDetailsFragmentArgs; import org.thoughtcrime.securesms.payments.preferences.details.PaymentDetailsParcelable; @@ -58,7 +58,7 @@ public class PaymentsActivity extends PassphraseRequiredActivity { dynamicTheme.onResume(this); - ApplicationDependencies.getJobManager() - .add(PaymentLedgerUpdateJob.updateLedger()); + AppDependencies.getJobManager() + .add(PaymentLedgerUpdateJob.updateLedger()); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeRepository.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeRepository.java index 2a434d9ffb..398437dcfb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeRepository.java @@ -5,7 +5,7 @@ import androidx.core.util.Consumer; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.PaymentLedgerUpdateJob; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; import org.thoughtcrime.securesms.jobs.SendPaymentsActivatedJob; @@ -25,11 +25,11 @@ public class PaymentsHomeRepository { SignalExecutors.BOUNDED.execute(() -> { SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(true); try { - ProfileUtil.uploadProfile(ApplicationDependencies.getApplication()); - ApplicationDependencies.getJobManager() - .startChain(PaymentLedgerUpdateJob.updateLedger()) - .then(new SendPaymentsActivatedJob()) - .enqueue(); + ProfileUtil.uploadProfile(AppDependencies.getApplication()); + AppDependencies.getJobManager() + .startChain(PaymentLedgerUpdateJob.updateLedger()) + .then(new SendPaymentsActivatedJob()) + .enqueue(); callback.onComplete(null); } catch (PaymentsRegionException e) { SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(false); @@ -50,7 +50,7 @@ public class PaymentsHomeRepository { private void tryToRestoreProfile() { try { - ProfileUtil.uploadProfile(ApplicationDependencies.getApplication()); + ProfileUtil.uploadProfile(AppDependencies.getApplication()); Log.i(TAG, "Restored profile"); } catch (IOException e) { Log.w(TAG, "Problem uploading profile", e); @@ -60,7 +60,7 @@ public class PaymentsHomeRepository { public void deactivatePayments(@NonNull Consumer consumer) { SignalExecutors.BOUNDED.execute(() -> { SignalStore.paymentsValues().setMobileCoinPaymentsEnabled(false); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); consumer.accept(!SignalStore.paymentsValues().mobileCoinPaymentsEnabled()); }); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeViewModel.java index cc07a0df36..8e76ea155e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsHomeViewModel.java @@ -13,7 +13,7 @@ import org.signal.core.util.logging.Log; import org.signal.core.util.money.FiatMoney; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.settings.SettingHeader; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.PaymentsAvailability; import org.thoughtcrime.securesms.keyvalue.PaymentsValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -284,7 +284,7 @@ public class PaymentsHomeViewModel extends ViewModel { //noinspection ConstantConditions return modelClass.cast(new PaymentsHomeViewModel(new PaymentsHomeRepository(), new PaymentsRepository(), - new CurrencyExchangeRepository(ApplicationDependencies.getPayments()))); + new CurrencyExchangeRepository(AppDependencies.getPayments()))); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/SetCurrencyViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/SetCurrencyViewModel.java index b86e249973..dc495e7c7c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/SetCurrencyViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/SetCurrencyViewModel.java @@ -16,7 +16,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.settings.SettingHeader; import org.thoughtcrime.securesms.components.settings.SettingProgress; import org.thoughtcrime.securesms.components.settings.SingleSelectSetting; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.currency.CurrencyExchange; import org.thoughtcrime.securesms.payments.currency.CurrencyExchangeRepository; @@ -206,7 +206,7 @@ public final class SetCurrencyViewModel extends ViewModel { @Override public @NonNull T create(@NonNull Class modelClass) { //noinspection ConstantConditions - return modelClass.cast(new SetCurrencyViewModel(new CurrencyExchangeRepository(ApplicationDependencies.getPayments()))); + return modelClass.cast(new SetCurrencyViewModel(new CurrencyExchangeRepository(AppDependencies.getPayments()))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/addmoney/PaymentsAddMoneyRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/addmoney/PaymentsAddMoneyRepository.kt index d1baf92704..c72ec4d796 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/addmoney/PaymentsAddMoneyRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/addmoney/PaymentsAddMoneyRepository.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.payments.preferences.addmoney import androidx.annotation.MainThread import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.signal.core.util.Result as SignalResult @@ -15,7 +15,7 @@ internal class PaymentsAddMoneyRepository { } return Single.fromCallable> { - val publicAddress = ApplicationDependencies.getPayments().wallet.mobileCoinPublicAddress + val publicAddress = AppDependencies.payments.wallet.mobileCoinPublicAddress val paymentAddressBase58 = publicAddress.paymentAddressBase58 val paymentAddressUri = publicAddress.paymentAddressUri SignalResult.success(AddressAndUri(paymentAddressBase58, paymentAddressUri)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferViewModel.java index 4a7cbb9eb6..79748f7cc7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/transfer/PaymentsTransferViewModel.java @@ -7,7 +7,7 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.payments.MobileCoinPublicAddress; final class PaymentsTransferViewModel extends ViewModel { @@ -16,7 +16,7 @@ final class PaymentsTransferViewModel extends ViewModel { private final MobileCoinPublicAddress ownAddress; PaymentsTransferViewModel() { - ownAddress = ApplicationDependencies.getPayments().getWallet().getMobileCoinPublicAddress(); + ownAddress = AppDependencies.getPayments().getWallet().getMobileCoinPublicAddress(); } LiveData getAddress() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java b/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java index 562ae64cc5..013e101d44 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/phonenumbers/PhoneNumberFormatter.java @@ -12,7 +12,7 @@ import com.google.i18n.phonenumbers.ShortNumberInfo; import org.signal.core.util.logging.Log; import org.signal.libsignal.protocol.util.Pair; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.signal.core.util.SetUtil; @@ -79,7 +79,7 @@ public class PhoneNumberFormatter { } public static @NonNull String prettyPrint(@NonNull String e164) { - return StringUtil.forceLtr(get(ApplicationDependencies.getApplication()).prettyPrintFormat(e164)); + return StringUtil.forceLtr(get(AppDependencies.getApplication()).prettyPrintFormat(e164)); } public @NonNull String prettyPrintFormat(@NonNull String e164) { @@ -101,7 +101,7 @@ public class PhoneNumberFormatter { } public static int getLocalCountryCode() { - Optional localNumber = get(ApplicationDependencies.getApplication()).localNumber; + Optional localNumber = get(AppDependencies.getApplication()).localNumber; return localNumber != null && localNumber.isPresent() ? localNumber.get().countryCode : 0; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java index 41f3c5ef6d..3b74148976 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java @@ -28,7 +28,7 @@ import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.MainActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.backup.v2.ui.subscription.MessageBackupsTestRestoreActivity; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.lock.v2.SvrConstants; @@ -248,7 +248,7 @@ public class PinRestoreEntryFragment extends LoggingFragment { startActivity(profile); } else { RegistrationUtil.maybeMarkRegistrationComplete(); - ApplicationDependencies.getJobManager().add(new ProfileUploadJob()); + AppDependencies.getJobManager().add(new ProfileUploadJob()); startActivity(MainActivity.clearTop(activity)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt index 6ef87094ac..8bcc0f221c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/SvrRepository.kt @@ -10,7 +10,7 @@ import androidx.annotation.WorkerThread import org.signal.core.util.Stopwatch import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.BuildConfig -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.JobTracker import org.thoughtcrime.securesms.jobs.ReclaimUsernameAndLinkJob import org.thoughtcrime.securesms.jobs.RefreshAttributesJob @@ -39,7 +39,7 @@ object SvrRepository { val TAG = Log.tag(SvrRepository::class.java) - private val svr2: SecureValueRecovery = ApplicationDependencies.getSignalServiceAccountManager().getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) + private val svr2: SecureValueRecovery = AppDependencies.signalServiceAccountManager.getSecureValueRecoveryV2(BuildConfig.SVR2_MRENCLAVE) /** An ordered list of SVR implementations to read from. They should be in priority order, with the most important one listed first. */ private val readImplementations: List = listOf(svr2) @@ -141,21 +141,21 @@ object SvrRepository { if (implementation == svr2) { SignalStore.svr().appendAuthTokenToList(response.authorization.asBasic()) } - ApplicationDependencies.getJobManager().add(ResetSvrGuessCountJob()) + AppDependencies.jobManager.add(ResetSvrGuessCountJob()) stopwatch.split("metadata") - ApplicationDependencies.getJobManager().runSynchronously(StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN) + AppDependencies.jobManager.runSynchronously(StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN) stopwatch.split("account-restore") - ApplicationDependencies - .getJobManager() + AppDependencies + .jobManager .startChain(StorageSyncJob()) .then(ReclaimUsernameAndLinkJob()) .enqueueAndBlockUntilCompletion(TimeUnit.SECONDS.toMillis(10)) stopwatch.split("contact-restore") if (implementation != svr2) { - ApplicationDependencies.getJobManager().add(Svr2MirrorJob()) + AppDependencies.jobManager.add(Svr2MirrorJob()) } stopwatch.stop(TAG) @@ -231,9 +231,9 @@ object SvrRepository { SignalStore.pinValues().keyboardType = keyboardType SignalStore.pinValues().resetPinReminders() - ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.PINS_FOR_ALL) + AppDependencies.megaphoneRepository.markFinished(Megaphones.Event.PINS_FOR_ALL) - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) } else { Log.w(TAG, "[setPin] Failed to set PIN! $overallResponse", true) @@ -274,7 +274,7 @@ object SvrRepository { SignalStore.svr().setMasterKey(masterKey, userPin) SignalStore.pinValues().resetPinReminders() - ApplicationDependencies.getJobManager().add(ResetSvrGuessCountJob()) + AppDependencies.jobManager.add(ResetSvrGuessCountJob()) } else if (hasPinToRestore) { Log.i(TAG, "[onRegistrationComplete] Has a PIN to restore.", true) SignalStore.svr().clearRegistrationLockAndPin() @@ -285,7 +285,7 @@ object SvrRepository { } } - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) } /** @@ -306,7 +306,7 @@ object SvrRepository { operationLock.withLock { SignalStore.svr().optOut() - ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.PINS_FOR_ALL) + AppDependencies.megaphoneRepository.markFinished(Megaphones.Event.PINS_FOR_ALL) bestEffortRefreshAttributes() bestEffortForcePushStorage() @@ -321,7 +321,7 @@ object SvrRepository { check(SignalStore.svr().hasPin() && !SignalStore.svr().hasOptedOut()) { "Must have a PIN to set a registration lock!" } Log.i(TAG, "[enableRegistrationLockForUserWithPin] Enabling registration lock.", true) - ApplicationDependencies.getSignalServiceAccountManager().enableRegistrationLock(SignalStore.svr().getOrCreateMasterKey()) + AppDependencies.signalServiceAccountManager.enableRegistrationLock(SignalStore.svr().getOrCreateMasterKey()) SignalStore.svr().isRegistrationLockEnabled = true Log.i(TAG, "[enableRegistrationLockForUserWithPin] Registration lock successfully enabled.", true) } @@ -335,7 +335,7 @@ object SvrRepository { check(SignalStore.svr().hasPin() && !SignalStore.svr().hasOptedOut()) { "Must have a PIN to disable registration lock!" } Log.i(TAG, "[disableRegistrationLockForUserWithPin] Disabling registration lock.", true) - ApplicationDependencies.getSignalServiceAccountManager().disableRegistrationLock() + AppDependencies.signalServiceAccountManager.disableRegistrationLock() SignalStore.svr().isRegistrationLockEnabled = false Log.i(TAG, "[disableRegistrationLockForUserWithPin] Registration lock successfully disabled.", true) } @@ -370,12 +370,12 @@ object SvrRepository { @WorkerThread private fun bestEffortRefreshAttributes() { - val result = ApplicationDependencies.getJobManager().runSynchronously(RefreshAttributesJob(), TimeUnit.SECONDS.toMillis(10)) + val result = AppDependencies.jobManager.runSynchronously(RefreshAttributesJob(), TimeUnit.SECONDS.toMillis(10)) if (result.isPresent && result.get() == JobTracker.JobState.SUCCESS) { Log.i(TAG, "Attributes were refreshed successfully.", true) } else if (result.isPresent) { Log.w(TAG, "Attribute refresh finished, but was not successful. Enqueuing one for later. (Result: " + result.get() + ")", true) - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) } else { Log.w(TAG, "Job did not finish in the allotted time. It'll finish later.", true) } @@ -383,12 +383,12 @@ object SvrRepository { @WorkerThread private fun bestEffortForcePushStorage() { - val result = ApplicationDependencies.getJobManager().runSynchronously(StorageForcePushJob(), TimeUnit.SECONDS.toMillis(10)) + val result = AppDependencies.jobManager.runSynchronously(StorageForcePushJob(), TimeUnit.SECONDS.toMillis(10)) if (result.isPresent && result.get() == JobTracker.JobState.SUCCESS) { Log.i(TAG, "Storage was force-pushed successfully.", true) } else if (result.isPresent) { Log.w(TAG, "Storage force-pushed finished, but was not successful. Enqueuing one for later. (Result: " + result.get() + ")", true) - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) } else { Log.w(TAG, "Storage fore push did not finish in the allotted time. It'll finish later.", true) } @@ -398,7 +398,7 @@ object SvrRepository { val tokenIsNew = SignalStore.svr().appendAuthTokenToList(credentials.asBasic()) if (tokenIsNew && SignalStore.svr().hasPin()) { - BackupManager(ApplicationDependencies.getApplication()).dataChanged() + BackupManager(AppDependencies.application).dataChanged() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java index 470c32b879..07f8ec95d2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/BackupsPreferenceFragment.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.backup.BackupDialog; import org.thoughtcrime.securesms.backup.BackupEvent; import org.thoughtcrime.securesms.database.NoExternalStorageException; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.LocalBackupJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.permissions.Permissions; @@ -311,6 +311,6 @@ public class BackupsPreferenceFragment extends Fragment { folder.setVisibility(View.GONE); verify.setVisibility(View.GONE); timer.setVisibility(View.GONE); - ApplicationDependencies.getJobManager().cancelAllInQueue(LocalBackupJob.QUEUE); + AppDependencies.getJobManager().cancelAllInQueue(LocalBackupJob.QUEUE); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyViewModel.java index 4bc7caca16..43f27e60d2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/EditProxyViewModel.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.ViewModel; import org.signal.core.util.concurrent.SignalExecutors; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.util.SignalProxyUtil; import org.thoughtcrime.securesms.util.Util; @@ -32,9 +32,8 @@ public class EditProxyViewModel extends ViewModel { this.uiState = BehaviorSubject.create(); this.saveState = BehaviorSubject.createDefault(SaveState.IDLE); this.pipeState = SignalStore.account().getE164() == null ? Flowable.empty() - : ApplicationDependencies.getSignalWebSocket() - .getWebSocketState() - .toFlowable(BackpressureStrategy.LATEST); + : AppDependencies.getWebSocketObserver() + .toFlowable(BackpressureStrategy.LATEST); if (SignalStore.proxy().isProxyEnabled()) { uiState.onNext(UiState.ALL_ENABLED); diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditSelfProfileRepository.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditSelfProfileRepository.java index 5716ab7c4a..92fcb38d37 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditSelfProfileRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditSelfProfileRepository.java @@ -13,7 +13,7 @@ import org.signal.core.util.concurrent.SimpleTask; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.conversation.colors.AvatarColor; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.MultiDeviceProfileContentUpdateJob; import org.thoughtcrime.securesms.jobs.MultiDeviceProfileKeyUpdateJob; import org.thoughtcrime.securesms.jobs.ProfileUploadJob; @@ -140,10 +140,10 @@ public class EditSelfProfileRepository implements EditProfileRepository { } } - ApplicationDependencies.getJobManager() - .startChain(new ProfileUploadJob()) - .then(Arrays.asList(new MultiDeviceProfileKeyUpdateJob(), new MultiDeviceProfileContentUpdateJob())) - .enqueue(); + AppDependencies.getJobManager() + .startChain(new ProfileUploadJob()) + .then(Arrays.asList(new MultiDeviceProfileKeyUpdateJob(), new MultiDeviceProfileContentUpdateJob())) + .enqueue(); RegistrationUtil.maybeMarkRegistrationComplete(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/pnp/WhoCanFindMeByPhoneNumberRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/pnp/WhoCanFindMeByPhoneNumberRepository.kt index a620107d9f..86f3ee9a3e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/pnp/WhoCanFindMeByPhoneNumberRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/pnp/WhoCanFindMeByPhoneNumberRepository.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.profiles.edit.pnp import io.reactivex.rxjava3.core.Completable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.ProfileUploadJob import org.thoughtcrime.securesms.jobs.RefreshAttributesJob import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues @@ -33,9 +33,9 @@ class WhoCanFindMeByPhoneNumberRepository { } } - ApplicationDependencies.getJobManager().add(RefreshAttributesJob()) + AppDependencies.jobManager.add(RefreshAttributesJob()) StorageSyncHelper.scheduleSyncForDataChange() - ApplicationDependencies.getJobManager().add(ProfileUploadJob()) + AppDependencies.jobManager.add(ProfileUploadJob()) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileRepository.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileRepository.java index da0a95a6de..6f8f882cf8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileRepository.java @@ -8,7 +8,7 @@ import androidx.core.util.Consumer; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.MultiDeviceProfileContentUpdateJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.profiles.AvatarHelper; @@ -29,7 +29,7 @@ final class EditProfileRepository { try { ProfileUtil.uploadProfileWithName(context, profileName); SignalDatabase.recipients().setProfileName(Recipient.self().getId(), profileName); - ApplicationDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); callback.accept(Result.SUCCESS); } catch (IOException e) { @@ -44,7 +44,7 @@ final class EditProfileRepository { try { ProfileUtil.uploadProfileWithAbout(context, about, emoji); SignalDatabase.recipients().setAbout(Recipient.self().getId(), about, emoji); - ApplicationDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); callback.accept(Result.SUCCESS); } catch (IOException e) { @@ -60,7 +60,7 @@ final class EditProfileRepository { ProfileUtil.uploadProfileWithAvatar(new StreamDetails(new ByteArrayInputStream(data), contentType, data.length)); AvatarHelper.setAvatar(context, Recipient.self().getId(), new ByteArrayInputStream(data)); SignalStore.misc().setHasEverHadAnAvatar(true); - ApplicationDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); callback.accept(Result.SUCCESS); } catch (IOException e) { @@ -75,7 +75,7 @@ final class EditProfileRepository { try { ProfileUtil.uploadProfileWithAvatar(null); AvatarHelper.delete(context, Recipient.self().getId()); - ApplicationDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceProfileContentUpdateJob()); callback.accept(Result.SUCCESS); } catch (IOException e) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java index c15ca12523..d4559265ea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/EditProfileViewModel.java @@ -14,7 +14,7 @@ import org.signal.core.util.StreamUtil; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.badges.models.Badge; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.RetrieveProfileJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mediasend.Media; @@ -108,7 +108,7 @@ class EditProfileViewModel extends ViewModel { } public boolean isRegisteredAndUpToDate() { - return !TextSecurePreferences.isUnauthorizedReceived(ApplicationDependencies.getApplication()) && SignalStore.account().isRegistered() && !SignalStore.misc().isClientDeprecated(); + return !TextSecurePreferences.isUnauthorizedReceived(AppDependencies.getApplication()) && SignalStore.account().isRegistered() && !SignalStore.misc().isClientDeprecated(); } public boolean isDeprecated() { @@ -170,7 +170,7 @@ class EditProfileViewModel extends ViewModel { about.postValue(recipient.getAbout()); aboutEmoji.postValue(recipient.getAboutEmoji()); badge.postValue(Optional.ofNullable(recipient.getFeaturedBadge())); - renderAvatar(AvatarHelper.getSelfProfileAvatarStream(ApplicationDependencies.getApplication())); + renderAvatar(AvatarHelper.getSelfProfileAvatarStream(AppDependencies.getApplication())); } private void renderAvatar(@Nullable StreamDetails details) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt index cc95cb776b..3056095d5e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt @@ -15,7 +15,7 @@ import org.signal.core.util.Result import org.signal.core.util.isNotNullOrBlank import org.signal.core.util.logging.Log import org.signal.libsignal.usernames.Username -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.profiles.manage.UsernameRepository.UsernameDeleteResult import org.thoughtcrime.securesms.profiles.manage.UsernameRepository.UsernameSetResult @@ -139,7 +139,7 @@ internal class UsernameEditViewModel private constructor(private val mode: Usern * @param userConfirmedResetOk True if the user is submitting this after confirming that they're ok with resetting their username via [Event.NEEDS_CONFIRM_RESET]. */ fun onUsernameSubmitted(userConfirmedResetOk: Boolean) { - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { events.onNext(Event.NETWORK_FAILURE) return } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt index d251542d3f..840459e4c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameRepository.kt @@ -12,7 +12,7 @@ import org.signal.libsignal.usernames.BaseUsernameException import org.signal.libsignal.usernames.Username import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameLinkResetResult import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.AccountValues import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -88,7 +88,7 @@ object UsernameRepository { private const val BASE_URL = "https://signal.me/#eu/" private const val USERNAME_SYNC_ERROR_THRESHOLD = 3 - private val accountManager: SignalServiceAccountManager get() = ApplicationDependencies.getSignalServiceAccountManager() + private val accountManager: SignalServiceAccountManager get() = AppDependencies.signalServiceAccountManager /** * Given a nickname, this will temporarily reserve a matching discriminator that can later be confirmed via [confirmUsernameAndCreateNewLink]. @@ -180,7 +180,7 @@ object UsernameRepository { * Creates or rotates the username link for the local user. */ fun createOrResetUsernameLink(): Single { - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { Log.w(TAG, "[createOrResetUsernameLink] No network! Not making any changes.") return Single.just(UsernameLinkResetResult.NetworkUnavailable) } @@ -269,7 +269,7 @@ object UsernameRepository { fun fetchAciForUsername(username: String): Single { return Single.fromCallable { try { - val aci: ACI = ApplicationDependencies.getSignalServiceAccountManager().getAciByUsername(Username(username)) + val aci: ACI = AppDependencies.signalServiceAccountManager.getAciByUsername(Username(username)) UsernameAciFetchResult.Success(aci) } catch (e: UsernameIsNotAssociatedWithAnAccountException) { Log.w(TAG, "[fetchAciFromUsername] Failed to get ACI for username hash", e) @@ -397,7 +397,7 @@ object UsernameRepository { private fun updateUsernameDisplayForCurrentLinkInternal(updatedUsername: Username): UsernameSetResult { Log.i(TAG, "[updateUsernameDisplayForCurrentLink] Beginning username update...") - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { Log.w(TAG, "[deleteUsernameInternal] No network connection! Not attempting the request.") return UsernameSetResult.NETWORK_ERROR } @@ -428,7 +428,7 @@ object UsernameRepository { private fun confirmUsernameAndCreateNewLinkInternal(username: Username): UsernameSetResult { Log.i(TAG, "[confirmUsernameAndCreateNewLink] Beginning username confirmation...") - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { Log.w(TAG, "[confirmUsernameAndCreateNewLink] No network connection! Not attempting the request.") return UsernameSetResult.NETWORK_ERROR } @@ -464,7 +464,7 @@ object UsernameRepository { @WorkerThread private fun deleteUsernameInternal(): UsernameDeleteResult { - if (!NetworkUtil.isConnected(ApplicationDependencies.getApplication())) { + if (!NetworkUtil.isConnected(AppDependencies.application)) { Log.w(TAG, "[deleteUsernameInternal] No network connection! Not attempting the request.") return UsernameDeleteResult.NETWORK_ERROR } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardRepository.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardRepository.java index ee832801b4..eba04def86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/spoofing/ReviewCardRepository.java @@ -5,12 +5,10 @@ import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.WorkerThread; -import com.annimon.stream.Stream; - import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupChangeException; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupManager; @@ -21,7 +19,6 @@ import org.thoughtcrime.securesms.recipients.RecipientUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import java.io.IOException; -import java.util.HashSet; import java.util.List; import java.util.Objects; @@ -84,7 +81,7 @@ class ReviewCardRepository { if (resolved.isGroup()) throw new AssertionError(); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forDelete(recipientId)); + AppDependencies.getJobManager().add(MultiDeviceMessageRequestResponseJob.forDelete(recipientId)); } ThreadTable threadTable = SignalDatabase.threads(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/providers/BlobContentProvider.java b/app/src/main/java/org/thoughtcrime/securesms/providers/BlobContentProvider.java index ac8c63cb8d..59191292a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/providers/BlobContentProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/providers/BlobContentProvider.java @@ -11,7 +11,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.StreamUtil; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.MemoryFileUtil; import org.thoughtcrime.securesms.util.Util; @@ -35,7 +35,7 @@ public final class BlobContentProvider extends BaseContentProvider { Log.i(TAG, "openFile() called: " + uri); try { - try (InputStream stream = BlobProvider.getInstance().getStream(ApplicationDependencies.getApplication(), uri)) { + try (InputStream stream = BlobProvider.getInstance().getStream(AppDependencies.getApplication(), uri)) { Long fileSize = BlobProvider.getFileSize(uri); if (fileSize == null) { Log.w(TAG, "No file size available"); diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java b/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java index 1ba47d6223..3e4c1a61a3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java +++ b/app/src/main/java/org/thoughtcrime/securesms/push/AccountManagerFactory.java @@ -10,7 +10,7 @@ import com.google.android.gms.security.ProviderInstaller; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.FeatureFlags; import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.api.push.ServiceId.ACI; @@ -45,7 +45,7 @@ public class AccountManagerFactory { int deviceId, @NonNull String password) { - if (ApplicationDependencies.getSignalServiceNetworkAccess().isCensored(e164)) { + if (AppDependencies.getSignalServiceNetworkAccess().isCensored(e164)) { SignalExecutors.BOUNDED.execute(() -> { try { ProviderInstaller.installIfNeeded(context); @@ -55,7 +55,7 @@ public class AccountManagerFactory { }); } - return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164), + return new SignalServiceAccountManager(AppDependencies.getSignalServiceNetworkAccess().getConfiguration(e164), aci, pni, e164, @@ -84,7 +84,7 @@ public class AccountManagerFactory { }); } - return new SignalServiceAccountManager(ApplicationDependencies.getSignalServiceNetworkAccess().getConfiguration(e164), + return new SignalServiceAccountManager(AppDependencies.getSignalServiceNetworkAccess().getConfiguration(e164), null, null, e164, diff --git a/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RateLimitUtil.java b/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RateLimitUtil.java index a0d9a0963b..4e4bc9992a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RateLimitUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RateLimitUtil.java @@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.PushGroupSendJob; import org.thoughtcrime.securesms.jobs.IndividualSendJob; @@ -34,7 +34,7 @@ public final class RateLimitUtil { SignalDatabase.messages().clearRateLimitStatus(messageIds); - ApplicationDependencies.getJobManager().update((job) -> { + AppDependencies.getJobManager().update((job) -> { if (job.getFactoryKey().equals(IndividualSendJob.KEY) && messageIds.contains(IndividualSendJob.getMessageId(job.getSerializedData()))) { return job.withNextBackoffInterval(0); } else if (job.getFactoryKey().equals(PushGroupSendJob.KEY) && messageIds.contains(PushGroupSendJob.getMessageId(job.getSerializedData()))) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RecaptchaProofActivity.java b/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RecaptchaProofActivity.java index 3a6af56c57..7c1bcd6508 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RecaptchaProofActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ratelimit/RecaptchaProofActivity.java @@ -16,7 +16,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.Util; @@ -100,7 +100,7 @@ public class RecaptchaProofActivity extends PassphraseRequiredActivity { try { for (int i = 0; i < 3; i++) { try { - ApplicationDependencies.getSignalServiceAccountManager().submitRateLimitRecaptchaChallenge(challenge, token); + AppDependencies.getSignalServiceAccountManager().submitRateLimitRecaptchaChallenge(challenge, token); RateLimitUtil.retryAllRateLimitedMessages(this); Log.i(TAG, "Successfully completed reCAPTCHA."); return new TokenResult(true, true); diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsRepository.kt index 51ade0c42b..2ca2f35787 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/ReactionsRepository.kt @@ -8,14 +8,14 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.ReactionRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient class ReactionsRepository { fun getReactions(messageId: MessageId): Observable> { return Observable.create { emitter: ObservableEmitter> -> - val databaseObserver: DatabaseObserver = ApplicationDependencies.getDatabaseObserver() + val databaseObserver: DatabaseObserver = AppDependencies.databaseObserver val messageObserver = DatabaseObserver.MessageObserver { reactionMessageId -> if (reactionMessageId == messageId) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java index 441afa5b76..baf428622c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/reactions/any/ReactWithAnyEmojiViewModel.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.components.emoji.EmojiPageModel; import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter; import org.thoughtcrime.securesms.components.emoji.RecentEmojiPageModel; import org.thoughtcrime.securesms.database.model.MessageId; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.emoji.EmojiCategory; import org.thoughtcrime.securesms.keyboard.emoji.EmojiCategoryMappingModel; import org.thoughtcrime.securesms.keyboard.emoji.RecentsMappingModel; @@ -131,7 +131,7 @@ public final class ReactWithAnyEmojiViewModel extends ViewModel { } private static @NonNull String getStartingKey() { - if (RecentEmojiPageModel.hasRecents(ApplicationDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY)) { + if (RecentEmojiPageModel.hasRecents(AppDependencies.getApplication(), TextSecurePreferences.RECENT_STORAGE_KEY)) { return RecentEmojiPageModel.KEY; } else { return EmojiCategory.PEOPLE.getKey(); @@ -167,7 +167,7 @@ public final class ReactWithAnyEmojiViewModel extends ViewModel { @Override public @NonNull T create(@NonNull Class modelClass) { //noinspection ConstantConditions - return modelClass.cast(new ReactWithAnyEmojiViewModel(repository, messageId, isMms, new EmojiSearchRepository(ApplicationDependencies.getApplication()))); + return modelClass.cast(new ReactWithAnyEmojiViewModel(repository, messageId, isMms, new EmojiSearchRepository(AppDependencies.getApplication()))); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt index 7675f7cfe9..9ee0a5abaa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt @@ -39,7 +39,7 @@ import org.thoughtcrime.securesms.database.model.GroupRecord import org.thoughtcrime.securesms.database.model.ProfileAvatarFileDetails import org.thoughtcrime.securesms.database.model.RecipientRecord import org.thoughtcrime.securesms.database.model.databaseprotos.RecipientExtras -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.notifications.NotificationChannels @@ -460,7 +460,7 @@ class Recipient( /** The name to show for a group. It will be the group name if present, otherwise we default to a list of shortened member names. */ fun getGroupName(context: Context): String? { return if (groupIdValue != null && Util.isEmpty(groupName)) { - val selfId = ApplicationDependencies.getRecipientCache().getSelfId() + val selfId = AppDependencies.recipientCache.getSelfId() val others = participantIdsValue .filter { id: RecipientId -> id != selfId } .take(MAX_MEMBER_NAMES) @@ -666,7 +666,7 @@ class Recipient( /** Returns a live, observable copy of this recipient. */ fun live(): LiveRecipient { - return ApplicationDependencies.getRecipientCache().getLive(id) + return AppDependencies.recipientCache.getLive(id) } enum class HiddenState(private val value: Int) { @@ -863,7 +863,7 @@ class Recipient( @JvmStatic @AnyThread fun live(id: RecipientId): LiveRecipient { - return ApplicationDependencies.getRecipientCache().getLive(id) + return AppDependencies.recipientCache.getLive(id) } /** @@ -1077,11 +1077,11 @@ class Recipient( @JvmStatic fun self(): Recipient { - return ApplicationDependencies.getRecipientCache().getSelf() + return AppDependencies.recipientCache.getSelf() } /** Whether we've set a recipient for 'self' yet. We do this during registration. */ val isSelfSet: Boolean - get() = ApplicationDependencies.getRecipientCache().getSelfId() != null + get() = AppDependencies.recipientCache.getSelfId() != null } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java index 8e5bfec1c7..314c38c3d1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/RecipientUtil.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.database.RecipientTable.RegisteredState; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupChangeBusyException; import org.thoughtcrime.securesms.groups.GroupChangeException; import org.thoughtcrime.securesms.groups.GroupChangeFailedException; @@ -175,12 +175,12 @@ public class RecipientUtil { if (recipient.isSystemContact() || recipient.isProfileSharing() || isProfileSharedViaGroup(recipient)) { SignalDatabase.recipients().setProfileSharing(recipient.getId(), false); - ApplicationDependencies.getJobManager().startChain(new RefreshOwnProfileJob()) - .then(new RotateProfileKeyJob()) - .enqueue(); + AppDependencies.getJobManager().startChain(new RefreshOwnProfileJob()) + .then(new RotateProfileKeyJob()) + .enqueue(); } - ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob()); StorageSyncHelper.scheduleSyncForDataChange(); } @@ -193,7 +193,7 @@ public class RecipientUtil { SignalDatabase.recipients().setBlocked(recipient.getId(), false); SignalDatabase.recipients().setProfileSharing(recipient.getId(), true); - ApplicationDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob()); + AppDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob()); StorageSyncHelper.scheduleSyncForDataChange(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/about/AboutSheetRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/about/AboutSheetRepository.kt index 22650f7f81..148fe727aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/about/AboutSheetRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/about/AboutSheetRepository.kt @@ -9,7 +9,7 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.thoughtcrime.securesms.database.IdentityTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId class AboutSheetRepository { @@ -21,7 +21,7 @@ class AboutSheetRepository { fun getVerified(recipientId: RecipientId): Single { return Single.fromCallable { - val identityRecord = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId) + val identityRecord = AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipientId) identityRecord.isPresent && identityRecord.get().verifiedStatus == IdentityTable.VerifiedStatus.VERIFIED }.subscribeOn(Schedulers.io()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java index f08efa7f1b..e2528c3232 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupChangeException; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.GroupManager; @@ -55,7 +55,7 @@ final class RecipientDialogRepository { void getIdentity(@NonNull Consumer callback) { SignalExecutors.BOUNDED.execute( - () -> callback.accept(ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId).orElse(null))); + () -> callback.accept(AppDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId).orElse(null))); } void getRecipient(@NonNull RecipientCallback recipientCallback) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java index 66b1daf6af..5308c136a3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationRepository.java @@ -22,7 +22,7 @@ import org.thoughtcrime.securesms.crypto.storage.SignalServiceAccountDataStoreIm import org.thoughtcrime.securesms.database.IdentityTable; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.jobs.PreKeysSyncJob; @@ -105,7 +105,7 @@ public final class RegistrationRepository { try { registerAccountInternal(registrationData, response, setRegistrationLockEnabled); - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); jobManager.add(new DirectoryRefreshJob(false)); jobManager.add(new RotateCertificateJob()); @@ -135,16 +135,16 @@ public final class RegistrationRepository { SignalStore.account().setAci(aci); SignalStore.account().setPni(pni); - ApplicationDependencies.resetProtocolStores(); + AppDependencies.resetProtocolStores(); - ApplicationDependencies.getProtocolStore().aci().sessions().archiveAllSessions(); - ApplicationDependencies.getProtocolStore().pni().sessions().archiveAllSessions(); + AppDependencies.getProtocolStore().aci().sessions().archiveAllSessions(); + AppDependencies.getProtocolStore().pni().sessions().archiveAllSessions(); SenderKeyUtil.clearAllState(); - SignalServiceAccountDataStoreImpl aciProtocolStore = ApplicationDependencies.getProtocolStore().aci(); + SignalServiceAccountDataStoreImpl aciProtocolStore = AppDependencies.getProtocolStore().aci(); PreKeyMetadataStore aciMetadataStore = SignalStore.account().aciPreKeys(); - SignalServiceAccountDataStoreImpl pniProtocolStore = ApplicationDependencies.getProtocolStore().pni(); + SignalServiceAccountDataStoreImpl pniProtocolStore = AppDependencies.getProtocolStore().pni(); PreKeyMetadataStore pniMetadataStore = SignalStore.account().pniPreKeys(); storeSignedAndLastResortPreKeys(aciProtocolStore, aciMetadataStore, response.getAciPreKeyCollection()); @@ -158,7 +158,7 @@ public final class RegistrationRepository { recipientTable.linkIdsForSelf(aci, pni, registrationData.getE164()); recipientTable.setProfileKey(selfId, registrationData.getProfileKey()); - ApplicationDependencies.getRecipientCache().clearSelf(); + AppDependencies.getRecipientCache().clearSelf(); SignalStore.account().setE164(registrationData.getE164()); SignalStore.account().setFcmToken(registrationData.getFcmToken()); @@ -176,8 +176,8 @@ public final class RegistrationRepository { SvrRepository.onRegistrationComplete(response.getMasterKey(), response.getPin(), hasPin, setRegistrationLockEnabled); - ApplicationDependencies.closeConnections(); - ApplicationDependencies.getIncomingMessageObserver(); + AppDependencies.resetNetwork(); + AppDependencies.getIncomingMessageObserver(); PreKeysSyncJob.enqueue(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java index a05f052e70..ac78d5c252 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/RegistrationUtil.java @@ -1,11 +1,10 @@ package org.thoughtcrime.securesms.registration; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob; -import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues; import org.thoughtcrime.securesms.keyvalue.PhoneNumberPrivacyValues.PhoneNumberDiscoverabilityMode; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.Recipient; @@ -35,10 +34,10 @@ public final class RegistrationUtil { SignalStore.phoneNumberPrivacy().setPhoneNumberDiscoverabilityMode(PhoneNumberDiscoverabilityMode.DISCOVERABLE); } - ApplicationDependencies.getJobManager().startChain(new RefreshAttributesJob()) - .then(new StorageSyncJob()) - .then(new DirectoryRefreshJob(false)) - .enqueue(); + AppDependencies.getJobManager().startChain(new RefreshAttributesJob()) + .then(new StorageSyncJob()) + .then(new DirectoryRefreshJob(false)) + .enqueue(); } else if (!SignalStore.registrationValues().isRegistrationComplete()) { Log.i(TAG, "Registration is not yet complete.", new Throwable()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationCompleteFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationCompleteFragment.kt index 14e24629e6..20fe837768 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationCompleteFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationCompleteFragment.kt @@ -11,7 +11,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.LoggingFragment import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceProfileContentUpdateJob import org.thoughtcrime.securesms.jobs.MultiDeviceProfileKeyUpdateJob import org.thoughtcrime.securesms.jobs.ProfileUploadJob @@ -56,7 +56,7 @@ class RegistrationCompleteFragment : LoggingFragment() { Log.i(TAG, "Pin restore flow not required. Profile name: $isProfileNameEmpty | Profile avatar: $isAvatarEmpty | Needs PIN: $needsPin") if (!needsProfile && !needsPin) { - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .startChain(ProfileUploadJob()) .then(listOf(MultiDeviceProfileKeyUpdateJob(), MultiDeviceProfileContentUpdateJob())) .enqueue() diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java index 1298784b9f..abfe9a8301 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/RegistrationLockFragment.java @@ -7,7 +7,7 @@ import androidx.navigation.Navigation; import org.signal.core.util.concurrent.SimpleTask; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.ReclaimUsernameAndLinkJob; import org.thoughtcrime.securesms.jobs.StorageAccountRestoreJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob; @@ -50,10 +50,10 @@ public final class RegistrationLockFragment extends BaseRegistrationLockFragment Stopwatch stopwatch = new Stopwatch("RegistrationLockRestore"); - ApplicationDependencies.getJobManager().runSynchronously(new StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN); + AppDependencies.getJobManager().runSynchronously(new StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN); stopwatch.split("AccountRestore"); - ApplicationDependencies + AppDependencies .getJobManager() .startChain(new StorageSyncJob()) .then(new ReclaimUsernameAndLinkJob()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/SignalStrengthPhoneStateListener.java b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/SignalStrengthPhoneStateListener.java index a751313473..a21eb99994 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/SignalStrengthPhoneStateListener.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/fragments/SignalStrengthPhoneStateListener.java @@ -16,7 +16,7 @@ import androidx.lifecycle.DefaultLifecycleObserver; import androidx.lifecycle.LifecycleOwner; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.util.Debouncer; // TODO [nicholas]: move to v2 package and make package-private. convert to Kotlin @@ -66,14 +66,14 @@ public final class SignalStrengthPhoneStateListener extends PhoneStateListener @Override public void onResume(@NonNull LifecycleOwner owner) { - TelephonyManager telephonyManager = (TelephonyManager) ApplicationDependencies.getApplication().getSystemService(Context.TELEPHONY_SERVICE); + TelephonyManager telephonyManager = (TelephonyManager) AppDependencies.getApplication().getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(this, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); Log.i(TAG, "Listening to cell phone signal strength changes"); } @Override public void onPause(@NonNull LifecycleOwner owner) { - TelephonyManager telephonyManager = (TelephonyManager) ApplicationDependencies.getApplication().getSystemService(Context.TELEPHONY_SERVICE); + TelephonyManager telephonyManager = (TelephonyManager) AppDependencies.getApplication().getSystemService(Context.TELEPHONY_SERVICE); telephonyManager.listen(this, PhoneStateListener.LISTEN_NONE); Log.i(TAG, "Stopped listening to cell phone signal strength changes"); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/data/RegistrationRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/data/RegistrationRepository.kt index be0c6f8235..837c4fc3aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/data/RegistrationRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/data/RegistrationRepository.kt @@ -29,7 +29,7 @@ import org.thoughtcrime.securesms.crypto.storage.PreKeyMetadataStore import org.thoughtcrime.securesms.crypto.storage.SignalServiceAccountDataStoreImpl import org.thoughtcrime.securesms.database.IdentityTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.gcm.FcmUtil import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob import org.thoughtcrime.securesms.jobs.PreKeysSyncJob @@ -165,16 +165,16 @@ object RegistrationRepository { SignalStore.account().setAci(aci) SignalStore.account().setPni(pni) - ApplicationDependencies.resetProtocolStores() + AppDependencies.resetProtocolStores() - ApplicationDependencies.getProtocolStore().aci().sessions().archiveAllSessions() - ApplicationDependencies.getProtocolStore().pni().sessions().archiveAllSessions() + AppDependencies.protocolStore.aci().sessions().archiveAllSessions() + AppDependencies.protocolStore.pni().sessions().archiveAllSessions() SenderKeyUtil.clearAllState() - val aciProtocolStore = ApplicationDependencies.getProtocolStore().aci() + val aciProtocolStore = AppDependencies.protocolStore.aci() val aciMetadataStore = SignalStore.account().aciPreKeys - val pniProtocolStore = ApplicationDependencies.getProtocolStore().pni() + val pniProtocolStore = AppDependencies.protocolStore.pni() val pniMetadataStore = SignalStore.account().pniPreKeys storeSignedAndLastResortPreKeys(aciProtocolStore, aciMetadataStore, aciPreKeyCollection) @@ -188,7 +188,7 @@ object RegistrationRepository { recipientTable.linkIdsForSelf(aci, pni, registrationData.e164) recipientTable.setProfileKey(selfId, registrationData.profileKey) - ApplicationDependencies.getRecipientCache().clearSelf() + AppDependencies.recipientCache.clearSelf() SignalStore.account().setE164(registrationData.e164) SignalStore.account().fcmToken = registrationData.fcmToken @@ -206,11 +206,11 @@ object RegistrationRepository { SvrRepository.onRegistrationComplete(response.masterKey, response.pin, hasPin, reglockEnabled) - ApplicationDependencies.closeConnections() - ApplicationDependencies.getIncomingMessageObserver() + AppDependencies.resetNetwork() + AppDependencies.incomingMessageObserver PreKeysSyncJob.enqueue() - val jobManager = ApplicationDependencies.getJobManager() + val jobManager = AppDependencies.jobManager jobManager.add(DirectoryRefreshJob(false)) jobManager.add(RotateCertificateJob()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/ui/RegistrationV2ViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/ui/RegistrationV2ViewModel.kt index 01e3a06342..1a37349d7f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/v2/ui/RegistrationV2ViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/v2/ui/RegistrationV2ViewModel.kt @@ -20,7 +20,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.signal.core.util.isNotNullOrBlank import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceProfileContentUpdateJob import org.thoughtcrime.securesms.jobs.MultiDeviceProfileKeyUpdateJob import org.thoughtcrime.securesms.jobs.ProfileUploadJob @@ -596,7 +596,7 @@ class RegistrationV2ViewModel : ViewModel() { } fun completeRegistration() { - ApplicationDependencies.getJobManager().startChain(ProfileUploadJob()).then(listOf(MultiDeviceProfileKeyUpdateJob(), MultiDeviceProfileContentUpdateJob())).enqueue() + AppDependencies.jobManager.startChain(ProfileUploadJob()).then(listOf(MultiDeviceProfileKeyUpdateJob(), MultiDeviceProfileContentUpdateJob())).enqueue() RegistrationUtil.maybeMarkRegistrationComplete() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/registration/viewmodel/RegistrationViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/registration/viewmodel/RegistrationViewModel.java index a42a29f055..a52ba809e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/registration/viewmodel/RegistrationViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/registration/viewmodel/RegistrationViewModel.java @@ -11,7 +11,7 @@ import androidx.savedstate.SavedStateRegistryOwner; import org.signal.core.util.Stopwatch; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.ReclaimUsernameAndLinkJob; import org.thoughtcrime.securesms.jobs.StorageAccountRestoreJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob; @@ -396,10 +396,10 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel { Stopwatch stopwatch = new Stopwatch("ReRegisterRestore"); - ApplicationDependencies.getJobManager().runSynchronously(new StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN); + AppDependencies.getJobManager().runSynchronously(new StorageAccountRestoreJob(), StorageAccountRestoreJob.LIFESPAN); stopwatch.split("AccountRestore"); - ApplicationDependencies + AppDependencies .getJobManager() .startChain(new StorageSyncJob()) .then(new ReclaimUsernameAndLinkJob()) @@ -451,8 +451,8 @@ public final class RegistrationViewModel extends BaseRegistrationViewModel { //noinspection ConstantConditions return modelClass.cast(new RegistrationViewModel(handle, isReregister, - new VerifyAccountRepository(ApplicationDependencies.getApplication()), - new RegistrationRepository(ApplicationDependencies.getApplication()))); + new VerifyAccountRepository(AppDependencies.getApplication()), + new RegistrationRepository(AppDependencies.getApplication()))); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageManager.java b/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageManager.java index 79ecfde489..9a3b6e1a3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageManager.java @@ -14,7 +14,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.AttachmentTable; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.service.TimedEventManager; /** @@ -79,7 +79,7 @@ public class ViewOnceMessageManager extends TimedEventManager { if (message.isPresent()) { - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(message.get().getThreadId(), observer); + AppDependencies.getDatabaseObserver().registerConversationObserver(message.get().getThreadId(), observer); } onMessageRetrieved(message); @@ -41,7 +41,7 @@ class ViewOnceMessageViewModel extends ViewModel { @Override protected void onCleared() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer); + AppDependencies.getDatabaseObserver().unregisterObserver(observer); } private void onMessageRetrieved(@NonNull Optional optionalMessage) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/s3/S3.kt b/app/src/main/java/org/thoughtcrime/securesms/s3/S3.kt index 50b8baf3d1..3f5c2c7e46 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/s3/S3.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/s3/S3.kt @@ -8,7 +8,7 @@ import okio.HashingSink import okio.sink import org.signal.core.util.Hex import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.EncryptedStreamUtils import org.thoughtcrime.securesms.util.JsonUtils import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException @@ -31,7 +31,7 @@ import java.util.regex.Pattern object S3 { private val TAG = Log.tag(S3::class.java) - private val okHttpClient = ApplicationDependencies.getSignalOkHttpClient() + private val okHttpClient = AppDependencies.signalOkHttpClient private const val S3_BASE = "https://updates2.signal.org" const val DYNAMIC_PATH = "/dynamic" diff --git a/app/src/main/java/org/thoughtcrime/securesms/safety/SafetyNumberBottomSheetRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/safety/SafetyNumberBottomSheetRepository.kt index a21ed64165..39677d68f5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/safety/SafetyNumberBottomSheetRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/safety/SafetyNumberBottomSheetRepository.kt @@ -12,7 +12,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DistributionListId import org.thoughtcrime.securesms.database.model.DistributionListRecord import org.thoughtcrime.securesms.database.model.IdentityRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.stories.Stories @@ -28,7 +28,7 @@ class SafetyNumberBottomSheetRepository { */ fun getIdentityRecord(recipientId: RecipientId): Maybe { return Single.fromCallable { - ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId) + AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipientId) }.flatMapMaybe { if (it.isPresent) { Maybe.just(it.get()) @@ -171,7 +171,7 @@ class SafetyNumberBottomSheetRepository { val recipientObservables: List> = recipients.map { Recipient.observable(it).switchMap { recipient -> Observable.fromCallable { - val record = ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipient.id) + val record = AppDependencies.protocolStore.aci().identities().getIdentityRecord(recipient.id) ResolvedIdentity(recipient, record) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java b/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java index 8e3314b326..eb99ddde74 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java @@ -49,7 +49,7 @@ import org.signal.imageeditor.core.renderers.MultiLineTextRenderer; import org.signal.libsignal.protocol.util.Pair; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.animation.ResizeAnimation; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.fonts.FontTypefaceProvider; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mediasend.MediaSendPageFragment; @@ -592,7 +592,7 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu FaceDetector detector = new AndroidFaceDetector(); Point size = model.getOutputSizeMaxWidth(1000); - Bitmap render = model.render(ApplicationDependencies.getApplication(), size, new FontTypefaceProvider()); + Bitmap render = model.render(AppDependencies.getApplication(), size, new FontTypefaceProvider()); try { return new FaceDetectionResult(detector.detect(render), new Point(render.getWidth(), render.getHeight()), inverseCropPosition); } finally { diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/AnalogClockStickerRenderer.kt b/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/AnalogClockStickerRenderer.kt index 28c9c2e697..c3e3c8a13d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/AnalogClockStickerRenderer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/AnalogClockStickerRenderer.kt @@ -8,7 +8,7 @@ import org.signal.imageeditor.core.Bounds import org.signal.imageeditor.core.RendererContext import org.signal.imageeditor.core.SelectableRenderer import org.signal.imageeditor.core.renderers.InvalidateableRenderer -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies /** * Analog clock sticker renderer for the image editor. @@ -19,7 +19,7 @@ class AnalogClockStickerRenderer val style: AnalogClockStickerDrawable.Style = AnalogClockStickerDrawable.Style.STANDARD ) : InvalidateableRenderer(), SelectableRenderer, TappableRenderer { - private val clockStickerDrawable = AnalogClockStickerDrawable(ApplicationDependencies.getApplication()) + private val clockStickerDrawable = AnalogClockStickerDrawable(AppDependencies.application) private val insetBounds = Rect( Bounds.FULL_BOUNDS.left.toInt(), Bounds.FULL_BOUNDS.top.toInt(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/DigitalClockStickerRenderer.kt b/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/DigitalClockStickerRenderer.kt index ea7b86cd33..81b3b3dcfd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/DigitalClockStickerRenderer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/stickers/DigitalClockStickerRenderer.kt @@ -8,7 +8,7 @@ import org.signal.imageeditor.core.Bounds import org.signal.imageeditor.core.RendererContext import org.signal.imageeditor.core.SelectableRenderer import org.signal.imageeditor.core.renderers.InvalidateableRenderer -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies /** * Analog clock sticker renderer for the image editor. @@ -19,7 +19,7 @@ class DigitalClockStickerRenderer val style: DigitalClockStickerDrawable.Style = DigitalClockStickerDrawable.Style.LIGHT_NO_BG ) : InvalidateableRenderer(), SelectableRenderer, TappableRenderer { - private val clockStickerDrawable = DigitalClockStickerDrawable(ApplicationDependencies.getApplication()) + private val clockStickerDrawable = DigitalClockStickerDrawable(AppDependencies.application) private val insetBounds = Rect( Bounds.FULL_BOUNDS.left.toInt(), Bounds.FULL_BOUNDS.top.toInt(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/search/SearchRepository.java b/app/src/main/java/org/thoughtcrime/securesms/search/SearchRepository.java index c70ca8c52f..f6079499fc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/search/SearchRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/search/SearchRepository.java @@ -32,7 +32,7 @@ import org.thoughtcrime.securesms.database.model.Mention; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.ThreadRecord; import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.Util; @@ -72,7 +72,7 @@ public class SearchRepository { private final Executor serialExecutor; public SearchRepository(@NonNull String noteToSelfTitle) { - this.context = ApplicationDependencies.getApplication().getApplicationContext(); + this.context = AppDependencies.getApplication().getApplicationContext(); this.noteToSelfTitle = noteToSelfTitle; this.searchDatabase = SignalDatabase.messageSearch(); this.threadTable = SignalDatabase.threads(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/AnalyzeDatabaseAlarmListener.kt b/app/src/main/java/org/thoughtcrime/securesms/service/AnalyzeDatabaseAlarmListener.kt index 779b662e81..debe8b6e4b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/AnalyzeDatabaseAlarmListener.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/AnalyzeDatabaseAlarmListener.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.service import android.content.Context -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.AnalyzeDatabaseJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.toMillis @@ -35,7 +35,7 @@ class AnalyzeDatabaseAlarmListener : PersistentAlarmManagerListener() { } override fun onAlarm(context: Context, scheduledTime: Long): Long { - ApplicationDependencies.getJobManager().add(AnalyzeDatabaseJob()) + AppDependencies.jobManager.add(AnalyzeDatabaseJob()) val nextTime = getNextTime() SignalStore.misc().nextDatabaseAnalysisTime = nextTime diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/BootReceiver.java b/app/src/main/java/org/thoughtcrime/securesms/service/BootReceiver.java index 8bb576f702..082bd9e356 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/BootReceiver.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/BootReceiver.java @@ -4,13 +4,13 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.MessageFetchJob; public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - ApplicationDependencies.getJobManager().add(new MessageFetchJob()); + AppDependencies.getJobManager().add(new MessageFetchJob()); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/DeletedCallEventManager.kt b/app/src/main/java/org/thoughtcrime/securesms/service/DeletedCallEventManager.kt index 502a7a54d2..48b86cfc3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/DeletedCallEventManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/DeletedCallEventManager.kt @@ -7,7 +7,7 @@ import android.content.Intent import androidx.annotation.WorkerThread import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.TimeUnit /** @@ -64,7 +64,7 @@ class DeletedCallEventManager( override fun onReceive(context: Context?, intent: Intent?) { Log.d(TAG, "onReceive()") - ApplicationDependencies.getDeletedCallEventManager().scheduleIfNecessary() + AppDependencies.deletedCallEventManager.scheduleIfNecessary() } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/DirectoryRefreshListener.java b/app/src/main/java/org/thoughtcrime/securesms/service/DirectoryRefreshListener.java index f12b810988..d95f988e4c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/DirectoryRefreshListener.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/DirectoryRefreshListener.java @@ -2,9 +2,8 @@ package org.thoughtcrime.securesms.service; import android.content.Context; -import android.content.Intent; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.util.FeatureFlags; @@ -22,7 +21,7 @@ public class DirectoryRefreshListener extends PersistentAlarmManagerListener { @Override protected long onAlarm(Context context, long scheduledTime) { if (scheduledTime != 0 && SignalStore.account().isRegistered()) { - ApplicationDependencies.getJobManager().add(new DirectoryRefreshJob(true)); + AppDependencies.getJobManager().add(new DirectoryRefreshJob(true)); } long newTime; diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/ExpirationListener.java b/app/src/main/java/org/thoughtcrime/securesms/service/ExpirationListener.java index 80eb8aed8e..3ab9c9bef2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/ExpirationListener.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/ExpirationListener.java @@ -7,13 +7,13 @@ import android.content.Context; import android.content.Intent; import org.signal.core.util.PendingIntentFlags; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; public class ExpirationListener extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - ApplicationDependencies.getExpiringMessageManager().checkSchedule(); + AppDependencies.getExpiringMessageManager().checkSchedule(); } public static void setAlarm(Context context, long waitTimeMillis) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringStoriesManager.kt b/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringStoriesManager.kt index 98667b0016..2898fd237b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringStoriesManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/ExpiringStoriesManager.kt @@ -7,7 +7,7 @@ import android.content.Intent import androidx.annotation.WorkerThread import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import java.util.concurrent.TimeUnit @@ -66,7 +66,7 @@ class ExpiringStoriesManager( override fun onReceive(context: Context?, intent: Intent?) { Log.d(TAG, "onReceive()") - ApplicationDependencies.getExpireStoriesManager().scheduleIfNecessary() + AppDependencies.expireStoriesManager.scheduleIfNecessary() } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/KeyCachingService.java b/app/src/main/java/org/thoughtcrime/securesms/service/KeyCachingService.java index 6b1d0049e2..5d23ff3668 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/KeyCachingService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/KeyCachingService.java @@ -41,7 +41,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.crypto.InvalidPassphraseException; import org.thoughtcrime.securesms.crypto.MasterSecret; import org.thoughtcrime.securesms.crypto.MasterSecretUtil; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.migrations.ApplicationMigrations; import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.util.DynamicLanguage; @@ -124,7 +124,7 @@ public class KeyCachingService extends Service { @Override protected Void doInBackground(Void... params) { if (!ApplicationMigrations.isUpdate(KeyCachingService.this)) { - ApplicationDependencies.getMessageNotifier().updateNotification(KeyCachingService.this); + AppDependencies.getMessageNotifier().updateNotification(KeyCachingService.this); } return null; } @@ -197,7 +197,7 @@ public class KeyCachingService extends Service { new AsyncTask() { @Override protected Void doInBackground(Void... params) { - ApplicationDependencies.getMessageNotifier().updateNotification(KeyCachingService.this); + AppDependencies.getMessageNotifier().updateNotification(KeyCachingService.this); return null; } }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); @@ -228,7 +228,7 @@ public class KeyCachingService extends Service { } private static void startTimeoutIfAppropriate(@NonNull Context context) { - boolean appVisible = ApplicationDependencies.getAppForegroundObserver().isForegrounded(); + boolean appVisible = AppDependencies.getAppForegroundObserver().isForegrounded(); boolean secretSet = KeyCachingService.masterSecret != null; boolean timeoutEnabled = TextSecurePreferences.isPassphraseTimeoutEnabled(context); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java index 2a664e6bcb..87822fa4fa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.PendingRetryReceiptCache; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.PendingRetryReceiptModel; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.concurrent.TimeUnit; @@ -35,7 +35,7 @@ public final class PendingRetryReceiptManager extends TimedEventManager ApplicationDependencies.getSignalCallManager().denyCall() - ACTION_HANGUP -> ApplicationDependencies.getSignalCallManager().localHangup() + ACTION_DENY -> AppDependencies.signalCallManager.denyCall() + ACTION_HANGUP -> AppDependencies.signalCallManager.localHangup() } } } @@ -402,13 +402,13 @@ class ActiveCallManager( fun stop() { keepRunning = false ThreadUtil.cancelRunnableOnMain(this) - ApplicationDependencies.getIncomingMessageObserver().removeKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN) + AppDependencies.incomingMessageObserver.removeKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN) } @MainThread override fun run() { if (keepRunning) { - ApplicationDependencies.getIncomingMessageObserver().registerKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN) + AppDependencies.incomingMessageObserver.registerKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN) ThreadUtil.runOnMainDelayed(this, REQUEST_WEBSOCKET_STAY_OPEN_DELAY.inWholeMilliseconds) } } @@ -419,7 +419,7 @@ class ActiveCallManager( val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager val activeNetworkInfo = connectivityManager.activeNetworkInfo - ApplicationDependencies.getSignalCallManager().apply { + AppDependencies.signalCallManager.apply { networkChange(activeNetworkInfo != null && activeNetworkInfo.isConnected) dataModeUpdate() } @@ -429,7 +429,7 @@ class ActiveCallManager( private class PowerButtonReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (Intent.ACTION_SCREEN_OFF == intent.action) { - ApplicationDependencies.getSignalCallManager().screenOff() + AppDependencies.signalCallManager.screenOff() } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnection.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnection.kt index ca8b34046c..af44fa6594 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnection.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnection.kt @@ -7,7 +7,7 @@ import android.telecom.Connection import androidx.annotation.RequiresApi import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.WebRtcCallActivity -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.webrtc.CallNotificationBuilder @@ -48,7 +48,7 @@ class AndroidCallConnection( val activeDevice = state.route.toDevices().firstOrNull() ?: SignalAudioManager.AudioDevice.EARPIECE val availableDevices = state.supportedRouteMask.toDevices() - ApplicationDependencies.getSignalCallManager().onAudioDeviceChanged(activeDevice, availableDevices) + AppDependencies.signalCallManager.onAudioDeviceChanged(activeDevice, availableDevices) if (needToResetAudioRoute) { if (initialAudioRoute == null) { @@ -64,7 +64,7 @@ class AndroidCallConnection( override fun onAnswer(videoState: Int) { Log.i(TAG, "onAnswer($videoState)") if (Permissions.hasAll(context, android.Manifest.permission.RECORD_AUDIO)) { - ApplicationDependencies.getSignalCallManager().acceptCall(false) + AppDependencies.signalCallManager.acceptCall(false) } else { val intent = Intent(context, WebRtcCallActivity::class.java) intent.action = if (isVideoCall) WebRtcCallActivity.ANSWER_VIDEO_ACTION else WebRtcCallActivity.ANSWER_ACTION diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnectionService.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnectionService.kt index c6bc5d9bc3..7fee5d3490 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnectionService.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidCallConnectionService.kt @@ -9,7 +9,7 @@ import android.telecom.PhoneAccountHandle import android.telecom.TelecomManager import androidx.annotation.RequiresApi import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -47,7 +47,7 @@ class AndroidCallConnectionService : ConnectionService() { setRinging() } AndroidTelecomUtil.connections[recipientId] = connection - ApplicationDependencies.getSignalCallManager().setTelecomApproved(callId, recipientId) + AppDependencies.signalCallManager.setTelecomApproved(callId, recipientId) return connection } @@ -59,7 +59,7 @@ class AndroidCallConnectionService : ConnectionService() { val (recipientId: RecipientId, callId: Long) = request.getOurExtras() Log.i(TAG, "onCreateIncomingConnectionFailed($recipientId)") - ApplicationDependencies.getSignalCallManager().dropCall(callId) + AppDependencies.signalCallManager.dropCall(callId) } override fun onCreateOutgoingConnection( @@ -80,7 +80,7 @@ class AndroidCallConnectionService : ConnectionService() { setDialing() } AndroidTelecomUtil.connections[recipientId] = connection - ApplicationDependencies.getSignalCallManager().setTelecomApproved(callId, recipientId) + AppDependencies.signalCallManager.setTelecomApproved(callId, recipientId) return connection } @@ -92,7 +92,7 @@ class AndroidCallConnectionService : ConnectionService() { val (recipientId: RecipientId, callId: Long) = request.getOurExtras() Log.i(TAG, "onCreateOutgoingConnectionFailed($recipientId)") - ApplicationDependencies.getSignalCallManager().dropCall(callId) + AppDependencies.signalCallManager.dropCall(callId) } companion object { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt index e193dbbea1..f5e9433338 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt @@ -18,7 +18,7 @@ import androidx.annotation.RequiresApi import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.FeatureFlags @@ -34,7 +34,7 @@ import org.thoughtcrime.securesms.webrtc.audio.SignalAudioManager object AndroidTelecomUtil { private val TAG = Log.tag(AndroidTelecomUtil::class.java) - private val context = ApplicationDependencies.getApplication() + private val context = AppDependencies.application private var systemRejected = false private var accountRegistered = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt index d0e0989722..464479c9e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt @@ -13,7 +13,7 @@ import org.signal.libsignal.zkgroup.calllinks.CallLinkSecretParams import org.signal.ringrtc.CallException import org.signal.ringrtc.CallLinkRootKey import org.thoughtcrime.securesms.database.SignalDatabase.Companion.callLinks -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.WebRtcViewModel import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.ringrtc.RemotePeer @@ -46,13 +46,13 @@ class CallLinkPreJoinActionProcessor( val callLinkRootKey = CallLinkRootKey(callLink.credentials.linkKeyBytes) val callLinkSecretParams = CallLinkSecretParams.deriveFromRootKey(callLink.credentials.linkKeyBytes) val genericServerPublicParams = GenericServerPublicParams( - ApplicationDependencies.getSignalServiceNetworkAccess() + AppDependencies.signalServiceNetworkAccess .getConfiguration() .genericServerPublicParams ) - val callLinkAuthCredentialPresentation = ApplicationDependencies - .getGroupsV2Authorization() + val callLinkAuthCredentialPresentation = AppDependencies + .groupsV2Authorization .getCallLinkAuthorizationForToday(genericServerPublicParams, callLinkSecretParams) webRtcInteractor.callManager.createCallLinkCall( diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallSetupActionProcessorDelegate.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallSetupActionProcessorDelegate.java index 54eae3365b..aee189372e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallSetupActionProcessorDelegate.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallSetupActionProcessorDelegate.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import org.signal.core.util.logging.Log; import org.signal.ringrtc.CallException; import org.signal.ringrtc.CallManager; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.WebRtcViewModel; import org.thoughtcrime.securesms.ringrtc.Camera; import org.thoughtcrime.securesms.ringrtc.RemotePeer; @@ -43,7 +43,7 @@ public class CallSetupActionProcessorDelegate extends WebRtcActionProcessor { currentState.getCallSetupState(activePeer).isAcceptWithVideo() || currentState.getLocalDeviceState().getCameraState().isEnabled() ); - ApplicationDependencies.getAppForegroundObserver().removeListener(webRtcInteractor.getForegroundListener()); + AppDependencies.getAppForegroundObserver().removeListener(webRtcInteractor.getForegroundListener()); webRtcInteractor.startAudioCommunication(); webRtcInteractor.activateCall(activePeer.getId()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java index c0229e053c..889532ab65 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java @@ -13,7 +13,7 @@ import org.signal.ringrtc.CallManager; import org.thoughtcrime.securesms.database.CallTable; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.WebRtcViewModel; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -190,7 +190,7 @@ public class IncomingCallActionProcessor extends DeviceAwareActionProcessor { boolean started = webRtcInteractor.startWebRtcCallActivityIfPossible(); if (!started) { Log.i(TAG, "Unable to start call activity due to OS version or not being in the foreground"); - ApplicationDependencies.getAppForegroundObserver().addListener(webRtcInteractor.getForegroundListener()); + AppDependencies.getAppForegroundObserver().addListener(webRtcInteractor.getForegroundListener()); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java index e03fb1c10e..40fd2edf0e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java @@ -13,7 +13,7 @@ import org.thoughtcrime.securesms.components.webrtc.BroadcastVideoSink; import org.thoughtcrime.securesms.components.webrtc.EglBaseWrapper; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.CallParticipantId; import org.thoughtcrime.securesms.events.WebRtcViewModel; @@ -128,7 +128,7 @@ public final class IncomingGroupCallActionProcessor extends DeviceAwareActionPro boolean started = webRtcInteractor.startWebRtcCallActivityIfPossible(); if (!started) { Log.i(TAG, "Unable to start call activity due to OS version or not being in the foreground"); - ApplicationDependencies.getAppForegroundObserver().addListener(webRtcInteractor.getForegroundListener()); + AppDependencies.getAppForegroundObserver().addListener(webRtcInteractor.getForegroundListener()); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java index 6b3e234196..5c5c87c7fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/SignalCallManager.java @@ -42,7 +42,7 @@ import org.thoughtcrime.securesms.database.CallTable; import org.thoughtcrime.securesms.database.GroupTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.GroupCallPeekEvent; import org.thoughtcrime.securesms.events.WebRtcViewModel; @@ -406,13 +406,13 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. } CallLinkRootKey callLinkRootKey = new CallLinkRootKey(callLink.getCredentials().getLinkKeyBytes()); - GenericServerPublicParams genericServerPublicParams = new GenericServerPublicParams(ApplicationDependencies.getSignalServiceNetworkAccess() - .getConfiguration() - .getGenericServerPublicParams()); + GenericServerPublicParams genericServerPublicParams = new GenericServerPublicParams(AppDependencies.getSignalServiceNetworkAccess() + .getConfiguration() + .getGenericServerPublicParams()); - CallLinkAuthCredentialPresentation callLinkAuthCredentialPresentation = ApplicationDependencies.getGroupsV2Authorization() - .getCallLinkAuthorizationForToday( + CallLinkAuthCredentialPresentation callLinkAuthCredentialPresentation = AppDependencies.getGroupsV2Authorization() + .getCallLinkAuthorizationForToday( genericServerPublicParams, CallLinkSecretParams.deriveFromRootKey(callLinkRootKey.getKeyBytes()) ); @@ -461,7 +461,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. peekInfo.getJoinedMembers(), WebRtcUtil.isCallFull(peekInfo)); - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(threadId)); + AppDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(threadId)); EventBus.getDefault().postSticky(new GroupCallPeekEvent(id, peekInfo.getEraId(), peekInfo.getDeviceCount(), peekInfo.getMaxDevices())); } @@ -770,8 +770,8 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. return; } try { - ApplicationDependencies.getSignalServiceMessageSender() - .sendCallMessage(RecipientUtil.toSignalServiceAddress(context, recipient), + AppDependencies.getSignalServiceMessageSender() + .sendCallMessage(RecipientUtil.toSignalServiceAddress(context, recipient), recipient.isSelf() ? Optional.empty() : UnidentifiedAccessUtil.getAccessFor(context, recipient), callMessage); } catch (UntrustedIdentityException e) { @@ -850,8 +850,8 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. headerPairs = Collections.emptyList(); } - CallingResponse response = ApplicationDependencies.getSignalServiceMessageSender() - .makeCallingRequest(requestId, url, httpMethod.name(), headerPairs, body); + CallingResponse response = AppDependencies.getSignalServiceMessageSender() + .makeCallingRequest(requestId, url, httpMethod.name(), headerPairs, body); try { if (response instanceof CallingResponse.Success) { @@ -968,7 +968,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. Log.i(TAG, "Starting call activity from foreground listener"); startCallCardActivityIfPossible(); } - ApplicationDependencies.getAppForegroundObserver().removeListener(this); + AppDependencies.getAppForegroundObserver().removeListener(this); return s; }); } @@ -1000,7 +1000,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. public void retrieveTurnServers(@NonNull RemotePeer remotePeer) { networkExecutor.execute(() -> { try { - TurnServerInfo turnServerInfo = ApplicationDependencies.getSignalServiceAccountManager().getTurnServerInfo(); + TurnServerInfo turnServerInfo = AppDependencies.getSignalServiceAccountManager().getTurnServerInfo(); List iceServers = new LinkedList<>(); for (String url : ListUtil.emptyIfNull(turnServerInfo.getUrlsWithIps())) { @@ -1056,7 +1056,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. } if (callIdLocal != null) { - ApplicationDependencies.getJobManager().add( + AppDependencies.getJobManager().add( CallSyncEventJob.createForJoin( recipient.getId(), callIdLocal.longValue(), @@ -1073,7 +1073,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. SignalExecutors.BOUNDED.execute(() -> { GroupCallUpdateSendJob updateSendJob = GroupCallUpdateSendJob.create(recipient.getId(), groupCallEraId); - JobManager.Chain chain = ApplicationDependencies.getJobManager().startChain(updateSendJob); + JobManager.Chain chain = AppDependencies.getJobManager().startChain(updateSendJob); CallId callIdLocal = callId; if (callIdLocal == null && groupCallEraId != null) { @@ -1121,8 +1121,8 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. } try { - ApplicationDependencies.getSignalServiceMessageSender() - .sendCallMessage(RecipientUtil.toSignalServiceAddress(context, recipient), + AppDependencies.getSignalServiceMessageSender() + .sendCallMessage(RecipientUtil.toSignalServiceAddress(context, recipient), UnidentifiedAccessUtil.getAccessFor(context, recipient), callMessage); process((s, p) -> p.handleMessageSentSuccess(s, remotePeer.getCallId())); @@ -1152,7 +1152,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. networkExecutor.execute(() -> { try { SyncMessage.CallEvent callEvent = CallEventSyncMessageUtil.createAcceptedSyncMessage(remotePeer, System.currentTimeMillis(), isOutgoing, isVideoCall); - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); + AppDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); } catch (IOException | UntrustedIdentityException e) { Log.w(TAG, "Unable to send call event sync message for " + remotePeer.getCallId().longValue(), e); } @@ -1169,7 +1169,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. networkExecutor.execute(() -> { try { SyncMessage.CallEvent callEvent = CallEventSyncMessageUtil.createNotAcceptedSyncMessage(remotePeer, System.currentTimeMillis(), isOutgoing, isVideoCall); - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); + AppDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); } catch (IOException | UntrustedIdentityException e) { Log.w(TAG, "Unable to send call event sync message for " + remotePeer.getCallId().longValue(), e); } @@ -1182,7 +1182,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. networkExecutor.execute(() -> { try { SyncMessage.CallEvent callEvent = CallEventSyncMessageUtil.createNotAcceptedSyncMessage(remotePeer, System.currentTimeMillis(), isOutgoing, true); - ApplicationDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); + AppDependencies.getSignalServiceMessageSender().sendSyncMessage(SignalServiceSyncMessage.forCallEvent(callEvent), Optional.empty()); } catch (IOException | UntrustedIdentityException e) { Log.w(TAG, "Unable to send call event sync message for " + remotePeer.getCallId().longValue(), e); } @@ -1195,7 +1195,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. } public void relaunchPipOnForeground() { - ApplicationDependencies.getAppForegroundObserver().addListener(new RelaunchListener(ApplicationDependencies.getAppForegroundObserver().isForegrounded())); + AppDependencies.getAppForegroundObserver().addListener(new RelaunchListener(AppDependencies.getAppForegroundObserver().isForegrounded())); } private void processSendMessageFailureWithChangeDetection(@NonNull RemotePeer remotePeer, @@ -1240,7 +1240,7 @@ public final class SignalCallManager implements CallManager.Observer, GroupCall. return s; }); } - ApplicationDependencies.getAppForegroundObserver().removeListener(this); + AppDependencies.getAppForegroundObserver().removeListener(this); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java index e0091015a9..fbc79693a3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcActionProcessor.java @@ -24,7 +24,7 @@ import org.thoughtcrime.securesms.components.webrtc.EglBaseWrapper; import org.thoughtcrime.securesms.components.webrtc.GroupCallSafetyNumberChangeNotificationUtil; import org.thoughtcrime.securesms.database.CallTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.CallParticipant; import org.thoughtcrime.securesms.events.WebRtcViewModel; import org.thoughtcrime.securesms.groups.GroupId; @@ -692,7 +692,7 @@ public abstract class WebRtcActionProcessor { activePeer = remotePeer; } - ApplicationDependencies.getAppForegroundObserver().removeListener(webRtcInteractor.getForegroundListener()); + AppDependencies.getAppForegroundObserver().removeListener(webRtcInteractor.getForegroundListener()); if (activePeer.getState() != CallState.IDLE) { webRtcInteractor.updatePhoneState(LockManager.PhoneState.PROCESSING); diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcCallService.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcCallService.java index a128ac9e21..2a9ed76bab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcCallService.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcCallService.java @@ -23,7 +23,7 @@ import org.signal.core.util.PendingIntentFlags; import org.signal.core.util.ThreadUtil; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.ForegroundServiceUtil; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -178,7 +178,7 @@ public final class WebRtcCallService extends Service implements SignalAudioManag public void onCreate() { Log.v(TAG, "onCreate"); super.onCreate(); - this.callManager = ApplicationDependencies.getSignalCallManager(); + this.callManager = AppDependencies.getSignalCallManager(); this.hangUpRtcOnDeviceCallAnswered = new HangUpRtcOnPstnCallAnsweredListener(); this.lastNotificationId = INVALID_NOTIFICATION_ID; @@ -418,14 +418,14 @@ public final class WebRtcCallService extends Service implements SignalAudioManag public void stop() { keepRunning = false; ThreadUtil.cancelRunnableOnMain(webSocketKeepAliveTask); - ApplicationDependencies.getIncomingMessageObserver().removeKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN); + AppDependencies.getIncomingMessageObserver().removeKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN); } @MainThread @Override public void run() { if (keepRunning) { - ApplicationDependencies.getIncomingMessageObserver().registerKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN); + AppDependencies.getIncomingMessageObserver().registerKeepAliveToken(WEBSOCKET_KEEP_ALIVE_TOKEN); ThreadUtil.runOnMainDelayed(this, REQUEST_WEBSOCKET_STAY_OPEN_DELAY); } } @@ -437,8 +437,8 @@ public final class WebRtcCallService extends Service implements SignalAudioManag ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); - ApplicationDependencies.getSignalCallManager().networkChange(activeNetworkInfo != null && activeNetworkInfo.isConnected()); - ApplicationDependencies.getSignalCallManager().dataModeUpdate(); + AppDependencies.getSignalCallManager().networkChange(activeNetworkInfo != null && activeNetworkInfo.isConnected()); + AppDependencies.getSignalCallManager().dataModeUpdate(); } } @@ -446,7 +446,7 @@ public final class WebRtcCallService extends Service implements SignalAudioManag @Override public void onReceive(@NonNull Context context, @NonNull Intent intent) { if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) { - ApplicationDependencies.getSignalCallManager().screenOff(); + AppDependencies.getSignalCallManager().screenOff(); } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcUtil.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcUtil.java index 3c29c85e5c..c45a8ad9b4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/WebRtcUtil.java @@ -11,7 +11,7 @@ import org.signal.libsignal.protocol.ecc.ECPublicKey; import org.signal.ringrtc.CallManager; import org.signal.ringrtc.GroupCall; import org.signal.ringrtc.PeekInfo; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.events.WebRtcViewModel; import org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceState; import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat; @@ -34,7 +34,7 @@ public final class WebRtcUtil { } public static @NonNull LockManager.PhoneState getInCallPhoneState(@NonNull Context context) { - AudioManagerCompat audioManager = ApplicationDependencies.getAndroidCallAudioManager(); + AudioManagerCompat audioManager = AppDependencies.getAndroidCallAudioManager(); if (audioManager.isSpeakerphoneOn() || audioManager.isBluetoothConnected() || audioManager.isWiredHeadsetOn()) { return LockManager.PhoneState.IN_HANDS_FREE_CALL; } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/links/SignalCallLinkManager.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/links/SignalCallLinkManager.kt index 0b1e4ef928..a71f17c837 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/links/SignalCallLinkManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/links/SignalCallLinkManager.kt @@ -20,7 +20,7 @@ import org.signal.ringrtc.CallLinkRootKey import org.signal.ringrtc.CallLinkState import org.signal.ringrtc.CallLinkState.Restrictions import org.signal.ringrtc.CallManager -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.whispersystems.signalservice.internal.ServiceResponse @@ -36,7 +36,7 @@ class SignalCallLinkManager( ) { private val genericServerPublicParams: GenericServerPublicParams = GenericServerPublicParams( - ApplicationDependencies.getSignalServiceNetworkAccess() + AppDependencies.signalServiceNetworkAccess .getConfiguration() .genericServerPublicParams ) @@ -51,7 +51,7 @@ class SignalCallLinkManager( Log.d(TAG, "Requesting call link credential response.") - val serviceResponse: ServiceResponse = ApplicationDependencies.getCallLinksService().getCreateCallLinkAuthCredential(request) + val serviceResponse: ServiceResponse = AppDependencies.callLinksService.getCreateCallLinkAuthCredential(request) if (serviceResponse.result.isAbsent()) { throw IOException("Failed to create credential response", serviceResponse.applicationError.or(serviceResponse.executionError).get()) } @@ -77,7 +77,7 @@ class SignalCallLinkManager( private fun requestCallLinkAuthCredentialPresentation( linkRootKey: ByteArray ): CallLinkAuthCredentialPresentation { - return ApplicationDependencies.getGroupsV2Authorization().getCallLinkAuthorizationForToday( + return AppDependencies.groupsV2Authorization.getCallLinkAuthorizationForToday( genericServerPublicParams, CallLinkSecretParams.deriveFromRootKey(linkRootKey) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/shakereport/ShakeToReport.java b/app/src/main/java/org/thoughtcrime/securesms/shakereport/ShakeToReport.java index 9e3a6f01ef..dcca2116d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/shakereport/ShakeToReport.java +++ b/app/src/main/java/org/thoughtcrime/securesms/shakereport/ShakeToReport.java @@ -17,7 +17,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment; import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogRepository; import org.thoughtcrime.securesms.sharing.MultiShareArgs; @@ -142,7 +142,7 @@ public final class ShakeToReport implements ShakeDetector.Listener { } private void enableIfVisible() { - if (ApplicationDependencies.getAppForegroundObserver().isForegrounded()) { + if (AppDependencies.getAppForegroundObserver().isForegrounded()) { enable(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java index d0e2ab4e36..a0ddc4b570 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/MultiShareSender.java @@ -27,7 +27,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.Mention; import org.thoughtcrime.securesms.database.model.StoryType; import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.keyvalue.StorySend; import org.thoughtcrime.securesms.linkpreview.LinkPreview; @@ -84,7 +84,7 @@ public final class MultiShareSender { @WorkerThread public static MultiShareSendResultCollection sendSync(@NonNull MultiShareArgs multiShareArgs) { List results = new ArrayList<>(multiShareArgs.getContactSearchKeys().size()); - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); String message = multiShareArgs.getDraftText(); SlideDeck slideDeck; List storiesBatch = new LinkedList<>(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java index 779d38110e..928ab21d99 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sms/MessageSender.java @@ -45,7 +45,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; import org.thoughtcrime.securesms.database.model.StoryType; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.AttachmentCompressionJob; @@ -97,7 +97,7 @@ public class MessageSender { public static void sendProfileKey(final long threadId) { ProfileKeySendJob job = ProfileKeySendJob.create(threadId, false); if (job != null) { - ApplicationDependencies.getJobManager().add(job); + AppDependencies.getJobManager().add(job); } } @@ -144,7 +144,7 @@ public class MessageSender { dependencyGraph = UploadDependencyGraph.create( messages, - ApplicationDependencies.getJobManager(), + AppDependencies.getJobManager(), attachment -> { try { return SignalDatabase.attachments().insertAttachmentForPreUpload(attachment); @@ -297,7 +297,7 @@ public class MessageSender { Preconditions.checkArgument(messages.size() > 0, "No messages!"); Preconditions.checkArgument(Stream.of(messages).allMatch(m -> m.getAttachments().isEmpty()), "Messages can't have attachments! They should be pre-uploaded."); - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); AttachmentTable attachmentDatabase = SignalDatabase.attachments(); MessageTable mmsDatabase = SignalDatabase.messages(); ThreadTable threadTable = SignalDatabase.threads(); @@ -422,10 +422,10 @@ public class MessageSender { Job compressionJob = AttachmentCompressionJob.fromAttachment(databaseAttachment, false, -1); Job uploadJob = new AttachmentUploadJob(databaseAttachment.attachmentId); - ApplicationDependencies.getJobManager() - .startChain(compressionJob) - .then(uploadJob) - .enqueue(); + AppDependencies.getJobManager() + .startChain(compressionJob) + .then(uploadJob) + .enqueue(); return new PreUploadResult(media, databaseAttachment.attachmentId, Arrays.asList(compressionJob.getId(), uploadJob.getId())); } catch (MmsException e) { @@ -439,7 +439,7 @@ public class MessageSender { SignalDatabase.reactions().addReaction(messageId, reaction); try { - ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, false)); + AppDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, false)); onMessageSent(); } catch (NoSuchMessageException e) { Log.w(TAG, "[sendNewReaction] Could not find message! Ignoring."); @@ -450,7 +450,7 @@ public class MessageSender { SignalDatabase.reactions().deleteReaction(messageId, reaction.getAuthor()); try { - ApplicationDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, true)); + AppDependencies.getJobManager().add(ReactionSendJob.create(context, messageId, reaction, true)); onMessageSent(); } catch (NoSuchMessageException e) { Log.w(TAG, "[sendReactionRemoval] Could not find message! Ignoring."); @@ -540,7 +540,7 @@ public class MessageSender { } private static void sendMediaPush(Context context, Recipient recipient, long messageId, @NonNull Collection uploadJobIds) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (uploadJobIds.size() > 0) { Job mediaSend = IndividualSendJob.create(messageId, recipient, true, false); @@ -551,7 +551,7 @@ public class MessageSender { } private static void sendGroupPush(@NonNull Context context, @NonNull Recipient recipient, long messageId, @NonNull Set filterRecipientIds, @NonNull Collection uploadJobIds) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (uploadJobIds.size() > 0) { Job groupSend = new PushGroupSendJob(messageId, recipient.getId(), filterRecipientIds, !uploadJobIds.isEmpty(), false); @@ -562,7 +562,7 @@ public class MessageSender { } private static void sendDistributionList(@NonNull Context context, @NonNull Recipient recipient, long messageId, @NonNull Set filterRecipientIds, @NonNull Collection uploadJobIds) { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (uploadJobIds.size() > 0) { Job groupSend = new PushDistributionListSendJob(messageId, recipient.getId(), !uploadJobIds.isEmpty(), filterRecipientIds); @@ -610,7 +610,7 @@ public class MessageSender { private static void sendLocalMediaSelf(long messageId) { try { - ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager(); + ExpiringMessageManager expirationManager = AppDependencies.getExpiringMessageManager(); MessageTable mmsDatabase = SignalDatabase.messages(); OutgoingMessage message = mmsDatabase.getOutgoingMessage(messageId); SyncMessageId syncId = new SyncMessageId(Recipient.self().getId(), message.getSentTimeMillis()); @@ -638,9 +638,9 @@ public class MessageSender { .map(a -> new AttachmentMarkUploadedJob(messageId, ((DatabaseAttachment) a).attachmentId)) .toList(); - ApplicationDependencies.getJobManager().startChain(compressionJobs) - .then(fakeUploadJobs) - .enqueue(); + AppDependencies.getJobManager().startChain(compressionJobs) + .then(fakeUploadJobs) + .enqueue(); mmsDatabase.markAsSent(messageId, true); mmsDatabase.markUnidentified(messageId, true); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementRepository.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementRepository.java index e67d8745b6..98868f5c9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementRepository.java @@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable; import org.thoughtcrime.securesms.database.StickerTable.StickerPackRecordReader; import org.thoughtcrime.securesms.database.model.StickerPackRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JobManager; import org.thoughtcrime.securesms.jobs.MultiDeviceStickerPackOperationJob; import org.thoughtcrime.securesms.jobs.StickerPackDownloadJob; @@ -38,7 +38,7 @@ final class StickerManagementRepository { void fetchUnretrievedReferencePacks() { SignalExecutors.SERIAL.execute(() -> { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); try (Cursor cursor = attachmentDatabase.getUnavailableStickerPacks()) { while (cursor != null && cursor.moveToNext()) { @@ -79,14 +79,14 @@ final class StickerManagementRepository { stickerDatabase.uninstallPack(packId); if (TextSecurePreferences.isMultiDevice(context)) { - ApplicationDependencies.getJobManager().add(new MultiDeviceStickerPackOperationJob(packId, packKey, MultiDeviceStickerPackOperationJob.Type.REMOVE)); + AppDependencies.getJobManager().add(new MultiDeviceStickerPackOperationJob(packId, packKey, MultiDeviceStickerPackOperationJob.Type.REMOVE)); } }); } void installStickerPack(@NonNull String packId, @NonNull String packKey, boolean notify) { SignalExecutors.SERIAL.execute(() -> { - JobManager jobManager = ApplicationDependencies.getJobManager(); + JobManager jobManager = AppDependencies.getJobManager(); if (stickerDatabase.isPackAvailableAsReference(packId)) { stickerDatabase.markPackAsInstalled(packId, notify); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementViewModel.java index 4bc5564c38..7bbb45fa47 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerManagementViewModel.java @@ -10,7 +10,7 @@ import androidx.lifecycle.ViewModelProvider; import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.model.StickerPackRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.stickers.StickerManagementRepository.PackResult; import java.util.List; @@ -31,7 +31,7 @@ final class StickerManagementViewModel extends ViewModel { repository.getStickerPacks(packs::postValue); }; - ApplicationDependencies.getDatabaseObserver().registerStickerPackObserver(observer); + AppDependencies.getDatabaseObserver().registerStickerPackObserver(observer); } void init() { @@ -62,7 +62,7 @@ final class StickerManagementViewModel extends ViewModel { @Override protected void onCleared() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer); + AppDependencies.getDatabaseObserver().unregisterObserver(observer); } static class Factory extends ViewModelProvider.NewInstanceFactory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java index ff472e16b3..69e584e5a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java @@ -15,7 +15,7 @@ import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.StickerTable; import org.thoughtcrime.securesms.database.model.StickerPackRecord; import org.thoughtcrime.securesms.database.model.StickerRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.signal.core.util.Hex; import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifest; @@ -33,7 +33,7 @@ public final class StickerPackPreviewRepository { private final SignalServiceMessageReceiver receiver; public StickerPackPreviewRepository(@NonNull Context context) { - this.receiver = ApplicationDependencies.getSignalServiceMessageReceiver(); + this.receiver = AppDependencies.getSignalServiceMessageReceiver(); this.stickerDatabase = SignalDatabase.stickers(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java index 0d0cd322e2..2df5887522 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewViewModel.java @@ -10,7 +10,7 @@ import androidx.lifecycle.ViewModel; import androidx.lifecycle.ViewModelProvider; import org.thoughtcrime.securesms.database.DatabaseObserver; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.stickers.StickerPackPreviewRepository.StickerManifestResult; import java.util.Optional; @@ -41,7 +41,7 @@ final class StickerPackPreviewViewModel extends ViewModel { } }; - ApplicationDependencies.getDatabaseObserver().registerStickerPackObserver(packObserver); + AppDependencies.getDatabaseObserver().registerStickerPackObserver(packObserver); } LiveData> getStickerManifest(@NonNull String packId, @NonNull String packKey) { @@ -63,7 +63,7 @@ final class StickerPackPreviewViewModel extends ViewModel { @Override protected void onCleared() { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(packObserver); + AppDependencies.getDatabaseObserver().unregisterObserver(packObserver); } static class Factory extends ViewModelProvider.NewInstanceFactory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java index aa6e3e9380..b05d4c9dfc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriLoader.java @@ -7,7 +7,7 @@ import com.bumptech.glide.load.model.ModelLoader; import com.bumptech.glide.load.model.ModelLoaderFactory; import com.bumptech.glide.load.model.MultiModelLoaderFactory; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.whispersystems.signalservice.api.SignalServiceMessageReceiver; import java.io.InputStream; @@ -38,7 +38,7 @@ public final class StickerRemoteUriLoader implements ModelLoader build(@NonNull MultiModelLoaderFactory multiFactory) { - return new StickerRemoteUriLoader(ApplicationDependencies.getSignalServiceMessageReceiver()); + return new StickerRemoteUriLoader(AppDependencies.getSignalServiceMessageReceiver()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.java b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.java index 11f1792c79..6e9e86cec8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/storage/StorageSyncHelper.java @@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord; import org.thoughtcrime.securesms.database.model.RecipientRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob; import org.thoughtcrime.securesms.jobs.StorageSyncJob; import org.thoughtcrime.securesms.keyvalue.AccountValues; @@ -230,7 +230,7 @@ public final class StorageSyncHelper { } if (fetchProfile && update.getNew().getAvatarUrlPath().isPresent()) { - ApplicationDependencies.getJobManager().add(new RetrieveProfileAvatarJob(self, update.getNew().getAvatarUrlPath().get())); + AppDependencies.getJobManager().add(new RetrieveProfileAvatarJob(self, update.getNew().getAvatarUrlPath().get())); } if (!update.getNew().getUsername().equals(update.getOld().getUsername())) { @@ -255,7 +255,7 @@ public final class StorageSyncHelper { Log.d(TAG, "Registration still ongoing. Ignore sync request."); return; } - ApplicationDependencies.getJobManager().add(new StorageSyncJob()); + AppDependencies.getJobManager().add(new StorageSyncJob()); } public static void scheduleRoutineSync() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/Stories.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/Stories.kt index f82b2ce45e..45807ef723 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/Stories.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/Stories.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.database.AttachmentTable.TransformProperties import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.DistributionListId import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.mediasend.Media @@ -83,7 +83,7 @@ object Stories { fun sendTextStories(messages: List): Completable { return Completable.create { emitter -> - MessageSender.sendStories(ApplicationDependencies.getApplication(), messages, null, null) + MessageSender.sendStories(AppDependencies.application, messages, null, null) emitter.onComplete() } } @@ -136,11 +136,11 @@ object Stories { fun enqueueAttachmentsFromStoryForDownloadSync(record: MmsMessageRecord, ignoreAutoDownloadConstraints: Boolean) { SignalDatabase.attachments.getAttachmentsForMessage(record.id).filterNot { it.isSticker }.forEach { val job = AttachmentDownloadJob(record.id, it.attachmentId, ignoreAutoDownloadConstraints) - ApplicationDependencies.getJobManager().add(job) + AppDependencies.jobManager.add(job) } if (record.hasLinkPreview() && record.linkPreviews[0].attachmentId != null) { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( AttachmentDownloadJob(record.id, record.linkPreviews[0].attachmentId!!, true) ) } @@ -279,7 +279,7 @@ object Stories { var player: ExoPlayer? = null val countDownLatch = CountDownLatch(1) ThreadUtil.runOnMainSync { - val mainThreadPlayer = ApplicationDependencies.getExoPlayerPool().get("stories_duration_check") + val mainThreadPlayer = AppDependencies.exoPlayerPool.get("stories_duration_check") if (mainThreadPlayer == null) { Log.w(TAG, "Could not get a player from the pool, so we cannot get the length of the video.") countDownLatch.countDown() @@ -309,7 +309,7 @@ object Stories { ThreadUtil.runOnMainSync { val mainThreadPlayer = player if (mainThreadPlayer != null) { - ApplicationDependencies.getExoPlayerPool().pool(mainThreadPlayer) + AppDependencies.exoPlayerPool.pool(mainThreadPlayer) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt index 73f6c61821..4c466074f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StorySlateView.kt @@ -12,7 +12,7 @@ import com.bumptech.glide.Glide import org.signal.core.util.getParcelableCompat import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.blurhash.BlurHash -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.visible @@ -96,7 +96,7 @@ class StorySlateView @JvmOverloads constructor( unavailableText.visible = false errorText.visible = true - if (NetworkConstraint.isMet(ApplicationDependencies.getApplication())) { + if (NetworkConstraint.isMet(AppDependencies.application)) { errorText.setText(R.string.StorySlateView__couldnt_load_content) } else { errorText.setText(R.string.StorySlateView__no_internet_connection) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt index 17dcc46ba6..42aa610fd8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/StoryTextPostModel.kt @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.fonts.TextFont import org.thoughtcrime.securesms.fonts.TextToScript import org.thoughtcrime.securesms.fonts.TypefaceCache @@ -125,14 +125,14 @@ data class StoryTextPostModel( this } } - val view = StoryTextPostView(ContextThemeWrapper(ApplicationDependencies.getApplication(), R.style.TextSecure_DarkNoActionBar)) + val view = StoryTextPostView(ContextThemeWrapper(AppDependencies.application, R.style.TextSecure_DarkNoActionBar)) val typeface = TypefaceCache.get( - ApplicationDependencies.getApplication(), + AppDependencies.application, TextFont.fromStyle(source.storyTextPost.style), TextToScript.guessScript(source.storyTextPost.body) ).safeBlockingGet() - val displayWidth: Int = ApplicationDependencies.getApplication().resources.displayMetrics.widthPixels + val displayWidth: Int = AppDependencies.application.resources.displayMetrics.widthPixels val arHeight: Int = (RENDER_HW_AR * displayWidth).toInt() val linkPreview = (message as? MmsMessageRecord)?.linkPreviews?.firstOrNull() diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt index 10ec1b208e..7e96aeb261 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingFragment.kt @@ -43,7 +43,7 @@ import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectFor import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.StoryViewState -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.events.ReminderUpdateEvent import org.thoughtcrime.securesms.main.Material3OnScrollHelperBinder import org.thoughtcrime.securesms.main.SearchBinder @@ -111,7 +111,7 @@ class StoriesLandingFragment : DSLSettingsFragment(layoutId = R.layout.stories_l initializeSearchAction() viewModel.markStoriesRead() - ApplicationDependencies.getExpireStoriesManager().scheduleIfNecessary() + AppDependencies.expireStoriesManager.scheduleIfNecessary() EventBus.getDefault().register(this) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt index b9b7042223..7ed991eb79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/landing/StoriesLandingRepository.kt @@ -14,7 +14,7 @@ import org.thoughtcrime.securesms.database.model.DistributionListId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.StoryResult import org.thoughtcrime.securesms.database.model.StoryViewState -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient @@ -134,12 +134,12 @@ class StoriesLandingRepository(context: Context) { refresh(it) } - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(messageRecords.first().threadId, newRepliesObserver) + AppDependencies.databaseObserver.registerConversationObserver(messageRecords.first().threadId, newRepliesObserver) val liveRecipient = Recipient.live(sender.id) liveRecipient.observeForever(recipientChangedObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(newRepliesObserver) + AppDependencies.databaseObserver.unregisterObserver(newRepliesObserver) liveRecipient.removeForeverObserver(recipientChangedObserver) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsRepository.kt index f6a4825a2d..7e419f1930 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/settings/story/StoriesPrivacySettingsRepository.kt @@ -6,7 +6,7 @@ import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.database.GroupTable import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -27,7 +27,7 @@ class StoriesPrivacySettingsRepository { return Completable.fromAction { SignalStore.storyValues().isFeatureDisabled = !isEnabled Stories.onStorySettingsChanged(Recipient.self().id) - ApplicationDependencies.resetAllNetworkConnections() + AppDependencies.resetNetwork() SignalDatabase.messages.getAllOutgoingStories(false, -1).use { reader -> reader.map { record -> record.id } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/AddToGroupStoryDelegate.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/AddToGroupStoryDelegate.kt index 7a422d41c1..805ad76613 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/AddToGroupStoryDelegate.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/AddToGroupStoryDelegate.kt @@ -17,7 +17,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mediasend.MediaSendActivityResult import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionActivity import org.thoughtcrime.securesms.mms.OutgoingMessage @@ -117,7 +117,7 @@ class AddToGroupStoryDelegate( } MessageSender.sendStories( - ApplicationDependencies.getApplication(), + AppDependencies.application, secureMessages, null ) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryMutePolicy.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryMutePolicy.kt index 5cd4741ccd..ada2c70654 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryMutePolicy.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/StoryMutePolicy.kt @@ -1,6 +1,6 @@ package org.thoughtcrime.securesms.stories.viewer -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.util.AppForegroundObserver /** @@ -11,7 +11,7 @@ object StoryMutePolicy : AppForegroundObserver.Listener { var isContentMuted: Boolean = true fun initialize() { - ApplicationDependencies.getAppForegroundObserver().addListener(this) + AppDependencies.appForegroundObserver.addListener(this) } override fun onBackground() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt index 8544bcf6c6..e20e3f27e7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageRepository.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceViewedUpdateJob import org.thoughtcrime.securesms.jobs.SendViewedReceiptJob import org.thoughtcrime.securesms.keyvalue.SignalStore @@ -65,9 +65,9 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat refresh() } - ApplicationDependencies.getDatabaseObserver().registerStoryObserver(recipientId, storyObserver) + AppDependencies.databaseObserver.registerStoryObserver(recipientId, storyObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(storyObserver) + AppDependencies.databaseObserver.unregisterObserver(storyObserver) } refresh() @@ -123,23 +123,23 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat } } - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(threadId, conversationObserver) - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(messageUpdateObserver) + AppDependencies.databaseObserver.registerConversationObserver(threadId, conversationObserver) + AppDependencies.databaseObserver.registerMessageUpdateObserver(messageUpdateObserver) val messageInsertObserver = DatabaseObserver.MessageObserver { refresh(SignalDatabase.messages.getMessageRecord(recordId)) } if (recipient.isGroup) { - ApplicationDependencies.getDatabaseObserver().registerMessageInsertObserver(threadId, messageInsertObserver) + AppDependencies.databaseObserver.registerMessageInsertObserver(threadId, messageInsertObserver) } emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(conversationObserver) - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageUpdateObserver) + AppDependencies.databaseObserver.unregisterObserver(conversationObserver) + AppDependencies.databaseObserver.unregisterObserver(messageUpdateObserver) if (recipient.isGroup) { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(messageInsertObserver) + AppDependencies.databaseObserver.unregisterObserver(messageInsertObserver) } } @@ -176,13 +176,13 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat SignalExecutors.SERIAL.execute { val markedMessageInfo = SignalDatabase.messages.setIncomingMessageViewed(storyPost.id) if (markedMessageInfo != null) { - ApplicationDependencies.getDatabaseObserver().notifyConversationListListeners() + AppDependencies.databaseObserver.notifyConversationListListeners() if (storyPost.sender.isReleaseNotes) { SignalStore.storyValues().userHasViewedOnboardingStory = true Stories.onStorySettingsChanged(Recipient.self().id) } else { - ApplicationDependencies.getJobManager().add( + AppDependencies.jobManager.add( SendViewedReceiptJob( markedMessageInfo.threadId, storyPost.sender.id, @@ -204,7 +204,7 @@ open class StoryViewerPageRepository(context: Context, private val storyViewStat @CheckResult fun resend(messageRecord: MessageRecord): Completable { return Completable.fromAction { - MessageSender.resend(ApplicationDependencies.getApplication(), messageRecord) + MessageSender.resend(AppDependencies.application, messageRecord) }.subscribeOn(Schedulers.io()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryTextPostRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryTextPostRepository.kt index 5ba196fa04..7d2f483f02 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryTextPostRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/post/StoryTextPostRepository.kt @@ -7,7 +7,7 @@ import org.signal.core.util.Base64 import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.fonts.TextFont import org.thoughtcrime.securesms.fonts.TextToScript import org.thoughtcrime.securesms.fonts.TypefaceCache @@ -25,7 +25,7 @@ class StoryTextPostRepository { val textFont = TextFont.fromStyle(model.style) val script = TextToScript.guessScript(model.body) - TypefaceCache.get(ApplicationDependencies.getApplication(), textFont, script) + TypefaceCache.get(AppDependencies.application, textFont, script) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyDataSource.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyDataSource.kt index ad69dd021e..9a15b9f016 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyDataSource.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyDataSource.kt @@ -7,7 +7,7 @@ import org.thoughtcrime.securesms.database.MessageTypes import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.Recipient class StoryGroupReplyDataSource(private val parentStoryId: Long) : PagedDataSource { @@ -42,7 +42,7 @@ class StoryGroupReplyDataSource(private val parentStoryId: Long) : PagedDataSour record.isRemoteDelete -> ReplyBody.RemoteDelete(record) MessageTypes.isStoryReaction(record.type) -> ReplyBody.Reaction(record) else -> ReplyBody.Text( - ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(ApplicationDependencies.getApplication(), record, threadRecipient) + ConversationMessage.ConversationMessageFactory.createWithUnresolvedData(AppDependencies.application, record, threadRecipient) ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt index f5869682cf..e0813955c9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt @@ -44,7 +44,7 @@ import org.thoughtcrime.securesms.database.model.Mention import org.thoughtcrime.securesms.database.model.MessageId import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.databaseprotos.BodyRangeList -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RetrieveProfileJob import org.thoughtcrime.securesms.keyboard.KeyboardPage import org.thoughtcrime.securesms.keyboard.KeyboardPagerViewModel @@ -199,7 +199,7 @@ class StoryGroupReplyFragment : viewModel.state.collect { state -> if (markReadHelper == null && state.threadId > 0L) { if (isResumed) { - ApplicationDependencies.getMessageNotifier().setVisibleThread(ConversationId(state.threadId, storyId)) + AppDependencies.messageNotifier.setVisibleThread(ConversationId(state.threadId, storyId)) } markReadHelper = MarkReadHelper(ConversationId(state.threadId, storyId), requireContext(), viewLifecycleOwner) @@ -235,13 +235,13 @@ class StoryGroupReplyFragment : super.onResume() val threadId = viewModel.stateSnapshot.threadId if (threadId != 0L) { - ApplicationDependencies.getMessageNotifier().setVisibleThread(ConversationId(threadId, storyId)) + AppDependencies.messageNotifier.setVisibleThread(ConversationId(threadId, storyId)) } } override fun onPause() { super.onPause() - ApplicationDependencies.getMessageNotifier().setVisibleThread(null) + AppDependencies.messageNotifier.setVisibleThread(null) } override fun onDestroyView() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt index 29fbf722ca..2f69b1f98e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyRepository.kt @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.stories.viewer.reply.group -import androidx.lifecycle.Observer import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers @@ -14,7 +13,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.NoSuchMessageException import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageId -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId class StoryGroupReplyRepository { @@ -37,14 +36,14 @@ class StoryGroupReplyRepository { val insertObserver = DatabaseObserver.MessageObserver { controller.onDataItemInserted(it, PagingController.POSITION_END) } val conversationObserver = DatabaseObserver.Observer { controller.onDataInvalidated() } - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(updateObserver) - ApplicationDependencies.getDatabaseObserver().registerMessageInsertObserver(threadId, insertObserver) - ApplicationDependencies.getDatabaseObserver().registerConversationObserver(threadId, conversationObserver) + AppDependencies.databaseObserver.registerMessageUpdateObserver(updateObserver) + AppDependencies.databaseObserver.registerMessageInsertObserver(threadId, insertObserver) + AppDependencies.databaseObserver.registerConversationObserver(threadId, conversationObserver) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(updateObserver) - ApplicationDependencies.getDatabaseObserver().unregisterObserver(insertObserver) - ApplicationDependencies.getDatabaseObserver().unregisterObserver(conversationObserver) + AppDependencies.databaseObserver.unregisterObserver(updateObserver) + AppDependencies.databaseObserver.unregisterObserver(insertObserver) + AppDependencies.databaseObserver.unregisterObserver(conversationObserver) } emitter.onNext(pagedData) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt index cfa7b83e41..8ffcab3c9e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/views/StoryViewsRepository.kt @@ -9,7 +9,7 @@ import org.thoughtcrime.securesms.database.DatabaseObserver import org.thoughtcrime.securesms.database.GroupReceiptTable import org.thoughtcrime.securesms.database.SignalDatabase import org.thoughtcrime.securesms.database.model.MessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -56,9 +56,9 @@ class StoryViewsRepository { val observer = DatabaseObserver.MessageObserver { refresh() } - ApplicationDependencies.getDatabaseObserver().registerMessageUpdateObserver(observer) + AppDependencies.databaseObserver.registerMessageUpdateObserver(observer) emitter.setCancellable { - ApplicationDependencies.getDatabaseObserver().unregisterObserver(observer) + AppDependencies.databaseObserver.unregisterObserver(observer) } refresh() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java index 5693470ff3..1d56cea8ef 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BackupUtil.java @@ -18,7 +18,7 @@ import org.signal.libsignal.protocol.util.ByteUtil; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.backup.BackupPassphrase; import org.thoughtcrime.securesms.database.NoExternalStorageException; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.permissions.Permissions; @@ -127,7 +127,7 @@ public class BackupUtil { } private static List getAllBackupsNewestFirst() throws NoExternalStorageException { - if (isUserSelectionRequired(ApplicationDependencies.getApplication())) { + if (isUserSelectionRequired(AppDependencies.getApplication())) { return getAllBackupsNewestFirstApi29(); } else { return getAllBackupsNewestFirstLegacy(); @@ -142,7 +142,7 @@ public class BackupUtil { return Collections.emptyList(); } - DocumentFile backupDirectory = DocumentFile.fromTreeUri(ApplicationDependencies.getApplication(), backupDirectoryUri); + DocumentFile backupDirectory = DocumentFile.fromTreeUri(AppDependencies.getApplication(), backupDirectoryUri); if (backupDirectory == null || !backupDirectory.exists() || !backupDirectory.canRead()) { Log.w(TAG, "Backup directory is inaccessible. Returning an empty list."); return Collections.emptyList(); @@ -355,7 +355,7 @@ public class BackupUtil { Log.w(TAG, "Delete failed: " + file.getAbsolutePath()); } } else { - DocumentFile document = DocumentFile.fromSingleUri(ApplicationDependencies.getApplication(), uri); + DocumentFile document = DocumentFile.fromSingleUri(AppDependencies.getApplication(), uri); if (document != null && document.exists()) { Log.i(TAG, "Deleting DocumentFile: " + uri); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/BubbleUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/BubbleUtil.java index 979759b89c..6170b4e913 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/BubbleUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/BubbleUtil.java @@ -16,7 +16,7 @@ import com.annimon.stream.Stream; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.notifications.NotificationIds; import org.thoughtcrime.securesms.notifications.v2.NotificationFactory; @@ -120,7 +120,7 @@ public final class BubbleUtil { .orElse(null); if (activeThreadNotification != null && activeThreadNotification.deleteIntent != null) { - ApplicationDependencies.getMessageNotifier().forceBubbleNotification(context, conversationId); + AppDependencies.getMessageNotifier().forceBubbleNotification(context, conversationId); } else { Recipient recipient = Recipient.resolved(recipientId); NotificationFactory.notifyToBubbleConversation(context, recipient, threadId); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java b/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java index e16ce18388..35239f3e76 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/CommunicationActions.java @@ -36,7 +36,7 @@ import org.thoughtcrime.securesms.conversation.ConversationIntents; import org.thoughtcrime.securesms.database.CallLinkTable; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.groups.ui.invitesandrequests.joining.GroupJoinBottomSheetDialogFragment; import org.thoughtcrime.securesms.groups.ui.invitesandrequests.joining.GroupJoinUpdateRequiredBottomSheetDialogFragment; @@ -84,7 +84,7 @@ public class CommunicationActions { } if (recipient.isRegistered()) { - ApplicationDependencies.getSignalCallManager().isCallActive(new ResultReceiver(new Handler(Looper.getMainLooper())) { + AppDependencies.getSignalCallManager().isCallActive(new ResultReceiver(new Handler(Looper.getMainLooper())) { @Override protected void onReceiveResult(int resultCode, Bundle resultData) { if (resultCode == 1) { @@ -127,7 +127,7 @@ public class CommunicationActions { return; } - ApplicationDependencies.getSignalCallManager().isCallActive(new ResultReceiver(new Handler(Looper.getMainLooper())) { + AppDependencies.getSignalCallManager().isCallActive(new ResultReceiver(new Handler(Looper.getMainLooper())) { @Override protected void onReceiveResult(int resultCode, Bundle resultData) { startCallInternal(callContext, recipient, resultCode != 1, fromCallLink); @@ -392,7 +392,7 @@ public class CommunicationActions { .withPermanentDenialDialog(callContext.getContext().getString(R.string.ConversationActivity__to_call_signal_needs_access_to_your_microphone), null, R.string.ConversationActivity_allow_access_microphone, R.string.ConversationActivity__to_start_call, callContext.getFragmentManager()) .onAnyDenied(() -> Toast.makeText(callContext.getContext(), R.string.ConversationActivity_signal_needs_microphone_access_voice_call, Toast.LENGTH_LONG).show()) .onAllGranted(() -> { - ApplicationDependencies.getSignalCallManager().startOutgoingAudioCall(recipient); + AppDependencies.getSignalCallManager().startOutgoingAudioCall(recipient); MessageSender.onMessageSent(); @@ -406,7 +406,7 @@ public class CommunicationActions { } private static void startVideoCallInternal(@NonNull CallContext callContext, @NonNull Recipient recipient, boolean fromCallLink) { - ApplicationDependencies.getSignalCallManager().startPreJoinCall(recipient); + AppDependencies.getSignalCallManager().startPreJoinCall(recipient); Intent activityIntent = new Intent(callContext.getContext(), WebRtcCallActivity.class); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ConversationShortcutPhoto.java b/app/src/main/java/org/thoughtcrime/securesms/util/ConversationShortcutPhoto.java index e7ae6e5bc1..c1acb968d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ConversationShortcutPhoto.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ConversationShortcutPhoto.java @@ -25,8 +25,7 @@ import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.SystemContactPhoto; import org.thoughtcrime.securesms.conversation.colors.AvatarColor; import org.thoughtcrime.securesms.database.model.ProfileAvatarFileDetails; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; -import org.thoughtcrime.securesms.profiles.AvatarHelper; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import java.security.MessageDigest; @@ -55,7 +54,7 @@ public final class ConversationShortcutPhoto implements Key { @Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) { - messageDigest.update(recipient.getDisplayName(ApplicationDependencies.getApplication()).getBytes()); + messageDigest.update(recipient.getDisplayName(AppDependencies.getApplication()).getBytes()); messageDigest.update(avatarObject.getBytes()); messageDigest.update(isSystemContactPhoto() ? (byte) 1 : (byte) 0); messageDigest.update(profileAvatarFileDetails.getDiskCacheKeyBytes()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 05b1cf08e7..1e4ccda484 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -13,7 +13,7 @@ import org.json.JSONObject; import org.signal.core.util.SetUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BuildConfig; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.groups.SelectionLimits; import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -313,7 +313,7 @@ public final class FeatureFlags { * desired test state. */ private static final Map FLAG_CHANGE_LISTENERS = new HashMap() {{ - put(MESSAGE_PROCESSOR_ALARM_INTERVAL, change -> RoutineMessageFetchReceiver.startOrUpdateAlarm(ApplicationDependencies.getApplication())); + put(MESSAGE_PROCESSOR_ALARM_INTERVAL, change -> RoutineMessageFetchReceiver.startOrUpdateAlarm(AppDependencies.getApplication())); }}; private static final Map REMOTE_VALUES = new TreeMap<>(); @@ -337,7 +337,7 @@ public final class FeatureFlags { if (timeSinceLastFetch < 0 || timeSinceLastFetch > FETCH_INTERVAL) { Log.i(TAG, "Scheduling remote config refresh."); - ApplicationDependencies.getJobManager().add(new RemoteConfigRefreshJob()); + AppDependencies.getJobManager().add(new RemoteConfigRefreshJob()); } else { Log.i(TAG, "Skipping remote config refresh. Refreshed " + timeSinceLastFetch + " ms ago."); } @@ -345,7 +345,7 @@ public final class FeatureFlags { @WorkerThread public static void refreshSync() throws IOException { - RemoteConfigResult result = ApplicationDependencies.getSignalServiceAccountManager().getRemoteConfig(); + RemoteConfigResult result = AppDependencies.getSignalServiceAccountManager().getRemoteConfig(); FeatureFlags.update(result.getConfig()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java index 9791076f42..b4a4517d29 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/IdentityUtil.java @@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.database.MessageTable.InsertResult; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.model.GroupRecord; import org.thoughtcrime.securesms.database.model.IdentityRecord; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.mms.IncomingMessage; import org.thoughtcrime.securesms.mms.MmsException; import org.thoughtcrime.securesms.mms.OutgoingMessage; @@ -53,7 +53,7 @@ public final class IdentityUtil { final RecipientId recipientId = recipient.getId(); SimpleTask.run(SignalExecutors.BOUNDED, - () -> ApplicationDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId), + () -> AppDependencies.getProtocolStore().aci().identities().getIdentityRecord(recipientId), future::set); return future; @@ -158,7 +158,7 @@ public final class IdentityUtil { Optional insertResult = smsDatabase.insertMessageInbox(individualUpdate); if (insertResult.isPresent()) { - ApplicationDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.get().getThreadId())); + AppDependencies.getMessageNotifier().updateNotification(context, ConversationId.forConversation(insertResult.get().getThreadId())); } } catch (MmsException e) { throw new AssertionError(e); @@ -169,10 +169,10 @@ public final class IdentityUtil { public static void saveIdentity(String user, IdentityKey identityKey) { try(SignalSessionLock.Lock unused = ReentrantSessionLock.INSTANCE.acquire()) { - SessionStore sessionStore = ApplicationDependencies.getProtocolStore().aci(); + SessionStore sessionStore = AppDependencies.getProtocolStore().aci(); SignalProtocolAddress address = new SignalProtocolAddress(user, SignalServiceAddress.DEFAULT_DEVICE_ID); - if (ApplicationDependencies.getProtocolStore().aci().identities().saveIdentity(address, identityKey)) { + if (AppDependencies.getProtocolStore().aci().identities().saveIdentity(address, identityKey)) { if (sessionStore.containsSession(address)) { SessionRecord sessionRecord = sessionStore.loadSession(address); sessionRecord.archiveCurrentState(); @@ -207,7 +207,7 @@ public final class IdentityUtil { public static void processVerifiedMessage(Context context, VerifiedMessage verifiedMessage) { try(SignalSessionLock.Lock unused = ReentrantSessionLock.INSTANCE.acquire()) { - SignalIdentityKeyStore identityStore = ApplicationDependencies.getProtocolStore().aci().identities(); + SignalIdentityKeyStore identityStore = AppDependencies.getProtocolStore().aci().identities(); Recipient recipient = Recipient.externalPush(verifiedMessage.getDestination()); if (recipient.isSelf()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/InternetConnectionObserver.kt b/app/src/main/java/org/thoughtcrime/securesms/util/InternetConnectionObserver.kt index 723909aaba..6ca5ff8c6c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/InternetConnectionObserver.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/InternetConnectionObserver.kt @@ -9,7 +9,7 @@ import android.net.Network import android.os.Build import androidx.annotation.RequiresApi import io.reactivex.rxjava3.core.Observable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint object InternetConnectionObserver { @@ -27,7 +27,7 @@ object InternetConnectionObserver { @RequiresApi(24) private fun observeApi24(): Observable { return Observable.create { - val application = ApplicationDependencies.getApplication() + val application = AppDependencies.application val connectivityManager = ServiceUtil.getConnectivityManager(application) val callback = object : ConnectivityManager.NetworkCallback() { @@ -51,7 +51,7 @@ object InternetConnectionObserver { @Suppress("DEPRECATION") private fun observeApi19(): Observable { return Observable.create { - val application = ApplicationDependencies.getApplication() + val application = AppDependencies.application val observer = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/JobExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/util/JobExtensions.kt index dde6c12daf..7adb0d1c6a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/JobExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/JobExtensions.kt @@ -5,11 +5,11 @@ package org.thoughtcrime.securesms.util -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.Job import org.thoughtcrime.securesms.jobmanager.JobManager /** Starts a new chain with this job. */ fun Job.asChain(): JobManager.Chain { - return ApplicationDependencies.getJobManager().startChain(this) + return AppDependencies.jobManager.startChain(this) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/LocalMetrics.kt b/app/src/main/java/org/thoughtcrime/securesms/util/LocalMetrics.kt index 0ac6550153..a1d577e502 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/LocalMetrics.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/LocalMetrics.kt @@ -7,7 +7,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.database.LocalMetricsDatabase import org.thoughtcrime.securesms.database.model.LocalMetricsEvent import org.thoughtcrime.securesms.database.model.LocalMetricsSplit -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import java.util.concurrent.Executor import java.util.concurrent.TimeUnit @@ -33,7 +33,7 @@ object LocalMetrics { private val lastSplitTimeById: MutableMap = LRUCache(200) private val executor: Executor = SignalExecutors.newCachedSingleThreadExecutor("signal-LocalMetrics", ThreadUtil.PRIORITY_BACKGROUND_THREAD) - private val db: LocalMetricsDatabase by lazy { LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()) } + private val db: LocalMetricsDatabase by lazy { LocalMetricsDatabase.getInstance(AppDependencies.application) } @JvmStatic fun getInstance(): LocalMetrics { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/LongClickMovementMethod.java b/app/src/main/java/org/thoughtcrime/securesms/util/LongClickMovementMethod.java index 1cfe455bd7..234ed61c5c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/LongClickMovementMethod.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/LongClickMovementMethod.java @@ -16,7 +16,7 @@ import androidx.core.content.ContextCompat; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.spoiler.SpoilerAnnotation; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.lang.ref.WeakReference; @@ -119,7 +119,7 @@ public class LongClickMovementMethod extends LinkMovementMethod { /** This signature is available in the base class and can lead to the wrong instance being returned. */ public static LongClickMovementMethod getInstance() { - return getInstance(ApplicationDependencies.getApplication()); + return getInstance(AppDependencies.getApplication()); } public static LongClickMovementMethod getInstance(Context context) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileUtil.java index d8725e9c2c..787c187807 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileUtil.java @@ -7,7 +7,7 @@ import android.os.ParcelFileDescriptor; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.io.FileDescriptor; import java.io.IOException; @@ -23,7 +23,7 @@ public final class MemoryFileUtil { throws IOException { if (Build.VERSION.SDK_INT >= 26) { - return MemoryFileDescriptorProxy.create(ApplicationDependencies.getApplication(), file); + return MemoryFileDescriptorProxy.create(AppDependencies.getApplication(), file); } else { return getParcelFileDescriptorLegacy(file); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ProfileUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ProfileUtil.java index b5024b7177..f95347e28e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ProfileUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ProfileUtil.java @@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; import org.thoughtcrime.securesms.database.RecipientTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobs.GroupV2UpdateSelfProfileKeyJob; import org.thoughtcrime.securesms.jobs.MultiDeviceProfileKeyUpdateJob; @@ -81,12 +81,12 @@ public final class ProfileUtil { Log.w(TAG, "[handleSelfProfileKeyChange] Scheduling jobs, including " + gv2UpdateJobs.size() + " group update jobs."); - ApplicationDependencies.getJobManager() - .startChain(new RefreshAttributesJob()) - .then(new ProfileUploadJob()) - .then(new MultiDeviceProfileKeyUpdateJob()) - .then(gv2UpdateJobs) - .enqueue(); + AppDependencies.getJobManager() + .startChain(new RefreshAttributesJob()) + .then(new ProfileUploadJob()) + .then(new MultiDeviceProfileKeyUpdateJob()) + .then(gv2UpdateJobs) + .enqueue(); } @WorkerThread @@ -114,7 +114,7 @@ public final class ProfileUtil { @NonNull SignalServiceProfile.RequestType requestType) throws IOException { - ProfileService profileService = ApplicationDependencies.getProfileService(); + ProfileService profileService = AppDependencies.getProfileService(); ServiceResponse response = Single .fromCallable(() -> new SignalServiceAddress(pni)) @@ -137,7 +137,7 @@ public final class ProfileUtil { @NonNull SignalServiceProfile.RequestType requestType, boolean allowUnidentifiedAccess) { - ProfileService profileService = ApplicationDependencies.getProfileService(); + ProfileService profileService = AppDependencies.getProfileService(); Optional unidentifiedAccess = allowUnidentifiedAccess ? getUnidentifiedAccess(context, recipient) : Optional.empty(); Optional profileKey = ProfileKeyUtil.profileKeyOptional(recipient.getProfileKey()); @@ -189,7 +189,7 @@ public final class ProfileUtil { Log.w(TAG, "Profile key not available for " + recipient.getId()); throw new PaymentsAddressException(PaymentsAddressException.Code.NO_PROFILE_KEY); } - ProfileAndCredential profileAndCredential = ProfileUtil.retrieveProfileSync(ApplicationDependencies.getApplication(), recipient, SignalServiceProfile.RequestType.PROFILE); + ProfileAndCredential profileAndCredential = ProfileUtil.retrieveProfileSync(AppDependencies.getApplication(), recipient, SignalServiceProfile.RequestType.PROFILE); SignalServiceProfile profile = profileAndCredential.getProfile(); byte[] encryptedPaymentsAddress = profile.getPaymentAddress(); @@ -323,8 +323,8 @@ public final class ProfileUtil { if (profileKey != null) { Log.i(TAG, String.format("Updating profile key credential on recipient %s, fetching", recipient.getId())); - Optional profileKeyCredentialOptional = ApplicationDependencies.getSignalServiceAccountManager() - .resolveProfileKeyCredential(recipient.requireAci(), profileKey, Locale.getDefault()); + Optional profileKeyCredentialOptional = AppDependencies.getSignalServiceAccountManager() + .resolveProfileKeyCredential(recipient.requireAci(), profileKey, Locale.getDefault()); if (profileKeyCredentialOptional.isPresent()) { boolean updatedProfileKey = SignalDatabase.recipients().setProfileKeyCredential(recipient.getId(), profileKey, profileKeyCredentialOptional.get()); @@ -367,7 +367,7 @@ public final class ProfileUtil { } ProfileKey profileKey = ProfileKeyUtil.getSelfProfileKey(); - SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager(); + SignalServiceAccountManager accountManager = AppDependencies.getSignalServiceAccountManager(); String avatarPath = accountManager.setVersionedProfile(SignalStore.account().requireAci(), profileKey, profileName.serialize(), @@ -381,7 +381,7 @@ public final class ProfileUtil { if (!avatar.keepTheSame) { SignalDatabase.recipients().setProfileAvatar(Recipient.self().getId(), avatarPath); } - ApplicationDependencies.getJobManager().add(new RefreshOwnProfileJob()); + AppDependencies.getJobManager().add(new RefreshOwnProfileJob()); } private static @Nullable PaymentAddress getSelfPaymentsAddressProtobuf() { @@ -389,9 +389,9 @@ public final class ProfileUtil { return null; } else { IdentityKeyPair identityKeyPair = SignalStore.account().getAciIdentityKey(); - MobileCoinPublicAddress publicAddress = ApplicationDependencies.getPayments() - .getWallet() - .getMobileCoinPublicAddress(); + MobileCoinPublicAddress publicAddress = AppDependencies.getPayments() + .getWallet() + .getMobileCoinPublicAddress(); return MobileCoinPublicAddressProfileUtil.signPaymentsAddress(publicAddress.serialize(), identityKeyPair); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentUtil.kt index da29fca579..6e5b26c354 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SaveAttachmentUtil.kt @@ -27,7 +27,7 @@ import org.signal.core.util.logging.Log import org.signal.core.util.orNull import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.database.model.MmsMessageRecord -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mms.PartAuthority import java.io.File import java.io.FileOutputStream @@ -110,15 +110,15 @@ object SaveAttachmentUtil { val updateValues = ContentValues() val mediaUri = result.mediaUri ?: return null - val inputStream: InputStream = PartAuthority.getAttachmentStream(ApplicationDependencies.getApplication(), attachment.uri) ?: return null + val inputStream: InputStream = PartAuthority.getAttachmentStream(AppDependencies.application, attachment.uri) ?: return null inputStream.use { inStream -> if (result.outputUri.scheme == ContentResolver.SCHEME_FILE) { FileOutputStream(mediaUri.path).use { outStream -> StreamUtil.copy(inStream, outStream) - MediaScannerConnection.scanFile(ApplicationDependencies.getApplication(), arrayOf(mediaUri.path), arrayOf(contentType), null) + MediaScannerConnection.scanFile(AppDependencies.application, arrayOf(mediaUri.path), arrayOf(contentType), null) } } else { - ApplicationDependencies.getApplication().contentResolver.openOutputStream(mediaUri, "w").use { outStream -> + AppDependencies.application.contentResolver.openOutputStream(mediaUri, "w").use { outStream -> val total = StreamUtil.copy(inStream, outStream) if (total > 0) { updateValues.put(MediaStore.MediaColumns.SIZE, total) @@ -132,7 +132,7 @@ object SaveAttachmentUtil { } if (updateValues.size() > 0) { - ApplicationDependencies.getApplication().contentResolver.update(mediaUri, updateValues, null, null) + AppDependencies.application.contentResolver.update(mediaUri, updateValues, null, null) } return result.outputUri.lastPathSegment @@ -231,11 +231,11 @@ object SaveAttachmentUtil { } return try { - CreateMediaUriResult(outputUri, ApplicationDependencies.getApplication().contentResolver.insert(outputUri, contentValues)) + CreateMediaUriResult(outputUri, AppDependencies.application.contentResolver.insert(outputUri, contentValues)) } catch (e: RuntimeException) { if (e is IllegalArgumentException || e.cause is IllegalArgumentException) { Log.w(TAG, "Unable to create uri in $outputUri with mimeType [$mimeType]") - CreateMediaUriResult(StorageUtil.getDownloadUri(), ApplicationDependencies.getApplication().contentResolver.insert(StorageUtil.getDownloadUri(), contentValues)) + CreateMediaUriResult(StorageUtil.getDownloadUri(), AppDependencies.application.contentResolver.insert(StorageUtil.getDownloadUri(), contentValues)) } else { throw e } @@ -272,7 +272,7 @@ object SaveAttachmentUtil { @Throws(IOException::class) private fun pathTaken(outputUri: Uri, dataPath: String): Boolean { - val cursor: Cursor = ApplicationDependencies.getApplication().contentResolver.query( + val cursor: Cursor = AppDependencies.application.contentResolver.query( outputUri, arrayOf(MediaStore.MediaColumns.DATA), "${MediaStore.MediaColumns.DATA} = ?", @@ -285,7 +285,7 @@ object SaveAttachmentUtil { @Throws(IOException::class) private fun displayNameTaken(outputUri: Uri, displayName: String): Boolean { - val cursor: Cursor = ApplicationDependencies.getApplication().contentResolver.query( + val cursor: Cursor = AppDependencies.application.contentResolver.query( outputUri, arrayOf(MediaStore.MediaColumns.DISPLAY_NAME), "${MediaStore.MediaColumns.DISPLAY_NAME} = ?", diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ScreenDensity.java b/app/src/main/java/org/thoughtcrime/securesms/util/ScreenDensity.java index 9cb223ed75..4893bbfa52 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ScreenDensity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ScreenDensity.java @@ -5,7 +5,7 @@ import android.util.DisplayMetrics; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import java.util.LinkedHashMap; import java.util.Map; @@ -54,7 +54,7 @@ public final class ScreenDensity { } public static @NonNull String getBestDensityBucketForDevice() { - ScreenDensity density = get(ApplicationDependencies.getApplication()); + ScreenDensity density = get(AppDependencies.getApplication()); if (density.isKnownDensity()) { return density.bucket; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SignalProxyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/SignalProxyUtil.java index e963fa0375..4ea65f0594 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SignalProxyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SignalProxyUtil.java @@ -7,7 +7,7 @@ import androidx.annotation.WorkerThread; import org.conscrypt.ConscryptSignal; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.push.AccountManagerFactory; import org.whispersystems.signalservice.api.SignalServiceAccountManager; @@ -37,12 +37,12 @@ public final class SignalProxyUtil { private SignalProxyUtil() {} public static void startListeningToWebsocket() { - if (SignalStore.proxy().isProxyEnabled() && ApplicationDependencies.getSignalWebSocket().getWebSocketState().firstOrError().blockingGet().isFailure()) { + if (SignalStore.proxy().isProxyEnabled() && AppDependencies.getSignalWebSocket().getWebSocketState().firstOrError().blockingGet().isFailure()) { Log.w(TAG, "Proxy is in a failed state. Restarting."); - ApplicationDependencies.closeConnections(); + AppDependencies.resetNetwork(); } - ApplicationDependencies.getIncomingMessageObserver(); + AppDependencies.getIncomingMessageObserver(); } /** @@ -52,7 +52,7 @@ public final class SignalProxyUtil { public static void enableProxy(@NonNull SignalProxy proxy) { SignalStore.proxy().enableProxy(proxy); ConscryptSignal.setUseEngineSocketByDefault(true); - ApplicationDependencies.resetAllNetworkConnections(); + AppDependencies.resetNetwork(); startListeningToWebsocket(); } @@ -63,7 +63,7 @@ public final class SignalProxyUtil { public static void disableProxy() { SignalStore.proxy().disableProxy(); ConscryptSignal.setUseEngineSocketByDefault(false); - ApplicationDependencies.resetAllNetworkConnections(); + AppDependencies.resetNetwork(); startListeningToWebsocket(); } @@ -88,16 +88,16 @@ public final class SignalProxyUtil { return testWebsocketConnectionUnregistered(timeout); } - return ApplicationDependencies.getSignalWebSocket() - .getWebSocketState() - .subscribeOn(Schedulers.trampoline()) - .observeOn(Schedulers.trampoline()) - .timeout(timeout, TimeUnit.MILLISECONDS) - .skipWhile(state -> state != WebSocketConnectionState.CONNECTED && !state.isFailure()) - .firstOrError() - .flatMap(state -> Single.just(state == WebSocketConnectionState.CONNECTED)) - .onErrorReturn(t -> false) - .blockingGet(); + return AppDependencies.getSignalWebSocket() + .getWebSocketState() + .subscribeOn(Schedulers.trampoline()) + .observeOn(Schedulers.trampoline()) + .timeout(timeout, TimeUnit.MILLISECONDS) + .skipWhile(state -> state != WebSocketConnectionState.CONNECTED && !state.isFailure()) + .firstOrError() + .flatMap(state -> Single.just(state == WebSocketConnectionState.CONNECTED)) + .onErrorReturn(t -> false) + .blockingGet(); } /** @@ -158,7 +158,7 @@ public final class SignalProxyUtil { private static boolean testWebsocketConnectionUnregistered(long timeout) { CountDownLatch latch = new CountDownLatch(1); AtomicBoolean success = new AtomicBoolean(false); - SignalServiceAccountManager accountManager = AccountManagerFactory.getInstance().createUnauthenticated(ApplicationDependencies.getApplication(), "", SignalServiceAddress.DEFAULT_DEVICE_ID, ""); + SignalServiceAccountManager accountManager = AccountManagerFactory.getInstance().createUnauthenticated(AppDependencies.getApplication(), "", SignalServiceAddress.DEFAULT_DEVICE_ID, ""); SignalExecutors.UNBOUNDED.execute(() -> { try { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/SignalUncaughtExceptionHandler.java b/app/src/main/java/org/thoughtcrime/securesms/util/SignalUncaughtExceptionHandler.java index 4f44dc1358..b01e3f2033 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/SignalUncaughtExceptionHandler.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/SignalUncaughtExceptionHandler.java @@ -7,9 +7,8 @@ import androidx.annotation.NonNull; import org.signal.core.util.ExceptionUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.LogDatabase; -import org.thoughtcrime.securesms.database.SearchTable; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import java.io.IOException; @@ -59,10 +58,10 @@ public class SignalUncaughtExceptionHandler implements Thread.UncaughtExceptionH } Log.e(TAG, "", e, true); - LogDatabase.getInstance(ApplicationDependencies.getApplication()).crashes().saveCrash(System.currentTimeMillis(), exceptionName, e.getMessage(), ExceptionUtil.convertThrowableToString(e)); + LogDatabase.getInstance(AppDependencies.getApplication()).crashes().saveCrash(System.currentTimeMillis(), exceptionName, e.getMessage(), ExceptionUtil.convertThrowableToString(e)); SignalStore.blockUntilAllWritesFinished(); Log.blockUntilAllWritesFinished(); - ApplicationDependencies.getJobManager().flush(); + AppDependencies.getJobManager().flush(); originalHandler.uncaughtException(t, ExceptionUtil.joinStackTraceAndMessage(e)); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/StorageUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/StorageUtil.java index 4d400faf67..96f3c4670c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StorageUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StorageUtil.java @@ -16,7 +16,7 @@ import androidx.annotation.RequiresApi; import org.thoughtcrime.securesms.BuildConfig; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.database.NoExternalStorageException; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.permissions.PermissionCompat; import org.thoughtcrime.securesms.permissions.Permissions; @@ -107,11 +107,11 @@ public class StorageUtil { public static boolean canWriteToMediaStore() { return Build.VERSION.SDK_INT > 28 || - Permissions.hasAll(ApplicationDependencies.getApplication(), Manifest.permission.WRITE_EXTERNAL_STORAGE); + Permissions.hasAll(AppDependencies.getApplication(), Manifest.permission.WRITE_EXTERNAL_STORAGE); } public static boolean canReadFromMediaStore() { - return Permissions.hasAny(ApplicationDependencies.getApplication(), PermissionCompat.forImagesAndVideos()); + return Permissions.hasAny(AppDependencies.getApplication(), PermissionCompat.forImagesAndVideos()); } public static @NonNull Uri getVideoUri() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java index 886d8616a1..a8bb20fa38 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.backup.proto.SharedPreference; import org.thoughtcrime.securesms.crypto.ProfileKeyUtil; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraintObserver; import org.thoughtcrime.securesms.keyvalue.SettingsValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -1131,7 +1131,7 @@ public class TextSecurePreferences { Recipient self = Recipient.self(); SignalDatabase.recipients().setProfileKey(self.getId(), newProfileKey); - ApplicationDependencies.getGroupsV2Authorization().clear(); + AppDependencies.getGroupsV2Authorization().clear(); } private static SharedPreferences getSharedPreferences(Context context) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt b/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt index c44fde5a4f..4e066af437 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/VersionTracker.kt @@ -3,7 +3,7 @@ package org.thoughtcrime.securesms.util import android.content.Context import android.content.pm.PackageManager import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.RefreshAttributesJob import org.thoughtcrime.securesms.jobs.RemoteConfigRefreshJob import org.thoughtcrime.securesms.jobs.RetrieveRemoteAnnouncementsJob @@ -27,7 +27,7 @@ object VersionTracker { Log.i(TAG, "Upgraded from $lastVersionCode to $currentVersionCode") SignalStore.misc().isClientDeprecated = false val jobChain = listOf(RemoteConfigRefreshJob(), RefreshAttributesJob()) - ApplicationDependencies.getJobManager().startChain(jobChain).enqueue() + AppDependencies.jobManager.startChain(jobChain).enqueue() RetrieveRemoteAnnouncementsJob.enqueue(true) LocalMetrics.getInstance().clear() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/navigation/SafeNavigation.kt b/app/src/main/java/org/thoughtcrime/securesms/util/navigation/SafeNavigation.kt index 6584562240..0fbaa5ee69 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/navigation/SafeNavigation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/navigation/SafeNavigation.kt @@ -9,7 +9,7 @@ import androidx.navigation.NavController import androidx.navigation.NavDirections import androidx.navigation.NavOptions import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies private const val TAG = "SafeNavigation" @@ -62,7 +62,7 @@ private fun getDisplayName(id: Int): String? { id.toString() } else { try { - ApplicationDependencies.getApplication().resources.getResourceName(id) + AppDependencies.application.resources.getResourceName(id) } catch (e: Resources.NotFoundException) { id.toString() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/viewholders/RecipientMappingModel.java b/app/src/main/java/org/thoughtcrime/securesms/util/viewholders/RecipientMappingModel.java index 962ddeeff4..6f0b82e1bb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/viewholders/RecipientMappingModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/viewholders/RecipientMappingModel.java @@ -4,7 +4,7 @@ import android.content.Context; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel; @@ -26,7 +26,7 @@ public abstract class RecipientMappingModel> @Override public boolean areContentsTheSame(@NonNull T newItem) { - Context context = ApplicationDependencies.getApplication(); + Context context = AppDependencies.getApplication(); return getName(context).equals(newItem.getName(context)) && Objects.equals(getRecipient().getContactPhoto(), newItem.getRecipient().getContactPhoto()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt index fbf47596cf..4c64f2270e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt @@ -17,7 +17,7 @@ import org.signal.libsignal.protocol.fingerprint.Fingerprint import org.signal.libsignal.protocol.fingerprint.NumericFingerprintGenerator import org.thoughtcrime.securesms.crypto.ReentrantSessionLock import org.thoughtcrime.securesms.database.IdentityTable -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobs.MultiDeviceVerifiedUpdateJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.LiveRecipient @@ -74,13 +74,13 @@ class VerifySafetyNumberViewModel( fun updateSafetyNumberVerification(verified: Boolean) { val recipientId: RecipientId = recipientId - val context: Context = ApplicationDependencies.getApplication() + val context: Context = AppDependencies.application SignalExecutors.BOUNDED.execute { ReentrantSessionLock.INSTANCE.acquire().use { _ -> if (verified) { Log.i(TAG, "Saving identity: $recipientId") - ApplicationDependencies.getProtocolStore().aci().identities() + AppDependencies.protocolStore.aci().identities() .saveIdentityWithoutSideEffects( recipientId, recipient.resolve().requireAci(), @@ -91,9 +91,9 @@ class VerifySafetyNumberViewModel( true ) } else { - ApplicationDependencies.getProtocolStore().aci().identities().setVerified(recipientId, remoteIdentity, IdentityTable.VerifiedStatus.DEFAULT) + AppDependencies.protocolStore.aci().identities().setVerified(recipientId, remoteIdentity, IdentityTable.VerifiedStatus.DEFAULT) } - ApplicationDependencies.getJobManager() + AppDependencies.jobManager .add( MultiDeviceVerifiedUpdateJob( recipientId, diff --git a/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java b/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java index 2cd5a7da52..009450c4cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java @@ -43,7 +43,7 @@ import androidx.media3.ui.PlayerView; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.mediapreview.MediaPreviewPlayerControlView; import org.thoughtcrime.securesms.mms.VideoSlide; @@ -149,7 +149,7 @@ public class VideoPlayer extends FrameLayout { public void setVideoSource(@NonNull VideoSlide videoSource, boolean autoplay, String poolTag, long clipStartMs, long clipEndMs) { if (exoPlayer == null) { - exoPlayer = ApplicationDependencies.getExoPlayerPool().require(poolTag); + exoPlayer = AppDependencies.getExoPlayerPool().require(poolTag); exoPlayer.addListener(exoPlayerListener); exoPlayer.addListener(playerListener); exoView.setPlayer(exoPlayer); @@ -263,7 +263,7 @@ public class VideoPlayer extends FrameLayout { exoPlayer.removeListener(playerListener); exoPlayer.removeListener(exoPlayerListener); - ApplicationDependencies.getExoPlayerPool().pool(exoPlayer); + AppDependencies.getExoPlayerPool().pool(exoPlayer); this.exoPlayer = null; } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/video/exo/ChunkedDataSource.java b/app/src/main/java/org/thoughtcrime/securesms/video/exo/ChunkedDataSource.java index 726f142975..6de8dd90b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/video/exo/ChunkedDataSource.java +++ b/app/src/main/java/org/thoughtcrime/securesms/video/exo/ChunkedDataSource.java @@ -13,7 +13,7 @@ import androidx.media3.datasource.DataSource; import androidx.media3.datasource.DataSpec; import androidx.media3.datasource.TransferListener; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.net.ChunkedDataFetcher; import java.io.EOFException; @@ -63,8 +63,8 @@ class ChunkedDataSource implements DataSource { // Exoplayer sometimes interrupts the thread } - Context context = ApplicationDependencies.getApplication(); - GiphyMp4Cache cache = ApplicationDependencies.getGiphyMp4Cache(); + Context context = AppDependencies.getApplication(); + GiphyMp4Cache cache = AppDependencies.getGiphyMp4Cache(); cacheEntry = cache.read(context, dataSpec.uri); diff --git a/app/src/main/java/org/thoughtcrime/securesms/video/exo/SimpleExoPlayerPool.kt b/app/src/main/java/org/thoughtcrime/securesms/video/exo/SimpleExoPlayerPool.kt index a9e93e6338..505e5cd1fe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/video/exo/SimpleExoPlayerPool.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/video/exo/SimpleExoPlayerPool.kt @@ -11,7 +11,7 @@ import androidx.media3.exoplayer.mediacodec.MediaCodecUtil import androidx.media3.exoplayer.source.DefaultMediaSourceFactory import androidx.media3.exoplayer.source.MediaSource import org.signal.core.util.logging.Log -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.net.ContentProxySelector import org.thoughtcrime.securesms.util.AppForegroundObserver import org.thoughtcrime.securesms.util.DeviceProperties @@ -23,12 +23,12 @@ import kotlin.time.Duration.Companion.seconds @OptIn(markerClass = [UnstableApi::class]) class SimpleExoPlayerPool(context: Context) : ExoPlayerPool(MAXIMUM_RESERVED_PLAYERS) { private val context: Context = context.applicationContext - private val okHttpClient = ApplicationDependencies.getOkHttpClient().newBuilder().proxySelector(ContentProxySelector()).build() - private val dataSourceFactory: DataSource.Factory = SignalDataSource.Factory(ApplicationDependencies.getApplication(), okHttpClient, null) + private val okHttpClient = AppDependencies.okHttpClient.newBuilder().proxySelector(ContentProxySelector()).build() + private val dataSourceFactory: DataSource.Factory = SignalDataSource.Factory(AppDependencies.application, okHttpClient, null) private val mediaSourceFactory: MediaSource.Factory = DefaultMediaSourceFactory(dataSourceFactory) init { - ApplicationDependencies.getAppForegroundObserver().addListener(this) + AppDependencies.appForegroundObserver.addListener(this) } /** @@ -51,7 +51,7 @@ class SimpleExoPlayerPool(context: Context) : ExoPlayerPool(MAXIMUM_R return maxInstances } - return if (DeviceProperties.isLowMemoryDevice(ApplicationDependencies.getApplication())) { + return if (DeviceProperties.isLowMemoryDevice(AppDependencies.application)) { MAXIMUM_SUPPORTED_PLAYBACK_PRE_23_LOW_MEM } else { MAXIMUM_SUPPORTED_PLAYBACK_PRE_23 diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperRepository.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperRepository.java index e282eca0f4..98a163036e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/ChatWallpaperRepository.java @@ -9,7 +9,7 @@ import org.signal.core.util.concurrent.SignalExecutors; import org.thoughtcrime.securesms.conversation.colors.ChatColors; import org.thoughtcrime.securesms.conversation.colors.ChatColorsPalette; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; @@ -50,7 +50,7 @@ class ChatWallpaperRepository { EXECUTOR.execute(() -> { List wallpapers = new ArrayList<>(ChatWallpaper.BuiltIns.INSTANCE.getAllBuiltIns()); - wallpapers.addAll(WallpaperStorage.getAll(ApplicationDependencies.getApplication())); + wallpapers.addAll(WallpaperStorage.getAll(AppDependencies.getApplication())); consumer.accept(wallpapers); }); } @@ -63,13 +63,13 @@ class ChatWallpaperRepository { onWallpaperSaved.run(); }); } else { - SignalStore.wallpaper().setWallpaper(ApplicationDependencies.getApplication(), chatWallpaper); + SignalStore.wallpaper().setWallpaper(AppDependencies.getApplication(), chatWallpaper); onWallpaperSaved.run(); } } void resetAllWallpaper(@NonNull Runnable onWallpaperReset) { - SignalStore.wallpaper().setWallpaper(ApplicationDependencies.getApplication(), null); + SignalStore.wallpaper().setWallpaper(AppDependencies.getApplication(), null); EXECUTOR.execute(() -> { SignalDatabase.recipients().resetAllWallpaper(); onWallpaperReset.run(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropRepository.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropRepository.java index 3f167f9e00..9b8e81a947 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropRepository.java @@ -8,7 +8,7 @@ import androidx.annotation.WorkerThread; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.database.SignalDatabase; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.wallpaper.ChatWallpaper; @@ -26,7 +26,7 @@ final class WallpaperCropRepository { private final Context context; public WallpaperCropRepository(@Nullable RecipientId recipientId) { - this.context = ApplicationDependencies.getApplication(); + this.context = AppDependencies.getApplication(); this.recipientId = recipientId; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java b/app/src/main/java/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java index 50adc4f5c5..0547fabf58 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/VoiceCallShare.java @@ -9,7 +9,7 @@ import android.text.TextUtils; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.WebRtcCallActivity; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.recipients.Recipient; import org.signal.core.util.concurrent.SimpleTask; @@ -35,9 +35,9 @@ public class VoiceCallShare extends Activity { SimpleTask.run(() -> Recipient.external(this, destination), recipient -> { if (!TextUtils.isEmpty(destination)) { if (VIDEO_CALL_MIME_TYPE.equals(getIntent().getType())) { - ApplicationDependencies.getSignalCallManager().startOutgoingVideoCall(recipient); + AppDependencies.getSignalCallManager().startOutgoingVideoCall(recipient); } else { - ApplicationDependencies.getSignalCallManager().startOutgoingAudioCall(recipient); + AppDependencies.getSignalCallManager().startOutgoingAudioCall(recipient); } Intent activityIntent = new Intent(this, WebRtcCallActivity.class); diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt index 7268d54785..04f22d7d6b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt @@ -19,7 +19,7 @@ import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.audio.AudioDeviceUpdatedListener import org.thoughtcrime.securesms.audio.SignalBluetoothManager -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.recipients.RecipientId import org.thoughtcrime.securesms.util.safeUnregisterReceiver import org.whispersystems.signalservice.api.util.Preconditions @@ -33,7 +33,7 @@ sealed class SignalAudioManager(protected val context: Context, protected val ev protected var state: State = State.UNINITIALIZED - protected val androidAudioManager = ApplicationDependencies.getAndroidCallAudioManager() + protected val androidAudioManager = AppDependencies.androidCallAudioManager protected var selectedAudioDevice: AudioDevice = AudioDevice.NONE diff --git a/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt b/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt index 4b059fd62b..84b096251e 100644 --- a/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt +++ b/app/src/spinner/java/org/thoughtcrime/securesms/StorageServicePlugin.kt @@ -2,7 +2,7 @@ package org.thoughtcrime.securesms import org.signal.spinner.Plugin import org.signal.spinner.PluginResult -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore class StorageServicePlugin : Plugin { @@ -13,7 +13,7 @@ class StorageServicePlugin : Plugin { val columns = listOf("Type", "Data") val rows = mutableListOf>() - val manager = ApplicationDependencies.getSignalServiceAccountManager() + val manager = AppDependencies.signalServiceAccountManager val storageServiceKey = SignalStore.storageService().orCreateStorageKey val storageManifestVersion = manager.storageManifestVersion val manifest = manager.getStorageManifestIfDifferentVersion(storageServiceKey, storageManifestVersion - 1).get() diff --git a/app/src/spinner/java/org/thoughtcrime/securesms/database/GV2UpdateTransformer.kt b/app/src/spinner/java/org/thoughtcrime/securesms/database/GV2UpdateTransformer.kt index 7547a341b1..c24a10834b 100644 --- a/app/src/spinner/java/org/thoughtcrime/securesms/database/GV2UpdateTransformer.kt +++ b/app/src/spinner/java/org/thoughtcrime/securesms/database/GV2UpdateTransformer.kt @@ -9,7 +9,7 @@ import org.signal.spinner.DefaultColumnTransformer import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.UpdateDescription import org.thoughtcrime.securesms.database.model.databaseprotos.DecryptedGroupV2Context -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies object GV2UpdateTransformer : ColumnTransformer { override fun matches(tableName: String?, columnName: String): Boolean { @@ -28,7 +28,7 @@ object GV2UpdateTransformer : ColumnTransformer { return if (MessageTypes.isGroupV2(type) && MessageTypes.isGroupUpdate(type) && body != null) { val decoded = Base64.decode(body) val decryptedGroupV2Context = DecryptedGroupV2Context.ADAPTER.decode(decoded) - val gv2ChangeDescription: UpdateDescription = MessageRecord.getGv2ChangeDescription(ApplicationDependencies.getApplication(), body, null) + val gv2ChangeDescription: UpdateDescription = MessageRecord.getGv2ChangeDescription(AppDependencies.application, body, null) "${gv2ChangeDescription.spannable}

${decryptedGroupV2Context.change}" } else { diff --git a/app/src/test/java/org/thoughtcrime/securesms/SignalStoreRule.kt b/app/src/test/java/org/thoughtcrime/securesms/SignalStoreRule.kt index 7828e35a0c..5e1dde78b4 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/SignalStoreRule.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/SignalStoreRule.kt @@ -4,7 +4,7 @@ import androidx.test.core.app.ApplicationProvider import org.junit.rules.TestRule import org.junit.runner.Description import org.junit.runners.model.Statement -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet import org.thoughtcrime.securesms.keyvalue.KeyValueStore @@ -27,8 +27,8 @@ class SignalStoreRule @JvmOverloads constructor(private val defaultValues: KeyVa return object : Statement() { @Throws(Throwable::class) override fun evaluate() { - if (!ApplicationDependencies.isInitialized()) { - ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) + if (!AppDependencies.isInitialized) { + AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) } dataSet = KeyValueDataSet() diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java b/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java index 8727eb458f..160c928087 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java +++ b/app/src/test/java/org/thoughtcrime/securesms/components/emoji/EmojiUtilTest_isEmoji.java @@ -15,7 +15,7 @@ import org.mockito.junit.MockitoRule; import org.robolectric.ParameterizedRobolectricTestRunner; import org.robolectric.annotation.Config; import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.emoji.EmojiSource; import org.thoughtcrime.securesms.keyvalue.InternalValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; @@ -61,7 +61,7 @@ public class EmojiUtilTest_isEmoji { } @Mock - private MockedStatic applicationDependenciesMockedStatic; + private MockedStatic applicationDependenciesMockedStatic; @Mock private MockedStatic attachmentSecretProviderMockedStatic; @@ -81,7 +81,7 @@ public class EmojiUtilTest_isEmoji { public void isEmoji() throws Exception { Application application = ApplicationProvider.getApplicationContext(); - when(ApplicationDependencies.getApplication()).thenReturn(application); + when(AppDependencies.getApplication()).thenReturn(application); when(AttachmentSecretProvider.getInstance(any())).thenThrow(RuntimeException.class); when(SignalStore.internalValues()).thenReturn(mock(InternalValues.class)); EmojiSource.refresh(); diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataTest.kt b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataTest.kt index c7b9184a1d..98469ed27e 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/account/export/ExportAccountDataTest.kt @@ -17,7 +17,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider import org.thoughtcrime.securesms.providers.BlobProvider import org.thoughtcrime.securesms.util.JsonUtils @@ -66,8 +66,8 @@ class ExportAccountDataTest { @Before fun setup() { - if (!ApplicationDependencies.isInitialized()) { - ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) + if (!AppDependencies.isInitialized) { + AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) } } diff --git a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/SubscriptionsConfigurationExtensionsKtTest.kt b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/SubscriptionsConfigurationExtensionsKtTest.kt index 6b0902ea89..901137f016 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/SubscriptionsConfigurationExtensionsKtTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/components/settings/app/subscription/SubscriptionsConfigurationExtensionsKtTest.kt @@ -11,7 +11,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.whispersystems.signalservice.internal.push.SubscriptionsConfiguration import org.whispersystems.signalservice.internal.util.JsonUtil import java.util.Currency @@ -49,8 +49,8 @@ class SubscriptionsConfigurationExtensionsKtTest { @Test fun `When I getGiftBadges, then I expect exactly 1 badge with the id GIFT`() { - mockkStatic(ApplicationDependencies::class) { - every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext() + mockkStatic(AppDependencies::class) { + every { AppDependencies.application } returns ApplicationProvider.getApplicationContext() val giftBadges = testSubject.getGiftBadges() @@ -61,8 +61,8 @@ class SubscriptionsConfigurationExtensionsKtTest { @Test fun `When I getBoostBadges, then I expect exactly 1 badge with the id BOOST`() { - mockkStatic(ApplicationDependencies::class) { - every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext() + mockkStatic(AppDependencies::class) { + every { AppDependencies.application } returns ApplicationProvider.getApplicationContext() val boostBadges = testSubject.getBoostBadges() @@ -163,8 +163,8 @@ class SubscriptionsConfigurationExtensionsKtTest { @Test fun `Given GIFT_LEVEL, When I getBadge, then I expect the gift badge`() { - mockkStatic(ApplicationDependencies::class) { - every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext() + mockkStatic(AppDependencies::class) { + every { AppDependencies.application } returns ApplicationProvider.getApplicationContext() val badge = testSubject.getBadge(SubscriptionsConfiguration.GIFT_LEVEL) assertTrue(badge.isGift()) @@ -173,8 +173,8 @@ class SubscriptionsConfigurationExtensionsKtTest { @Test fun `Given BOOST_LEVEL, When I getBadge, then I expect the boost badge`() { - mockkStatic(ApplicationDependencies::class) { - every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext() + mockkStatic(AppDependencies::class) { + every { AppDependencies.application } returns ApplicationProvider.getApplicationContext() val badge = testSubject.getBadge(SubscriptionsConfiguration.BOOST_LEVEL) assertTrue(badge.isBoost()) @@ -183,8 +183,8 @@ class SubscriptionsConfigurationExtensionsKtTest { @Test fun `Given a sub level, When I getBadge, then I expect a sub badge`() { - mockkStatic(ApplicationDependencies::class) { - every { ApplicationDependencies.getApplication() } returns ApplicationProvider.getApplicationContext() + mockkStatic(AppDependencies::class) { + every { AppDependencies.application } returns ApplicationProvider.getApplicationContext() val badge = testSubject.getBadge(SubscriptionsConfiguration.SUBSCRIPTION_LEVELS.first()) assertTrue(badge.isSubscription()) diff --git a/app/src/test/java/org/thoughtcrime/securesms/conversationlist/UnarchivedConversationListDataSourceTest.java b/app/src/test/java/org/thoughtcrime/securesms/conversationlist/UnarchivedConversationListDataSourceTest.java index 6f37b52d13..6530c5ffd1 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/conversationlist/UnarchivedConversationListDataSourceTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/conversationlist/UnarchivedConversationListDataSourceTest.java @@ -18,7 +18,7 @@ import org.thoughtcrime.securesms.conversationlist.model.ConversationReader; import org.thoughtcrime.securesms.database.DatabaseObserver; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -38,7 +38,7 @@ public class UnarchivedConversationListDataSourceTest { public MockitoRule rule = MockitoJUnit.rule(); @Mock - private MockedStatic applicationDependenciesMockedStatic; + private MockedStatic applicationDependenciesMockedStatic; @Mock private MockedStatic signalDatabaseMockedStatic; @@ -52,7 +52,7 @@ public class UnarchivedConversationListDataSourceTest { threadTable = mock(ThreadTable.class); when(SignalDatabase.threads()).thenReturn(threadTable); - when(ApplicationDependencies.getDatabaseObserver()).thenReturn(mock(DatabaseObserver.class)); + when(AppDependencies.getDatabaseObserver()).thenReturn(mock(DatabaseObserver.class)); testSubject = new ConversationListDataSource.UnarchivedConversationListDataSource(ConversationFilter.OFF, false); } diff --git a/app/src/test/java/org/thoughtcrime/securesms/crash/CrashConfigTest.kt b/app/src/test/java/org/thoughtcrime/securesms/crash/CrashConfigTest.kt index 2f2b7b0ba9..97d678c887 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/crash/CrashConfigTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/crash/CrashConfigTest.kt @@ -14,7 +14,7 @@ import org.mockito.junit.MockitoRule import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import org.thoughtcrime.securesms.assertIs -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider import org.thoughtcrime.securesms.keyvalue.AccountValues import org.thoughtcrime.securesms.keyvalue.KeyValueDataSet @@ -37,8 +37,8 @@ class CrashConfigTest { @Before fun setup() { - if (!ApplicationDependencies.isInitialized()) { - ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) + if (!AppDependencies.isInitialized) { + AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) } val store = KeyValueStore( diff --git a/app/src/test/java/org/thoughtcrime/securesms/database/NotificationProfileDatabaseTest.kt b/app/src/test/java/org/thoughtcrime/securesms/database/NotificationProfileDatabaseTest.kt index f106778e74..94a5c0e05e 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/database/NotificationProfileDatabaseTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/database/NotificationProfileDatabaseTest.kt @@ -15,7 +15,7 @@ import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import org.thoughtcrime.securesms.conversation.colors.AvatarColor -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider import org.thoughtcrime.securesms.notifications.profiles.NotificationProfile import org.thoughtcrime.securesms.recipients.RecipientId @@ -42,8 +42,8 @@ class NotificationProfileDatabaseTest { } } - if (!ApplicationDependencies.isInitialized()) { - ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) + if (!AppDependencies.isInitialized) { + AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) } db = sqlCipher.writableDatabase diff --git a/app/src/test/java/org/thoughtcrime/securesms/dependencies/MockApplicationDependencyProvider.java b/app/src/test/java/org/thoughtcrime/securesms/dependencies/MockApplicationDependencyProvider.java index 25373af140..8dd3ad67d7 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/dependencies/MockApplicationDependencyProvider.java +++ b/app/src/test/java/org/thoughtcrime/securesms/dependencies/MockApplicationDependencyProvider.java @@ -49,7 +49,7 @@ import java.util.function.Supplier; import static org.mockito.Mockito.mock; @SuppressWarnings("ConstantConditions") -public class MockApplicationDependencyProvider implements ApplicationDependencies.Provider { +public class MockApplicationDependencyProvider implements AppDependencies.Provider { @Override public @NonNull GroupsV2Operations provideGroupsV2Operations(@NonNull SignalServiceConfiguration signalServiceConfiguration) { return null; diff --git a/app/src/test/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessorTest.kt b/app/src/test/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessorTest.kt index c9cbe64f57..3fa1176d90 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessorTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessorTest.kt @@ -44,7 +44,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.pendingMember import org.thoughtcrime.securesms.database.model.databaseprotos.requestingMember import org.thoughtcrime.securesms.database.setNewDescription import org.thoughtcrime.securesms.database.setNewTitle -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.groups.GroupId import org.thoughtcrime.securesms.groups.GroupNotAMemberException import org.thoughtcrime.securesms.groups.GroupsV2Authorization @@ -108,10 +108,10 @@ class GroupsV2StateProcessorTest { profileAndMessageHelper = spyk(ProfileAndMessageHelper(serviceIds.aci, masterKey, groupId)) jobManager = mockk() - mockkStatic(ApplicationDependencies::class) - every { ApplicationDependencies.getJobManager() } returns jobManager - every { ApplicationDependencies.getSignalServiceAccountManager().getGroupsV2Api() } returns groupsV2API - every { ApplicationDependencies.getGroupsV2Authorization() } returns groupsV2Authorization + mockkStatic(AppDependencies::class) + every { AppDependencies.jobManager } returns jobManager + every { AppDependencies.signalServiceAccountManager.getGroupsV2Api() } returns groupsV2API + every { AppDependencies.groupsV2Authorization } returns groupsV2Authorization mockkObject(SignalDatabase) every { SignalDatabase.groups } returns groupTable @@ -125,7 +125,7 @@ class GroupsV2StateProcessorTest { @After fun tearDown() { - unmockkStatic(ApplicationDependencies::class) + unmockkStatic(AppDependencies::class) unmockkObject(SignalDatabase) unmockkObject(ProfileAndMessageHelper) unmockkStatic(DecryptedGroupUtil::class) diff --git a/app/src/test/java/org/thoughtcrime/securesms/keyvalue/PaymentsValuesTest.kt b/app/src/test/java/org/thoughtcrime/securesms/keyvalue/PaymentsValuesTest.kt index 4eb18013f6..1cbaa4386e 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/keyvalue/PaymentsValuesTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/keyvalue/PaymentsValuesTest.kt @@ -14,7 +14,7 @@ import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.dependencies.MockApplicationDependencyProvider import org.thoughtcrime.securesms.util.FeatureFlags @@ -31,8 +31,8 @@ class PaymentsValuesTest { @Before fun setup() { - if (!ApplicationDependencies.isInitialized()) { - ApplicationDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) + if (!AppDependencies.isInitialized) { + AppDependencies.init(ApplicationProvider.getApplicationContext(), MockApplicationDependencyProvider()) } } diff --git a/app/src/test/java/org/thoughtcrime/securesms/notifications/MarkReadReceiverTest.java b/app/src/test/java/org/thoughtcrime/securesms/notifications/MarkReadReceiverTest.java index 2e9ce8ad29..74bd2bbd4b 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/notifications/MarkReadReceiverTest.java +++ b/app/src/test/java/org/thoughtcrime/securesms/notifications/MarkReadReceiverTest.java @@ -18,7 +18,7 @@ import org.signal.libsignal.protocol.util.Pair; import org.thoughtcrime.securesms.database.MessageTable; import org.thoughtcrime.securesms.database.model.MessageId; import org.thoughtcrime.securesms.database.model.StoryType; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.jobmanager.JsonJobData; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.JobManager; @@ -45,7 +45,7 @@ public class MarkReadReceiverTest { public MockitoRule rule = MockitoJUnit.rule(); @Mock - private MockedStatic applicationDependenciesMockedStatic; + private MockedStatic applicationDependenciesMockedStatic; @Mock private MockedStatic recipientMockedStatic; @@ -57,7 +57,7 @@ public class MarkReadReceiverTest { @Before public void setUp() { - applicationDependenciesMockedStatic.when(ApplicationDependencies::getJobManager).thenReturn(mockJobManager); + applicationDependenciesMockedStatic.when(AppDependencies::getJobManager).thenReturn(mockJobManager); doAnswer((Answer) invocation -> { jobs.add((Job) invocation.getArguments()[0]); return null; diff --git a/app/src/test/java/org/thoughtcrime/securesms/recipients/BaseRecipientTest.kt b/app/src/test/java/org/thoughtcrime/securesms/recipients/BaseRecipientTest.kt index e4a54deab5..c502fdd075 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/recipients/BaseRecipientTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/recipients/BaseRecipientTest.kt @@ -15,7 +15,7 @@ import org.mockito.junit.MockitoRule import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.keyvalue.SignalStore @RunWith(RobolectricTestRunner::class) @@ -27,7 +27,7 @@ abstract class BaseRecipientTest { val mockitoRule: MockitoRule = MockitoJUnit.rule() @Mock - private lateinit var applicationDependenciesStaticMock: MockedStatic + private lateinit var applicationDependenciesStaticMock: MockedStatic @Mock private lateinit var attachmentSecretProviderStaticMock: MockedStatic @@ -42,7 +42,7 @@ abstract class BaseRecipientTest { fun superSetUp() { val application = ApplicationProvider.getApplicationContext() - `when`(ApplicationDependencies.getApplication()).thenReturn(application) + `when`(AppDependencies.application).thenReturn(application) `when`(AttachmentSecretProvider.getInstance(ArgumentMatchers.any())).thenThrow(RuntimeException::class.java) } } diff --git a/app/src/test/java/org/thoughtcrime/securesms/stories/StoriesTest.kt b/app/src/test/java/org/thoughtcrime/securesms/stories/StoriesTest.kt index b5599ab43d..9b0e70746b 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/stories/StoriesTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/stories/StoriesTest.kt @@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.attachments.AttachmentId import org.thoughtcrime.securesms.database.AttachmentTable import org.thoughtcrime.securesms.database.FakeMessageRecords import org.thoughtcrime.securesms.database.SignalDatabase -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.jobmanager.JobManager import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob @@ -36,7 +36,7 @@ class StoriesTest { private lateinit var mockJobManager: JobManager @Mock - private lateinit var mockApplicationDependenciesStatic: MockedStatic + private lateinit var mockApplicationDependenciesStatic: MockedStatic @Mock private lateinit var mockSignalDatabaseStatic: MockedStatic @@ -53,7 +53,7 @@ class StoriesTest { SignalDatabase.setSignalDatabaseInstanceForTesting(mockSignalDatabase) whenever(SignalDatabase.attachments).thenReturn(mockAttachmentTable) - whenever(ApplicationDependencies.getJobManager()).thenReturn(mockJobManager) + whenever(AppDependencies.jobManager).thenReturn(mockJobManager) whenever(mockAttachmentTable.getAttachmentsForMessage(any())).thenReturn(emptyList()) } diff --git a/app/src/test/java/org/thoughtcrime/securesms/util/SignalMeUtilText_parseE164FromLink.java b/app/src/test/java/org/thoughtcrime/securesms/util/SignalMeUtilText_parseE164FromLink.java index e9027b1f75..2177e8f290 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/util/SignalMeUtilText_parseE164FromLink.java +++ b/app/src/test/java/org/thoughtcrime/securesms/util/SignalMeUtilText_parseE164FromLink.java @@ -8,7 +8,7 @@ import org.junit.runner.RunWith; import org.robolectric.ParameterizedRobolectricTestRunner; import org.robolectric.annotation.Config; import org.thoughtcrime.securesms.SignalStoreRule; -import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.dependencies.AppDependencies; import org.thoughtcrime.securesms.keyvalue.AccountValues; import java.util.Arrays; @@ -55,6 +55,6 @@ public class SignalMeUtilText_parseE164FromLink { @Test public void parse() { - assertEquals(output, SignalMeUtil.parseE164FromLink(ApplicationDependencies.getApplication(), input)); + assertEquals(output, SignalMeUtil.parseE164FromLink(AppDependencies.getApplication(), input)); } } diff --git a/core-util-jvm/src/main/java/org/signal/core/util/ResettableLazy.kt b/core-util-jvm/src/main/java/org/signal/core/util/ResettableLazy.kt new file mode 100644 index 0000000000..041a5fb965 --- /dev/null +++ b/core-util-jvm/src/main/java/org/signal/core/util/ResettableLazy.kt @@ -0,0 +1,60 @@ +/* + * Copyright 2024 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.signal.core.util + +import kotlin.reflect.KProperty + +/** + * Identical to Kotlin's built-in [lazy] delegate, but with a `reset` method that allows the value to be reset to it's default state (and therefore recomputed + * upon next access). + */ +fun resettableLazy(initializer: () -> T): ResettableLazy { + return ResettableLazy(initializer) +} + +/** + * @see resettableLazy + */ +class ResettableLazy( + val initializer: () -> T +) { + // We need to distinguish between a lazy value of null and a lazy value that has not been initialized yet + @Volatile + private var value: Any? = UNINITIALIZED + + operator fun getValue(thisRef: Any?, property: KProperty<*>): T { + if (value === UNINITIALIZED) { + synchronized(this) { + if (value === UNINITIALIZED) { + value = initializer() + } + } + } + + @Suppress("UNCHECKED_CAST") + return value as T + } + + fun reset() { + value = UNINITIALIZED + } + + fun isInitialized(): Boolean { + return value !== UNINITIALIZED + } + + override fun toString(): String { + return if (isInitialized()) { + value.toString() + } else { + "Lazy value not initialized yet." + } + } + + companion object { + private val UNINITIALIZED = Any() + } +} diff --git a/core-util-jvm/src/test/java/org/signal/core/util/ResettableLazyTests.kt b/core-util-jvm/src/test/java/org/signal/core/util/ResettableLazyTests.kt new file mode 100644 index 0000000000..b719209c23 --- /dev/null +++ b/core-util-jvm/src/test/java/org/signal/core/util/ResettableLazyTests.kt @@ -0,0 +1,88 @@ +/* + * Copyright 2024 Signal Messenger, LLC + * SPDX-License-Identifier: AGPL-3.0-only + */ + +package org.signal.core.util + +import junit.framework.TestCase.assertEquals +import junit.framework.TestCase.assertFalse +import junit.framework.TestCase.assertTrue +import org.junit.Test +import java.util.concurrent.CountDownLatch + +class ResettableLazyTests { + + @Test + fun `value only computed once`() { + var counter = 0 + val lazy: Int by resettableLazy { + counter++ + } + + assertEquals(0, lazy) + assertEquals(0, lazy) + assertEquals(0, lazy) + } + + @Test + fun `value recomputed after a reset`() { + var counter = 0 + val _lazy = resettableLazy { + counter++ + } + val lazy by _lazy + + assertEquals(0, lazy) + _lazy.reset() + + assertEquals(1, lazy) + _lazy.reset() + + assertEquals(2, lazy) + } + + @Test + fun `isInitialized - general`() { + val _lazy = resettableLazy { 1 } + val lazy: Int by _lazy + + assertFalse(_lazy.isInitialized()) + + val x = lazy + 1 + assertEquals(2, x) + assertTrue(_lazy.isInitialized()) + + _lazy.reset() + assertFalse(_lazy.isInitialized()) + } + + /** + * I've verified that without the synchronization inside of resettableLazy, this test usually fails. + */ + @Test + fun `ensure synchronization works`() { + val numRounds = 100 + val numThreads = 5 + + for (i in 1..numRounds) { + var counter = 0 + val lazy: Int by resettableLazy { + counter++ + } + + val latch = CountDownLatch(numThreads) + + for (j in 1..numThreads) { + Thread { + val x = lazy + 1 + latch.countDown() + }.start() + } + + latch.await() + + assertEquals(1, counter) + } + } +}