From 7c7ace9ecd1f6a57ce57ad88330730bbd8d18110 Mon Sep 17 00:00:00 2001 From: jubb Date: Fri, 21 May 2021 16:49:06 +1000 Subject: [PATCH] refactor: extract hardcoded strings allows fix for #529 --- .../conversation/ConversationActivity.java | 8 +-- .../dialogs/KeyPairMigrationBottomSheet.kt | 54 ---------------- .../KeyPairMigrationSuccessBottomSheet.kt | 55 ----------------- .../res/layout-sw400dp/activity_landing.xml | 2 +- .../res/layout-sw400dp/activity_pn_mode.xml | 12 ++-- .../activity_recovery_phrase_restore.xml | 4 +- .../res/layout-sw400dp/activity_register.xml | 6 +- .../main/res/layout-sw400dp/activity_seed.xml | 6 +- .../fragment_recovery_phrase.xml | 4 +- .../res/layout-sw400dp/view_seed_reminder.xml | 6 +- .../res/layout/activity_backup_restore.xml | 3 +- app/src/main/res/layout/activity_home.xml | 2 +- app/src/main/res/layout/activity_landing.xml | 2 +- .../layout/activity_open_group_guidelines.xml | 2 +- app/src/main/res/layout/activity_pn_mode.xml | 12 ++-- .../activity_recovery_phrase_restore.xml | 4 +- app/src/main/res/layout/activity_register.xml | 8 ++- app/src/main/res/layout/activity_seed.xml | 6 +- app/src/main/res/layout/activity_settings.xml | 4 +- .../contact_selection_list_fragment.xml | 2 +- .../main/res/layout/conversation_activity.xml | 6 +- app/src/main/res/layout/dialog_seed.xml | 6 +- .../res/layout/fragment_enter_public_key.xml | 6 +- ...agment_key_pair_migration_bottom_sheet.xml | 60 ------------------ ...ey_pair_migration_success_bottom_sheet.xml | 61 ------------------- .../res/layout/fragment_recovery_phrase.xml | 2 +- .../main/res/layout/fragment_scan_qr_code.xml | 2 +- .../fragment_user_details_bottom_sheet.xml | 8 +-- .../res/layout/fragment_view_my_qr_code.xml | 6 +- .../res/layout/prompt_passphrase_activity.xml | 5 +- app/src/main/res/layout/share_activity.xml | 2 +- app/src/main/res/layout/view_conversation.xml | 2 +- .../res/layout/view_open_group_guidelines.xml | 6 +- .../main/res/layout/view_seed_reminder.xml | 6 +- .../res/menu/conversation_list_search.xml | 11 ++-- app/src/main/res/menu/menu_pn_mode.xml | 2 +- app/src/main/res/values/strings.xml | 27 ++++++++ app/src/main/res/values/vector_paths.xml | 18 +++--- 38 files changed, 122 insertions(+), 316 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationBottomSheet.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationSuccessBottomSheet.kt delete mode 100644 app/src/main/res/layout/fragment_key_pair_migration_bottom_sheet.xml delete mode 100644 app/src/main/res/layout/fragment_key_pair_migration_success_bottom_sheet.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index ddad4b628a..728ab450b5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -2340,9 +2340,9 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void updateTitleTextView(Recipient recipient) { String userPublicKey = TextSecurePreferences.getLocalNumber(this); if (recipient == null) { - titleTextView.setText("Compose"); + titleTextView.setText(R.string.ConversationActivity_compose); } else if (recipient.getAddress().toString().toLowerCase().equals(userPublicKey)) { - titleTextView.setText(getResources().getString(R.string.note_to_self)); + titleTextView.setText(R.string.note_to_self); } else { boolean hasName = (recipient.getName() != null && !recipient.getName().isEmpty()); titleTextView.setText(hasName ? recipient.getName() : recipient.getAddress().toString()); @@ -2363,13 +2363,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity subtitleTextView.setVisibility(View.VISIBLE); if (recipient.isMuted()) { muteIndicatorImageView.setVisibility(View.VISIBLE); - subtitleTextView.setText("Muted until " + DateUtils.getFormattedDateTime(recipient.mutedUntil, "EEE, MMM d, yyyy HH:mm", Locale.getDefault())); + subtitleTextView.setText(getString(R.string.ConversationActivity_muted_until_date,DateUtils.getFormattedDateTime(recipient.mutedUntil, "EEE, MMM d, yyyy HH:mm", Locale.getDefault()))); } else if (recipient.isGroupRecipient() && recipient.getName() != null && !recipient.getName().equals("Session Updates") && !recipient.getName().equals("Loki News")) { OpenGroupV2 openGroup = DatabaseFactory.getLokiThreadDatabase(this).getOpenGroupChat(threadId); if (openGroup != null) { Integer userCount = DatabaseFactory.getLokiAPIDatabase(this).getUserCount(openGroup.getRoom(),openGroup.getServer()); if (userCount == null) { userCount = 0; } - subtitleTextView.setText(userCount + " members"); + subtitleTextView.setText(getString(R.string.ConversationActivity_member_count,userCount)); } else if (PublicKeyValidation.isValid(recipient.getAddress().toString())) { subtitleTextView.setText(recipient.getAddress().toString()); } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationBottomSheet.kt deleted file mode 100644 index dff4e5fa30..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationBottomSheet.kt +++ /dev/null @@ -1,54 +0,0 @@ -package org.thoughtcrime.securesms.loki.dialogs - -import android.app.AlertDialog -import android.app.Dialog -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.FrameLayout -import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.google.android.material.bottomsheet.BottomSheetDialog -import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import kotlinx.android.synthetic.main.fragment_key_pair_migration_bottom_sheet.* -import network.loki.messenger.R -import org.thoughtcrime.securesms.ApplicationContext - -class KeyPairMigrationBottomSheet : BottomSheetDialogFragment() { - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_key_pair_migration_bottom_sheet, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - upgradeNowButton.setOnClickListener { upgradeNow() } - upgradeLaterButton.setOnClickListener { upgradeLater() } - } - - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val dialog = super.onCreateDialog(savedInstanceState) - dialog.setOnShowListener { - val d = dialog as BottomSheetDialog - val bottomSheet = d.findViewById(com.google.android.material.R.id.design_bottom_sheet)!! - BottomSheetBehavior.from(bottomSheet).state = BottomSheetBehavior.STATE_EXPANDED - BottomSheetBehavior.from(bottomSheet).isHideable = false - } - isCancelable = false - return dialog - } - - private fun upgradeNow() { - val applicationContext = requireContext().applicationContext as ApplicationContext - applicationContext.clearAllData(true) - } - - private fun upgradeLater() { - val dialog = AlertDialog.Builder(requireContext()) - dialog.setMessage("You won't be able to send or receive messages until you upgrade.") - dialog.setPositiveButton(R.string.ok) { _, _ -> - dismiss() - } - dialog.create().show() - } -} \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationSuccessBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationSuccessBottomSheet.kt deleted file mode 100644 index 21ab2c5f34..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/dialogs/KeyPairMigrationSuccessBottomSheet.kt +++ /dev/null @@ -1,55 +0,0 @@ -package org.thoughtcrime.securesms.loki.dialogs - -import android.app.AlertDialog -import android.app.Dialog -import android.content.ClipData -import android.content.ClipboardManager -import android.content.Context -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.FrameLayout -import android.widget.Toast -import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.google.android.material.bottomsheet.BottomSheetDialog -import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import kotlinx.android.synthetic.main.fragment_key_pair_migration_success_bottom_sheet.* -import network.loki.messenger.R -import org.session.libsession.utilities.TextSecurePreferences - -class KeyPairMigrationSuccessBottomSheet : BottomSheetDialogFragment() { - - private val sessionID by lazy { - TextSecurePreferences.getLocalNumber(requireContext()) - } - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_key_pair_migration_success_bottom_sheet, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - sessionIDTextView.text = sessionID - copyButton.setOnClickListener { copySessionID() } - okButton.setOnClickListener { dismiss() } - } - - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - val dialog = super.onCreateDialog(savedInstanceState) - // Expand the bottom sheet by default - dialog.setOnShowListener { - val d = dialog as BottomSheetDialog - val bottomSheet = d.findViewById(com.google.android.material.R.id.design_bottom_sheet) - BottomSheetBehavior.from(bottomSheet!!).setState(BottomSheetBehavior.STATE_EXPANDED); - } - return dialog - } - - private fun copySessionID() { - val clipboard = requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - val clip = ClipData.newPlainText("Session ID", sessionID) - clipboard.setPrimaryClip(clip) - Toast.makeText(requireContext(), R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show() - } -} \ No newline at end of file diff --git a/app/src/main/res/layout-sw400dp/activity_landing.xml b/app/src/main/res/layout-sw400dp/activity_landing.xml index 52906283a7..dc36e5fa57 100644 --- a/app/src/main/res/layout-sw400dp/activity_landing.xml +++ b/app/src/main/res/layout-sw400dp/activity_landing.xml @@ -59,6 +59,6 @@ android:background="@color/transparent" android:textAllCaps="false" android:textSize="@dimen/medium_font_size" - android:text="Link a Device" /> + android:text="@string/activity_link_device_link_device" /> \ No newline at end of file diff --git a/app/src/main/res/layout-sw400dp/activity_pn_mode.xml b/app/src/main/res/layout-sw400dp/activity_pn_mode.xml index fb1fc1c6ca..71cfc81180 100644 --- a/app/src/main/res/layout-sw400dp/activity_pn_mode.xml +++ b/app/src/main/res/layout-sw400dp/activity_pn_mode.xml @@ -19,7 +19,7 @@ android:textSize="@dimen/very_large_font_size" android:textStyle="bold" android:textColor="@color/text" - android:text="Message Notifications" /> + android:text="@string/activity_pn_mode_message_notifications" /> + android:text="@string/activity_pn_mode_explanation" /> + android:text="@string/activity_pn_mode_fast_mode" /> + android:text="@string/activity_pn_mode_fast_mode_explanation" /> + android:text="@string/activity_pn_mode_slow_mode" /> + android:text="@string/activity_pn_mode_slow_mode_explanation" /> diff --git a/app/src/main/res/layout-sw400dp/activity_recovery_phrase_restore.xml b/app/src/main/res/layout-sw400dp/activity_recovery_phrase_restore.xml index 6f3535ede0..83bd3e1244 100644 --- a/app/src/main/res/layout-sw400dp/activity_recovery_phrase_restore.xml +++ b/app/src/main/res/layout-sw400dp/activity_recovery_phrase_restore.xml @@ -1,6 +1,7 @@ @@ -69,6 +70,7 @@ android:textColor="?android:textColorTertiary" android:textColorLink="?colorAccent" android:textSize="@dimen/very_small_font_size" - android:text="By using this service, you agree to our Terms of Service and Privacy Policy" /> + android:text="By using this service, you agree to our Terms of Service and Privacy Policy" + tools:ignore="HardcodedText" /> \ No newline at end of file diff --git a/app/src/main/res/layout-sw400dp/activity_register.xml b/app/src/main/res/layout-sw400dp/activity_register.xml index 8cc432c160..76e4e3e749 100644 --- a/app/src/main/res/layout-sw400dp/activity_register.xml +++ b/app/src/main/res/layout-sw400dp/activity_register.xml @@ -1,6 +1,7 @@ @@ -38,7 +39,7 @@ android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginTop="@dimen/medium_spacing" android:layout_marginRight="@dimen/very_large_spacing" - android:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> + tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> + android:text="By using this service, you agree to our Terms of Service and Privacy Policy" + tools:ignore="HardcodedText" /> \ No newline at end of file diff --git a/app/src/main/res/layout-sw400dp/activity_seed.xml b/app/src/main/res/layout-sw400dp/activity_seed.xml index 74f44a79d4..3592134df9 100644 --- a/app/src/main/res/layout-sw400dp/activity_seed.xml +++ b/app/src/main/res/layout-sw400dp/activity_seed.xml @@ -1,8 +1,8 @@ - @@ -47,7 +47,7 @@ android:gravity="center" android:textSize="16sp" android:textAlignment="center" - android:text="nautical novelty populate onion awkward bent etiquette plant submarine itches vipers september axis maximum populate" /> + tools:text="nautical novelty populate onion awkward bent etiquette plant submarine itches vipers september axis maximum populate" /> + android:text="@string/fragment_recovery_phrase_title" /> + android:text="@string/activity_restore_explanation" /> + android:text="@string/view_seed_reminder_title" /> + android:text="@string/view_seed_reminder_subtitle_1" /> @@ -64,7 +64,7 @@ android:layout_height="28dp" android:layout_marginLeft="4dp" android:textStyle="normal" - android:text="Continue" /> + android:text="@string/continue_2" /> diff --git a/app/src/main/res/layout/activity_backup_restore.xml b/app/src/main/res/layout/activity_backup_restore.xml index 365ff39cd1..af86967c77 100644 --- a/app/src/main/res/layout/activity_backup_restore.xml +++ b/app/src/main/res/layout/activity_backup_restore.xml @@ -99,7 +99,8 @@ android:text="By using this service, you agree to our Terms of Service and Privacy Policy" android:textColor="@color/text" android:textColorLink="@color/text" - android:textSize="@dimen/very_small_font_size" /> + android:textSize="@dimen/very_small_font_size" + tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 49b5d36053..a732ad3a59 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -42,7 +42,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="64dp" android:fontFamily="sans-serif-medium" - android:text="Session" + android:text="@string/app_name" android:textColor="@color/text" android:textSize="@dimen/very_large_font_size" /> diff --git a/app/src/main/res/layout/activity_landing.xml b/app/src/main/res/layout/activity_landing.xml index b2b4c3cde6..2858913c18 100644 --- a/app/src/main/res/layout/activity_landing.xml +++ b/app/src/main/res/layout/activity_landing.xml @@ -59,6 +59,6 @@ android:background="@color/transparent" android:textAllCaps="false" android:textSize="@dimen/medium_font_size" - android:text="Link a Device" /> + android:text="@string/activity_link_device_link_device" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_open_group_guidelines.xml b/app/src/main/res/layout/activity_open_group_guidelines.xml index 34d03a8f89..4105e48187 100644 --- a/app/src/main/res/layout/activity_open_group_guidelines.xml +++ b/app/src/main/res/layout/activity_open_group_guidelines.xml @@ -18,7 +18,7 @@ android:textSize="@dimen/large_font_size" android:textStyle="bold" android:textColor="@color/text" - android:text="Community Guidelines" /> + android:text="@string/ConversationActivity_open_group_guidelines" /> + android:text="@string/activity_pn_mode_message_notifications" /> + android:text="@string/activity_pn_mode_explanation" /> + android:text="@string/activity_pn_mode_fast_mode" /> + android:text="@string/activity_pn_mode_fast_mode_explanation" /> + android:text="@string/activity_pn_mode_slow_mode" /> + android:text="@string/activity_pn_mode_slow_mode_explanation" /> diff --git a/app/src/main/res/layout/activity_recovery_phrase_restore.xml b/app/src/main/res/layout/activity_recovery_phrase_restore.xml index 5fede38026..47cf545565 100644 --- a/app/src/main/res/layout/activity_recovery_phrase_restore.xml +++ b/app/src/main/res/layout/activity_recovery_phrase_restore.xml @@ -1,6 +1,7 @@ @@ -69,6 +70,7 @@ android:textColorLink="@color/text" android:textSize="@dimen/very_small_font_size" android:textColor="@color/text" - android:text="By using this service, you agree to our Terms of Service and Privacy Policy" /> + android:text="By using this service, you agree to our Terms of Service and Privacy Policy" + tools:ignore="HardcodedText" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml index 57a64e2fb3..0f0d560b86 100644 --- a/app/src/main/res/layout/activity_register.xml +++ b/app/src/main/res/layout/activity_register.xml @@ -1,6 +1,7 @@ @@ -35,11 +36,11 @@ android:id="@+id/publicKeyTextView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:textSize="18dp" + android:textSize="18sp" android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginTop="10dp" android:layout_marginRight="@dimen/very_large_spacing" - android:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> + tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> + android:text="By using this service, you agree to our Terms of Service and Privacy Policy" + tools:ignore="HardcodedText" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_seed.xml b/app/src/main/res/layout/activity_seed.xml index 8aacbf3df3..60a61b7860 100644 --- a/app/src/main/res/layout/activity_seed.xml +++ b/app/src/main/res/layout/activity_seed.xml @@ -1,8 +1,8 @@ - @@ -47,7 +47,7 @@ android:gravity="center" android:textSize="14sp" android:textAlignment="center" - android:text="nautical novelty populate onion awkward bent etiquette plant submarine itches vipers september axis maximum populate" /> + tools:text="nautical novelty populate onion awkward bent etiquette plant submarine itches vipers september axis maximum populate" /> + tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> + android:text="@string/activity_settings_help_translate_session" /> diff --git a/app/src/main/res/layout/conversation_activity.xml b/app/src/main/res/layout/conversation_activity.xml index ba9f7f27e1..9fc8eaead6 100644 --- a/app/src/main/res/layout/conversation_activity.xml +++ b/app/src/main/res/layout/conversation_activity.xml @@ -57,7 +57,7 @@ android:layout_height="wrap_content" android:maxLines="1" android:ellipsize="end" - android:text="Conversation" + tools:text="Conversation" android:textColor="@color/text" android:textSize="@dimen/large_font_size" android:fontFamily="sans-serif-medium" /> @@ -83,7 +83,7 @@ android:layout_height="wrap_content" android:maxLines="1" android:ellipsize="end" - android:text="26 members" + tools:text="26 members" android:textColor="@color/text" android:textSize="@dimen/small_font_size" /> @@ -217,7 +217,7 @@ android:layout_height="wrap_content" android:background="?android:attr/windowBackground" android:paddingStart="5dip" - android:text="160/160 (1)" + tools:text="160/160 (1)" android:visibility="gone" /> - diff --git a/app/src/main/res/layout/fragment_enter_public_key.xml b/app/src/main/res/layout/fragment_enter_public_key.xml index ffd53dd34e..1caef0c4bc 100644 --- a/app/src/main/res/layout/fragment_enter_public_key.xml +++ b/app/src/main/res/layout/fragment_enter_public_key.xml @@ -1,6 +1,6 @@ - + tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> - - - - - - - - - - -