|
|
@ -273,6 +273,19 @@ public class FragmentMessage extends FragmentEx {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
btnImages.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
btnImages.setEnabled(false);
|
|
|
|
|
|
|
|
show_images = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
|
|
|
|
args.putLong("id", message.id);
|
|
|
|
|
|
|
|
args.putBoolean("show_images", show_images);
|
|
|
|
|
|
|
|
bodyTask.load(FragmentMessage.this, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
tvBody.setMovementMethod(new LinkMovementMethod() {
|
|
|
|
tvBody.setMovementMethod(new LinkMovementMethod() {
|
|
|
|
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
|
|
|
|
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
|
|
|
|
if (event.getAction() != MotionEvent.ACTION_UP)
|
|
|
|
if (event.getAction() != MotionEvent.ACTION_UP)
|
|
|
@ -480,28 +493,6 @@ public class FragmentMessage extends FragmentEx {
|
|
|
|
show_images = savedInstanceState.getBoolean("show_images");
|
|
|
|
show_images = savedInstanceState.getBoolean("show_images");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (tvBody.getTag() == null) {
|
|
|
|
|
|
|
|
// Spanned text needs to be loaded after recreation too
|
|
|
|
|
|
|
|
final Bundle args = new Bundle();
|
|
|
|
|
|
|
|
args.putLong("id", message.id);
|
|
|
|
|
|
|
|
args.putBoolean("show_images", show_images);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pbBody.setVisibility(View.VISIBLE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (message.content)
|
|
|
|
|
|
|
|
bodyTask.load(FragmentMessage.this, args);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
btnImages.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public void onClick(View v) {
|
|
|
|
|
|
|
|
v.setEnabled(false);
|
|
|
|
|
|
|
|
show_images = true;
|
|
|
|
|
|
|
|
args.putBoolean("show_images", show_images);
|
|
|
|
|
|
|
|
bodyTask.load(FragmentMessage.this, args);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setSeen();
|
|
|
|
setSeen();
|
|
|
|
|
|
|
|
|
|
|
|
if (message.avatar == null ||
|
|
|
|
if (message.avatar == null ||
|
|
|
@ -541,6 +532,7 @@ public class FragmentMessage extends FragmentEx {
|
|
|
|
|
|
|
|
|
|
|
|
// Observe message
|
|
|
|
// Observe message
|
|
|
|
db.message().liveMessage(message.id).observe(getViewLifecycleOwner(), new Observer<TupleMessageEx>() {
|
|
|
|
db.message().liveMessage(message.id).observe(getViewLifecycleOwner(), new Observer<TupleMessageEx>() {
|
|
|
|
|
|
|
|
private boolean loaded = false;
|
|
|
|
private boolean observing = false;
|
|
|
|
private boolean observing = false;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -561,7 +553,9 @@ public class FragmentMessage extends FragmentEx {
|
|
|
|
pbRawHeaders.setVisibility(!free && headers && message.headers == null ? View.VISIBLE : View.GONE);
|
|
|
|
pbRawHeaders.setVisibility(!free && headers && message.headers == null ? View.VISIBLE : View.GONE);
|
|
|
|
|
|
|
|
|
|
|
|
// Body can be downloaded
|
|
|
|
// Body can be downloaded
|
|
|
|
if (message.content) {
|
|
|
|
if (!loaded && message.content) {
|
|
|
|
|
|
|
|
loaded = true;
|
|
|
|
|
|
|
|
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
Bundle args = new Bundle();
|
|
|
|
args.putLong("id", message.id);
|
|
|
|
args.putLong("id", message.id);
|
|
|
|
args.putBoolean("show_images", show_images);
|
|
|
|
args.putBoolean("show_images", show_images);
|
|
|
@ -1172,7 +1166,6 @@ public class FragmentMessage extends FragmentEx {
|
|
|
|
boolean has_images = (ss.getSpans(0, ss.length(), ImageSpan.class).length > 0);
|
|
|
|
boolean has_images = (ss.getSpans(0, ss.length(), ImageSpan.class).length > 0);
|
|
|
|
|
|
|
|
|
|
|
|
tvBody.setText(body);
|
|
|
|
tvBody.setText(body);
|
|
|
|
tvBody.setTag(true);
|
|
|
|
|
|
|
|
btnImages.setVisibility(has_images && !show_images ? View.VISIBLE : View.GONE);
|
|
|
|
btnImages.setVisibility(has_images && !show_images ? View.VISIBLE : View.GONE);
|
|
|
|
grpMessage.setVisibility(View.VISIBLE);
|
|
|
|
grpMessage.setVisibility(View.VISIBLE);
|
|
|
|
fab.setVisibility(free ? View.GONE : View.VISIBLE);
|
|
|
|
fab.setVisibility(free ? View.GONE : View.VISIBLE);
|
|
|
|