aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java26
-rw-r--r--src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java6
2 files changed, 24 insertions, 8 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 4e4ae8ee9..ebe02fe4b 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -146,6 +146,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
public static final String STATE_CONVERSATION_UUID = ConversationFragment.class.getName() + ".uuid";
public static final String STATE_SCROLL_POSITION = ConversationFragment.class.getName() + ".scroll_position";
public static final String STATE_PHOTO_URI = ConversationFragment.class.getName() + ".take_photo_uri";
+ public static final String STATE_VIDEO_URI = ConversationFragment.class.getName() + ".take_video_uri";
private static final String STATE_LAST_MESSAGE_UUID = "state_last_message_uuid";
@@ -157,6 +158,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
private final PendingItem<String> pendingConversationsUuid = new PendingItem<>();
private final PendingItem<Bundle> pendingExtras = new PendingItem<>();
private final PendingItem<Uri> pendingTakePhotoUri = new PendingItem<>();
+ private final PendingItem<Uri> pendingTakeVideoUri = new PendingItem<>();
private final PendingItem<ScrollState> pendingScrollState = new PendingItem<>();
private final PendingItem<String> pendingLastMessageUuid = new PendingItem<>();
private final PendingItem<Message> pendingMessage = new PendingItem<>();
@@ -1001,6 +1003,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
}
private void handlePositiveActivityResult(int requestCode, final Intent data) {
+ final String type = data == null ? null : data.getType();
switch (requestCode) {
case REQUEST_TRUST_KEYS_TEXT:
final String body = binding.textinput.getText().toString();
@@ -1028,16 +1031,18 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
break;
case ATTACHMENT_CHOICE_TAKE_FROM_CAMERA:
final Uri takePhotoUri = pendingTakePhotoUri.pop();
+ final Uri takeVideoUri = pendingTakeVideoUri.pop();
if (takePhotoUri != null) {
attachPhotoToConversation(conversation, takePhotoUri);
+ } else if (takeVideoUri != null) {
+ attachFileToConversation(conversation, takeVideoUri, type);
} else {
- Log.d(Config.LOGTAG, "lost take photo uri. unable to to attach");
+ Log.d(Config.LOGTAG, "lost take uri. unable to to attach");
}
break;
case ATTACHMENT_CHOICE_CHOOSE_FILE:
case ATTACHMENT_CHOICE_RECORD_VOICE:
final List<Uri> fileUris = AttachmentTool.extractUriFromIntent(data);
- final String type = data == null ? null : data.getType();
final PresenceSelector.OnPresenceSelected callback = () -> {
for (Iterator<Uri> i = fileUris.iterator(); i.hasNext(); i.remove()) {
Log.d(Config.LOGTAG, "ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE");
@@ -1724,6 +1729,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
});
builder.setPositiveButton(getString(R.string.action_take_video),
(dialog, which) -> {
+ final Uri uri = activity.xmppConnectionService.getFileBackend().getTakeVideoUri();
+ pendingTakeVideoUri.push(uri);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
@@ -1959,9 +1967,13 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (conversation != null) {
outState.putString(STATE_CONVERSATION_UUID, conversation.getUuid());
outState.putString(STATE_LAST_MESSAGE_UUID, lastMessageUuid);
- final Uri uri = pendingTakePhotoUri.peek();
- if (uri != null) {
- outState.putString(STATE_PHOTO_URI, uri.toString());
+ final Uri PhotoUri = pendingTakePhotoUri.peek();
+ final Uri VideoUri = pendingTakeVideoUri.peek();
+ if (PhotoUri != null) {
+ outState.putString(STATE_PHOTO_URI, PhotoUri.toString());
+ }
+ if (VideoUri != null) {
+ outState.putString(STATE_VIDEO_URI, VideoUri.toString());
}
final ScrollState scrollState = getScrollPosition();
if (scrollState != null) {
@@ -1985,6 +1997,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (takePhotoUri != null) {
pendingTakePhotoUri.push(Uri.parse(takePhotoUri));
}
+ String takeVideoUri = savedInstanceState.getString(STATE_VIDEO_URI);
+ if (takeVideoUri != null) {
+ pendingTakeVideoUri.push(Uri.parse(takeVideoUri));
+ }
pendingScrollState.push(savedInstanceState.getParcelable(STATE_SCROLL_POSITION));
}
}
diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
index 2e602102e..9666ee1d0 100644
--- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
+++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
@@ -324,14 +324,14 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
} else {
isResendable = false;
viewHolder.resend_button.setVisibility(View.VISIBLE);
+ viewHolder.resend_button.setText(R.string.send_again);
+ viewHolder.resend_button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_resend_grey600_48dp, 0, 0, 0);
+ viewHolder.resend_button.setOnClickListener(v -> mConversationFragment.resendMessage(message));
}
} else {
isResendable = false;
viewHolder.resend_button.setVisibility(View.GONE);
}
- viewHolder.resend_button.setText(R.string.send_again);
- viewHolder.resend_button.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_resend_grey600_48dp, 0, 0, 0);
- viewHolder.resend_button.setOnClickListener(v -> mConversationFragment.resendMessage(message));
} else {
if (darkBackground) {
viewHolder.time.setTextAppearance(getContext(), R.style.TextAppearance_Conversations_Caption_OnDark);