added dedicated 'record video' attachment button. fixes #2592
thank you @BlauerHunger
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="ic_send_videocam_away.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="956"
|
||||||
|
inkscape:window-height="567"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="4.9166667"
|
||||||
|
inkscape:cx="-8.3389831"
|
||||||
|
inkscape:cy="24"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="609"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<path
|
||||||
|
d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#ff9800;fill-opacity:0.627451" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="ic_send_videocam_dnd.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="956"
|
||||||
|
inkscape:window-height="567"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="4.9166667"
|
||||||
|
inkscape:cx="-8.3389831"
|
||||||
|
inkscape:cy="24"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="609"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<path
|
||||||
|
d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#f44336;fill-opacity:0.627451" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="ic_send_videocam_offline.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="956"
|
||||||
|
inkscape:window-height="567"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="4.9166667"
|
||||||
|
inkscape:cx="-8.3389831"
|
||||||
|
inkscape:cy="24"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="609"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<path
|
||||||
|
d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#000000;fill-opacity:0.627451" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,54 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="ic_send_videocam_offline_white.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="956"
|
||||||
|
inkscape:window-height="567"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="4.9166667"
|
||||||
|
inkscape:cx="10.5688"
|
||||||
|
inkscape:cy="23.898305"
|
||||||
|
inkscape:window-x="960"
|
||||||
|
inkscape:window-y="609"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<path
|
||||||
|
d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"
|
||||||
|
id="path6"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.627451" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,55 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="48"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="ic_send_videocam_online.svg">
|
||||||
|
<metadata
|
||||||
|
id="metadata10">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1916"
|
||||||
|
inkscape:window-height="1036"
|
||||||
|
id="namedview6"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="4.9166667"
|
||||||
|
inkscape:cx="6.5084746"
|
||||||
|
inkscape:cy="24"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="20"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg2" />
|
||||||
|
<path
|
||||||
|
d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"
|
||||||
|
id="path4"
|
||||||
|
style="fill:#259b24;fill-opacity:0.627451" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -47,6 +47,11 @@ images = {
|
||||||
'ic_send_picture_offline_white.svg' => ['ic_send_picture_offline_white', 36],
|
'ic_send_picture_offline_white.svg' => ['ic_send_picture_offline_white', 36],
|
||||||
'ic_send_picture_away.svg' => ['ic_send_picture_away', 36],
|
'ic_send_picture_away.svg' => ['ic_send_picture_away', 36],
|
||||||
'ic_send_picture_dnd.svg' => ['ic_send_picture_dnd', 36],
|
'ic_send_picture_dnd.svg' => ['ic_send_picture_dnd', 36],
|
||||||
|
'ic_send_videocam_online.svg' => ['ic_send_videocam_online', 36],
|
||||||
|
'ic_send_videocam_offline.svg' => ['ic_send_videocam_offline', 36],
|
||||||
|
'ic_send_videocam_offline_white.svg' => ['ic_send_videocam_offline_white', 36],
|
||||||
|
'ic_send_videocam_away.svg' => ['ic_send_videocam_away', 36],
|
||||||
|
'ic_send_videocam_dnd.svg' => ['ic_send_videocam_dnd', 36],
|
||||||
'ic_notifications_none_white80.svg' => ['ic_notifications_none_white80', 24],
|
'ic_notifications_none_white80.svg' => ['ic_notifications_none_white80', 24],
|
||||||
'ic_notifications_off_white80.svg' => ['ic_notifications_off_white80', 24],
|
'ic_notifications_off_white80.svg' => ['ic_notifications_off_white80', 24],
|
||||||
'ic_notifications_paused_white80.svg' => ['ic_notifications_paused_white80', 24],
|
'ic_notifications_paused_white80.svg' => ['ic_notifications_paused_white80', 24],
|
||||||
|
|
|
@ -72,6 +72,8 @@ import eu.siacs.conversations.xmpp.jid.Jid;
|
||||||
public class ConversationActivity extends XmppActivity
|
public class ConversationActivity extends XmppActivity
|
||||||
implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast {
|
implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast {
|
||||||
|
|
||||||
|
public static final String RECENTLY_USED_QUICK_ACTION = "recently_used_quick_action";
|
||||||
|
|
||||||
public static final String ACTION_VIEW_CONVERSATION = "eu.siacs.conversations.action.VIEW";
|
public static final String ACTION_VIEW_CONVERSATION = "eu.siacs.conversations.action.VIEW";
|
||||||
public static final String CONVERSATION = "conversationUuid";
|
public static final String CONVERSATION = "conversationUuid";
|
||||||
public static final String EXTRA_DOWNLOAD_UUID = "eu.siacs.conversations.download_uuid";
|
public static final String EXTRA_DOWNLOAD_UUID = "eu.siacs.conversations.download_uuid";
|
||||||
|
@ -92,6 +94,7 @@ public class ConversationActivity extends XmppActivity
|
||||||
public static final int ATTACHMENT_CHOICE_RECORD_VOICE = 0x0304;
|
public static final int ATTACHMENT_CHOICE_RECORD_VOICE = 0x0304;
|
||||||
public static final int ATTACHMENT_CHOICE_LOCATION = 0x0305;
|
public static final int ATTACHMENT_CHOICE_LOCATION = 0x0305;
|
||||||
public static final int ATTACHMENT_CHOICE_INVALID = 0x0306;
|
public static final int ATTACHMENT_CHOICE_INVALID = 0x0306;
|
||||||
|
public static final int ATTACHMENT_CHOICE_RECORD_VIDEO = 0x0307;
|
||||||
private static final String STATE_OPEN_CONVERSATION = "state_open_conversation";
|
private static final String STATE_OPEN_CONVERSATION = "state_open_conversation";
|
||||||
private static final String STATE_PANEL_OPEN = "state_panel_open";
|
private static final String STATE_PANEL_OPEN = "state_panel_open";
|
||||||
private static final String STATE_PENDING_URI = "state_pending_uri";
|
private static final String STATE_PENDING_URI = "state_pending_uri";
|
||||||
|
@ -500,14 +503,17 @@ public class ConversationActivity extends XmppActivity
|
||||||
intent.setType("image/*");
|
intent.setType("image/*");
|
||||||
chooser = true;
|
chooser = true;
|
||||||
break;
|
break;
|
||||||
|
case ATTACHMENT_CHOICE_RECORD_VIDEO:
|
||||||
|
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
|
||||||
|
break;
|
||||||
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
||||||
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
|
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
|
||||||
|
mPendingImageUris.clear();
|
||||||
|
mPendingImageUris.add(uri);
|
||||||
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||||
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||||
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
|
||||||
mPendingImageUris.clear();
|
|
||||||
mPendingImageUris.add(uri);
|
|
||||||
break;
|
break;
|
||||||
case ATTACHMENT_CHOICE_CHOOSE_FILE:
|
case ATTACHMENT_CHOICE_CHOOSE_FILE:
|
||||||
chooser = true;
|
chooser = true;
|
||||||
|
@ -562,19 +568,29 @@ public class ConversationActivity extends XmppActivity
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
final ConversationFragment.SendButtonAction action;
|
||||||
switch (attachmentChoice) {
|
switch (attachmentChoice) {
|
||||||
case ATTACHMENT_CHOICE_LOCATION:
|
case ATTACHMENT_CHOICE_LOCATION:
|
||||||
getPreferences().edit().putString("recently_used_quick_action", "location").apply();
|
action = ConversationFragment.SendButtonAction.SEND_LOCATION;
|
||||||
break;
|
break;
|
||||||
case ATTACHMENT_CHOICE_RECORD_VOICE:
|
case ATTACHMENT_CHOICE_RECORD_VOICE:
|
||||||
getPreferences().edit().putString("recently_used_quick_action", "voice").apply();
|
action = ConversationFragment.SendButtonAction.RECORD_VOICE;
|
||||||
|
break;
|
||||||
|
case ATTACHMENT_CHOICE_RECORD_VIDEO:
|
||||||
|
action = ConversationFragment.SendButtonAction.RECORD_VIDEO;
|
||||||
break;
|
break;
|
||||||
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
||||||
getPreferences().edit().putString("recently_used_quick_action", "photo").apply();
|
action = ConversationFragment.SendButtonAction.TAKE_PHOTO;
|
||||||
break;
|
break;
|
||||||
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
|
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
|
||||||
getPreferences().edit().putString("recently_used_quick_action", "picture").apply();
|
action = ConversationFragment.SendButtonAction.CHOOSE_PICTURE;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
action = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (action != null) {
|
||||||
|
getPreferences().edit().putString(RECENTLY_USED_QUICK_ACTION,action.toString()).apply();
|
||||||
}
|
}
|
||||||
final Conversation conversation = getSelectedConversation();
|
final Conversation conversation = getSelectedConversation();
|
||||||
final int encryption = conversation.getNextEncryption();
|
final int encryption = conversation.getNextEncryption();
|
||||||
|
@ -805,6 +821,9 @@ public class ConversationActivity extends XmppActivity
|
||||||
case R.id.attach_take_picture:
|
case R.id.attach_take_picture:
|
||||||
attachFile(ATTACHMENT_CHOICE_TAKE_PHOTO);
|
attachFile(ATTACHMENT_CHOICE_TAKE_PHOTO);
|
||||||
break;
|
break;
|
||||||
|
case R.id.attach_record_video:
|
||||||
|
attachFile(ATTACHMENT_CHOICE_RECORD_VIDEO);
|
||||||
|
break;
|
||||||
case R.id.attach_choose_file:
|
case R.id.attach_choose_file:
|
||||||
attachFile(ATTACHMENT_CHOICE_CHOOSE_FILE);
|
attachFile(ATTACHMENT_CHOICE_CHOOSE_FILE);
|
||||||
break;
|
break;
|
||||||
|
@ -1414,8 +1433,9 @@ public class ConversationActivity extends XmppActivity
|
||||||
attachImageToConversation(getSelectedConversation(), i.next());
|
attachImageToConversation(getSelectedConversation(), i.next());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE) {
|
} else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE || requestCode == ATTACHMENT_CHOICE_RECORD_VIDEO) {
|
||||||
final List<Uri> uris = extractUriFromIntent(data);
|
final List<Uri> uris = extractUriFromIntent(data);
|
||||||
|
Log.d(Config.LOGTAG,"uris "+uris.toString());
|
||||||
final Conversation c = getSelectedConversation();
|
final Conversation c = getSelectedConversation();
|
||||||
final OnPresenceSelected callback = new OnPresenceSelected() {
|
final OnPresenceSelected callback = new OnPresenceSelected() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1424,7 +1444,7 @@ public class ConversationActivity extends XmppActivity
|
||||||
mPendingFileUris.addAll(uris);
|
mPendingFileUris.addAll(uris);
|
||||||
if (xmppConnectionServiceBound) {
|
if (xmppConnectionServiceBound) {
|
||||||
for (Iterator<Uri> i = mPendingFileUris.iterator(); i.hasNext(); i.remove()) {
|
for (Iterator<Uri> i = mPendingFileUris.iterator(); i.hasNext(); i.remove()) {
|
||||||
Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE");
|
Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO");
|
||||||
attachFileToConversation(c, i.next());
|
attachFileToConversation(c, i.next());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,6 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.ListIterator;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
@ -72,7 +71,6 @@ import eu.siacs.conversations.ui.adapter.MessageAdapter;
|
||||||
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked;
|
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked;
|
||||||
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
|
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
|
||||||
import eu.siacs.conversations.ui.widget.ListSelectionManager;
|
import eu.siacs.conversations.ui.widget.ListSelectionManager;
|
||||||
import eu.siacs.conversations.utils.GeoHelper;
|
|
||||||
import eu.siacs.conversations.utils.NickValidityChecker;
|
import eu.siacs.conversations.utils.NickValidityChecker;
|
||||||
import eu.siacs.conversations.utils.UIHelper;
|
import eu.siacs.conversations.utils.UIHelper;
|
||||||
import eu.siacs.conversations.xmpp.XmppConnection;
|
import eu.siacs.conversations.xmpp.XmppConnection;
|
||||||
|
@ -331,6 +329,9 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
case TAKE_PHOTO:
|
case TAKE_PHOTO:
|
||||||
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_TAKE_PHOTO);
|
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_TAKE_PHOTO);
|
||||||
break;
|
break;
|
||||||
|
case RECORD_VIDEO:
|
||||||
|
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_RECORD_VIDEO);
|
||||||
|
break;
|
||||||
case SEND_LOCATION:
|
case SEND_LOCATION:
|
||||||
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_LOCATION);
|
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_LOCATION);
|
||||||
break;
|
break;
|
||||||
|
@ -1152,7 +1153,16 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
mSendingPgpMessage.set(false);
|
mSendingPgpMessage.set(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE}
|
enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE, RECORD_VIDEO;
|
||||||
|
|
||||||
|
public static SendButtonAction valueOfOrDefault(String setting, SendButtonAction text) {
|
||||||
|
try {
|
||||||
|
return valueOf(setting);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
return TEXT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int getSendButtonImageResource(SendButtonAction action, Presence.Status status) {
|
private int getSendButtonImageResource(SendButtonAction action, Presence.Status status) {
|
||||||
switch (action) {
|
switch (action) {
|
||||||
|
@ -1169,6 +1179,19 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
default:
|
default:
|
||||||
return activity.getThemeResource(R.attr.ic_send_text_offline, R.drawable.ic_send_text_offline);
|
return activity.getThemeResource(R.attr.ic_send_text_offline, R.drawable.ic_send_text_offline);
|
||||||
}
|
}
|
||||||
|
case RECORD_VIDEO:
|
||||||
|
switch (status) {
|
||||||
|
case CHAT:
|
||||||
|
case ONLINE:
|
||||||
|
return R.drawable.ic_send_videocam_online;
|
||||||
|
case AWAY:
|
||||||
|
return R.drawable.ic_send_videocam_away;
|
||||||
|
case XA:
|
||||||
|
case DND:
|
||||||
|
return R.drawable.ic_send_videocam_dnd;
|
||||||
|
default:
|
||||||
|
return activity.getThemeResource(R.attr.ic_send_videocam_offline, R.drawable.ic_send_videocam_offline);
|
||||||
|
}
|
||||||
case TAKE_PHOTO:
|
case TAKE_PHOTO:
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case CHAT:
|
case CHAT:
|
||||||
|
@ -1268,26 +1291,14 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
|
||||||
} else {
|
} else {
|
||||||
String setting = activity.getPreferences().getString("quick_action", activity.getResources().getString(R.string.quick_action));
|
String setting = activity.getPreferences().getString("quick_action", activity.getResources().getString(R.string.quick_action));
|
||||||
if (!setting.equals("none") && UIHelper.receivedLocationQuestion(conversation.getLatestMessage())) {
|
if (!setting.equals("none") && UIHelper.receivedLocationQuestion(conversation.getLatestMessage())) {
|
||||||
setting = "location";
|
action = SendButtonAction.SEND_LOCATION;
|
||||||
} else if (setting.equals("recent")) {
|
} else {
|
||||||
setting = activity.getPreferences().getString("recently_used_quick_action", "text");
|
if (setting.equals("recent")) {
|
||||||
}
|
setting = activity.getPreferences().getString(ConversationActivity.RECENTLY_USED_QUICK_ACTION, SendButtonAction.TEXT.toString());
|
||||||
switch (setting) {
|
action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT);
|
||||||
case "photo":
|
} else {
|
||||||
action = SendButtonAction.TAKE_PHOTO;
|
action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT);
|
||||||
break;
|
}
|
||||||
case "location":
|
|
||||||
action = SendButtonAction.SEND_LOCATION;
|
|
||||||
break;
|
|
||||||
case "voice":
|
|
||||||
action = SendButtonAction.RECORD_VOICE;
|
|
||||||
break;
|
|
||||||
case "picture":
|
|
||||||
action = SendButtonAction.CHOOSE_PICTURE;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
action = SendButtonAction.TEXT;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
After Width: | Height: | Size: 277 B |
After Width: | Height: | Size: 173 B |
After Width: | Height: | Size: 487 B |
After Width: | Height: | Size: 540 B |
After Width: | Height: | Size: 435 B |
After Width: | Height: | Size: 447 B |
After Width: | Height: | Size: 533 B |
After Width: | Height: | Size: 215 B |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 365 B |
After Width: | Height: | Size: 397 B |
After Width: | Height: | Size: 341 B |
After Width: | Height: | Size: 340 B |
After Width: | Height: | Size: 401 B |
After Width: | Height: | Size: 276 B |
After Width: | Height: | Size: 178 B |
After Width: | Height: | Size: 502 B |
After Width: | Height: | Size: 542 B |
After Width: | Height: | Size: 479 B |
After Width: | Height: | Size: 470 B |
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 373 B |
After Width: | Height: | Size: 234 B |
After Width: | Height: | Size: 705 B |
After Width: | Height: | Size: 777 B |
After Width: | Height: | Size: 650 B |
After Width: | Height: | Size: 670 B |
After Width: | Height: | Size: 775 B |
After Width: | Height: | Size: 429 B |
After Width: | Height: | Size: 290 B |
After Width: | Height: | Size: 821 B |
After Width: | Height: | Size: 884 B |
After Width: | Height: | Size: 772 B |
After Width: | Height: | Size: 777 B |
After Width: | Height: | Size: 897 B |
|
@ -2,19 +2,9 @@
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/attach_location"
|
android:id="@+id/attach_choose_file"
|
||||||
android:title="@string/send_location"
|
android:title="@string/choose_file"
|
||||||
android:icon="?attr/ic_attach_location"/>
|
android:icon="?attr/ic_attach_document"/>
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/attach_record_voice"
|
|
||||||
android:title="@string/attach_record_voice"
|
|
||||||
android:icon="?attr/ic_attach_record"/>
|
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/attach_take_picture"
|
|
||||||
android:title="@string/attach_take_picture"
|
|
||||||
android:icon="?attr/ic_attach_camera"/>
|
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/attach_choose_picture"
|
android:id="@+id/attach_choose_picture"
|
||||||
|
@ -22,8 +12,23 @@
|
||||||
android:icon="?attr/ic_attach_photo"/>
|
android:icon="?attr/ic_attach_photo"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/attach_choose_file"
|
android:id="@+id/attach_take_picture"
|
||||||
android:title="@string/choose_file"
|
android:title="@string/attach_take_picture"
|
||||||
android:icon="?attr/ic_attach_document"/>
|
android:icon="?attr/ic_attach_camera"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/attach_record_video"
|
||||||
|
android:title="@string/attach_record_video"
|
||||||
|
android:icon="?attr/ic_attach_videocam"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/attach_record_voice"
|
||||||
|
android:title="@string/attach_record_voice"
|
||||||
|
android:icon="?attr/ic_attach_record"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/attach_location"
|
||||||
|
android:title="@string/send_location"
|
||||||
|
android:icon="?attr/ic_attach_location"/>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
|
@ -29,9 +29,11 @@
|
||||||
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item>
|
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item>
|
||||||
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item>
|
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item>
|
||||||
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
|
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
|
||||||
|
<item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline</item>
|
||||||
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
|
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
|
||||||
|
|
||||||
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
|
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
|
||||||
|
<item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam</item>
|
||||||
<item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
|
<item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
|
||||||
<item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
|
<item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
|
||||||
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
|
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
|
||||||
|
@ -107,9 +109,11 @@
|
||||||
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item>
|
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item>
|
||||||
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item>
|
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item>
|
||||||
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
|
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
|
||||||
|
<item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline_white</item>
|
||||||
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
|
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
|
||||||
|
|
||||||
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
|
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
|
||||||
|
<item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam_white</item>
|
||||||
<item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
|
<item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
|
||||||
<item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
|
<item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
|
||||||
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
|
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
<item>@string/none</item>
|
<item>@string/none</item>
|
||||||
<item>@string/recently_used</item>
|
<item>@string/recently_used</item>
|
||||||
<item>@string/attach_take_picture</item>
|
<item>@string/attach_take_picture</item>
|
||||||
|
<item>@string/attach_record_video</item>
|
||||||
<item>@string/attach_choose_picture</item>
|
<item>@string/attach_choose_picture</item>
|
||||||
<item>@string/attach_record_voice</item>
|
<item>@string/attach_record_voice</item>
|
||||||
<item>@string/send_location</item>
|
<item>@string/send_location</item>
|
||||||
|
@ -60,10 +61,11 @@
|
||||||
<string-array name="quick_action_values">
|
<string-array name="quick_action_values">
|
||||||
<item>none</item>
|
<item>none</item>
|
||||||
<item>recent</item>
|
<item>recent</item>
|
||||||
<item>photo</item>
|
<item>TAKE_PHOTO</item>
|
||||||
<item>picture</item>
|
<item>RECORD_VIDEO</item>
|
||||||
<item>voice</item>
|
<item>CHOOSE_PICTURE</item>
|
||||||
<item>location</item>
|
<item>RECORD_VOICE</item>
|
||||||
|
<item>SEND_LOCATION</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="picture_compression_values">
|
<string-array name="picture_compression_values">
|
||||||
|
|
|
@ -20,9 +20,11 @@
|
||||||
<attr name="ic_send_photo_offline" format="reference"/>
|
<attr name="ic_send_photo_offline" format="reference"/>
|
||||||
<attr name="ic_send_picture_offline" format="reference"/>
|
<attr name="ic_send_picture_offline" format="reference"/>
|
||||||
<attr name="ic_send_text_offline" format="reference"/>
|
<attr name="ic_send_text_offline" format="reference"/>
|
||||||
|
<attr name="ic_send_videocam_offline" format="reference"/>
|
||||||
<attr name="ic_send_voice_offline" format="reference"/>
|
<attr name="ic_send_voice_offline" format="reference"/>
|
||||||
|
|
||||||
<attr name="ic_attach_camera" format="reference"/>
|
<attr name="ic_attach_camera" format="reference"/>
|
||||||
|
<attr name="ic_attach_videocam" format="reference"/>
|
||||||
<attr name="ic_attach_document" format="reference"/>
|
<attr name="ic_attach_document" format="reference"/>
|
||||||
<attr name="ic_attach_location" format="reference"/>
|
<attr name="ic_attach_location" format="reference"/>
|
||||||
<attr name="ic_attach_photo" format="reference"/>
|
<attr name="ic_attach_photo" format="reference"/>
|
||||||
|
|
|
@ -724,4 +724,5 @@
|
||||||
<string name="network_is_unreachable">Network is unreachable</string>
|
<string name="network_is_unreachable">Network is unreachable</string>
|
||||||
<string name="certificate_does_not_contain_jid">Certificate does not contain a Jabber ID</string>
|
<string name="certificate_does_not_contain_jid">Certificate does not contain a Jabber ID</string>
|
||||||
<string name="server_info_partial">partial</string>
|
<string name="server_info_partial">partial</string>
|
||||||
|
<string name="attach_record_video">Record video</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -25,9 +25,11 @@
|
||||||
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item>
|
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item>
|
||||||
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item>
|
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item>
|
||||||
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
|
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
|
||||||
|
<item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline</item>
|
||||||
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
|
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
|
||||||
|
|
||||||
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
|
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
|
||||||
|
<item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam</item>
|
||||||
<item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
|
<item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
|
||||||
<item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
|
<item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
|
||||||
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
|
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
|
||||||
|
@ -100,9 +102,11 @@
|
||||||
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item>
|
<item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item>
|
||||||
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item>
|
<item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item>
|
||||||
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
|
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
|
||||||
|
<item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline_white</item>
|
||||||
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
|
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
|
||||||
|
|
||||||
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
|
<item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
|
||||||
|
<item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam_white</item>
|
||||||
<item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
|
<item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
|
||||||
<item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
|
<item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
|
||||||
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
|
<item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
|
||||||
|
|