diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index b1083c3bc8..72fea8e93e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -134,7 +134,8 @@ public class FragmentRule extends FragmentBase { private Spinner spAnswer; private CheckBox cbCc; - private Button btnTts; + private Button btnTtsSetup; + private Button btnTtsData; private TextView tvAutomation; @@ -172,7 +173,8 @@ public class FragmentRule extends FragmentBase { private final static int REQUEST_DELETE = 4; private final static int REQUEST_SCHEDULE_START = 5; private final static int REQUEST_SCHEDULE_END = 6; - private final static int REQUEST_TTS = 7; + private final static int REQUEST_TTS_CHECK = 7; + private final static int REQUEST_TTS_DATA = 8; @Override public void onCreate(Bundle savedInstanceState) { @@ -252,7 +254,8 @@ public class FragmentRule extends FragmentBase { spAnswer = view.findViewById(R.id.spAnswer); cbCc = view.findViewById(R.id.cbCc); - btnTts = view.findViewById(R.id.btnTts); + btnTtsSetup = view.findViewById(R.id.btnTtsSetup); + btnTtsData = view.findViewById(R.id.btnTtsData); tvAutomation = view.findViewById(R.id.tvAutomation); bottom_navigation = view.findViewById(R.id.bottom_navigation); @@ -462,12 +465,21 @@ public class FragmentRule extends FragmentBase { spIdent.setOnItemSelectedListener(onItemSelectedListener); spAnswer.setOnItemSelectedListener(onItemSelectedListener); - btnTts.setOnClickListener(new View.OnClickListener() { + btnTtsSetup.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Intent tts = new Intent(); - tts.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); - startActivityForResult(tts, REQUEST_TTS); + Intent intent = new Intent(); + intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); + startActivityForResult(intent, REQUEST_TTS_CHECK); + } + }); + + btnTtsData.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(); + intent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); + startActivityForResult(intent, REQUEST_TTS_DATA); } }); @@ -652,15 +664,17 @@ public class FragmentRule extends FragmentBase { if (resultCode == RESULT_OK) onScheduleEnd(data.getBundleExtra("args")); break; - case REQUEST_TTS: + case REQUEST_TTS_CHECK: if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) - ToastEx.makeText(getContext(), android.R.string.ok, Toast.LENGTH_LONG).show(); + ToastEx.makeText(getContext(), R.string.title_rule_tts_ok, Toast.LENGTH_LONG).show(); else { Intent tts = new Intent(); tts.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); startActivity(tts); } break; + case REQUEST_TTS_DATA: + break; } } catch (Throwable ex) { Log.e(ex); diff --git a/app/src/main/res/layout/fragment_rule.xml b/app/src/main/res/layout/fragment_rule.xml index 6774c85c56..bc8f85101a 100644 --- a/app/src/main/res/layout/fragment_rule.xml +++ b/app/src/main/res/layout/fragment_rule.xml @@ -690,7 +690,7 @@ app:layout_constraintTop_toBottomOf="@id/cbCc" />