|
|
@ -89,6 +89,7 @@ import android.view.MenuInflater;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.MotionEvent;
|
|
|
|
import android.view.MotionEvent;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.View;
|
|
|
|
|
|
|
|
import android.view.ViewConfiguration;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.view.inputmethod.EditorInfo;
|
|
|
|
import android.view.inputmethod.EditorInfo;
|
|
|
|
import android.webkit.MimeTypeMap;
|
|
|
|
import android.webkit.MimeTypeMap;
|
|
|
@ -459,7 +460,6 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
final boolean suggest_account = prefs.getBoolean("suggest_account", false);
|
|
|
|
final boolean suggest_account = prefs.getBoolean("suggest_account", false);
|
|
|
|
final boolean cc_bcc = prefs.getBoolean("cc_bcc", false);
|
|
|
|
final boolean cc_bcc = prefs.getBoolean("cc_bcc", false);
|
|
|
|
final boolean circular = prefs.getBoolean("circular", true);
|
|
|
|
final boolean circular = prefs.getBoolean("circular", true);
|
|
|
|
final boolean experiments = prefs.getBoolean("experiments", false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
final float dp3 = Helper.dp2pixels(getContext(), 3);
|
|
|
|
final float dp3 = Helper.dp2pixels(getContext(), 3);
|
|
|
|
|
|
|
|
|
|
|
@ -822,10 +822,12 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
if (experiments)
|
|
|
|
|
|
|
|
etBody.setOnTouchListener(new View.OnTouchListener() {
|
|
|
|
etBody.setOnTouchListener(new View.OnTouchListener() {
|
|
|
|
private final GestureDetector gestureDetector = new GestureDetector(getContext(),
|
|
|
|
private final GestureDetector gestureDetector = new GestureDetector(getContext(),
|
|
|
|
new GestureDetector.SimpleOnGestureListener() {
|
|
|
|
new GestureDetector.SimpleOnGestureListener() {
|
|
|
|
|
|
|
|
private String lastSource = null;
|
|
|
|
|
|
|
|
private Long lastTime = null;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public boolean onSingleTapConfirmed(@NonNull MotionEvent event) {
|
|
|
|
public boolean onSingleTapConfirmed(@NonNull MotionEvent event) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -842,6 +844,15 @@ public class FragmentCompose extends FragmentBase {
|
|
|
|
if (source == null || !source.startsWith("cid:"))
|
|
|
|
if (source == null || !source.startsWith("cid:"))
|
|
|
|
return false;
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
long now = new Date().getTime();
|
|
|
|
|
|
|
|
long delta = now - (lastTime == null ? now : lastTime);
|
|
|
|
|
|
|
|
long timeout = ViewConfiguration.getLongPressTimeout(); /* Typically: 400 ms */
|
|
|
|
|
|
|
|
if (!source.equals(lastSource) || delta < timeout || delta > timeout * 5) {
|
|
|
|
|
|
|
|
lastSource = source;
|
|
|
|
|
|
|
|
lastTime = now;
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
long id = Long.parseLong(source.substring(source.lastIndexOf('.') + 1));
|
|
|
|
long id = Long.parseLong(source.substring(source.lastIndexOf('.') + 1));
|
|
|
|
|
|
|
|
|
|
|
|
int start = buffer.getSpanStart(image[0]);
|
|
|
|
int start = buffer.getSpanStart(image[0]);
|
|
|
|