From 4491c89d06cee7a4f36c3306585c3b4abee07b1b Mon Sep 17 00:00:00 2001 From: SessionHero01 <180888785+SessionHero01@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:22:03 +1100 Subject: [PATCH 1/3] transitive R --- .../utilities/TextSecurePreferences.kt | 2 +- .../securesms/SessionDialogBuilder.kt | 6 +- .../org/thoughtcrime/securesms/ShareScreen.kt | 2 +- .../components/emoji/EmojiEditText.java | 2 +- .../emoji/EmojiVariationSelectorPopup.java | 2 +- .../DisappearingMessages.kt | 6 +- .../disappearingmessages/State.kt | 6 +- .../ui/DisappearingMessages.kt | 2 +- .../conversation/v2/ConversationActivityV2.kt | 6 +- .../v2/ConversationReactionOverlay.kt | 8 +- .../conversation/v2/ConversationV2Dialogs.kt | 4 +- .../conversation/v2/ConversationViewModel.kt | 2 +- .../conversation/v2/MessageDetailActivity.kt | 2 +- .../conversation/v2/dialogs/BlockedDialog.kt | 2 +- .../conversation/v2/dialogs/DownloadDialog.kt | 2 +- .../conversation/v2/input_bar/InputBar.kt | 6 +- .../v2/input_bar/InputBarButton.kt | 2 +- .../v2/messages/ControlMessageView.kt | 2 +- .../conversation/v2/messages/QuoteView.kt | 4 +- .../v2/messages/VisibleMessageContentView.kt | 2 +- .../v2/messages/VisibleMessageView.kt | 4 +- .../v2/messages/VoiceMessageView.kt | 2 +- .../settings/ConversationSettingsDialogs.kt | 22 ++--- .../v2/settings/ConversationSettingsScreen.kt | 4 +- .../settings/ConversationSettingsViewModel.kt | 96 +++++++++---------- .../NotificationSettingsScreen.kt | 2 +- .../NotificationSettingsViewModel.kt | 22 ++--- .../securesms/database/MmsSmsDatabaseSQL.kt | 1 + .../giph/ui/GiphyActivityToolbar.java | 2 +- .../securesms/groups/GroupManagerV2Impl.kt | 8 +- .../securesms/groups/compose/Components.kt | 6 +- .../groups/compose/EditGroupScreen.kt | 10 +- .../groups/compose/GroupMembersScreen.kt | 2 +- .../groups/compose/InviteContactsScreen.kt | 2 +- .../home/ConversationOptionsBottomSheet.kt | 14 +-- .../securesms/home/HomeActivity.kt | 6 +- .../securesms/home/SeedReminder.kt | 2 +- .../search/SearchContactActionBottomSheet.kt | 8 +- .../community/JoinCommunityScreen.kt | 4 +- .../group/CreateGroupScreen.kt | 6 +- .../home/StartConversation.kt | 10 +- .../invitefriend/InviteFriend.kt | 2 +- .../newmessage/NewMessage.kt | 4 +- .../thoughtcrime/securesms/media/MediaPage.kt | 2 +- .../MessageRequestsActivity.kt | 2 +- .../securesms/onboarding/landing/Landing.kt | 6 +- .../onboarding/loadaccount/LoadAccount.kt | 2 +- .../securesms/onboarding/loading/Loading.kt | 2 +- .../MessageNotifications.kt | 4 +- .../onboarding/pickname/PickDisplayName.kt | 2 +- .../securesms/onboarding/ui/ContinueButton.kt | 2 +- .../securesms/permissions/SettingsDialog.kt | 2 +- .../preferences/BlockedContactsScreen.kt | 4 +- .../preferences/CallToggleListener.kt | 2 +- .../CorrectedPreferenceFragment.java | 2 +- .../securesms/preferences/QRCodeActivity.kt | 2 +- .../securesms/preferences/SettingsScreen.kt | 44 ++++----- .../prosettings/ProSettingsHomeScreen.kt | 20 ++-- .../recoverypassword/RecoveryPassword.kt | 8 +- .../securesms/reviews/ui/InAppReview.kt | 12 +-- .../thoughtcrime/securesms/ui/AlertDialog.kt | 10 +- .../thoughtcrime/securesms/ui/Components.kt | 14 +-- .../securesms/ui/ProComponents.kt | 8 +- .../securesms/ui/UserProfileModal.kt | 2 +- .../securesms/ui/components/AppBar.kt | 2 +- .../securesms/ui/components/Button.kt | 2 +- .../ui/components/ConversationAppBar.kt | 8 +- .../securesms/ui/components/Text.kt | 4 +- .../securesms/util/ViewUtilities.kt | 2 +- gradle.properties | 2 +- 70 files changed, 241 insertions(+), 240 deletions(-) diff --git a/app/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt b/app/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt index 2d88fe51a1..46be269856 100644 --- a/app/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt +++ b/app/src/main/java/org/session/libsession/utilities/TextSecurePreferences.kt @@ -768,7 +768,7 @@ interface TextSecurePreferences { @JvmStatic fun getNotificationLedColor(context: Context): Int { - return getIntegerPreference(context, LED_COLOR_PREF_PRIMARY, ThemeUtil.getThemedColor(context, R.attr.colorAccent)) + return getIntegerPreference(context, LED_COLOR_PREF_PRIMARY, ThemeUtil.getThemedColor(context, androidx.appcompat.R.attr.colorAccent)) } @JvmStatic diff --git a/app/src/main/java/org/thoughtcrime/securesms/SessionDialogBuilder.kt b/app/src/main/java/org/thoughtcrime/securesms/SessionDialogBuilder.kt index 171a2a7049..4ab73f1c48 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/SessionDialogBuilder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/SessionDialogBuilder.kt @@ -65,7 +65,7 @@ class SessionDialogBuilder(val context: Context) { fun title(text: String?) { text( text = text, - qaTag = context.getString(R.string.AccessibilityId_modalTitle), + qaTag = context.getString(org.session.content_descriptions.R.string.AccessibilityId_modalTitle), style = R.style.TextAppearance_Session_Dialog_Title) { setPadding(dp20, 0, dp20, 0) } } @@ -86,7 +86,7 @@ class SessionDialogBuilder(val context: Context) { private fun text( text: CharSequence?, - qaTag: String = context.getString(R.string.AccessibilityId_modalMessage), + qaTag: String = context.getString(org.session.content_descriptions.R.string.AccessibilityId_modalMessage), @StyleRes style: Int? = null, modify: TextView.() -> Unit ) { @@ -160,7 +160,7 @@ class SessionDialogBuilder(val context: Context) { fun okButton(listener: (() -> Unit) = {}) = button(android.R.string.ok) { listener() } - fun cancelButton(listener: (() -> Unit) = {}) = button(android.R.string.cancel, R.string.AccessibilityId_cancel) { listener() } + fun cancelButton(listener: (() -> Unit) = {}) = button(android.R.string.cancel, org.session.content_descriptions.R.string.AccessibilityId_cancel) { listener() } fun button( @StringRes text: Int, diff --git a/app/src/main/java/org/thoughtcrime/securesms/ShareScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/ShareScreen.kt index e65ced674c..f40702737b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ShareScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ShareScreen.kt @@ -109,7 +109,7 @@ fun ShareList( placeholder = stringResource(R.string.search), modifier = Modifier .padding(horizontal = LocalDimensions.current.smallSpacing) - .qaTag(R.string.AccessibilityId_groupNameSearch), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameSearch), backgroundColor = LocalColors.current.backgroundSecondary, ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java index 757ccc36b6..763b2a9668 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java @@ -24,7 +24,7 @@ public EmojiEditText(Context context) { } public EmojiEditText(Context context, AttributeSet attrs) { - this(context, attrs, R.attr.editTextStyle); + this(context, attrs, androidx.appcompat.R.attr.editTextStyle); } public EmojiEditText(Context context, AttributeSet attrs, int defStyleAttr) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java index 14a901b3ba..01d5f57798 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiVariationSelectorPopup.java @@ -30,7 +30,7 @@ public EmojiVariationSelectorPopup(@NonNull Context context, @NonNull EmojiEvent this.list = (ViewGroup) getContentView(); setBackgroundDrawable( - new ColorDrawable(ThemeUtil.getThemedColor(context, R.attr.colorPrimary)) + new ColorDrawable(ThemeUtil.getThemedColor(context, androidx.appcompat.R.attr.colorPrimary)) ); setOutsideTouchable(true); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessages.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessages.kt index ffdea7cb52..3c448da671 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessages.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessages.kt @@ -67,7 +67,7 @@ class DisappearingMessages @Inject constructor( ExpiryMode.NONE -> { bodyText = context.getText(R.string.disappearingMessagesFollowSettingOff) dangerButtonText = R.string.confirm - dangerButtonContentDescription = R.string.AccessibilityId_confirm + dangerButtonContentDescription = org.session.content_descriptions.R.string.AccessibilityId_confirm } is ExpiryMode.AfterSend -> { bodyText = context.getSubbedCharSequence( @@ -80,7 +80,7 @@ class DisappearingMessages @Inject constructor( ) dangerButtonText = R.string.set - dangerButtonContentDescription = R.string.AccessibilityId_setButton + dangerButtonContentDescription = org.session.content_descriptions.R.string.AccessibilityId_setButton } is ExpiryMode.AfterRead -> { bodyText = context.getSubbedCharSequence( @@ -93,7 +93,7 @@ class DisappearingMessages @Inject constructor( ) dangerButtonText = R.string.set - dangerButtonContentDescription = R.string.AccessibilityId_setButton + dangerButtonContentDescription = org.session.content_descriptions.R.string.AccessibilityId_setButton } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/State.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/State.kt index 54555461de..c7f8dd97c6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/State.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/State.kt @@ -47,19 +47,19 @@ enum class ExpiryType( NONE( { ExpiryMode.NONE }, R.string.off, - contentDescription = R.string.AccessibilityId_disappearingMessagesOff, + contentDescription = org.session.content_descriptions.R.string.AccessibilityId_disappearingMessagesOff, ), AFTER_READ( ExpiryMode::AfterRead, R.string.disappearingMessagesDisappearAfterRead, R.string.disappearingMessagesDisappearAfterReadDescription, - R.string.AccessibilityId_disappearingMessagesDisappearAfterRead + org.session.content_descriptions.R.string.AccessibilityId_disappearingMessagesDisappearAfterRead ), AFTER_SEND( ExpiryMode::AfterSend, R.string.disappearingMessagesDisappearAfterSend, R.string.disappearingMessagesDisappearAfterSendDescription, - R.string.AccessibilityId_disappearingMessagesDisappearAfterSent + org.session.content_descriptions.R.string.AccessibilityId_disappearingMessagesDisappearAfterSent ); fun mode(seconds: Long) = if (seconds != 0L) createMode(seconds) else ExpiryMode.NONE diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt index fb58e0a48f..93acace369 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/ui/DisappearingMessages.kt @@ -113,7 +113,7 @@ fun DisappearingMessages( AccentOutlineButton( stringResource(R.string.set), modifier = Modifier - .qaTag(R.string.AccessibilityId_setButton) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_setButton) .align(Alignment.CenterHorizontally) .padding(bottom = LocalDimensions.current.spacing), enabled = !state.disableSetButton, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index 5c5f85920d..145a13b1bf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -1526,7 +1526,7 @@ class ConversationActivityV2 : ScreenLockActionBarActivity(), InputBarDelegate, showSessionDialog { title(R.string.callsPermissionsRequired) text(R.string.callsPermissionsRequiredDescription) - button(R.string.sessionSettings, R.string.AccessibilityId_sessionSettings) { + button(R.string.sessionSettings, org.session.content_descriptions.R.string.AccessibilityId_sessionSettings) { val intent = Intent(context, PrivacySettingsActivity::class.java) // allow the screen to auto scroll to the appropriate toggle intent.putExtra(PrivacySettingsActivity.SCROLL_AND_TOGGLE_KEY, CALL_NOTIFICATIONS_ENABLED) @@ -1576,7 +1576,7 @@ class ConversationActivityV2 : ScreenLockActionBarActivity(), InputBarDelegate, .put(NAME_KEY, name) .format() ) - dangerButton(R.string.block, R.string.AccessibilityId_blockConfirm) { + dangerButton(R.string.block, org.session.content_descriptions.R.string.AccessibilityId_blockConfirm) { viewModel.block() // Block confirmation toast added as per SS-64 @@ -1603,7 +1603,7 @@ class ConversationActivityV2 : ScreenLockActionBarActivity(), InputBarDelegate, .put(NAME_KEY, recipient.displayName()) .format() ) - dangerButton(R.string.blockUnblock, R.string.AccessibilityId_unblockConfirm) { viewModel.unblock() } + dangerButton(R.string.blockUnblock, org.session.content_descriptions.R.string.AccessibilityId_unblockConfirm) { viewModel.unblock() } cancelButton() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationReactionOverlay.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationReactionOverlay.kt index 5b483b41a2..2626df11a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationReactionOverlay.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationReactionOverlay.kt @@ -599,7 +599,7 @@ class ConversationReactionOverlay : FrameLayout { R.attr.menu_select_icon, R.string.select, { handleActionItemClicked(Action.SELECT) }, - R.string.AccessibilityId_select + org.session.content_descriptions.R.string.AccessibilityId_select ) } @@ -607,7 +607,7 @@ class ConversationReactionOverlay : FrameLayout { val canWrite = openGroup == null || openGroup.write if (canWrite && !message.isPending && !message.isFailed && !message.isOpenGroupInvitation && !isDeleteOnly && !isDeprecatedLegacyGroup) { - items += ActionItem(R.attr.menu_reply_icon, R.string.reply, { handleActionItemClicked(Action.REPLY) }, R.string.AccessibilityId_reply) + items += ActionItem(R.attr.menu_reply_icon, R.string.reply, { handleActionItemClicked(Action.REPLY) }, org.session.content_descriptions.R.string.AccessibilityId_reply) } // Copy message text if (!containsControlMessage && hasText && !isDeleteOnly) { @@ -623,7 +623,7 @@ class ConversationReactionOverlay : FrameLayout { R.attr.menu_trash_icon, R.string.delete, { handleActionItemClicked(Action.DELETE) }, - R.string.AccessibilityId_deleteMessage, + org.session.content_descriptions.R.string.AccessibilityId_deleteMessage, message.subtitle, ThemeUtil.getThemedColor(context, R.attr.danger) ) @@ -660,7 +660,7 @@ class ConversationReactionOverlay : FrameLayout { items += ActionItem(R.attr.menu_save_icon, R.string.save, { handleActionItemClicked(Action.DOWNLOAD) }, - R.string.AccessibilityId_saveAttachment + org.session.content_descriptions.R.string.AccessibilityId_saveAttachment ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationV2Dialogs.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationV2Dialogs.kt index 80930dfa7d..e432c84778 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationV2Dialogs.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationV2Dialogs.kt @@ -108,7 +108,7 @@ fun ConversationV2Dialogs( option = RadioOption( value = Unit, title = GetString(stringResource(R.string.deleteMessageDeviceOnly)), - qaTag = GetString(stringResource(R.string.qa_delete_message_device_only)), + qaTag = GetString(stringResource(org.session.content_descriptions.R.string.qa_delete_message_device_only)), selected = !deleteForEveryone ) ) { @@ -119,7 +119,7 @@ fun ConversationV2Dialogs( option = RadioOption( value = Unit, title = GetString(data.deleteForEveryoneLabel), - qaTag = GetString(stringResource(R.string.qa_delete_message_everyone)), + qaTag = GetString(stringResource(org.session.content_descriptions.R.string.qa_delete_message_everyone)), selected = deleteForEveryone, enabled = data.everyoneEnabled ) 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 0b76d7c597..61d31d4daf 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 @@ -505,7 +505,7 @@ class ConversationViewModel @AssistedInject constructor( showDisappearingMessages(conversation) }, icon = R.drawable.ic_clock_11, - qaTag = application.resources.getString(R.string.AccessibilityId_disappearingMessagesDisappear) + qaTag = application.resources.getString(org.session.content_descriptions.R.string.AccessibilityId_disappearingMessagesDisappear) ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt index 32ccaaa5bb..542cf19000 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt @@ -550,7 +550,7 @@ fun ExpandButton(modifier: Modifier = Modifier, onClick: () -> Unit) { ) { Icon( painter = painterResource(id = R.drawable.ic_maximize_2), - contentDescription = stringResource(id = R.string.AccessibilityId_expand), + contentDescription = stringResource(id = org.session.content_descriptions.R.string.AccessibilityId_expand), modifier = Modifier .padding(LocalDimensions.current.xxsSpacing) .size(LocalDimensions.current.xsSpacing), diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/BlockedDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/BlockedDialog.kt index 451dcc3031..f41002a2ee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/BlockedDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/BlockedDialog.kt @@ -25,7 +25,7 @@ class BlockedDialog(private val recipient: Address, private val contactName: Str title(resources.getString(R.string.blockUnblock)) text(spannable) - dangerButton(R.string.blockUnblock, R.string.AccessibilityId_unblockConfirm) { unblock() } + dangerButton(R.string.blockUnblock, org.session.content_descriptions.R.string.AccessibilityId_unblockConfirm) { unblock() } cancelButton { dismiss() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt index 82a5ce2ecd..be318561b9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt @@ -35,7 +35,7 @@ class AutoDownloadDialog(private val threadRecipient: Recipient, .format() text(explanation) - button(R.string.download, R.string.AccessibilityId_download) { + button(R.string.download, org.session.content_descriptions.R.string.AccessibilityId_download) { setAutoDownload() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt index 81a3ce84d4..002bda5455 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt @@ -100,15 +100,15 @@ class InputBar @JvmOverloads constructor( lateinit var recipientRepository: RecipientRepository private val attachmentsButton = InputBarButton(context, R.drawable.ic_plus).apply { - contentDescription = context.getString(R.string.AccessibilityId_attachmentsButton) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_attachmentsButton) } val microphoneButton = InputBarButton(context, R.drawable.ic_mic).apply { - contentDescription = context.getString(R.string.AccessibilityId_voiceMessageNew) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_voiceMessageNew) } private val sendButton = InputBarButton(context, R.drawable.ic_arrow_up, isSendButton = true).apply { - contentDescription = context.getString(R.string.AccessibilityId_send) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_send) } private val textColor: Int by lazy { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt index 861ac91da9..d1079371a2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBarButton.kt @@ -47,7 +47,7 @@ class InputBarButton : RelativeLayout { if (hasOpaqueBackground) { R.attr.input_bar_button_background_opaque } else if (isSendButton) { - R.attr.colorAccent + androidx.appcompat.R.attr.colorAccent } else { R.attr.input_bar_button_background } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt index 5e4f71b93b..189c0c7c80 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt @@ -152,7 +152,7 @@ class ControlMessageView : LinearLayout { context.getString(R.string.messageRequestsAccepted) } - binding.root.contentDescription = context.getString(R.string.AccessibilityId_message_request_config_message) + binding.root.contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_message_request_config_message) } message.isCallLog -> { val drawableRes = when { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt index 0780534765..121c136f20 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt @@ -183,9 +183,9 @@ class QuoteView @JvmOverloads constructor(context: Context, attrs: AttributeSet? // region Convenience @ColorInt private fun getLineColor(isOutgoingMessage: Boolean): Int { return when { - mode == Mode.Regular && !isOutgoingMessage -> context.getColorFromAttr(R.attr.colorAccent) + mode == Mode.Regular && !isOutgoingMessage -> context.getColorFromAttr(androidx.appcompat.R.attr.colorAccent) mode == Mode.Regular -> context.getColorFromAttr(R.attr.message_sent_text_color) - else -> context.getColorFromAttr(R.attr.colorAccent) + else -> context.getColorFromAttr(androidx.appcompat.R.attr.colorAccent) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt index 5a62f94a65..454a64ce83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt @@ -502,7 +502,7 @@ class VisibleMessageContentView : ConstraintLayout { ) body = SearchUtil.getHighlightedSpan(Locale.getDefault(), { - BackgroundColorSpan(context.getColorFromAttr(R.attr.colorPrimary)) + BackgroundColorSpan(context.getColorFromAttr(androidx.appcompat.R.attr.colorPrimary)) }, body, searchQuery) body = SearchUtil.getHighlightedSpan(Locale.getDefault(), { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt index 5bd7220209..8a5b505fa2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt @@ -93,7 +93,7 @@ class VisibleMessageView : FrameLayout { private val swipeToReplyIcon by lazy { val d = ContextCompat.getDrawable(context, R.drawable.ic_reply)!!.mutate() - d.setTint(context.getColorFromAttr(R.attr.colorControlNormal)) + d.setTint(context.getColorFromAttr(androidx.appcompat.R.attr.colorControlNormal)) d } private val swipeToReplyIconRect = Rect() @@ -343,7 +343,7 @@ class VisibleMessageView : FrameLayout { messageStatus.messageTextRes?.let{ binding.messageStatusTextView.setText(it) binding.messageStatusTextView.contentDescription = - context.getString(R.string.AccessibilityId_send_status)+ + context.getString(org.session.content_descriptions.R.string.AccessibilityId_send_status)+ context.getString(it) } messageStatus.iconTint?.let(binding.messageStatusTextView::setTextColor) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VoiceMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VoiceMessageView.kt index 4e4166105d..7ed801611d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VoiceMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VoiceMessageView.kt @@ -117,7 +117,7 @@ class VoiceMessageView @JvmOverloads constructor( } private fun renderIcon() { - val iconID = if (isPlaying) R.drawable.exo_icon_pause else R.drawable.exo_icon_play + val iconID = if (isPlaying) androidx.media3.ui.R.drawable.exo_icon_pause else androidx.media3.ui.R.drawable.exo_icon_play binding.voiceMessagePlaybackImageView.setImageResource(iconID) } // endregion diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsDialogs.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsDialogs.kt index ccb1e3f534..317096c8ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsDialogs.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsDialogs.kt @@ -127,7 +127,7 @@ fun ConversationSettingsDialogs( content = { SessionOutlinedTextField( text = dialogsState.nicknameDialog.inputNickname ?: "", - modifier = Modifier.qaTag(R.string.qa_conversation_settings_dialog_nickname_input) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_nickname_input) .focusRequester(focusRequester) .padding(top = LocalDimensions.current.smallSpacing), placeholder = stringResource(R.string.nicknameEnter), @@ -145,14 +145,14 @@ fun ConversationSettingsDialogs( DialogButtonData( text = GetString(stringResource(id = R.string.save)), enabled = dialogsState.nicknameDialog.setEnabled, - qaTag = stringResource(R.string.qa_conversation_settings_dialog_nickname_set), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_nickname_set), onClick = { sendCommand(SetNickname) } ), DialogButtonData( text = GetString(stringResource(R.string.remove)), color = LocalColors.current.danger, enabled = dialogsState.nicknameDialog.removeEnabled, - qaTag = stringResource(R.string.qa_conversation_settings_dialog_nickname_remove), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_nickname_remove), onClick = { sendCommand(RemoveNickname) } @@ -182,7 +182,7 @@ fun ConversationSettingsDialogs( // group name SessionOutlinedTextField( text = dialogsState.groupEditDialog.inputName ?: "", - modifier = Modifier.qaTag(R.string.qa_conversation_settings_dialog_groupname_input) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_groupname_input) .focusRequester(focusRequester) .padding(top = LocalDimensions.current.smallSpacing), innerPadding = PaddingValues(LocalDimensions.current.smallSpacing), @@ -191,7 +191,7 @@ fun ConversationSettingsDialogs( sendCommand(UpdateGroupName(updatedText)) }, showClear = true, - clearQaTag = R.string.qa_input_clear_name, + clearQaTag = org.session.content_descriptions.R.string.qa_input_clear_name, singleLine = true, error = dialogsState.groupEditDialog.errorName, ) @@ -199,7 +199,7 @@ fun ConversationSettingsDialogs( // group description SessionOutlinedTextField( text = dialogsState.groupEditDialog.inputtedDescription ?: "", - modifier = Modifier.qaTag(R.string.qa_conversation_settings_dialog_groupname_description_input) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_groupname_description_input) .padding(top = LocalDimensions.current.xxsSpacing), placeholder = stringResource(R.string.groupDescriptionEnter), innerPadding = PaddingValues(LocalDimensions.current.smallSpacing), @@ -209,7 +209,7 @@ fun ConversationSettingsDialogs( sendCommand(UpdateGroupDescription(updatedText)) }, showClear = true, - clearQaTag = R.string.qa_input_clear_description, + clearQaTag = org.session.content_descriptions.R.string.qa_input_clear_description, error = dialogsState.groupEditDialog.errorDescription, ) } @@ -218,13 +218,13 @@ fun ConversationSettingsDialogs( DialogButtonData( text = GetString(stringResource(id = R.string.save)), enabled = dialogsState.groupEditDialog.saveEnabled, - qaTag = stringResource(R.string.qa_conversation_settings_dialog_groupname_save), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_groupname_save), onClick = { sendCommand(SetGroupText) } ), DialogButtonData( text = GetString(stringResource(R.string.cancel)), color = LocalColors.current.danger, - qaTag = stringResource(R.string.qa_conversation_settings_dialog_groupname_cancel), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_groupname_cancel), ) ) ) @@ -303,7 +303,7 @@ fun GroupAdminClearMessagesDialog( option = RadioOption( value = Unit, title = GetString(stringResource(R.string.clearOnThisDevice)), - qaTag = GetString(R.string.qa_conversation_settings_clear_messages_radio_device), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_clear_messages_radio_device), selected = !deleteForEveryone ) ) { @@ -314,7 +314,7 @@ fun GroupAdminClearMessagesDialog( option = RadioOption( value = Unit, title = GetString(stringResource(R.string.clearMessagesForEveryone)), - qaTag = GetString(R.string.qa_conversation_settings_clear_messages_radio_everyone), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_clear_messages_radio_everyone), selected = deleteForEveryone, ) ) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsScreen.kt index c2a6015c86..55c5bc39d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsScreen.kt @@ -130,7 +130,7 @@ fun ConversationSettings( // Profile picture AvatarQrWidget( - modifier = Modifier.qaTag(R.string.qa_conversation_settings_avatar), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_avatar), showQR = data.showQR, expandedAvatar = data.expandedAvatar, showBadge = data.qrAddress != null, @@ -201,7 +201,7 @@ fun ConversationSettings( } Text( modifier = Modifier - .qaTag(R.string.qa_conversation_settings_account_id) + .qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_account_id) .pointerInput(Unit) { detectTapGestures( onLongPress = { onLongPress() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsViewModel.kt index 6ed520d3be..ec1c63f58b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/ConversationSettingsViewModel.kt @@ -106,7 +106,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.accountIDCopy), icon = R.drawable.ic_copy, - qaTag = R.string.qa_conversation_settings_copy_account, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_copy_account, onClick = ::copyAccountId ) } @@ -115,7 +115,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.searchConversation), icon = R.drawable.ic_search, - qaTag = R.string.qa_conversation_settings_search, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_search, onClick = ::goBackToSearch ) } @@ -126,8 +126,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( name = context.getString(R.string.disappearingMessages), subtitle = subtitle, icon = R.drawable.ic_timer, - qaTag = R.string.qa_conversation_settings_disappearing, - subtitleQaTag = R.string.qa_conversation_settings_disappearing_sub, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_disappearing, + subtitleQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_disappearing_sub, onClick = { navigateTo(ConversationSettingsDestination.RouteDisappearingMessages) } @@ -138,7 +138,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.pinConversation), icon = R.drawable.ic_pin, - qaTag = R.string.qa_conversation_settings_pin, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_pin, onClick = ::pinConversation ) } @@ -147,7 +147,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.pinUnpinConversation), icon = R.drawable.ic_pin_off, - qaTag = R.string.qa_conversation_settings_pin, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_pin, onClick = ::unpinConversation ) } @@ -157,8 +157,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( name = context.getString(R.string.sessionNotifications), subtitle = subtitle, icon = iconRes, - qaTag = R.string.qa_conversation_settings_notifications, - subtitleQaTag = R.string.qa_conversation_settings_notifications_sub, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_notifications, + subtitleQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_notifications_sub, onClick = { navigateTo(ConversationSettingsDestination.RouteNotifications) } @@ -169,7 +169,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.attachments), icon = R.drawable.ic_file, - qaTag = R.string.qa_conversation_settings_attachments, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_attachments, onClick = { navigateTo(ConversationSettingsDestination.RouteAllMedia) } @@ -180,7 +180,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.block), icon = R.drawable.ic_user_round_x, - qaTag = R.string.qa_conversation_settings_block, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_block, onClick = ::confirmBlockUser ) } @@ -189,7 +189,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.blockUnblock), icon = R.drawable.ic_user_round_tick, - qaTag = R.string.qa_conversation_settings_block, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_block, onClick = ::confirmUnblockUser ) } @@ -198,7 +198,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.clearMessages), icon = R.drawable.ic_message_trash_custom, - qaTag = R.string.qa_conversation_settings_clear_messages, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_clear_messages, onClick = ::confirmClearMessages ) } @@ -207,7 +207,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.conversationsDelete), icon = R.drawable.ic_trash_2, - qaTag = R.string.qa_conversation_settings_delete_conversation, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_delete_conversation, onClick = ::confirmDeleteConversation ) } @@ -216,7 +216,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.contactDelete), icon = R.drawable.ic_user_round_trash, - qaTag = R.string.qa_conversation_settings_delete_contact, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_delete_contact, onClick = ::confirmDeleteContact ) } @@ -225,7 +225,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.noteToSelfHide), icon = R.drawable.ic_eye_off, - qaTag = R.string.qa_conversation_settings_hide_nts, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_hide_nts, onClick = ::confirmHideNTS ) } @@ -234,7 +234,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.showNoteToSelf), icon = R.drawable.ic_eye, - qaTag = R.string.qa_conversation_settings_hide_nts, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_hide_nts, onClick = ::confirmShowNTS ) } @@ -244,7 +244,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.groupMembers), icon = R.drawable.ic_users_round, - qaTag = R.string.qa_conversation_settings_group_members, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_group_members, onClick = { (address as? Address.Group)?.let { navigateTo(ConversationSettingsDestination.RouteGroupMembers(it)) @@ -257,7 +257,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.membersInvite), icon = R.drawable.ic_user_round_plus, - qaTag = R.string.qa_conversation_settings_invite_contacts, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_invite_contacts, onClick = { navigateTo(ConversationSettingsDestination.RouteInviteToCommunity( communityUrl = (recipient?.data as? RecipientData.Community)?.joinURL.orEmpty() @@ -270,7 +270,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.manageMembers), icon = R.drawable.ic_user_round_pen, - qaTag = R.string.qa_conversation_settings_manage_members, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_manage_members, onClick = { (address as? Address.Group)?.let { navigateTo(ConversationSettingsDestination.RouteManageMembers(it)) @@ -283,7 +283,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.groupLeave), icon = R.drawable.ic_log_out, - qaTag = R.string.qa_conversation_settings_leave_group, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_leave_group, onClick = ::confirmLeaveGroup ) } @@ -292,7 +292,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.groupDelete), icon = R.drawable.ic_trash_2, - qaTag = R.string.qa_conversation_settings_delete_group, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_delete_group, onClick = ::confirmLeaveGroup ) } @@ -302,7 +302,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.communityUrlCopy), icon = R.drawable.ic_copy, - qaTag = R.string.qa_conversation_settings_copy_community_url, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_copy_community_url, onClick = ::copyCommunityUrl ) } @@ -311,7 +311,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( OptionsItem( name = context.getString(R.string.communityLeave), icon = R.drawable.ic_log_out, - qaTag = R.string.qa_conversation_settings_leave_community, + qaTag = org.session.content_descriptions.R.string.qa_conversation_settings_leave_community, onClick = ::confirmLeaveCommunity ) } @@ -338,7 +338,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( val hasNotificationItem = _uiState.value.categories .flatMap { it.items } .flatMap { it.items } - .firstOrNull { it.qaTag == R.string.qa_conversation_settings_notifications } + .firstOrNull { it.qaTag == org.session.content_descriptions.R.string.qa_conversation_settings_notifications } // no need to do anything if the state doesn't have any notification item if (hasNotificationItem == null) return @@ -359,7 +359,7 @@ class ConversationSettingsViewModel @AssistedInject constructor( items = category.items.map { subCategory -> subCategory.copy( items = subCategory.items.map { item -> - if (item.qaTag == R.string.qa_conversation_settings_notifications) { + if (item.qaTag == org.session.content_descriptions.R.string.qa_conversation_settings_notifications) { item.copy(subtitle = notificationSubtitle, icon = notificationIconRes) } else item } @@ -389,18 +389,18 @@ class ConversationSettingsViewModel @AssistedInject constructor( // main name, and the description should show the real name in parentheses conversation.data is RecipientData.Contact && !conversation.data.nickname.isNullOrBlank() -> { "(${conversation.data.name})" to // description - context.getString(R.string.qa_conversation_settings_description_1on1) // description qa tag + context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_description_1on1) // description qa tag } conversation.data is RecipientData.Group -> { conversation.data.description to // description - context.getString(R.string.qa_conversation_settings_description_groups) // description qa tag + context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_description_groups) // description qa tag } conversation.data is RecipientData.Community -> { ( conversation.data.roomInfo?.details?.description to // description - context.getString(R.string.qa_conversation_settings_description_community) // description qa tag + context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_description_community) // description qa tag ) } @@ -665,10 +665,10 @@ class ConversationSettingsViewModel @AssistedInject constructor( _uiState.value.copy( name = name, nameQaTag = when { - conversation.isLocalNumber -> context.getString(R.string.qa_conversation_settings_display_name_nts) - conversation.is1on1 -> context.getString(R.string.qa_conversation_settings_display_name_1on1) - conversation.isGroupV2Recipient -> context.getString(R.string.qa_conversation_settings_display_name_groups) - conversation.isCommunityRecipient -> context.getString(R.string.qa_conversation_settings_display_name_community) + conversation.isLocalNumber -> context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_display_name_nts) + conversation.is1on1 -> context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_display_name_1on1) + conversation.isGroupV2Recipient -> context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_display_name_groups) + conversation.isCommunityRecipient -> context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_display_name_community) else -> null }, editCommand = editCommand, @@ -743,8 +743,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( .format(), positiveText = context.getString(R.string.block), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_block_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_block_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_block_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_block_cancel), onPositive = ::blockUser, onNegative = {} ) @@ -762,8 +762,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( .format(), positiveText = context.getString(R.string.blockUnblock), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_unblock_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_unblock_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_unblock_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_unblock_cancel), onPositive = ::unblockUser, onNegative = {} ) @@ -799,8 +799,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( message = context.getText(R.string.hideNoteToSelfDescription), positiveText = context.getString(R.string.hide), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_hide_nts_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_hide_nts_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_hide_nts_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_hide_nts_cancel), onPositive = ::hideNoteToSelf, onNegative = {} ) @@ -816,8 +816,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( message = context.getText(R.string.showNoteToSelfDescription), positiveText = context.getString(R.string.show), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_show_nts_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_show_nts_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_show_nts_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_show_nts_cancel), positiveStyleDanger = false, onPositive = ::showNoteToSelf, onNegative = {} @@ -848,8 +848,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( .format(), positiveText = context.getString(R.string.delete), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_delete_contact_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_delete_contact_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_contact_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_contact_cancel), onPositive = ::deleteContact, onNegative = {} ) @@ -877,8 +877,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( .format(), positiveText = context.getString(R.string.delete), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_delete_conversation_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_delete_conversation_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_conversation_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_conversation_cancel), onPositive = ::deleteConversation, onNegative = {} ) @@ -910,8 +910,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( .format(), positiveText = context.getString(R.string.leave), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_leave_community_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_leave_community_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_leave_community_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_leave_community_cancel), onPositive = ::leaveCommunity, onNegative = {} ) @@ -970,8 +970,8 @@ class ConversationSettingsViewModel @AssistedInject constructor( message = message, positiveText = context.getString(R.string.clear), negativeText = context.getString(R.string.cancel), - positiveQaTag = context.getString(R.string.qa_conversation_settings_dialog_clear_messages_confirm), - negativeQaTag = context.getString(R.string.qa_conversation_settings_dialog_clear_messages_cancel), + positiveQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_clear_messages_confirm), + negativeQaTag = context.getString(org.session.content_descriptions.R.string.qa_conversation_settings_dialog_clear_messages_cancel), onPositive = { clearMessages(false) }, onNegative = {} ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsScreen.kt index 9aad4006cd..eff66addab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsScreen.kt @@ -94,7 +94,7 @@ fun NotificationSettings( AccentOutlineButton( stringResource(R.string.set), modifier = Modifier - .qaTag(R.string.AccessibilityId_setButton) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_setButton) .align(Alignment.CenterHorizontally) .padding(bottom = LocalDimensions.current.spacing), enabled = state.enableButton, diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsViewModel.kt index 2a04b3a6e1..3a112163a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/settings/notification/NotificationSettingsViewModel.kt @@ -95,7 +95,7 @@ class NotificationSettingsViewModel @AssistedInject constructor( value = NotificationType.All, title = GetString(R.string.notificationsAllMessages), iconRes = R.drawable.ic_volume_2, - qaTag = GetString(R.string.qa_conversation_settings_notifications_radio_all), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_all), selected = selectedOption is NotificationType.All ), // Mentions Only @@ -103,7 +103,7 @@ class NotificationSettingsViewModel @AssistedInject constructor( value = NotificationType.MentionsOnly, title = GetString(R.string.notificationsMentionsOnly), iconRes = R.drawable.ic_at_sign, - qaTag = GetString(R.string.qa_conversation_settings_notifications_radio_mentions), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_mentions), selected = selectedOption is NotificationType.MentionsOnly ), // Mute @@ -111,7 +111,7 @@ class NotificationSettingsViewModel @AssistedInject constructor( value = NotificationType.Mute, title = GetString(R.string.notificationsMute), iconRes = R.drawable.ic_volume_off, - qaTag = GetString(R.string.qa_conversation_settings_notifications_radio_mute), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_mute), selected = selectedOption is NotificationType.Mute ), ) @@ -134,7 +134,7 @@ class NotificationSettingsViewModel @AssistedInject constructor( RadioOption( value = currentMutedUntil!!, title = GetString(title), - qaTag = GetString(R.string.qa_conversation_settings_notifications_radio_muted_until), + qaTag = GetString(org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_muted_until), selected = selectedMuteDuration == currentMutedUntil ) ) @@ -285,16 +285,16 @@ class NotificationSettingsViewModel @AssistedInject constructor( } private val debugMuteDurations = listOf( - TimeUnit.MINUTES.toMillis(1) to R.string.qa_conversation_settings_notifications_radio_1m, - TimeUnit.MINUTES.toMillis(5) to R.string.qa_conversation_settings_notifications_radio_5m, + TimeUnit.MINUTES.toMillis(1) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_1m, + TimeUnit.MINUTES.toMillis(5) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_5m, ) private val muteDurations = listOf( - durationForever to R.string.qa_conversation_settings_notifications_radio_forever, - TimeUnit.HOURS.toMillis(1) to R.string.qa_conversation_settings_notifications_radio_1h, - TimeUnit.HOURS.toMillis(2) to R.string.qa_conversation_settings_notifications_radio_2h, - TimeUnit.DAYS.toMillis(1) to R.string.qa_conversation_settings_notifications_radio_1d, - TimeUnit.DAYS.toMillis(7) to R.string.qa_conversation_settings_notifications_radio_1w, + durationForever to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_forever, + TimeUnit.HOURS.toMillis(1) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_1h, + TimeUnit.HOURS.toMillis(2) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_2h, + TimeUnit.DAYS.toMillis(1) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_1d, + TimeUnit.DAYS.toMillis(7) to org.session.content_descriptions.R.string.qa_conversation_settings_notifications_radio_1w, ) @AssistedFactory diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabaseSQL.kt b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabaseSQL.kt index 7c04ff12f2..c2ec56936e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabaseSQL.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsDatabaseSQL.kt @@ -64,6 +64,7 @@ fun buildMmsSmsCombinedQuery( // Custom where statement for reactions if provided val additionalReactionSelection = reactionSelection?.let { " AND ($it)" }.orEmpty() + // If reactions are not requested, we just return an empty JSON array val smsReactionQuery = if (includeReactions) { """($reactionsQueryParts diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java index 188df96411..47d4d7cb5b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java @@ -42,7 +42,7 @@ public GiphyActivityToolbar(Context context) { } public GiphyActivityToolbar(Context context, AttributeSet attrs) { - this(context, attrs, R.attr.toolbarStyle); + this(context, attrs, androidx.appcompat.R.attr.toolbarStyle); } public GiphyActivityToolbar(Context context, AttributeSet attrs, int defStyleAttr) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt index 91a500b55c..2fe4f10e40 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt @@ -1158,8 +1158,8 @@ class GroupManagerV2Impl @Inject constructor( var title = R.string.groupDelete var message: CharSequence = "" var positiveButton = R.string.delete - var positiveQaTag = R.string.qa_conversation_settings_dialog_delete_group_confirm - var negativeQaTag = R.string.qa_conversation_settings_dialog_delete_group_cancel + var positiveQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_group_confirm + var negativeQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_group_cancel if(!groupData.shouldPoll){ @@ -1178,8 +1178,8 @@ class GroupManagerV2Impl @Inject constructor( title = R.string.groupLeave positiveButton = R.string.leave - positiveQaTag = R.string.qa_conversation_settings_dialog_leave_group_confirm - negativeQaTag = R.string.qa_conversation_settings_dialog_leave_group_cancel + positiveQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_dialog_leave_group_confirm + negativeQaTag = org.session.content_descriptions.R.string.qa_conversation_settings_dialog_leave_group_cancel } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/Components.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/Components.kt index c510d9d4b3..47ae657672 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/Components.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/Components.kt @@ -51,7 +51,7 @@ fun GroupMinimumVersionBanner(modifier: Modifier = Modifier) { horizontal = LocalDimensions.current.spacing, vertical = LocalDimensions.current.xxxsSpacing ) - .qaTag(R.string.AccessibilityId_versionWarning) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_versionWarning) ) } @@ -79,7 +79,7 @@ fun MemberItem( horizontal = LocalDimensions.current.smallSpacing, vertical = LocalDimensions.current.xsSpacing ) - .qaTag(R.string.AccessibilityId_contact), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_contact), horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.smallSpacing), verticalAlignment = CenterVertically, ) { @@ -104,7 +104,7 @@ fun MemberItem( text = subtitle, style = LocalType.current.small, color = subtitleColor, - modifier = Modifier.qaTag(R.string.AccessibilityId_contactStatus) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_contactStatus) ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/EditGroupScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/EditGroupScreen.kt index 2a5b7071b4..cce987a2c5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/EditGroupScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/EditGroupScreen.kt @@ -162,7 +162,7 @@ fun EditGroup( AccentOutlineButton( stringResource(R.string.membersInvite), onClick = onAddMemberClick, - modifier = Modifier.qaTag(R.string.AccessibilityId_membersInvite) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_membersInvite) ) } } @@ -302,7 +302,7 @@ private fun MemberActionSheet( title = context.resources.getQuantityString(R.plurals.groupRemoveUserOnly, 1), iconRes = R.drawable.ic_trash_2, onClick = onRemove, - qaTag = R.string.AccessibilityId_removeContact + qaTag = org.session.content_descriptions.R.string.AccessibilityId_removeContact ) } @@ -319,7 +319,7 @@ private fun MemberActionSheet( title = "Resend invitation", iconRes = R.drawable.ic_mail, onClick = onResendInvite, - qaTag = R.string.AccessibilityId_resendInvite, + qaTag = org.session.content_descriptions.R.string.AccessibilityId_resendInvite, ) } @@ -328,7 +328,7 @@ private fun MemberActionSheet( title = "Resend promotion", iconRes = R.drawable.ic_mail, onClick = onResendPromotion, - qaTag = R.string.AccessibilityId_resendInvite, + qaTag = org.session.content_descriptions.R.string.AccessibilityId_resendInvite, ) } } @@ -365,7 +365,7 @@ fun EditMemberItem( Icon( painter = painterResource(R.drawable.ic_circle_dots_custom), tint = LocalColors.current.text, - contentDescription = stringResource(R.string.AccessibilityId_sessionSettings) + contentDescription = stringResource(org.session.content_descriptions.R.string.AccessibilityId_sessionSettings) ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/GroupMembersScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/GroupMembersScreen.kt index 7b69716593..050b706b43 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/GroupMembersScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/GroupMembersScreen.kt @@ -84,7 +84,7 @@ fun GroupMembers( placeholder = stringResource(R.string.searchContacts), modifier = Modifier .padding(horizontal = LocalDimensions.current.smallSpacing) - .qaTag(R.string.AccessibilityId_groupNameSearch), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameSearch), backgroundColor = LocalColors.current.backgroundSecondary, ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/InviteContactsScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/InviteContactsScreen.kt index b0ece45a94..dc5d905ed6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/compose/InviteContactsScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/compose/InviteContactsScreen.kt @@ -142,7 +142,7 @@ fun InviteContacts( placeholder = stringResource(R.string.searchContacts), modifier = Modifier .padding(horizontal = LocalDimensions.current.smallSpacing) - .qaTag(R.string.AccessibilityId_groupNameSearch), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameSearch), backgroundColor = LocalColors.current.backgroundSecondary, ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/ConversationOptionsBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/home/ConversationOptionsBottomSheet.kt index 64ba334ad7..5e06f34686 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/ConversationOptionsBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/ConversationOptionsBottomSheet.kt @@ -132,11 +132,11 @@ class ConversationOptionsBottomSheet(private val parentContext: Context) : Botto if (isGroupAdmin) { text = context.getString(R.string.delete) - contentDescription = context.getString(R.string.AccessibilityId_delete) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_delete) drawableStartRes = R.drawable.ic_trash_2 } else { text = context.getString(R.string.leave) - contentDescription = context.getString(R.string.AccessibilityId_leave) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_leave) drawableStartRes = R.drawable.ic_log_out } } @@ -150,32 +150,32 @@ class ConversationOptionsBottomSheet(private val parentContext: Context) : Botto // the button should read 'Delete' instead of 'Leave' if (!group.shouldPoll || group.hasAdminKey()) { text = context.getString(R.string.delete) - contentDescription = context.getString(R.string.AccessibilityId_delete) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_delete) drawableStartRes = R.drawable.ic_trash_2 } else { text = context.getString(R.string.leave) - contentDescription = context.getString(R.string.AccessibilityId_leave) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_leave) drawableStartRes = R.drawable.ic_log_out } } recipient.isCommunityRecipient -> { text = context.getString(R.string.leave) - contentDescription = context.getString(R.string.AccessibilityId_leave) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_leave) drawableStartRes = R.drawable.ic_log_out } // note to self recipient.isLocalNumber -> { text = context.getString(R.string.hide) - contentDescription = context.getString(R.string.AccessibilityId_clear) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_clear) drawableStartRes = R.drawable.ic_eye_off } // 1on1 else -> { text = context.getString(R.string.conversationsDelete) - contentDescription = context.getString(R.string.AccessibilityId_delete) + contentDescription = context.getString(org.session.content_descriptions.R.string.AccessibilityId_delete) drawableStartRes = R.drawable.ic_trash_2 // also show delete contact for 1on1 diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt index 4ebfc1c1e1..6cb46aa41a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt @@ -652,7 +652,7 @@ class HomeActivity : ScreenLockActionBarActivity(), text(Phrase.from(context, R.string.blockDescription) .put(NAME_KEY, thread.recipient.displayName()) .format()) - dangerButton(R.string.block, R.string.AccessibilityId_blockConfirm) { + dangerButton(R.string.block, org.session.content_descriptions.R.string.AccessibilityId_blockConfirm) { lifecycleScope.launch(Dispatchers.Default) { storage.setBlocked(listOf(thread.recipient.address), true) @@ -672,7 +672,7 @@ class HomeActivity : ScreenLockActionBarActivity(), showSessionDialog { title(R.string.blockUnblock) text(Phrase.from(context, R.string.blockUnblockName).put(NAME_KEY, thread.recipient.displayName()).format()) - dangerButton(R.string.blockUnblock, R.string.AccessibilityId_unblockConfirm) { + dangerButton(R.string.blockUnblock, org.session.content_descriptions.R.string.AccessibilityId_unblockConfirm) { lifecycleScope.launch(Dispatchers.Default) { storage.setBlocked(listOf(thread.recipient.address), false) withContext(Dispatchers.Main) { @@ -692,7 +692,7 @@ class HomeActivity : ScreenLockActionBarActivity(), .put(NAME_KEY, thread.recipient?.displayName().orEmpty()) .format() ) - dangerButton(R.string.delete, R.string.qa_conversation_settings_dialog_delete_contact_confirm) { + dangerButton(R.string.delete, org.session.content_descriptions.R.string.qa_conversation_settings_dialog_delete_contact_confirm) { homeViewModel.deleteContact(thread.recipient.address as Address.WithAccountId) } cancelButton() diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/SeedReminder.kt b/app/src/main/java/org/thoughtcrime/securesms/home/SeedReminder.kt index 5be7239cae..441be84480 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/SeedReminder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/SeedReminder.kt @@ -68,7 +68,7 @@ internal fun SeedReminder(startRecoveryPasswordActivity: () -> Unit) { text = stringResource(R.string.theContinue), modifier = Modifier .align(Alignment.CenterVertically) - .qaTag(R.string.AccessibilityId_recoveryPasswordBanner), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_recoveryPasswordBanner), minWidth = 0.dp, onClick = startRecoveryPasswordActivity ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/search/SearchContactActionBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/home/search/SearchContactActionBottomSheet.kt index 4633925d2b..f7ddb60a2a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/search/SearchContactActionBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/search/SearchContactActionBottomSheet.kt @@ -59,7 +59,7 @@ class SearchContactActionBottomSheet : BottomSheetDialogFragment() { ActionSheetItem( text = stringResource(R.string.block), leadingIcon = R.drawable.ic_user_round_x, - qaTag = stringResource(R.string.AccessibilityId_block), + qaTag = stringResource(org.session.content_descriptions.R.string.AccessibilityId_block), onClick = { showBlockConfirmation() dismiss() @@ -70,7 +70,7 @@ class SearchContactActionBottomSheet : BottomSheetDialogFragment() { ActionSheetItem( text = stringResource(R.string.contactDelete), leadingIcon = R.drawable.ic_trash_2, - qaTag = stringResource(R.string.AccessibilityId_delete), + qaTag = stringResource(org.session.content_descriptions.R.string.AccessibilityId_delete), onClick = { showDeleteConfirmation() dismiss() @@ -89,7 +89,7 @@ class SearchContactActionBottomSheet : BottomSheetDialogFragment() { Phrase.from(context, R.string.blockDescription) .put(NAME_KEY, contactName) .format()) - dangerButton(R.string.block, R.string.AccessibilityId_blockConfirm) { + dangerButton(R.string.block, org.session.content_descriptions.R.string.AccessibilityId_blockConfirm) { callbacks?.onBlockContact(address) callbacks = null } @@ -108,7 +108,7 @@ class SearchContactActionBottomSheet : BottomSheetDialogFragment() { .put(NAME_KEY, contactName) .put(NAME_KEY, contactName) .format()) - dangerButton(R.string.delete, R.string.AccessibilityId_delete) { + dangerButton(R.string.delete, org.session.content_descriptions.R.string.AccessibilityId_delete) { callbacks?.onDeleteContact(address) callbacks = null } diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/community/JoinCommunityScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/community/JoinCommunityScreen.kt index 34caae50a9..90e5a4b6fa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/community/JoinCommunityScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/community/JoinCommunityScreen.kt @@ -119,7 +119,7 @@ private fun CommunityScreen( text = state.communityUrl, modifier = Modifier .padding(horizontal = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_communityEnterUrl), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_communityEnterUrl), placeholder = stringResource(R.string.communityEnterUrl), onChange = { sendCommand(JoinCommunityViewModel.Commands.OnUrlChanged(it)) @@ -181,7 +181,7 @@ private fun CommunityScreen( .padding(horizontal = LocalDimensions.current.xlargeSpacing) .padding(bottom = LocalDimensions.current.smallSpacing) .fillMaxWidth() - .qaTag(R.string.AccessibilityId_communityJoin), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_communityJoin), enabled = state.isJoinButtonEnabled, disabledColor = LocalColors.current.textSecondary, onClick = { diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/group/CreateGroupScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/group/CreateGroupScreen.kt index f45bad3bfc..063090a91e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/group/CreateGroupScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/group/CreateGroupScreen.kt @@ -134,7 +134,7 @@ fun CreateGroup( placeholder = stringResource(R.string.groupNameEnter), textStyle = LocalType.current.base, modifier = Modifier.padding(horizontal = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_groupNameEnter), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameEnter), error = groupNameError.takeIf { it.isNotBlank() }, enabled = !showLoading, innerPadding = PaddingValues(LocalDimensions.current.smallSpacing), @@ -149,7 +149,7 @@ fun CreateGroup( onClear = onContactSearchQueryClear, placeholder = stringResource(R.string.searchContacts), modifier = Modifier.padding(horizontal = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_groupNameSearch), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameSearch), enabled = !showLoading ) @@ -188,7 +188,7 @@ fun CreateGroup( enabled = !showLoading, modifier = Modifier .padding(horizontal = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_groupCreate) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupCreate) ) { LoadingArcOr( loading = showLoading diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/home/StartConversation.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/home/StartConversation.kt index ce23c5147d..5bc1429264 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/home/StartConversation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/home/StartConversation.kt @@ -77,7 +77,7 @@ internal fun StartConversationScreen( textStyle = LocalType.current.xl, iconRes = R.drawable.ic_message_square, iconSize = LocalDimensions.current.iconMedium, - modifier = Modifier.qaTag(R.string.AccessibilityId_messageNew), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_messageNew), minHeight = itemHeight, onClick = { navigateTo(StartConversationDestination.NewMessage) @@ -94,7 +94,7 @@ internal fun StartConversationScreen( textStyle = LocalType.current.xl, iconRes = R.drawable.ic_users_group_custom, iconSize = LocalDimensions.current.iconMedium, - modifier = Modifier.qaTag(R.string.AccessibilityId_groupCreate), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupCreate), minHeight = itemHeight, onClick = { navigateTo(StartConversationDestination.CreateGroup) @@ -111,7 +111,7 @@ internal fun StartConversationScreen( textStyle = LocalType.current.xl, iconRes = R.drawable.ic_globe, iconSize = LocalDimensions.current.iconMedium, - modifier = Modifier.qaTag(R.string.AccessibilityId_communityJoin), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_communityJoin), minHeight = itemHeight, onClick = { navigateTo(StartConversationDestination.JoinCommunity) @@ -128,7 +128,7 @@ internal fun StartConversationScreen( textStyle = LocalType.current.xl, iconRes = R.drawable.ic_user_round_plus, iconSize = LocalDimensions.current.iconMedium, - modifier = Modifier.qaTag(R.string.AccessibilityId_sessionInviteAFriendButton), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionInviteAFriendButton), minHeight = itemHeight, onClick = { navigateTo(StartConversationDestination.InviteFriend) @@ -150,7 +150,7 @@ internal fun StartConversationScreen( Spacer(modifier = Modifier.height(LocalDimensions.current.smallSpacing)) QrImage( string = accountId, - Modifier.qaTag(R.string.AccessibilityId_qrCode), + Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_qrCode), icon = R.drawable.session ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/invitefriend/InviteFriend.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/invitefriend/InviteFriend.kt index d02925055e..34fce83bf8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/invitefriend/InviteFriend.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/invitefriend/InviteFriend.kt @@ -62,7 +62,7 @@ internal fun InviteFriend( Text( accountId, modifier = Modifier - .qaTag(R.string.AccessibilityId_shareAccountId) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_shareAccountId) .fillMaxWidth() .border() .padding(LocalDimensions.current.spacing), diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessage.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessage.kt index 8981f6c99c..ad54d98825 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessage.kt @@ -106,7 +106,7 @@ private fun EnterAccountId( text = state.newMessageIdOrOns, modifier = Modifier .padding(horizontal = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_sessionIdInput), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionIdInput), placeholder = stringResource(R.string.accountIdOrOnsEnter), onChange = callbacks::onChange, onContinue = callbacks::onContinue, @@ -119,7 +119,7 @@ private fun EnterAccountId( BorderlessButtonWithIcon( text = stringResource(R.string.messageNewDescriptionMobile), modifier = Modifier - .qaTag(R.string.AccessibilityId_messageNewDescriptionMobile) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_messageNewDescriptionMobile) .padding(horizontal = LocalDimensions.current.mediumSpacing) .fillMaxWidth(), style = LocalType.current.small, diff --git a/app/src/main/java/org/thoughtcrime/securesms/media/MediaPage.kt b/app/src/main/java/org/thoughtcrime/securesms/media/MediaPage.kt index ced52541a2..ad342046d8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/media/MediaPage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/media/MediaPage.kt @@ -209,7 +209,7 @@ private fun ThumbnailRow( contentScale = ContentScale.Inside, painter = painterResource(R.drawable.ic_check), colorFilter = ColorFilter.tint(Color.White), - contentDescription = stringResource(R.string.AccessibilityId_select), + contentDescription = stringResource(org.session.content_descriptions.R.string.AccessibilityId_select), ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestsActivity.kt index eb0f4306e5..215fa4849d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/messagerequests/MessageRequestsActivity.kt @@ -82,7 +82,7 @@ class MessageRequestsActivity : ScreenLockActionBarActivity(), ConversationClick text(Phrase.from(context, R.string.blockDescription) .put(NAME_KEY, thread.recipient.displayName()) .format()) - dangerButton(R.string.block, R.string.AccessibilityId_blockConfirm) { + dangerButton(R.string.block, org.session.content_descriptions.R.string.AccessibilityId_blockConfirm) { doBlock() } button(R.string.no) diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/landing/Landing.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/landing/Landing.kt index 5362632d4a..074ef9f8e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/landing/Landing.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/landing/Landing.kt @@ -154,7 +154,7 @@ internal fun LandingScreen( modifier = Modifier .fillMaxWidth() .align(Alignment.CenterHorizontally) - .qaTag(R.string.AccessibilityId_onboardingAccountCreate), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_onboardingAccountCreate), onClick = createAccount ) Spacer(modifier = Modifier.height(LocalDimensions.current.smallSpacing)) @@ -163,7 +163,7 @@ internal fun LandingScreen( modifier = Modifier .fillMaxWidth() .align(Alignment.CenterHorizontally) - .qaTag(R.string.AccessibilityId_onboardingAccountExists), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_onboardingAccountExists), onClick = loadAccount ) BorderlessHtmlButton( @@ -171,7 +171,7 @@ internal fun LandingScreen( modifier = Modifier .fillMaxWidth() .align(Alignment.CenterHorizontally) - .qaTag(R.string.AccessibilityId_urlOpenBrowser), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_urlOpenBrowser), onClick = { isUrlDialogVisible = true } ) Spacer(modifier = Modifier.height(LocalDimensions.current.xxsSpacing)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccount.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccount.kt index ba2154d0c9..ba6271db98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccount.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccount.kt @@ -116,7 +116,7 @@ private fun RecoveryPassword( SessionOutlinedTextField( text = state.recoveryPhrase, modifier = Modifier.fillMaxWidth() - .qaTag(R.string.AccessibilityId_recoveryPasswordEnter), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_recoveryPasswordEnter), placeholder = stringResource(R.string.recoveryPasswordEnter), onChange = onChange, onContinue = onContinue, diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/Loading.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/Loading.kt index 0a0ae1355f..00dd18984f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/Loading.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/Loading.kt @@ -20,7 +20,7 @@ internal fun LoadingScreen(progress: Float) { Spacer(modifier = Modifier.weight(1f)) ProgressArc( progress, - modifier = Modifier.qaTag(R.string.AccessibilityId_loadAccountProgressMessage) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_loadAccountProgressMessage) ) Text( stringResource(R.string.waitOneMoment), diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotifications.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotifications.kt index 8b3bcd7060..61487a1e4e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotifications.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotifications.kt @@ -93,7 +93,7 @@ internal fun MessageNotificationsScreen( if (BuildConfig.FLAVOR == "huawei") R.string.notificationsFastModeDescriptionHuawei else R.string.notificationsFastModeDescription, modifier = Modifier - .qaTag(R.string.AccessibilityId_notificationsFastMode) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_notificationsFastMode) .fillMaxWidth(), tag = R.string.recommended, checked = state.pushEnabled, @@ -111,7 +111,7 @@ internal fun MessageNotificationsScreen( stringResource(R.string.notificationsSlowMode), explanationTxt, modifier = Modifier - .qaTag(R.string.AccessibilityId_notificationsSlowMode) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_notificationsSlowMode) .fillMaxWidth(), checked = state.pushDisabled, onClick = { setEnabled(false) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayName.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayName.kt index 7fbb4ef68a..f48a028765 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayName.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayName.kt @@ -67,7 +67,7 @@ internal fun PickDisplayName( SessionOutlinedTextField( text = state.displayName, - modifier = Modifier.fillMaxWidth().qaTag(R.string.AccessibilityId_displayNameEnter), + modifier = Modifier.fillMaxWidth().qaTag(org.session.content_descriptions.R.string.AccessibilityId_displayNameEnter), placeholder = stringResource(R.string.displayNameEnter), onChange = onChange, onContinue = onContinue, diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/ui/ContinueButton.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/ui/ContinueButton.kt index 349bc1093f..77f365ec12 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/ui/ContinueButton.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/ui/ContinueButton.kt @@ -15,7 +15,7 @@ fun ContinueAccentOutlineButton(modifier: Modifier, onContinue: () -> Unit) { AccentOutlineButton( stringResource(R.string.theContinue), modifier = modifier - .qaTag(R.string.AccessibilityId_theContinue) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_theContinue) .fillMaxWidth() .padding(horizontal = LocalDimensions.current.xlargeSpacing) .padding(bottom = LocalDimensions.current.smallSpacing), diff --git a/app/src/main/java/org/thoughtcrime/securesms/permissions/SettingsDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/permissions/SettingsDialog.kt index bc7a1c4191..319ecdefa1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/permissions/SettingsDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/permissions/SettingsDialog.kt @@ -11,7 +11,7 @@ class SettingsDialog { context.showSessionDialog { title(R.string.permissionsRequired) text(message) - button(R.string.sessionSettings, R.string.AccessibilityId_sessionSettings) { + button(R.string.sessionSettings, org.session.content_descriptions.R.string.AccessibilityId_sessionSettings) { context.startActivity(Permissions.getApplicationSettingsIntent(context)) } cancelButton() diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsScreen.kt index d3b704a1c8..ea40ad7ebc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsScreen.kt @@ -113,7 +113,7 @@ fun BlockedContacts( placeholder = stringResource(R.string.searchContacts), modifier = Modifier .padding(horizontal = LocalDimensions.current.smallSpacing) - .qaTag(R.string.AccessibilityId_groupNameSearch), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_groupNameSearch), backgroundColor = LocalColors.current.backgroundSecondary, ) @@ -154,7 +154,7 @@ fun BlockedContacts( enabled = contacts.any { it.selected }, modifier = Modifier .padding(vertical = LocalDimensions.current.spacing) - .qaTag(R.string.qa_unblock_button), + .qaTag(org.session.content_descriptions.R.string.qa_unblock_button), ) { Text( stringResource(id = R.string.blockUnblock) diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/CallToggleListener.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/CallToggleListener.kt index 9da9de980c..79bb3cbab3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/CallToggleListener.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/CallToggleListener.kt @@ -31,7 +31,7 @@ internal class CallToggleListener( context.showSessionDialog { title(R.string.callsVoiceAndVideoBeta) text(text) - button(R.string.enable, R.string.AccessibilityId_enable) { requestMicrophonePermission() } + button(R.string.enable, org.session.content_descriptions.R.string.AccessibilityId_enable) { requestMicrophonePermission() } cancelButton() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/CorrectedPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/CorrectedPreferenceFragment.java index 931d5e43aa..c24ab479f5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/CorrectedPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/CorrectedPreferenceFragment.java @@ -144,7 +144,7 @@ public void onBindViewHolder(PreferenceViewHolder holder, int position) { holder.itemView.setLayoutParams(layoutParams); setZeroPaddingToLayoutChildren(holder.itemView); } else { - View iconFrame = holder.itemView.findViewById(R.id.icon_frame); + View iconFrame = holder.itemView.findViewById(androidx.preference.R.id.icon_frame); if (iconFrame != null) { iconFrame.setVisibility(preference.getIcon() == null ? View.GONE : View.VISIBLE); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt index f9b44b4cb1..fc942397e8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt @@ -121,7 +121,7 @@ fun QrPage(string: String) { string = string, modifier = Modifier .padding(top = LocalDimensions.current.mediumSpacing, bottom = LocalDimensions.current.xsSpacing) - .qaTag(R.string.AccessibilityId_qrCode), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_qrCode), icon = R.drawable.session ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt index c6c96c25e2..90c85de23b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt @@ -221,7 +221,7 @@ fun Settings( ) { sendCommand(ShowAvatarDialog) } - .qaTag(R.string.AccessibilityId_profilePicture), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_profilePicture), contentAlignment = Alignment.Center ) { Avatar( @@ -252,7 +252,7 @@ fun Settings( // name AnnotatedTextWithIcon( - modifier = Modifier.qaTag(R.string.AccessibilityId_displayName) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_displayName) .fillMaxWidth() .safeContentWidth() .clickable( @@ -266,7 +266,7 @@ fun Settings( content = if(uiState.proDataState.type !is ProStatus.NeverSubscribed){{ // if we are pro or expired ProBadge( modifier = Modifier.padding(start = 4.dp) - .qaTag(stringResource(R.string.qa_pro_badge_icon)), + .qaTag(stringResource(org.session.content_descriptions.R.string.qa_pro_badge_icon)), colors = if(uiState.proDataState.type is ProStatus.Active) proBadgeColorStandard() else proBadgeColorDisabled() @@ -285,7 +285,7 @@ fun Settings( Spacer(modifier = Modifier.height(LocalDimensions.current.smallSpacing)) Text( - modifier = Modifier.qaTag(R.string.AccessibilityId_shareAccountId), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_shareAccountId), text = uiState.accountID, textAlign = TextAlign.Center, style = LocalType.current.xl.monospace(), @@ -454,11 +454,11 @@ fun Settings( text = GetString(stringResource(id = R.string.save)), enabled = uiState.usernameDialog.setEnabled, onClick = { sendCommand(SetUsername) }, - qaTag = stringResource(R.string.qa_settings_dialog_username_save), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_settings_dialog_username_save), ), DialogButtonData( text = GetString(stringResource(R.string.cancel)), - qaTag = stringResource(R.string.qa_settings_dialog_username_cancel), + qaTag = stringResource(org.session.content_descriptions.R.string.qa_settings_dialog_username_cancel), ) ) ) @@ -556,7 +556,7 @@ fun Buttons( contentDescription = null, ) }, - modifier = Modifier.qaTag(R.string.qa_settings_item_pro), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_settings_item_pro), colors = accentTextButtonColors() ) { activity?.push() @@ -569,7 +569,7 @@ fun Buttons( ItemButton( text = annotatedStringResource(R.string.sessionInviteAFriend), iconRes = R.drawable.ic_user_round_plus, - modifier = Modifier.qaTag(R.string.AccessibilityId_sessionInviteAFriend) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionInviteAFriend) ) { context.sendInvitationToUseSession() } } } @@ -583,7 +583,7 @@ fun Buttons( text = annotatedStringResource(R.string.donate), iconRes = R.drawable.ic_heart, iconTint = LocalColors.current.accent, - modifier = Modifier.qaTag(R.string.qa_settings_item_donate), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_settings_item_donate), ) { sendCommand(OnDonateClicked) } @@ -591,7 +591,7 @@ fun Buttons( Crossfade(if (hasPaths) primaryGreen else primaryYellow, label = "path") { ItemButton( - modifier = Modifier.qaTag(R.string.qa_settings_item_path), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_settings_item_path), text = annotatedStringResource(R.string.onionRoutingPath), icon = { PathDot( @@ -606,7 +606,7 @@ fun Buttons( // Add the token page option. ItemButton( - modifier = Modifier.qaTag(R.string.qa_settings_item_session_network), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_settings_item_session_network), text = annotatedStringResource(NETWORK_NAME), iconRes = R.drawable.ic_sent_custom ) { activity?.push() } @@ -618,23 +618,23 @@ fun Buttons( Cell { Column { ItemButton(annotatedStringResource(R.string.sessionPrivacy), - R.drawable.ic_lock_keyhole, Modifier.qaTag(R.string.AccessibilityId_sessionPrivacy)) { activity?.push() } + R.drawable.ic_lock_keyhole, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionPrivacy)) { activity?.push() } Divider() ItemButton(annotatedStringResource(R.string.sessionNotifications), - R.drawable.ic_volume_2, Modifier.qaTag(R.string.AccessibilityId_notifications)) { activity?.push() } + R.drawable.ic_volume_2, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_notifications)) { activity?.push() } Divider() ItemButton(annotatedStringResource(R.string.sessionConversations), - R.drawable.ic_users_round, Modifier.qaTag(R.string.AccessibilityId_sessionConversations)) { activity?.push() } + R.drawable.ic_users_round, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionConversations)) { activity?.push() } Divider() ItemButton(annotatedStringResource(R.string.sessionAppearance), - R.drawable.ic_paintbrush_vertical, Modifier.qaTag(R.string.AccessibilityId_sessionAppearance)) { activity?.push() } + R.drawable.ic_paintbrush_vertical, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionAppearance)) { activity?.push() } Divider() ItemButton(annotatedStringResource(R.string.sessionMessageRequests), - R.drawable.ic_message_square_warning, Modifier.qaTag(R.string.AccessibilityId_sessionMessageRequests)) { activity?.push() } + R.drawable.ic_message_square_warning, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionMessageRequests)) { activity?.push() } } } @@ -647,19 +647,19 @@ fun Buttons( ItemButton( annotatedStringResource(R.string.sessionRecoveryPassword), R.drawable.ic_recovery_password_custom, - Modifier.qaTag(R.string.AccessibilityId_sessionRecoveryPasswordMenuItem) + Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionRecoveryPasswordMenuItem) ) { activity?.push() } Divider() } ItemButton(annotatedStringResource(R.string.sessionHelp), - R.drawable.ic_question_custom, Modifier.qaTag(R.string.AccessibilityId_help)) { activity?.push() } + R.drawable.ic_question_custom, Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_help)) { activity?.push() } Divider() ItemButton( text = annotatedStringResource(R.string.sessionClearData), iconRes = R.drawable.ic_trash_2, - modifier = Modifier.qaTag(R.string.AccessibilityId_sessionClearData), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionClearData), colors = dangerButtonColors(), ) { sendCommand(ShowClearDataDialog) @@ -805,7 +805,7 @@ fun AvatarBottomSheet( horizontalArrangement = Arrangement.spacedBy(LocalDimensions.current.spacing) ) { AvatarOption( - modifier = Modifier.qaTag(R.string.AccessibilityId_imageButton), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_imageButton), title = stringResource(R.string.image), iconRes = R.drawable.ic_image, onClick = onGalleryPicked @@ -813,7 +813,7 @@ fun AvatarBottomSheet( if(showCamera) { AvatarOption( - modifier = Modifier.qaTag(R.string.AccessibilityId_cameraButton), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_cameraButton), title = stringResource(R.string.contentDescriptionCamera), iconRes = R.drawable.ic_camera, onClick = onCameraPicked @@ -907,7 +907,7 @@ fun AvatarDialog( ) { startAvatarSelection() } - .qaTag(R.string.AccessibilityId_avatarPicker) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_avatarPicker) .background( shape = CircleShape, color = LocalColors.current.backgroundBubbleReceived, diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsHomeScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsHomeScreen.kt index 0a5e6dbf62..2c8020416c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsHomeScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsHomeScreen.kt @@ -537,7 +537,7 @@ fun ProSettings( Icon( modifier = Modifier.align(Alignment.Center) .size(LocalDimensions.current.iconMedium) - .qaTag(R.string.qa_action_item_icon), + .qaTag(org.session.content_descriptions.R.string.qa_action_item_icon), painter = painterResource(id = R.drawable.ic_chevron_right), contentDescription = null, tint = LocalColors.current.text @@ -581,7 +581,7 @@ fun ProSettings( icon() } }, - qaTag = R.string.qa_pro_settings_action_update_plan, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_update_plan, onClick = { sendCommand(GoToChoosePlan(inSheet)) } ) Divider() @@ -598,7 +598,7 @@ fun ProSettings( .format().toString() ), checked = showProBadge, - qaTag = R.string.qa_pro_settings_action_show_badge, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_show_badge, onCheckedChange = { sendCommand(SetShowProBadge(it)) } ) } @@ -792,7 +792,7 @@ fun ProManage( titleColor = LocalColors.current.danger, icon = R.drawable.ic_circle_warning_custom, iconColor = LocalColors.current.danger, - qaTag = R.string.qa_pro_settings_action_request_refund, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_request_refund, onClick = { sendCommand(GoToRefund) } @@ -807,7 +807,7 @@ fun ProManage( .format().toString() ), icon = R.drawable.ic_refresh_cw, - qaTag = R.string.qa_pro_settings_action_recover_plan, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_recover_plan, onClick = { sendCommand(RefeshProDetails) } @@ -825,7 +825,7 @@ fun ProManage( titleColor = LocalColors.current.danger, icon = R.drawable.ic_circle_x_custom, iconColor = LocalColors.current.danger, - qaTag = R.string.qa_pro_settings_action_cancel_plan, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_cancel_plan, onClick = { sendCommand(GoToCancel) } @@ -848,7 +848,7 @@ fun ProManage( Icon( modifier = Modifier.align(Alignment.Center) .size(LocalDimensions.current.iconMedium) - .qaTag(R.string.qa_action_item_icon), + .qaTag(org.session.content_descriptions.R.string.qa_action_item_icon), painter = painterResource(id = R.drawable.ic_circle_plus), contentDescription = null, tint = color @@ -894,7 +894,7 @@ fun ProManage( icon() } }, - qaTag = R.string.qa_pro_settings_action_renew_plan, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_renew_plan, onClick = { sendCommand(GoToChoosePlan(inSheet)) } ) @@ -950,7 +950,7 @@ fun ProSettingsFooter( icon = R.drawable.ic_square_arrow_up_right, iconSize = LocalDimensions.current.iconMedium, iconColor = iconColor, - qaTag = R.string.qa_pro_settings_action_faq, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_faq, onClick = { sendCommand(ShowOpenUrlDialog("https://getsession.org/faq#pro")) } @@ -966,7 +966,7 @@ fun ProSettingsFooter( icon = R.drawable.ic_square_arrow_up_right, iconSize = LocalDimensions.current.iconMedium, iconColor = iconColor, - qaTag = R.string.qa_pro_settings_action_support, + qaTag = org.session.content_descriptions.R.string.qa_pro_settings_action_support, onClick = { sendCommand(ShowOpenUrlDialog(ProStatusManager.URL_PRO_SUPPORT)) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPassword.kt b/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPassword.kt index 7889463fd8..14d249dc65 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPassword.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPassword.kt @@ -54,7 +54,7 @@ internal fun RecoveryPasswordScreen( Column( verticalArrangement = Arrangement.spacedBy(LocalDimensions.current.smallSpacing), modifier = Modifier - .qaTag(R.string.AccessibilityId_sessionRecoveryPassword) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionRecoveryPassword) .verticalScroll(rememberScrollState()) .padding(bottom = LocalDimensions.current.smallSpacing) .padding(horizontal = LocalDimensions.current.spacing) @@ -108,7 +108,7 @@ private fun RecoveryPasswordCell( seed, modifier = Modifier .padding(vertical = LocalDimensions.current.spacing) - .qaTag(R.string.AccessibilityId_qrCode), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_qrCode), icon = R.drawable.ic_recovery_password_custom ) } @@ -144,7 +144,7 @@ private fun RecoveryPassword(mnemonic: String) { Text( mnemonic, modifier = Modifier - .qaTag(R.string.AccessibilityId_sessionRecoveryPasswordContainer) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_sessionRecoveryPasswordContainer) .padding(vertical = LocalDimensions.current.spacing) .border() .padding(LocalDimensions.current.spacing), @@ -183,7 +183,7 @@ private fun HideRecoveryPasswordCell( text = stringResource(R.string.hide), modifier = Modifier .widthIn(min = LocalDimensions.current.minSmallButtonWidth) - .qaTag(R.string.AccessibilityId_recoveryPasswordHideRecoveryPassword), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_recoveryPasswordHideRecoveryPassword), color = LocalColors.current.danger, onClick = { showHideRecoveryDialog = true } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/reviews/ui/InAppReview.kt b/app/src/main/java/org/thoughtcrime/securesms/reviews/ui/InAppReview.kt index 0b5ad12c4a..49d4aadb5c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/reviews/ui/InAppReview.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/reviews/ui/InAppReview.kt @@ -181,8 +181,8 @@ private fun InAppReviewStartPrompt( .put(EMOJI_KEY, "\uD83D\uDE15") .format() .toString(), - positiveButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_great), - negativeButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_work), + positiveButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_great), + negativeButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_work), sendCommands = sendCommands ) } @@ -206,8 +206,8 @@ private fun InAppReviewPositivePrompt( .toString(), positiveButtonText = context.getString(R.string.rateSessionApp), negativeButtonText = context.getString(R.string.notNow), - positiveButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_rate), - negativeButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_not_now), + positiveButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_rate), + negativeButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_not_now), sendCommands = sendCommands ) } @@ -227,8 +227,8 @@ private fun InAppReviewNegativePrompt( .toString(), positiveButtonText = context.getString(R.string.openSurvey), negativeButtonText = context.getString(R.string.notNow), - positiveButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_survey), - negativeButtonQaTag = stringResource(R.string.qa_inapp_review_dialog_button_not_now), + positiveButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_survey), + negativeButtonQaTag = stringResource(org.session.content_descriptions.R.string.qa_inapp_review_dialog_button_not_now), sendCommands = sendCommands ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/AlertDialog.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/AlertDialog.kt index 804148d5ed..6e3a52f7e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/AlertDialog.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/AlertDialog.kt @@ -212,7 +212,7 @@ fun AlertDialogContent( style = LocalType.current.h7, modifier = Modifier .padding(bottom = LocalDimensions.current.xxsSpacing) - .qaTag(R.string.AccessibilityId_modalTitle) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_modalTitle) ) } text?.let { @@ -235,7 +235,7 @@ fun AlertDialogContent( textAlign = TextAlign.Center, style = textStyle, modifier = textModifier - .qaTag(R.string.AccessibilityId_modalMessage) + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_modalMessage) ) } content() @@ -395,7 +395,7 @@ fun LoadingDialog( title, modifier = Modifier .align(Alignment.CenterHorizontally) - .qaTag(R.string.AccessibilityId_modalTitle), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_modalTitle), style = LocalType.current.large ) } @@ -524,7 +524,7 @@ fun TCPolicyDialog( icon = R.drawable.ic_square_arrow_up_right, iconSize = LocalDimensions.current.iconSmall, paddingValues = PaddingValues(start = spacing), - qaTag = R.string.AccessibilityId_onboardingTos, + qaTag = org.session.content_descriptions.R.string.AccessibilityId_onboardingTos, onClick = { context.openUrl(tcsUrl) } @@ -537,7 +537,7 @@ fun TCPolicyDialog( icon = R.drawable.ic_square_arrow_up_right, iconSize = LocalDimensions.current.iconSmall, paddingValues = PaddingValues(start = spacing), - qaTag = R.string.AccessibilityId_onboardingPrivacy, + qaTag = org.session.content_descriptions.R.string.AccessibilityId_onboardingPrivacy, onClick = { context.openUrl(privacyUrl) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt index ebab217eef..4b2176be91 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt @@ -740,7 +740,7 @@ fun SearchBar( innerTextField() if (query.isEmpty() && placeholder != null) { Text( - modifier = Modifier.qaTag(R.string.qa_conversation_search_input), + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_search_input), text = placeholder, color = LocalColors.current.textSecondary, style = LocalType.current.xl @@ -755,7 +755,7 @@ fun SearchBar( LocalColors.current.textSecondary ), modifier = Modifier - .qaTag(R.string.qa_input_clear) + .qaTag(org.session.content_descriptions.R.string.qa_input_clear) .padding( horizontal = LocalDimensions.current.smallSpacing, vertical = LocalDimensions.current.xxsSpacing @@ -947,7 +947,7 @@ private fun CollapsibleFooterActions( onClick = { item.onClick() }, - qaTag = R.string.qa_collapsing_footer_action, + qaTag = org.session.content_descriptions.R.string.qa_collapsing_footer_action, endContent = { Box( modifier = Modifier @@ -960,7 +960,7 @@ private fun CollapsibleFooterActions( val buttonModifier = if (single) Modifier else Modifier.fillMaxWidth() SlimFillButtonRect( modifier = buttonModifier - .qaTag(stringResource(R.string.qa_collapsing_footer_action)+"_"+item.buttonLabel.string().lowercase()) + .qaTag(stringResource(org.session.content_descriptions.R.string.qa_collapsing_footer_action)+"_"+item.buttonLabel.string().lowercase()) .clearAndSetSemantics{}, text = item.buttonLabel.string(), color = item.buttonColor @@ -1362,7 +1362,7 @@ fun ActionRowItem( title, Modifier .fillMaxWidth() - .qaTag(R.string.qa_action_item_title), + .qaTag(org.session.content_descriptions.R.string.qa_action_item_title), style = textStyle, color = titleColor ) @@ -1373,7 +1373,7 @@ fun ActionRowItem( text = it, modifier = Modifier .fillMaxWidth() - .qaTag(R.string.qa_action_item_subtitle), + .qaTag(org.session.content_descriptions.R.string.qa_action_item_subtitle), style = subtitleStyle, color = subtitleColor ) @@ -1421,7 +1421,7 @@ fun IconActionRowItem( modifier = Modifier .align(Alignment.Center) .size(iconSize) - .qaTag(R.string.qa_action_item_icon), + .qaTag(org.session.content_descriptions.R.string.qa_action_item_icon), painter = painterResource(id = icon), contentDescription = null, tint = iconColor diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/ProComponents.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/ProComponents.kt index a5a48edf5f..0617ec2142 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/ProComponents.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/ProComponents.kt @@ -167,7 +167,7 @@ fun ProBadgeText( onBadgeClick: (() -> Unit)? = null ) { Row( - modifier = modifier.qaTag(stringResource(R.string.qa_pro_badge_component)), + modifier = modifier.qaTag(stringResource(org.session.content_descriptions.R.string.qa_pro_badge_component)), verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.spacedBy(textStyle.lineHeight.value.dp * 0.2f) ) { @@ -181,7 +181,7 @@ fun ProBadgeText( } ProBadge( modifier = proBadgeModifier.height(textStyle.lineHeight.value.dp * 0.8f) - .qaTag(stringResource(R.string.qa_pro_badge_icon)), + .qaTag(stringResource(org.session.content_descriptions.R.string.qa_pro_badge_icon)), colors = badgeColors ) } @@ -190,7 +190,7 @@ fun ProBadgeText( val textContent = @Composable { Text( modifier = Modifier.weight(1f, fill = false) - .qaTag(stringResource(R.string.qa_pro_badge_text)), + .qaTag(stringResource(org.session.content_descriptions.R.string.qa_pro_badge_text)), text = text, style = textStyle, maxLines = 1, @@ -970,7 +970,7 @@ fun AvatarQrWidget( string = address, modifier = Modifier .size(animatedSize) - .qaTag(R.string.AccessibilityId_qrCode), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_qrCode), icon = R.drawable.session ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/UserProfileModal.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/UserProfileModal.kt index 7e56efeb67..4f30da8f7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/UserProfileModal.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/UserProfileModal.kt @@ -124,7 +124,7 @@ fun UserProfileModal( Text( modifier = Modifier.weight(1f, fill = false) - .qaTag(R.string.qa_conversation_settings_account_id), + .qaTag(org.session.content_descriptions.R.string.qa_conversation_settings_account_id), text = data.displayAddress, textAlign = TextAlign.Center, style = LocalType.current.base.monospace(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/AppBar.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/AppBar.kt index 386677bab2..89920bc48f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/AppBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/AppBar.kt @@ -188,7 +188,7 @@ fun AppBarText( fun AppBarBackIcon(onBack: () -> Unit) { IconButton( modifier = Modifier.contentDescription(stringResource(R.string.back)) - .qaTag(R.string.AccessibilityId_navigateBack), + .qaTag(org.session.content_descriptions.R.string.AccessibilityId_navigateBack), onClick = onBack ) { Icon( diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Button.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Button.kt index d54ceceb30..3e16b763b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Button.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Button.kt @@ -239,7 +239,7 @@ fun OutlineCopyButton( val interactionSource = remember { MutableInteractionSource() } Button( - modifier = modifier.qaTag(R.string.AccessibilityId_copy), + modifier = modifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_copy), interactionSource = interactionSource, style = style, type = ButtonType.Outline(color), diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/ConversationAppBar.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/ConversationAppBar.kt index 220fabdbf0..d57e3c66d9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/ConversationAppBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/ConversationAppBar.kt @@ -99,7 +99,7 @@ fun ConversationAppBar( } ProBadgeText( - modifier = titleModifier.qaTag(R.string.AccessibilityId_conversationTitle), + modifier = titleModifier.qaTag(org.session.content_descriptions.R.string.AccessibilityId_conversationTitle), text = data.title, showBadge = data.showProBadge ) @@ -132,7 +132,7 @@ fun ConversationAppBar( ) { Icon( painter = painterResource(id = R.drawable.ic_phone), - contentDescription = stringResource(id = R.string.AccessibilityId_call), + contentDescription = stringResource(id = org.session.content_descriptions.R.string.AccessibilityId_call), tint = LocalColors.current.text, modifier = Modifier.size(LocalDimensions.current.iconMedium) ) @@ -142,7 +142,7 @@ fun ConversationAppBar( // Avatar if (data.showAvatar) { Avatar( - modifier = Modifier.qaTag(R.string.qa_conversation_avatar) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_avatar) .padding( start = if(data.showCall) 0.dp else LocalDimensions.current.xsSpacing, end = LocalDimensions.current.xsSpacing @@ -188,7 +188,7 @@ fun ConversationAppBar( Spacer(Modifier.width(LocalDimensions.current.xsSpacing)) Text( - modifier = Modifier.qaTag(R.string.qa_conversation_search_cancel) + modifier = Modifier.qaTag(org.session.content_descriptions.R.string.qa_conversation_search_cancel) .clickable { onSearchCanceled() }, diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt index 25cd0a4bd2..cb07719fec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt @@ -146,7 +146,7 @@ fun SessionOutlinedTextField( maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE, minLines: Int = 1, showClear: Boolean = false, - @StringRes clearQaTag: Int = R.string.qa_input_clear, + @StringRes clearQaTag: Int = org.session.content_descriptions.R.string.qa_input_clear, keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy(imeAction = if (singleLine) ImeAction.Done else ImeAction.Default) ) { // in order to allow the cursor to be at the end of the text by default @@ -239,7 +239,7 @@ fun SessionOutlinedTextField( modifier = Modifier .fillMaxWidth() .padding(top = LocalDimensions.current.xsSpacing) - .qaTag(R.string.qa_input_error), + .qaTag(org.session.content_descriptions.R.string.qa_input_error), textAlign = TextAlign.Center, style = LocalType.current.base.bold(), color = LocalColors.current.danger diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtilities.kt b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtilities.kt index 9703ab1bf1..7e5166f57d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtilities.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ViewUtilities.kt @@ -44,7 +44,7 @@ val View.hitRect: Rect } @ColorInt -fun Context.getAccentColor() = getColorFromAttr(R.attr.colorAccent) +fun Context.getAccentColor() = getColorFromAttr(androidx.appcompat.R.attr.colorAccent) fun View.animateSizeChange(@DimenRes startSizeID: Int, @DimenRes endSizeID: Int, animationDuration: Long = 250) { val startSize = resources.getDimension(startSizeID) diff --git a/gradle.properties b/gradle.properties index 05f1a1f6c1..b5ba0a1937 100644 --- a/gradle.properties +++ b/gradle.properties @@ -22,7 +22,7 @@ org.gradle.worker.heap.size=512m kotlin.daemon.jvmargs=-Xmx4096m android.useAndroidX=true -android.nonTransitiveRClass=false +android.nonTransitiveRClass=true android.nonFinalResIds=false # Enable fast service loader to fix a crash in coroutine's test dispatcher set up From 7620ee4089d72dee3bfe73f5ad404d23628aba6a Mon Sep 17 00:00:00 2001 From: SessionHero01 <180888785+SessionHero01@users.noreply.github.com> Date: Tue, 25 Nov 2025 16:45:59 +1100 Subject: [PATCH 2/3] Remove glide ksp and tidy up add explicit return types to dep providers --- app/build.gradle.kts | 5 +- .../messaging/utilities/WebRtcUtils.kt | 2 - .../thoughtcrime/securesms/DeviceModule.kt | 3 +- .../database/LokiBackupFilesDatabase.kt | 4 +- .../securesms/dependencies/AppModule.kt | 10 -- .../securesms/dependencies/CallModule.kt | 2 +- .../securesms/dependencies/ContentModule.kt | 3 +- .../dependencies/DatabaseComponent.kt | 13 +- .../securesms/dependencies/DatabaseModule.kt | 29 +++-- .../dependencies/OnAppStartupComponents.kt | 3 + .../securesms/glide/GlideStartupModule.kt | 118 ++++++++++++++++++ .../securesms/glide/RemoteFileLoader.kt | 1 + .../mms/AttachmentStreamUriLoader.java | 2 +- .../mms/DecryptableStreamUriLoader.java | 4 +- .../securesms/mms/SignalGlideModule.java | 85 ------------- .../src/main/kotlin/RenameApkPlugin.kt | 5 + gradle.properties | 3 +- gradle/libs.versions.toml | 1 - 18 files changed, 167 insertions(+), 126 deletions(-) create mode 100644 app/src/main/java/org/thoughtcrime/securesms/glide/GlideStartupModule.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.java diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c70f62330e..5bd9a9896e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -335,9 +335,8 @@ android { dependencies { implementation(project(":content-descriptions")) - ksp(libs.androidx.hilt.compiler) +// ksp(libs.androidx.hilt.compiler) ksp(libs.dagger.hilt.compiler) - ksp(libs.glide.ksp) implementation(libs.androidx.hilt.navigation.compose) implementation(libs.androidx.hilt.work) implementation(libs.roundedimageview) @@ -484,6 +483,8 @@ dependencies { debugImplementation(libs.sqlite.web.viewer) } + + fun getLastCommitTimestamp(): String { return ByteArrayOutputStream().use { os -> os.toString() + "000" diff --git a/app/src/main/java/org/session/libsession/messaging/utilities/WebRtcUtils.kt b/app/src/main/java/org/session/libsession/messaging/utilities/WebRtcUtils.kt index e828b2bcbd..93812f2687 100644 --- a/app/src/main/java/org/session/libsession/messaging/utilities/WebRtcUtils.kt +++ b/app/src/main/java/org/session/libsession/messaging/utilities/WebRtcUtils.kt @@ -2,12 +2,10 @@ package org.session.libsession.messaging.utilities import kotlinx.coroutines.channels.Channel import org.session.libsession.messaging.messages.control.CallMessage -import java.util.* object WebRtcUtils { // TODO: move this to a better place that is persistent val SIGNAL_QUEUE = Channel(Channel.UNLIMITED) - val callCache: MutableMap> = mutableMapOf() } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt b/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt index bdfa9b6088..b260f89d83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt @@ -5,6 +5,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import network.loki.messenger.BuildConfig +import org.session.libsession.utilities.Device import javax.inject.Singleton @Module @@ -12,5 +13,5 @@ import javax.inject.Singleton object DeviceModule { @Provides @Singleton - fun provides() = BuildConfig.DEVICE + fun provides(): Device = BuildConfig.DEVICE } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/LokiBackupFilesDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/LokiBackupFilesDatabase.kt index 1b0b190a1d..5addef0f30 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/LokiBackupFilesDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/LokiBackupFilesDatabase.kt @@ -6,7 +6,7 @@ import android.database.Cursor import android.net.Uri import org.thoughtcrime.securesms.database.helpers.SQLCipherOpenHelper import java.lang.IllegalArgumentException -import java.util.* +import java.util.Date import javax.inject.Provider import kotlin.collections.ArrayList @@ -50,6 +50,7 @@ class LokiBackupFilesDatabase(context: Context, databaseHelper: Provider) = MediaDatabase(context, openHelper) + fun provideMediaDatbase(@ApplicationContext context: Context, openHelper: Provider): MediaDatabase = MediaDatabase(context, openHelper) @Provides @Singleton - fun provideDraftDatabase(@ApplicationContext context: Context, openHelper: Provider) = DraftDatabase(context, openHelper) + fun provideDraftDatabase(@ApplicationContext context: Context, openHelper: Provider): DraftDatabase = DraftDatabase(context, openHelper) @Provides @Singleton - fun providePushDatabase(@ApplicationContext context: Context, openHelper: Provider) = PushDatabase(context,openHelper) + fun providePushDatabase(@ApplicationContext context: Context, openHelper: Provider): PushDatabase = PushDatabase(context,openHelper) @Provides @Singleton - fun provideGroupDatabase(@ApplicationContext context: Context, openHelper: Provider, loginStateRepository: LoginStateRepository) + fun provideGroupDatabase(@ApplicationContext context: Context, openHelper: Provider, loginStateRepository: LoginStateRepository): GroupDatabase = GroupDatabase(context,openHelper, loginStateRepository) @Provides @Singleton - fun provideGroupReceiptDatabase(@ApplicationContext context: Context, openHelper: Provider) = GroupReceiptDatabase(context,openHelper) + fun provideGroupReceiptDatabase(@ApplicationContext context: Context, openHelper: Provider): GroupReceiptDatabase = GroupReceiptDatabase(context,openHelper) @Provides @Singleton - fun searchDatabase(@ApplicationContext context: Context, openHelper: Provider) = SearchDatabase(context,openHelper) + fun searchDatabase(@ApplicationContext context: Context, openHelper: Provider): SearchDatabase = SearchDatabase(context,openHelper) @Provides @Singleton - fun provideLokiApiDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiAPIDatabase(context,openHelper) + fun provideLokiApiDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiAPIDatabase = LokiAPIDatabase(context,openHelper) @Provides @Singleton - fun provideLokiMessageDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiMessageDatabase(context,openHelper) + fun provideLokiMessageDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiMessageDatabase = LokiMessageDatabase(context,openHelper) @Provides @Singleton - fun provideLokiBackupFilesDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiBackupFilesDatabase(context,openHelper) + fun provideLokiBackupFilesDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiBackupFilesDatabase = LokiBackupFilesDatabase(context,openHelper) @Provides @Singleton - fun provideGroupMemberDatabase(@ApplicationContext context: Context, openHelper: Provider) = GroupMemberDatabase(context, openHelper) + fun provideGroupMemberDatabase(@ApplicationContext context: Context, openHelper: Provider): GroupMemberDatabase = GroupMemberDatabase(context, openHelper) @Provides @Singleton - fun provideReactionDatabase(@ApplicationContext context: Context, openHelper: Provider) = ReactionDatabase(context, openHelper) + fun provideReactionDatabase(@ApplicationContext context: Context, openHelper: Provider): ReactionDatabase = ReactionDatabase(context, openHelper) @Provides @Singleton - fun provideEmojiSearchDatabase(@ApplicationContext context: Context, openHelper: Provider) = EmojiSearchDatabase(context, openHelper) + fun provideEmojiSearchDatabase(@ApplicationContext context: Context, openHelper: Provider): EmojiSearchDatabase = EmojiSearchDatabase(context, openHelper) @Provides @Singleton diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/OnAppStartupComponents.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/OnAppStartupComponents.kt index e1730e784e..01cfa1a23d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/OnAppStartupComponents.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/OnAppStartupComponents.kt @@ -10,6 +10,7 @@ import org.thoughtcrime.securesms.configs.ConfigUploader import org.thoughtcrime.securesms.database.ThreadDatabase import org.thoughtcrime.securesms.disguise.AppDisguiseManager import org.thoughtcrime.securesms.emoji.EmojiIndexLoader +import org.thoughtcrime.securesms.glide.GlideStartupModule import org.thoughtcrime.securesms.groups.ExpiredGroupManager import org.thoughtcrime.securesms.groups.GroupPollerManager import org.thoughtcrime.securesms.groups.handler.AdminStateSync @@ -40,6 +41,7 @@ class OnAppStartupComponents private constructor( } @Inject constructor( + glideStartupModule: GlideStartupModule, configUploader: ConfigUploader, snodeClock: SnodeClock, backgroundPollManager: BackgroundPollManager, @@ -72,6 +74,7 @@ class OnAppStartupComponents private constructor( subscriptionManagers: Set<@JvmSuppressWildcards SubscriptionManager>, ): this( components = listOf( + glideStartupModule, configUploader, snodeClock, backgroundPollManager, diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/GlideStartupModule.kt b/app/src/main/java/org/thoughtcrime/securesms/glide/GlideStartupModule.kt new file mode 100644 index 0000000000..c955d14784 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/GlideStartupModule.kt @@ -0,0 +1,118 @@ +package org.thoughtcrime.securesms.glide + +import android.app.Application +import android.graphics.Bitmap +import com.bumptech.glide.Glide +import com.bumptech.glide.load.model.GlideUrl +import com.bumptech.glide.load.model.UnitModelLoader +import com.bumptech.glide.load.resource.bitmap.Downsampler +import com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder +import com.bumptech.glide.load.resource.gif.ByteBufferGifDecoder +import com.bumptech.glide.load.resource.gif.GifDrawable +import com.bumptech.glide.load.resource.gif.StreamGifDecoder +import org.session.libsession.utilities.recipients.RemoteFile +import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider +import org.thoughtcrime.securesms.dependencies.OnAppStartupComponent +import org.thoughtcrime.securesms.giph.model.ChunkedImageUrl +import org.thoughtcrime.securesms.glide.cache.EncryptedBitmapCacheDecoder +import org.thoughtcrime.securesms.glide.cache.EncryptedBitmapResourceEncoder +import org.thoughtcrime.securesms.glide.cache.EncryptedCacheEncoder +import org.thoughtcrime.securesms.glide.cache.EncryptedGifCacheDecoder +import org.thoughtcrime.securesms.glide.cache.EncryptedGifDrawableResourceEncoder +import org.thoughtcrime.securesms.mms.AttachmentStreamUriLoader +import org.thoughtcrime.securesms.mms.AttachmentStreamUriLoader.AttachmentModel +import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader +import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri +import java.io.File +import java.io.InputStream +import javax.inject.Inject +import javax.inject.Provider + +class GlideStartupModule @Inject constructor( + private val context: Application, + private val remoteFileLoader: Provider, +) : OnAppStartupComponent { + override fun onPostAppStarted() { + val glide = Glide.get(context) + val registry = glide.registry + + val secretProvider = AttachmentSecretProvider.getInstance(context) + + registry.prepend( + File::class.java, + File::class.java, + UnitModelLoader.Factory.getInstance() + ) + registry.prepend( + InputStream::class.java, + EncryptedCacheEncoder(secretProvider, glide.arrayPool) + ) + registry.prepend( + File::class.java, + Bitmap::class.java, + EncryptedBitmapCacheDecoder( + secretProvider, + StreamBitmapDecoder( + Downsampler( + registry.getImageHeaderParsers(), + context.resources.displayMetrics, + glide.bitmapPool, + glide.arrayPool + ), glide.arrayPool + ) + ) + ) + registry.prepend( + File::class.java, + GifDrawable::class.java, + EncryptedGifCacheDecoder( + secretProvider, + StreamGifDecoder( + registry.getImageHeaderParsers(), + ByteBufferGifDecoder( + context, + registry.getImageHeaderParsers(), + glide.bitmapPool, + glide.arrayPool + ), + glide.arrayPool + ) + ) + ) + + registry.prepend( + Bitmap::class.java, + EncryptedBitmapResourceEncoder(secretProvider) + ) + registry.prepend( + GifDrawable::class.java, + EncryptedGifDrawableResourceEncoder(secretProvider) + ) + + registry.append( + RemoteFile::class.java, InputStream::class.java, RemoteFileLoader.Factory( + remoteFileLoader + ) + ) + registry.append( + DecryptableUri::class.java, + InputStream::class.java, + DecryptableStreamUriLoader.Factory(context) + ) + registry.append( + AttachmentModel::class.java, + InputStream::class.java, + AttachmentStreamUriLoader.Factory() + ) + registry.append( + ChunkedImageUrl::class.java, + InputStream::class.java, + ChunkedImageUrlLoader.Factory() + ) + registry.replace( + GlideUrl::class.java, + InputStream::class.java, + OkHttpUrlLoader.Factory() + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/glide/RemoteFileLoader.kt b/app/src/main/java/org/thoughtcrime/securesms/glide/RemoteFileLoader.kt index 02e833e2f8..720a571f9c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/glide/RemoteFileLoader.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/glide/RemoteFileLoader.kt @@ -75,6 +75,7 @@ class RemoteFileLoader @Inject constructor( override fun getDataSource(): DataSource = DataSource.REMOTE } + private data class RemoteFileKey(val file: RemoteFile) : Key { override fun updateDiskCacheKey(messageDigest: MessageDigest) { when (file) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java index 9549ad242a..94675b9032 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/AttachmentStreamUriLoader.java @@ -28,7 +28,7 @@ public boolean handles(@NonNull AttachmentModel attachmentModel) { return true; } - static class Factory implements ModelLoaderFactory { + public static class Factory implements ModelLoaderFactory { @Override public @NonNull ModelLoader build(@NonNull MultiModelLoaderFactory multiFactory) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java b/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java index 054de985db..68796fd34d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/DecryptableStreamUriLoader.java @@ -35,11 +35,11 @@ public boolean handles(@NonNull DecryptableUri decryptableUri) { return true; } - static class Factory implements ModelLoaderFactory { + public static class Factory implements ModelLoaderFactory { private final Context context; - Factory(Context context) { + public Factory(Context context) { this.context = context.getApplicationContext(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.java b/app/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.java deleted file mode 100644 index 366bd88c88..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/SignalGlideModule.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.thoughtcrime.securesms.mms; - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.util.Log; - -import androidx.annotation.NonNull; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.GlideBuilder; -import com.bumptech.glide.Registry; -import com.bumptech.glide.annotation.GlideModule; -import com.bumptech.glide.load.engine.cache.DiskCache; -import com.bumptech.glide.load.engine.cache.DiskCacheAdapter; -import com.bumptech.glide.load.model.GlideUrl; -import com.bumptech.glide.load.model.UnitModelLoader; -import com.bumptech.glide.load.resource.bitmap.Downsampler; -import com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder; -import com.bumptech.glide.load.resource.gif.ByteBufferGifDecoder; -import com.bumptech.glide.load.resource.gif.GifDrawable; -import com.bumptech.glide.load.resource.gif.StreamGifDecoder; -import com.bumptech.glide.module.AppGlideModule; - -import org.session.libsession.utilities.recipients.RemoteFile; -import org.thoughtcrime.securesms.ApplicationContext; -import org.thoughtcrime.securesms.crypto.AttachmentSecret; -import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider; -import org.thoughtcrime.securesms.giph.model.ChunkedImageUrl; -import org.thoughtcrime.securesms.glide.ChunkedImageUrlLoader; -import org.thoughtcrime.securesms.glide.OkHttpUrlLoader; -import org.thoughtcrime.securesms.glide.RemoteFileLoader; -import org.thoughtcrime.securesms.glide.cache.EncryptedBitmapCacheDecoder; -import org.thoughtcrime.securesms.glide.cache.EncryptedBitmapResourceEncoder; -import org.thoughtcrime.securesms.glide.cache.EncryptedCacheEncoder; -import org.thoughtcrime.securesms.glide.cache.EncryptedGifCacheDecoder; -import org.thoughtcrime.securesms.glide.cache.EncryptedGifDrawableResourceEncoder; -import org.thoughtcrime.securesms.mms.AttachmentStreamUriLoader.AttachmentModel; -import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri; - -import java.io.File; -import java.io.InputStream; - -@GlideModule -public class SignalGlideModule extends AppGlideModule { - - @Override - public boolean isManifestParsingEnabled() { - return false; - } - - @Override - public void applyOptions(Context context, GlideBuilder builder) { - builder.setLogLevel(Log.ERROR); -// builder.setDiskCache(new NoopDiskCacheFactory()); - } - - @Override - public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) { - AttachmentSecretProvider secretProvider = AttachmentSecretProvider.getInstance(context); - - registry.prepend(File.class, File.class, UnitModelLoader.Factory.getInstance()); - registry.prepend(InputStream.class, new EncryptedCacheEncoder(secretProvider, glide.getArrayPool())); - registry.prepend(File.class, Bitmap.class, new EncryptedBitmapCacheDecoder(secretProvider, new StreamBitmapDecoder(new Downsampler(registry.getImageHeaderParsers(), context.getResources().getDisplayMetrics(), glide.getBitmapPool(), glide.getArrayPool()), glide.getArrayPool()))); - registry.prepend(File.class, GifDrawable.class, new EncryptedGifCacheDecoder(secretProvider, new StreamGifDecoder(registry.getImageHeaderParsers(), new ByteBufferGifDecoder(context, registry.getImageHeaderParsers(), glide.getBitmapPool(), glide.getArrayPool()), glide.getArrayPool()))); - - registry.prepend(Bitmap.class, new EncryptedBitmapResourceEncoder(secretProvider)); - registry.prepend(GifDrawable.class, new EncryptedGifDrawableResourceEncoder(secretProvider)); - - registry.append(RemoteFile.class, InputStream.class, new RemoteFileLoader.Factory( - ((ApplicationContext) (context.getApplicationContext())).getRemoteFileLoader() - )); - registry.append(DecryptableUri.class, InputStream.class, new DecryptableStreamUriLoader.Factory(context)); - registry.append(AttachmentModel.class, InputStream.class, new AttachmentStreamUriLoader.Factory()); - registry.append(ChunkedImageUrl.class, InputStream.class, new ChunkedImageUrlLoader.Factory()); - registry.replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory()); - } - - public static class NoopDiskCacheFactory implements DiskCache.Factory { - @Override - public DiskCache build() { - return new DiskCacheAdapter(); - } - } -} diff --git a/build-logic/src/main/kotlin/RenameApkPlugin.kt b/build-logic/src/main/kotlin/RenameApkPlugin.kt index 75517ea366..3a53e62149 100644 --- a/build-logic/src/main/kotlin/RenameApkPlugin.kt +++ b/build-logic/src/main/kotlin/RenameApkPlugin.kt @@ -20,6 +20,11 @@ class RenameApkPlugin : Plugin { project.plugins.withId("com.android.application") { val androidComponents = project.extensions.getByType(ApplicationAndroidComponentsExtension::class.java) androidComponents.onVariants { variant -> + if (variant.buildType == "debug") { + // Do not rename debug builds + return@onVariants + } + val taskProvider = project.tasks.register( "rename${variant.name.capitalized()}Apk", RenameApkTask::class.java, diff --git a/gradle.properties b/gradle.properties index b5ba0a1937..58b0cb993b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,8 @@ org.gradle.jvmargs=-Xmx4096m org.gradle.workers.max=4 org.gradle.worker.heap.size=512m -kotlin.daemon.jvmargs=-Xmx4096m +kotlin.daemon.jvmargs=-Xmx4096m -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g +ksp.incremental.log=true android.useAndroidX=true android.nonTransitiveRClass=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3f484b9ce9..11c7deb2b7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -140,7 +140,6 @@ firebase-messaging = { module = "com.google.firebase:firebase-messaging", versio flexbox = { module = "com.google.android.flexbox:flexbox", version.ref = "flexboxVersion" } glide = { module = "com.github.bumptech.glide:glide", version.ref = "glideVersion" } glide-compose = { module = "com.github.bumptech.glide:compose", version = "1.0.0-beta01" } -glide-ksp = { module = "com.github.bumptech.glide:ksp", version.ref = "glideVersion" } hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "daggerHiltVersion" } dagger-hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "daggerHiltVersion" } kotlinx-coroutines-guava = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-guava", version.ref = "coroutinesVersion" } From 94821feb9b70b2a1cab31536bb076b61b037cf80 Mon Sep 17 00:00:00 2001 From: SessionHero01 <180888785+SessionHero01@users.noreply.github.com> Date: Wed, 26 Nov 2025 08:31:07 +1100 Subject: [PATCH 3/3] Compile issue --- .../securesms/conversation/v2/MessageDetailsViewModel.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt index 3327dc1415..ab384fafa0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.conversation.v2 +import android.content.Context import android.net.Uri import android.text.format.Formatter import androidx.annotation.DrawableRes @@ -9,6 +10,7 @@ import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject import dagger.hilt.android.lifecycle.HiltViewModel +import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.channels.Channel @@ -34,7 +36,6 @@ import org.session.libsession.utilities.recipients.Recipient import org.session.libsession.utilities.recipients.RecipientData import org.session.libsession.utilities.recipients.displayName import org.session.libsignal.utilities.IdPrefix -import org.thoughtcrime.securesms.ApplicationContext import org.thoughtcrime.securesms.MediaPreviewArgs import org.thoughtcrime.securesms.database.AttachmentDatabase import org.thoughtcrime.securesms.database.LokiMessageDatabase @@ -68,7 +69,7 @@ class MessageDetailsViewModel @AssistedInject constructor( private val mmsSmsDatabase: MmsSmsDatabase, private val threadDb: ThreadDatabase, private val deprecationManager: LegacyGroupDeprecationManager, - private val context: ApplicationContext, + @param:ApplicationContext private val context: Context, private val avatarUtils: AvatarUtils, private val dateUtils: DateUtils, private val recipientRepository: RecipientRepository,