Enable send chips inline

pull/194/merge
M66B 4 years ago
parent 07f30a9288
commit 5f5912f23f

@ -72,9 +72,6 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
Helper.setKeyboardIncognitoMode(this, context); Helper.setKeyboardIncognitoMode(this, context);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean send_chips = prefs.getBoolean("send_chips", false);
if (send_chips) {
boolean dark = Helper.isDarkTheme(context); boolean dark = Helper.isDarkTheme(context);
ContextThemeWrapper ctx = new ContextThemeWrapper(context, ContextThemeWrapper ctx = new ContextThemeWrapper(context,
dark ? R.style.ChipDark : R.style.ChipLight); dark ? R.style.ChipDark : R.style.ChipLight);
@ -85,11 +82,13 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
public void run() { public void run() {
try { try {
Editable edit = getText(); Editable edit = getText();
boolean send_chips = prefs.getBoolean("send_chips", false);
boolean added = false; boolean added = false;
List<ClipImageSpan> spans = new ArrayList<>(); List<ClipImageSpan> spans = new ArrayList<>();
spans.addAll(Arrays.asList(edit.getSpans(0, edit.length(), ClipImageSpan.class))); spans.addAll(Arrays.asList(edit.getSpans(0, edit.length(), ClipImageSpan.class)));
if (send_chips) {
boolean quote = false; boolean quote = false;
int start = 0; int start = 0;
for (int i = 0; i < edit.length(); i++) { for (int i = 0; i < edit.length(); i++) {
@ -153,6 +152,7 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
start = i + 1; start = i + 1;
} }
} }
}
for (ClipImageSpan span : spans) for (ClipImageSpan span : spans)
edit.removeSpan(span); edit.removeSpan(span);
@ -185,7 +185,6 @@ public class EditTextMultiAutoComplete extends AppCompatMultiAutoCompleteTextVie
} }
}); });
} }
}
private static class ClipImageSpan extends ImageSpan { private static class ClipImageSpan extends ImageSpan {
public ClipImageSpan(@NonNull Drawable drawable) { public ClipImageSpan(@NonNull Drawable drawable) {

@ -1609,10 +1609,12 @@ public class FragmentCompose extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean save_drafts = prefs.getBoolean("save_drafts", true); boolean save_drafts = prefs.getBoolean("save_drafts", true);
boolean send_chips = prefs.getBoolean("send_chips", false);
boolean send_dialog = prefs.getBoolean("send_dialog", true); boolean send_dialog = prefs.getBoolean("send_dialog", true);
boolean image_dialog = prefs.getBoolean("image_dialog", true); boolean image_dialog = prefs.getBoolean("image_dialog", true);
menu.findItem(R.id.menu_save_drafts).setChecked(save_drafts); menu.findItem(R.id.menu_save_drafts).setChecked(save_drafts);
menu.findItem(R.id.menu_send_chips).setChecked(send_chips);
menu.findItem(R.id.menu_send_dialog).setChecked(send_dialog); menu.findItem(R.id.menu_send_dialog).setChecked(send_dialog);
menu.findItem(R.id.menu_image_dialog).setChecked(image_dialog); menu.findItem(R.id.menu_image_dialog).setChecked(image_dialog);
menu.findItem(R.id.menu_media).setChecked(media); menu.findItem(R.id.menu_media).setChecked(media);
@ -1667,6 +1669,9 @@ public class FragmentCompose extends FragmentBase {
} else if (itemId == R.id.menu_save_drafts) { } else if (itemId == R.id.menu_save_drafts) {
onMenuSaveDrafts(); onMenuSaveDrafts();
return true; return true;
} else if (itemId == R.id.menu_send_chips) {
onMenuSendChips();
return true;
} else if (itemId == R.id.menu_send_dialog) { } else if (itemId == R.id.menu_send_dialog) {
onMenuSendDialog(); onMenuSendDialog();
return true; return true;
@ -1799,6 +1804,16 @@ public class FragmentCompose extends FragmentBase {
prefs.edit().putBoolean("save_drafts", !save_drafts).apply(); prefs.edit().putBoolean("save_drafts", !save_drafts).apply();
} }
private void onMenuSendChips() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean send_chips = prefs.getBoolean("send_chips", true);
prefs.edit().putBoolean("send_chips", !send_chips).apply();
etTo.setText(etTo.getText());
etCc.setText(etCc.getText());
etBcc.setText(etBcc.getText());
}
private void onMenuSendDialog() { private void onMenuSendDialog() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean send_dialog = prefs.getBoolean("send_dialog", true); boolean send_dialog = prefs.getBoolean("send_dialog", true);

@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M12,21.95h5v-2h-5c-4.34,0 -8,-3.66 -8,-8s3.66,-8 8,-8 8,3.66 8,8v1.43c0,0.79 -0.71,1.57 -1.5,1.57s-1.5,-0.78 -1.5,-1.57v-1.43c0,-2.76 -2.24,-5 -5,-5s-5,2.24 -5,5 2.24,5 5,5c1.38,0 2.64,-0.56 3.54,-1.47 0.65,0.89 1.77,1.47 2.96,1.47 1.97,0 3.5,-1.6 3.5,-3.57v-1.43c0,-5.52 -4.48,-10 -10,-10s-10,4.48 -10,10 4.48,10 10,10zM12,14.95c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3z"
android:fillAlpha="0.9"/>
</vector>

@ -28,6 +28,13 @@
android:title="@string/title_save_drafts" android:title="@string/title_save_drafts"
app:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/menu_send_chips"
android:checkable="true"
android:icon="@drawable/twotone_alternate_email_24"
android:title="@string/title_advanced_send_chips"
app:showAsAction="never" />
<item <item
android:id="@+id/menu_send_dialog" android:id="@+id/menu_send_dialog"
android:checkable="true" android:checkable="true"

Loading…
Cancel
Save