mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-04 11:54:10 +01:00
Added TTS
This commit is contained in:
@@ -31,6 +31,7 @@ import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.provider.ContactsContract;
|
||||
import android.speech.tts.TextToSpeech;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.DateFormat;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -133,6 +134,8 @@ public class FragmentRule extends FragmentBase {
|
||||
private Spinner spAnswer;
|
||||
private CheckBox cbCc;
|
||||
|
||||
private Button btnTts;
|
||||
|
||||
private TextView tvAutomation;
|
||||
|
||||
private BottomNavigationView bottom_navigation;
|
||||
@@ -146,6 +149,7 @@ public class FragmentRule extends FragmentBase {
|
||||
private Group grpMove;
|
||||
private Group grpMoveProp;
|
||||
private Group grpAnswer;
|
||||
private Group grpTts;
|
||||
private Group grpAutomation;
|
||||
|
||||
private ArrayAdapter<String> adapterDay;
|
||||
@@ -168,6 +172,7 @@ 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;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
@@ -247,6 +252,7 @@ public class FragmentRule extends FragmentBase {
|
||||
spAnswer = view.findViewById(R.id.spAnswer);
|
||||
cbCc = view.findViewById(R.id.cbCc);
|
||||
|
||||
btnTts = view.findViewById(R.id.btnTts);
|
||||
tvAutomation = view.findViewById(R.id.tvAutomation);
|
||||
|
||||
bottom_navigation = view.findViewById(R.id.bottom_navigation);
|
||||
@@ -261,6 +267,7 @@ public class FragmentRule extends FragmentBase {
|
||||
grpMove = view.findViewById(R.id.grpMove);
|
||||
grpMoveProp = view.findViewById(R.id.grpMoveProp);
|
||||
grpAnswer = view.findViewById(R.id.grpAnswer);
|
||||
grpTts = view.findViewById(R.id.grpTts);
|
||||
grpAutomation = view.findViewById(R.id.grpAutomation);
|
||||
|
||||
ibSender.setOnClickListener(new View.OnClickListener() {
|
||||
@@ -391,6 +398,7 @@ public class FragmentRule extends FragmentBase {
|
||||
actions.add(new Action(EntityRule.TYPE_COPY, getString(R.string.title_rule_copy)));
|
||||
}
|
||||
actions.add(new Action(EntityRule.TYPE_ANSWER, getString(R.string.title_rule_answer)));
|
||||
actions.add(new Action(EntityRule.TYPE_TTS, getString(R.string.title_rule_tts)));
|
||||
actions.add(new Action(EntityRule.TYPE_AUTOMATION, getString(R.string.title_rule_automation)));
|
||||
adapterAction.addAll(actions);
|
||||
|
||||
@@ -454,6 +462,15 @@ public class FragmentRule extends FragmentBase {
|
||||
spIdent.setOnItemSelectedListener(onItemSelectedListener);
|
||||
spAnswer.setOnItemSelectedListener(onItemSelectedListener);
|
||||
|
||||
btnTts.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);
|
||||
}
|
||||
});
|
||||
|
||||
tvAutomation.setText(getString(R.string.title_rule_automation_hint,
|
||||
EntityRule.ACTION_AUTOMATION,
|
||||
TextUtils.join(",", new String[]{
|
||||
@@ -491,6 +508,7 @@ public class FragmentRule extends FragmentBase {
|
||||
grpMove.setVisibility(View.GONE);
|
||||
grpMoveProp.setVisibility(View.GONE);
|
||||
grpAnswer.setVisibility(View.GONE);
|
||||
grpTts.setVisibility(View.GONE);
|
||||
grpAutomation.setVisibility(View.GONE);
|
||||
pbWait.setVisibility(View.VISIBLE);
|
||||
|
||||
@@ -634,6 +652,15 @@ public class FragmentRule extends FragmentBase {
|
||||
if (resultCode == RESULT_OK)
|
||||
onScheduleEnd(data.getBundleExtra("args"));
|
||||
break;
|
||||
case REQUEST_TTS:
|
||||
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)
|
||||
ToastEx.makeText(getContext(), android.R.string.ok, Toast.LENGTH_LONG).show();
|
||||
else {
|
||||
Intent tts = new Intent();
|
||||
tts.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
|
||||
startActivity(tts);
|
||||
}
|
||||
break;
|
||||
}
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
@@ -881,6 +908,7 @@ public class FragmentRule extends FragmentBase {
|
||||
grpMove.setVisibility(type == EntityRule.TYPE_MOVE || type == EntityRule.TYPE_COPY ? View.VISIBLE : View.GONE);
|
||||
grpMoveProp.setVisibility(type == EntityRule.TYPE_MOVE ? View.VISIBLE : View.GONE);
|
||||
grpAnswer.setVisibility(type == EntityRule.TYPE_ANSWER ? View.VISIBLE : View.GONE);
|
||||
grpTts.setVisibility(type == EntityRule.TYPE_TTS ? View.VISIBLE : View.GONE);
|
||||
grpAutomation.setVisibility(type == EntityRule.TYPE_AUTOMATION ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user