diff options
-rw-r--r-- | src/main/java/de/pixart/messenger/Config.java | 2 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Account.java | 8 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/parser/MessageParser.java | 1 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java | 6 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/StartConversationActivity.java | 14 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/xml/XmlElementReader.java | 19 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/xml/XmlReader.java | 3 | ||||
-rw-r--r-- | src/main/res/drawable/list_item_background_light.xml | 2 | ||||
-rw-r--r-- | src/main/res/layout/activity_media_viewer.xml | 4 | ||||
-rw-r--r-- | src/main/res/layout/activity_trust_keys.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/main/res/values/styles.xml | 8 | ||||
-rw-r--r-- | src/main/res/values/themes.xml | 6 | ||||
-rw-r--r-- | src/main/res/xml/file_paths.xml | 2 |
14 files changed, 60 insertions, 19 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(); diff --git a/src/main/res/drawable/list_item_background_light.xml b/src/main/res/drawable/list_item_background_light.xml index f064403da..917f85dab 100644 --- a/src/main/res/drawable/list_item_background_light.xml +++ b/src/main/res/drawable/list_item_background_light.xml @@ -28,5 +28,5 @@ --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:drawable="@color/grey300" android:state_activated="true" /> + <item android:drawable="@color/grey500" android:state_activated="true" /> </selector>
\ No newline at end of file diff --git a/src/main/res/layout/activity_media_viewer.xml b/src/main/res/layout/activity_media_viewer.xml index 2b64fb81a..c82ed1603 100644 --- a/src/main/res/layout/activity_media_viewer.xml +++ b/src/main/res/layout/activity_media_viewer.xml @@ -26,6 +26,10 @@ android:id="@+id/messageVideoView" android:layout_width="match_parent" android:layout_height="match_parent" + app:played_color="?attr/colorAccent" + app:scrubber_color="?attr/colorAccent" + app:show_shuffle_button="false" + app:show_buffering="never" android:visibility="gone" /> <com.leinardi.android.speeddial.SpeedDialOverlayLayout diff --git a/src/main/res/layout/activity_trust_keys.xml b/src/main/res/layout/activity_trust_keys.xml index 178cd04c8..30a9d3906 100644 --- a/src/main/res/layout/activity_trust_keys.xml +++ b/src/main/res/layout/activity_trust_keys.xml @@ -92,7 +92,7 @@ android:paddingEnd="16dp" android:paddingRight="16dp" android:text="@string/disable_encryption" - android:textColor="@color/accent" /> + android:textColor="?attr/colorAccent" /> </LinearLayout> </LinearLayout> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 45ba43d61..2368e3c3e 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -215,7 +215,6 @@ <string name="channel_bare_jid_example">channel@conference.example.com</string> <string name="save_as_bookmark">Save as bookmark</string> <string name="delete_bookmark">Delete bookmark</string> - <string name="bookmark_already_exists">This bookmark already exists</string> <string name="topic">Topic</string> <string name="joining_conference">Joining group chat…</string> <string name="leave">Leave</string> @@ -1005,4 +1004,5 @@ <string name="show_videos_images_only">Only images/videos</string> <string name="show_avatar">Show avatar</string> <string name="action_delete">Delete</string> + <string name="hosted_on">hosted on %s</string> </resources> diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml index 185699519..0b5fdc3ac 100644 --- a/src/main/res/values/styles.xml +++ b/src/main/res/values/styles.xml @@ -154,4 +154,12 @@ <style name="Conversations.Dialog" parent="ThemeOverlay.MaterialComponents.Dialog.Alert" > <item name="android:buttonStyle">@style/Widget.Conversations.Button.Borderless</item> </style> + + <style name="ExoMediaButton.Previous"> + <item name="android:visibility">gone</item> + </style> + + <style name="ExoMediaButton.Next"> + <item name="android:visibility">gone</item> + </style> </resources>
\ No newline at end of file diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index d20d1c304..dfb07ab52 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -336,6 +336,9 @@ <item name="color_bubble_warning">@color/lightred</item> <item name="chat_bg">@drawable/bg_light_orange</item> + + <item name="windowActionModeOverlay">true</item> + <item name="android:actionModeBackground">@color/accent_orange</item> </style> <style name="ConversationsTheme.Orange.Dark" parent="ConversationsTheme.Dark"> @@ -351,6 +354,9 @@ <item name="color_bubble_warning">@color/darkred</item> <item name="chat_bg">@drawable/bg_dark_orange</item> + + <item name="windowActionModeOverlay">true</item> + <item name="android:actionModeBackground">@color/accent_orange</item> </style> <style name="ConversationsTheme.Dialog" parent="Theme.MaterialComponents.Light.Dialog"> diff --git a/src/main/res/xml/file_paths.xml b/src/main/res/xml/file_paths.xml index 847faf68f..0cc514a45 100644 --- a/src/main/res/xml/file_paths.xml +++ b/src/main/res/xml/file_paths.xml @@ -11,7 +11,7 @@ path="Images/" /> <files-path name="videos" - path="Videos" /> + path="Videos/" /> <files-path name="files" path="Files/" /> |