From d336f77dd210c58d57a0037ca01de1f5a6b7662e Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 7 May 2025 08:42:08 +0200 Subject: [PATCH] Removed TTS from Play Store release Google doesn't allow this in the Play Store and based on past experiences trying to fight this is a waste of time --- app/src/main/AndroidManifest.xml | 6 ------ .../main/java/eu/faircode/email/AdapterMessage.java | 2 +- app/src/main/java/eu/faircode/email/EntityRule.java | 3 +++ .../main/java/eu/faircode/email/FragmentAccount.java | 10 ++++++---- .../java/eu/faircode/email/FragmentDialogButtons.java | 1 + .../main/java/eu/faircode/email/FragmentMessages.java | 7 +++++++ .../faircode/email/FragmentOptionsNotifications.java | 1 + app/src/main/java/eu/faircode/email/FragmentPop.java | 10 ++++++---- app/src/main/java/eu/faircode/email/FragmentRule.java | 3 ++- .../java/eu/faircode/email/NotificationHelper.java | 2 +- app/src/play/AndroidManifest.xml | 6 ------ 11 files changed, 28 insertions(+), 23 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 70154d9973..b315d5f286 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,7 +14,6 @@ - @@ -633,11 +632,6 @@ android:name=".ServiceUI" android:exported="false" /> - - 0 || tos > 0) ? View.VISIBLE : View.GONE); ibTranslate.setVisibility(tools && !outbox && button_translate && DeepL.isAvailable(context) && message.content ? View.VISIBLE : View.GONE); - ibTts.setVisibility(tools && !outbox && button_tts && message.content ? View.VISIBLE : View.GONE); + ibTts.setVisibility(tools && !outbox && button_tts && message.content && !Helper.isPlayStoreInstall() ? View.VISIBLE : View.GONE); ibSummarize.setVisibility(tools && !outbox && button_summarize && AI.isAvailable(context) && message.content ? View.VISIBLE : View.GONE); ibFullScreen.setVisibility(tools && full && button_full_screen && message.content ? View.VISIBLE : View.GONE); ibForceLight.setVisibility(tools && (full || experiments) && dark && button_force_light && message.content ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 75628bcbc4..f25726b632 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -1318,6 +1318,9 @@ public class EntityRule { } private static void speak(Context context, EntityRule rule, EntityMessage message) throws IOException { + if (Helper.isPlayStoreInstall()) + throw new IllegalArgumentException("TTS is available in the GitHub version only because Google doesn't allow it in the Play Store :-("); + Log.i("Speaking name=" + rule.name); if (message.ui_seen) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index 2b9e78d044..922ecf5d74 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -2253,10 +2253,12 @@ public class FragmentAccount extends FragmentBase { importance.name = context.getString(R.string.title_set_importance); folders.add(importance); - EntityFolder tts = new EntityFolder(); - tts.id = EntityMessage.SWIPE_ACTION_TTS; - tts.name = context.getString(R.string.title_rule_tts); - folders.add(tts); + if (!Helper.isPlayStoreInstall()) { + EntityFolder tts = new EntityFolder(); + tts.id = EntityMessage.SWIPE_ACTION_TTS; + tts.name = context.getString(R.string.title_rule_tts); + folders.add(tts); + } if (AI.isAvailable(context)) { EntityFolder summarize = new EntityFolder(); diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogButtons.java b/app/src/main/java/eu/faircode/email/FragmentDialogButtons.java index fc5b4165dc..279bfada73 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogButtons.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogButtons.java @@ -90,6 +90,7 @@ public class FragmentDialogButtons extends FragmentDialogBase { cbSearch.setChecked(prefs.getBoolean("button_search", false)); cbSearchText.setChecked(prefs.getBoolean("button_search_text", false)); cbTranslate.setChecked(prefs.getBoolean("button_translate", true)); + cbTts.setVisibility(Helper.isPlayStoreInstall() ? View.GONE : View.VISIBLE); cbTts.setChecked(prefs.getBoolean("button_tts", false)); cbSummarize.setChecked(prefs.getBoolean("button_summarize", false)); cbFullScreen.setChecked(prefs.getBoolean("button_full_screen", false)); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 11103f8ff4..74ea66434f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -3064,6 +3064,13 @@ public class FragmentMessages extends FragmentBase swipes.swipe_right = null; } + if (Helper.isPlayStoreInstall()) { + if (EntityMessage.SWIPE_ACTION_TTS.equals(swipes.swipe_left)) + swipes.swipe_left = null; + if (EntityMessage.SWIPE_ACTION_TTS.equals(swipes.swipe_right)) + swipes.swipe_right = null; + } + if (message.accountProtocol != EntityAccount.TYPE_IMAP) return makeMovementFlags(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index 6e44d5cd2e..fc121210d1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -520,6 +520,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared } }); + cbNotifyActionTts.setVisibility(Helper.isPlayStoreInstall() ? View.GONE : View.VISIBLE); cbNotifyActionTts.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean checked) { diff --git a/app/src/main/java/eu/faircode/email/FragmentPop.java b/app/src/main/java/eu/faircode/email/FragmentPop.java index ba92dc3196..f2c5976fa4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentPop.java +++ b/app/src/main/java/eu/faircode/email/FragmentPop.java @@ -1223,10 +1223,12 @@ public class FragmentPop extends FragmentBase { importance.name = getString(R.string.title_set_importance); folders.add(importance); - EntityFolder tts = new EntityFolder(); - tts.id = EntityMessage.SWIPE_ACTION_TTS; - tts.name = context.getString(R.string.title_rule_tts); - folders.add(tts); + if (!Helper.isPlayStoreInstall()) { + EntityFolder tts = new EntityFolder(); + tts.id = EntityMessage.SWIPE_ACTION_TTS; + tts.name = context.getString(R.string.title_rule_tts); + folders.add(tts); + } if (AI.isAvailable(context)) { EntityFolder summarize = new EntityFolder(); diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index d1d1325f00..9fc536fdb0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -720,7 +720,8 @@ public class FragmentRule extends FragmentBase { actions.add(new Action(EntityRule.TYPE_ANSWER, getString(R.string.title_rule_answer), R.drawable.twotone_reply_24)); if (AI.isAvailable(getContext())) actions.add(new Action(EntityRule.TYPE_SUMMARIZE, getString(R.string.title_rule_summarize), R.drawable.twotone_smart_toy_24)); - actions.add(new Action(EntityRule.TYPE_TTS, getString(R.string.title_rule_tts), R.drawable.twotone_record_voice_over_24)); + if (!Helper.isPlayStoreInstall()) + actions.add(new Action(EntityRule.TYPE_TTS, getString(R.string.title_rule_tts), R.drawable.twotone_record_voice_over_24)); actions.add(new Action(EntityRule.TYPE_SOUND, getString(R.string.title_rule_sound), R.drawable.twotone_play_arrow_24)); actions.add(new Action(EntityRule.TYPE_AUTOMATION, getString(R.string.title_rule_automation), R.drawable.twotone_auto_awesome_24)); actions.add(new Action(EntityRule.TYPE_URL, getString(R.string.title_rule_url), R.drawable.twotone_insert_link_45_24)); diff --git a/app/src/main/java/eu/faircode/email/NotificationHelper.java b/app/src/main/java/eu/faircode/email/NotificationHelper.java index fb58a1c3fb..e5767bc8cf 100644 --- a/app/src/main/java/eu/faircode/email/NotificationHelper.java +++ b/app/src/main/java/eu/faircode/email/NotificationHelper.java @@ -1336,7 +1336,7 @@ class NotificationHelper { wactions.add(actionSnooze.build()); } - if (message.content && notify_tts) { + if (message.content && notify_tts && !Helper.isPlayStoreInstall()) { Intent tts = new Intent(context, ServiceTTS.class) .setAction("tts:" + message.id) .putExtra(ServiceTTS.EXTRA_FLUSH, true) diff --git a/app/src/play/AndroidManifest.xml b/app/src/play/AndroidManifest.xml index 286cbf23a6..383440b5c1 100644 --- a/app/src/play/AndroidManifest.xml +++ b/app/src/play/AndroidManifest.xml @@ -14,7 +14,6 @@ - @@ -635,11 +634,6 @@ android:name=".ServiceUI" android:exported="false" /> - -