Added ML kit translate (debug only)

This commit is contained in:
M66B
2020-06-27 13:26:19 +02:00
parent 1a2fb489ce
commit 1076cf9498
19 changed files with 187 additions and 19 deletions

View File

@@ -278,9 +278,10 @@ public class FragmentCompose extends FragmentBase {
private static final int REQUEST_COLOR = 10;
private static final int REQUEST_CONTACT_GROUP = 11;
private static final int REQUEST_ANSWER = 12;
private static final int REQUEST_LINK = 13;
private static final int REQUEST_DISCARD = 14;
private static final int REQUEST_SEND = 15;
private static final int REQUEST_TRANSLATE = 13;
private static final int REQUEST_LINK = 14;
private static final int REQUEST_DISCARD = 15;
private static final int REQUEST_SEND = 16;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -1213,8 +1214,11 @@ public class FragmentCompose extends FragmentBase {
menu.findItem(R.id.menu_contact_group).setEnabled(
state == State.LOADED && hasPermission(Manifest.permission.READ_CONTACTS));
menu.findItem(R.id.menu_answer).setEnabled(state == State.LOADED);
menu.findItem(R.id.menu_translate).setEnabled(state == State.LOADED);
menu.findItem(R.id.menu_clear).setEnabled(state == State.LOADED);
menu.findItem(R.id.menu_translate).setVisible(BuildConfig.DEBUG);
int colorEncrypt = Helper.resolveColor(getContext(), R.attr.colorEncrypt);
ImageButton ib = (ImageButton) menu.findItem(R.id.menu_encrypt).getActionView();
ib.setEnabled(state == State.LOADED);
@@ -1275,6 +1279,9 @@ public class FragmentCompose extends FragmentBase {
case R.id.menu_answer:
onMenuAnswer();
return true;
case R.id.menu_translate:
onMenuTranslate();
return true;
case R.id.menu_clear:
StyleHelper.apply(R.id.menu_clear, etBody);
return true;
@@ -1444,6 +1451,20 @@ public class FragmentCompose extends FragmentBase {
fragment.show(getParentFragmentManager(), "compose:answer");
}
private void onMenuTranslate() {
Bundle args = new Bundle();
CharSequence seq = (etBody.hasSelection()
? etBody.getText().subSequence(etBody.getSelectionStart(), etBody.getSelectionEnd())
: etBody.getText());
args.putString("text", seq.toString());
FragmentDialogTranslate fragment = new FragmentDialogTranslate();
fragment.setArguments(args);
fragment.setTargetFragment(this, REQUEST_TRANSLATE);
fragment.show(getParentFragmentManager(), "compose:answer");
}
private boolean onActionStyle(int action) {
Log.i("Style action=" + action);
@@ -1752,6 +1773,10 @@ public class FragmentCompose extends FragmentBase {
if (resultCode == RESULT_OK && data != null)
onAnswerSelected(data.getBundleExtra("args"));
break;
case REQUEST_TRANSLATE:
if (resultCode == RESULT_OK && data != null)
onTranslated(data.getBundleExtra("args"));
break;
case REQUEST_COLOR:
if (resultCode == RESULT_OK && data != null)
onColorSelected(data.getBundleExtra("args"));
@@ -2732,6 +2757,15 @@ public class FragmentCompose extends FragmentBase {
etBody.getText().insert(etBody.getSelectionStart(), spanned);
}
private void onTranslated(Bundle args) {
String translated = "\n" + args.getString("translated");
if (etBody.hasSelection())
etBody.getEditableText().insert(etBody.getSelectionEnd(), translated);
else
etBody.getEditableText().append(translated);
}
private void onColorSelected(Bundle args) {
int color = args.getInt("color");
int start = args.getInt("start");