bind and session request more compatible

This commit is contained in:
Daniel Gultsch 2014-05-18 17:32:20 +02:00
parent e857cf979d
commit 590e2403ab
4 changed files with 21 additions and 5 deletions

View file

@ -9,5 +9,6 @@
android:title="@string/attach_take_picture"/> android:title="@string/attach_take_picture"/>
<item <item
android:id="@+id/attach_record_voice" android:id="@+id/attach_record_voice"
android:title="@string/attach_record_voice" /> android:title="@string/attach_record_voice"
android:visible="false"/>
</menu> </menu>

View file

@ -29,6 +29,7 @@ public class Message extends AbstractEntity {
public static final int TYPE_TEXT = 0; public static final int TYPE_TEXT = 0;
public static final int TYPE_IMAGE = 1; public static final int TYPE_IMAGE = 1;
public static final int TYPE_AUDIO = 2;
public static String CONVERSATION = "conversationUuid"; public static String CONVERSATION = "conversationUuid";
public static String COUNTERPART = "counterpart"; public static String COUNTERPART = "counterpart";

View file

@ -722,12 +722,19 @@ public class ConversationActivity extends XmppActivity {
encryptTextMessage(); encryptTextMessage();
} else if (requestCode == REQUEST_IMAGE_CAPTURE) { } else if (requestCode == REQUEST_IMAGE_CAPTURE) {
attachImageToConversation(getSelectedConversation(), null); attachImageToConversation(getSelectedConversation(), null);
} else if (requestCode == REQUEST_RECORD_AUDIO) {
Log.d("xmppService",data.getData().toString());
attachAudioToConversation(getSelectedConversation(),data.getData());
} else { } else {
Log.d(LOGTAG,"unknown result code:"+requestCode); Log.d(LOGTAG,"unknown result code:"+requestCode);
} }
} }
} }
private void attachAudioToConversation(Conversation conversation, Uri uri) {
}
private void attachImageToConversation(Conversation conversation, Uri uri) { private void attachImageToConversation(Conversation conversation, Uri uri) {
prepareImageToast = Toast.makeText(getApplicationContext(), getText(R.string.preparing_image), Toast.LENGTH_LONG); prepareImageToast = Toast.makeText(getApplicationContext(), getText(R.string.preparing_image), Toast.LENGTH_LONG);
prepareImageToast.show(); prepareImageToast.show();

View file

@ -617,7 +617,7 @@ public class XmppConnection implements Runnable {
private void sendBindRequest() throws IOException { private void sendBindRequest() throws IOException {
IqPacket iq = new IqPacket(IqPacket.TYPE_SET); IqPacket iq = new IqPacket(IqPacket.TYPE_SET);
iq.addChild("bind", "urn:ietf:params:xml:ns:xmpp-bind").addChild("resource").setContent(account.getResource()); iq.addChild("bind", "urn:ietf:params:xml:ns:xmpp-bind").addChild("resource").setContent(account.getResource());
this.sendIqPacket(iq, new OnIqPacketReceived() { this.sendUnboundIqPacket(iq, new OnIqPacketReceived() {
@Override @Override
public void onIqPacketReceived(Account account, IqPacket packet) { public void onIqPacketReceived(Account account, IqPacket packet) {
String resource = packet.findChild("bind").findChild("jid") String resource = packet.findChild("bind").findChild("jid")
@ -644,9 +644,8 @@ public class XmppConnection implements Runnable {
if (this.streamFeatures.hasChild("session")) { if (this.streamFeatures.hasChild("session")) {
Log.d(LOGTAG,account.getJid()+": sending deprecated session"); Log.d(LOGTAG,account.getJid()+": sending deprecated session");
IqPacket startSession = new IqPacket(IqPacket.TYPE_SET); IqPacket startSession = new IqPacket(IqPacket.TYPE_SET);
startSession.addChild("session","urn:ietf:params:xml:ns:xmpp-session"); //setContent("") startSession.addChild("session","urn:ietf:params:xml:ns:xmpp-session");
startSession.setId(nextRandomId()); this.sendUnboundIqPacket(startSession, null);
this.sendPacket(startSession, null);
} }
} }
@ -747,6 +746,14 @@ public class XmppConnection implements Runnable {
this.sendPacket(packet, callback); this.sendPacket(packet, callback);
} }
public void sendUnboundIqPacket(IqPacket packet, OnIqPacketReceived callback) {
if (packet.getId()==null) {
String id = nextRandomId();
packet.setAttribute("id", id);
}
this.sendPacket(packet, callback);
}
public void sendMessagePacket(MessagePacket packet) { public void sendMessagePacket(MessagePacket packet) {
this.sendPacket(packet, null); this.sendPacket(packet, null);
} }