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" />
-
-