aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/pixart/messenger/Config.java2
-rw-r--r--src/main/java/de/pixart/messenger/entities/Account.java8
-rw-r--r--src/main/java/de/pixart/messenger/parser/MessageParser.java1
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java6
-rw-r--r--src/main/java/de/pixart/messenger/ui/StartConversationActivity.java14
-rw-r--r--src/main/java/de/pixart/messenger/xml/XmlElementReader.java19
-rw-r--r--src/main/java/de/pixart/messenger/xml/XmlReader.java3
7 files changed, 38 insertions, 15 deletions
diff --git a/src/main/java/de/pixart/messenger/Config.java b/src/main/java/de/pixart/messenger/Config.java
index bf7ade63c..daf25028a 100644
--- a/src/main/java/de/pixart/messenger/Config.java
+++ b/src/main/java/de/pixart/messenger/Config.java
@@ -110,7 +110,7 @@ public final class Config {
public static final boolean REMOVE_BROKEN_DEVICES = false;
public static final boolean OMEMO_PADDING = false;
public static final boolean PUT_AUTH_TAG_INTO_KEY = true;
- public static final boolean TWELVE_BYTE_IV = false;
+ public static final boolean TWELVE_BYTE_IV = true;
public static final int MAX_DISPLAY_MESSAGE_CHARS = 4096;
public static final int MAX_STORAGE_MESSAGE_CHARS = 2 * 1024 * 1024; //2MB
diff --git a/src/main/java/de/pixart/messenger/entities/Account.java b/src/main/java/de/pixart/messenger/entities/Account.java
index c270f5b43..154f98af9 100644
--- a/src/main/java/de/pixart/messenger/entities/Account.java
+++ b/src/main/java/de/pixart/messenger/entities/Account.java
@@ -541,13 +541,7 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable
}
}
- public boolean hasBookmarkFor(final Jid jid) {
- synchronized (this.bookmarks) {
- return this.bookmarks.containsKey(jid.asBareJid());
- }
- }
-
- Bookmark getBookmark(final Jid jid) {
+ public Bookmark getBookmark(final Jid jid) {
synchronized (this.bookmarks) {
return this.bookmarks.get(jid.asBareJid());
}
diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java
index 5fd701f89..ff0c3066a 100644
--- a/src/main/java/de/pixart/messenger/parser/MessageParser.java
+++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java
@@ -551,6 +551,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
if (conversation.getMucOptions().isSelf(counterpart)) {
status = Message.STATUS_SEND_RECEIVED;
isCarbon = true; //not really carbon but received from another resource
+ //TODO this would be the place to change the body after something like mod_pastebin
if (mXmppConnectionService.markMessage(conversation, remoteMsgId, status, serverMsgId)) {
return;
} else if (remoteMsgId == null || Config.IGNORE_ID_REWRITE_IN_MUC) {
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
index 87207b0cd..eb452015f 100644
--- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
@@ -510,7 +510,11 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
setTitle(mucOptions.isPrivateAndNonAnonymous() ? R.string.conference_details : R.string.channel_details);
this.binding.editMucNameButton.setVisibility((self.getAffiliation().ranks(MucOptions.Affiliation.OWNER) || mucOptions.canChangeSubject()) ? View.VISIBLE : View.GONE);
this.binding.detailsAccount.setText(getString(R.string.using_account, account));
- this.binding.jid.setText(mConversation.getJid().asBareJid().toEscapedString());
+ if (mConversation.isPrivateAndNonAnonymous()) {
+ this.binding.jid.setText(getString(R.string.hosted_on, mConversation.getJid().getDomain()));
+ } else {
+ this.binding.jid.setText(mConversation.getJid().asBareJid().toEscapedString());
+ }
if (xmppConnectionService.multipleAccounts()) {
this.binding.detailsAccount.setVisibility(View.VISIBLE);
} else {
diff --git a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
index 8f4e468c7..b0e880cba 100644
--- a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java
@@ -1003,10 +1003,12 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
}
if (isBookmarkChecked) {
- if (account.hasBookmarkFor(conferenceJid)) {
- layout.setError(getString(R.string.bookmark_already_exists));
+ Bookmark bookmark = account.getBookmark(conferenceJid);
+ if (bookmark != null) {
+ dialog.dismiss();
+ openConversationsForBookmark(bookmark);
} else {
- final Bookmark bookmark = new Bookmark(account, conferenceJid.asBareJid());
+ bookmark = new Bookmark(account, conferenceJid.asBareJid());
bookmark.setAutojoin(getBooleanPreference("autojoin", R.bool.autojoin));
final String nick = conferenceJid.getResource();
if (nick != null && !nick.isEmpty() && !nick.equals(MucOptions.defaultNick(account))) {
@@ -1100,6 +1102,10 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
final AdapterView.AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) menuInfo;
if (mResContextMenu == R.menu.conference_context) {
activity.conference_context_id = acmi.position;
+ final Bookmark bookmark = (Bookmark) activity.conferences.get(acmi.position);
+ final Conversation conversation = bookmark.getConversation();
+ final MenuItem share = menu.findItem(R.id.context_share_uri);
+ share.setVisible(conversation == null || !conversation.isPrivateAndNonAnonymous());
} else if (mResContextMenu == R.menu.contact_context) {
activity.contact_context_id = acmi.position;
final Contact contact = (Contact) activity.contacts.get(acmi.position);
@@ -1110,7 +1116,7 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
showContactDetailsItem.setVisible(false);
}
deleteContactMenuItem.setVisible(contact.showInRoster() && !contact.getOption(Contact.Options.SYNCED_VIA_OTHER));
- XmppConnection xmpp = contact.getAccount().getXmppConnection();
+ final XmppConnection xmpp = contact.getAccount().getXmppConnection();
if (xmpp != null && xmpp.getFeatures().blocking() && !contact.isSelf()) {
if (contact.isBlocked()) {
blockUnblockItem.setTitle(R.string.unblock_contact);
diff --git a/src/main/java/de/pixart/messenger/xml/XmlElementReader.java b/src/main/java/de/pixart/messenger/xml/XmlElementReader.java
new file mode 100644
index 000000000..108822509
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/xml/XmlElementReader.java
@@ -0,0 +1,19 @@
+package de.pixart.messenger.xml;
+
+import com.google.common.io.ByteSource;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+public class XmlElementReader {
+
+ public static Element read(byte[] bytes) throws IOException {
+ return read(ByteSource.wrap(bytes).openStream());
+ }
+
+ public static Element read(InputStream inputStream) throws IOException {
+ final XmlReader xmlReader = new XmlReader();
+ xmlReader.setInputStream(inputStream);
+ return xmlReader.readElement(xmlReader.readTag());
+ }
+} \ No newline at end of file
diff --git a/src/main/java/de/pixart/messenger/xml/XmlReader.java b/src/main/java/de/pixart/messenger/xml/XmlReader.java
index 6447f12ef..ef2a33158 100644
--- a/src/main/java/de/pixart/messenger/xml/XmlReader.java
+++ b/src/main/java/de/pixart/messenger/xml/XmlReader.java
@@ -87,8 +87,7 @@ public class XmlReader implements Closeable {
return null;
}
- public Element readElement(Tag currentTag) throws XmlPullParserException,
- IOException {
+ public Element readElement(Tag currentTag) throws IOException {
Element element = new Element(currentTag.getName());
element.setAttributes(currentTag.getAttributes());
Tag nextTag = this.readTag();