From 16a5dc621508fb7b5d637d180d972c62cfa1ffc3 Mon Sep 17 00:00:00 2001 From: charlag Date: Sat, 9 Mar 2024 12:13:45 +0100 Subject: [PATCH] Fix issues with translations menu button - it is not inflated for user's own posts but we didn't check for that - some servers return language codes in uppercase and it wasn't matching Java's lowercase code when it should have --- .../search/fragments/SearchStatusesFragment.kt | 11 +++++++---- .../com/keylesspalace/tusky/fragment/SFragment.kt | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt index 01023a971f..73b628a491 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/search/fragments/SearchStatusesFragment.kt @@ -328,10 +328,13 @@ class SearchStatusesFragment : SearchFragment(), Status ) } - val translateItem = popup.menu.findItem(R.id.status_translate) - translateItem.isVisible = - status.language != Locale.getDefault().language && viewModel.supportsTranslation() - translateItem.setTitle(if (statusViewData.translation != null) R.string.action_show_original else R.string.action_translate) + // translation not there for your own posts + popup.menu.findItem(R.id.status_translate)?.let { translateItem -> + translateItem.isVisible = + !status.language.equals(Locale.getDefault().language, ignoreCase = true) && + viewModel.supportsTranslation() + translateItem.setTitle(if (statusViewData.translation != null) R.string.action_show_original else R.string.action_translate) + } popup.setOnMenuItemClickListener { item -> when (item.itemId) { diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt index 02693177c6..2daeec40f6 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/SFragment.kt @@ -220,10 +220,13 @@ abstract class SFragment : Fragment(), Injectable { ) } - val translateItem = menu.findItem(R.id.status_translate) - translateItem.isVisible = - onMoreTranslate != null && status.language != Locale.getDefault().language && instanceInfoRepository.cachedInstanceInfoOrFallback.translationEnabled == true - translateItem.setTitle(if (translation != null) R.string.action_show_original else R.string.action_translate) + // translation not there for your own posts + menu.findItem(R.id.status_translate)?.let { translateItem -> + translateItem.isVisible = onMoreTranslate != null && + !status.language.equals(Locale.getDefault().language, ignoreCase = true) && + instanceInfoRepository.cachedInstanceInfoOrFallback.translationEnabled == true + translateItem.setTitle(if (translation != null) R.string.action_show_original else R.string.action_translate) + } popup.setOnMenuItemClickListener { item: MenuItem -> when (item.itemId) {