mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-26 02:45:31 +01:00
Debug: add/delete LT word to dictionary
This commit is contained in:
@@ -49,6 +49,7 @@ import android.view.inputmethod.InputConnectionWrapper;
|
||||
import android.widget.EditText;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.view.inputmethod.EditorInfoCompat;
|
||||
import androidx.core.view.inputmethod.InputConnectionCompat;
|
||||
import androidx.core.view.inputmethod.InputContentInfoCompat;
|
||||
@@ -112,8 +113,14 @@ public class EditTextCompose extends FixedEditText {
|
||||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||
try {
|
||||
int order = 1000;
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_insert_brackets, order++, context.getString(R.string.title_insert_brackets));
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_insert_quotes, order++, context.getString(R.string.title_insert_quotes));
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_insert_brackets,
|
||||
order++, context.getString(R.string.title_insert_brackets));
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_insert_quotes,
|
||||
order++, context.getString(R.string.title_insert_quotes));
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_dictionary_add,
|
||||
order++, context.getString(R.string.title_dictionary_add));
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_dictionary_delete,
|
||||
order++, context.getString(R.string.title_dictionary_delete));
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
}
|
||||
@@ -125,8 +132,18 @@ public class EditTextCompose extends FixedEditText {
|
||||
int start = getSelectionStart();
|
||||
int end = getSelectionEnd();
|
||||
boolean selection = (start >= 0 && start < end);
|
||||
Context context = getContext();
|
||||
Editable edit = getText();
|
||||
boolean dictionary = (BuildConfig.DEBUG &&
|
||||
context instanceof AppCompatActivity &&
|
||||
LanguageTool.isPremium(context) &&
|
||||
selection &&
|
||||
edit != null &&
|
||||
edit.subSequence(start, end).toString().indexOf(' ') < 0);
|
||||
menu.findItem(R.string.title_insert_brackets).setVisible(selection);
|
||||
menu.findItem(R.string.title_insert_quotes).setVisible(selection);
|
||||
menu.findItem(R.string.title_dictionary_add).setVisible(dictionary);
|
||||
menu.findItem(R.string.title_dictionary_delete).setVisible(dictionary);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -138,6 +155,10 @@ public class EditTextCompose extends FixedEditText {
|
||||
return surround("(", ")");
|
||||
else if (id == R.string.title_insert_quotes)
|
||||
return surround("\"", "\"");
|
||||
else if (id == R.string.title_dictionary_add)
|
||||
return modifyDictionary(true);
|
||||
else if (id == R.string.title_dictionary_delete)
|
||||
return modifyDictionary(false);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -167,6 +188,50 @@ public class EditTextCompose extends FixedEditText {
|
||||
}
|
||||
return selection;
|
||||
}
|
||||
|
||||
private boolean modifyDictionary(boolean add) {
|
||||
int start = getSelectionStart();
|
||||
int end = getSelectionEnd();
|
||||
if (start < 0 || start >= end)
|
||||
return false;
|
||||
|
||||
final Context context = getContext();
|
||||
if (!(context instanceof AppCompatActivity))
|
||||
return false;
|
||||
AppCompatActivity activity = (AppCompatActivity) getContext();
|
||||
|
||||
Editable edit = getText();
|
||||
if (edit == null)
|
||||
return false;
|
||||
|
||||
String word = edit.subSequence(start, end).toString();
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putString("word", word);
|
||||
args.putBoolean("add", add);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
String word = args.getString("word");
|
||||
boolean add = args.getBoolean("add");
|
||||
LanguageTool.modifyDictionary(context, word, null, add);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onExecuted(Bundle args, Void data) {
|
||||
setSelection(end);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
ToastEx.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}.execute(activity, args, "dictionary:modify");
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
setCustomInsertionActionModeCallback(new ActionMode.Callback() {
|
||||
|
||||
Reference in New Issue
Block a user