mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-01 06:38:29 +02:00
Added text alignment
This commit is contained in:
@@ -6,9 +6,12 @@ import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.text.Layout;
|
||||
import android.text.SpannableString;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.AlignmentSpan;
|
||||
import android.text.style.BulletSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.ImageSpan;
|
||||
@@ -34,6 +37,7 @@ import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class StyleHelper {
|
||||
static boolean apply(int action, View anchor, EditText etBody, Object... args) {
|
||||
@@ -115,6 +119,8 @@ public class StyleHelper {
|
||||
return setSize(item);
|
||||
case R.id.group_style_color:
|
||||
return setColor(item);
|
||||
case R.id.group_style_align:
|
||||
return setAlignment(item);
|
||||
case R.id.group_style_list:
|
||||
return setList(item);
|
||||
case R.id.group_style_font:
|
||||
@@ -201,6 +207,34 @@ public class StyleHelper {
|
||||
etBody.setSelection(s, e);
|
||||
}
|
||||
|
||||
private boolean setAlignment(MenuItem item) {
|
||||
AlignmentSpan[] spans = t.getSpans(s, e, AlignmentSpan.class);
|
||||
for (AlignmentSpan span : spans)
|
||||
t.removeSpan(span);
|
||||
|
||||
Layout.Alignment alignment = null;
|
||||
boolean ltr = (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_LTR);
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_style_align_start:
|
||||
alignment = (ltr ? Layout.Alignment.ALIGN_NORMAL : Layout.Alignment.ALIGN_OPPOSITE);
|
||||
break;
|
||||
case R.id.menu_style_align_center:
|
||||
alignment = Layout.Alignment.ALIGN_CENTER;
|
||||
break;
|
||||
case R.id.menu_style_align_end:
|
||||
alignment = (ltr ? Layout.Alignment.ALIGN_OPPOSITE : Layout.Alignment.ALIGN_NORMAL);
|
||||
break;
|
||||
}
|
||||
|
||||
if (alignment != null)
|
||||
t.setSpan(new AlignmentSpan.Standard(alignment), s, e, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
etBody.setText(t);
|
||||
etBody.setSelection(s, e);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean setList(MenuItem item) {
|
||||
Context context = etBody.getContext();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user