From 00c062a0c8a1d585ef20bf5293b656b5a13a4303 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 12 Sep 2018 14:37:41 +0200 Subject: [PATCH] fixed media preview for file types other than images --- .../ui/ConversationFragment.java | 12 +++-- .../ui/ConversationsOverviewFragment.java | 4 +- .../conversations/ui/SearchActivity.java | 12 ++--- .../conversations/ui/SettingsActivity.java | 4 +- .../ui/adapter/AccountAdapter.java | 8 ++-- .../ui/adapter/ConversationAdapter.java | 7 ++- .../ui/adapter/MediaPreviewAdapter.java | 31 +++++++++++-- .../ui/forms/FormFieldWrapper.java | 8 ++-- .../conversations/ui/util/Attachment.java | 9 +++- .../siacs/conversations/ui/util/Drawable.java | 43 ------------------ .../{Color.java => StyledAttributes.java} | 19 ++++++-- .../utils/IrregularUnicodeDetector.java | 4 +- .../ic_description_black_48dp.png | Bin 0 -> 279 bytes .../ic_description_white_48dp.png | Bin 0 -> 295 bytes .../drawable-hdpi/ic_headset_black_48dp.png | Bin 0 -> 586 bytes .../drawable-hdpi/ic_headset_white_48dp.png | Bin 0 -> 610 bytes .../res/drawable-hdpi/ic_mic_black_48dp.png | Bin 0 -> 581 bytes .../res/drawable-hdpi/ic_mic_white_48dp.png | Bin 0 -> 606 bytes .../res/drawable-hdpi/ic_room_black_48dp.png | Bin 0 -> 683 bytes .../res/drawable-hdpi/ic_room_white_48dp.png | Bin 0 -> 675 bytes .../ic_description_black_48dp.png | Bin 0 -> 202 bytes .../ic_description_white_48dp.png | Bin 0 -> 214 bytes .../drawable-mdpi/ic_headset_black_48dp.png | Bin 0 -> 412 bytes .../drawable-mdpi/ic_headset_white_48dp.png | Bin 0 -> 433 bytes .../res/drawable-mdpi/ic_mic_black_48dp.png | Bin 0 -> 418 bytes .../res/drawable-mdpi/ic_mic_white_48dp.png | Bin 0 -> 436 bytes .../res/drawable-mdpi/ic_room_black_48dp.png | Bin 0 -> 457 bytes .../res/drawable-mdpi/ic_room_white_48dp.png | Bin 0 -> 456 bytes .../ic_description_black_48dp.png | Bin 0 -> 355 bytes .../ic_description_white_48dp.png | Bin 0 -> 378 bytes .../drawable-xhdpi/ic_headset_black_48dp.png | Bin 0 -> 786 bytes .../drawable-xhdpi/ic_headset_white_48dp.png | Bin 0 -> 838 bytes .../res/drawable-xhdpi/ic_mic_black_48dp.png | Bin 0 -> 773 bytes .../res/drawable-xhdpi/ic_mic_white_48dp.png | Bin 0 -> 819 bytes .../res/drawable-xhdpi/ic_room_black_48dp.png | Bin 0 -> 868 bytes .../res/drawable-xhdpi/ic_room_white_48dp.png | Bin 0 -> 869 bytes .../ic_description_black_48dp.png | Bin 0 -> 514 bytes .../ic_description_white_48dp.png | Bin 0 -> 563 bytes .../drawable-xxhdpi/ic_headset_black_48dp.png | Bin 0 -> 1183 bytes .../drawable-xxhdpi/ic_headset_white_48dp.png | Bin 0 -> 1246 bytes .../res/drawable-xxhdpi/ic_mic_black_48dp.png | Bin 0 -> 1146 bytes .../res/drawable-xxhdpi/ic_mic_white_48dp.png | Bin 0 -> 1220 bytes .../drawable-xxhdpi/ic_room_black_48dp.png | Bin 0 -> 1264 bytes .../drawable-xxhdpi/ic_room_white_48dp.png | Bin 0 -> 1270 bytes .../ic_description_black_48dp.png | Bin 0 -> 726 bytes .../ic_description_white_48dp.png | Bin 0 -> 788 bytes .../ic_headset_black_48dp.png | Bin 0 -> 1574 bytes .../ic_headset_white_48dp.png | Bin 0 -> 1736 bytes .../drawable-xxxhdpi/ic_mic_black_48dp.png | Bin 0 -> 1529 bytes .../drawable-xxxhdpi/ic_mic_white_48dp.png | Bin 0 -> 1664 bytes .../drawable-xxxhdpi/ic_room_black_48dp.png | Bin 0 -> 1691 bytes .../drawable-xxxhdpi/ic_room_white_48dp.png | Bin 0 -> 1709 bytes src/main/res/layout/media_preview.xml | 1 + src/main/res/values/attrs.xml | 6 +++ src/main/res/values/themes.xml | 10 ++++ 55 files changed, 94 insertions(+), 84 deletions(-) delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/Drawable.java rename src/main/java/eu/siacs/conversations/ui/util/{Color.java => StyledAttributes.java} (75%) create mode 100644 src/main/res/drawable-hdpi/ic_description_black_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_description_white_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_headset_black_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_headset_white_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_mic_black_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_mic_white_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_room_black_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_room_white_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_description_black_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_description_white_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_headset_black_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_headset_white_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_mic_black_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_mic_white_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_room_black_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_room_white_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_description_black_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_description_white_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_headset_black_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_headset_white_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_mic_black_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_mic_white_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_room_black_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_room_white_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_description_black_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_description_white_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_headset_black_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_headset_white_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_mic_black_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_mic_white_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_room_black_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_room_white_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_description_black_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_description_white_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_headset_black_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_headset_white_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_black_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_mic_white_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_room_black_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_room_white_48dp.png diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 830388429..fee7c1493 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -842,7 +842,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke case ATTACHMENT_CHOICE_CHOOSE_FILE: case ATTACHMENT_CHOICE_RECORD_VIDEO: case ATTACHMENT_CHOICE_RECORD_VOICE: - final List fileUris = Attachment.extractAttachments(getActivity(), data, Attachment.Type.FILE); + final Attachment.Type type = requestCode == ATTACHMENT_CHOICE_RECORD_VOICE ? Attachment.Type.RECORDING : Attachment.Type.FILE; + final List fileUris = Attachment.extractAttachments(getActivity(), data, type); mediaPreviewAdapter.addMediaPreviews(fileUris); toggleInputMethod(); break; @@ -850,7 +851,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke double latitude = data.getDoubleExtra("latitude", 0); double longitude = data.getDoubleExtra("longitude", 0); Uri geo = Uri.parse("geo:" + String.valueOf(latitude) + "," + String.valueOf(longitude)); - attachLocationToConversation(conversation, geo); + mediaPreviewAdapter.addMediaPreviews(Attachment.of(getActivity(), geo, Attachment.Type.LOCATION)); + toggleInputMethod(); break; case REQUEST_INVITE_TO_CONVERSATION: XmppActivity.ConferenceInvite invite = XmppActivity.ConferenceInvite.parse(data); @@ -869,8 +871,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke final PresenceSelector.OnPresenceSelected callback = () -> { for (Iterator i = attachments.iterator(); i.hasNext(); i.remove()) { final Attachment attachment = i.next(); - if (attachment.getType() == Attachment.Type.IMAGE) { - Log.d(Config.LOGTAG, "ConversationsActivity.commitAttachments() - attaching image to conversations. CHOOSE_IMAGE"); + if (attachment.getType() == Attachment.Type.LOCATION) { + attachLocationToConversation(conversation, attachment.getUri()); + } else if (attachment.getType() == Attachment.Type.IMAGE) { + Log.d(Config.LOGTAG, "ConversationsActivity.commitAttachments() - attaching image to conversations. CHOOSE_IMAGE"); attachImageToConversation(conversation, attachment.getUri()); } else { Log.d(Config.LOGTAG, "ConversationsActivity.commitAttachments() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO"); diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java index 3c89103c3..f1957c6f2 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationsOverviewFragment.java @@ -58,11 +58,11 @@ import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.ui.adapter.ConversationAdapter; import eu.siacs.conversations.ui.interfaces.OnConversationArchived; import eu.siacs.conversations.ui.interfaces.OnConversationSelected; -import eu.siacs.conversations.ui.util.Color; import eu.siacs.conversations.ui.util.MenuDoubleTabUtil; import eu.siacs.conversations.ui.util.PendingActionHelper; import eu.siacs.conversations.ui.util.PendingItem; import eu.siacs.conversations.ui.util.ScrollState; +import eu.siacs.conversations.ui.util.StyledAttributes; import eu.siacs.conversations.utils.ThemeHelper; import static android.support.v7.widget.helper.ItemTouchHelper.LEFT; @@ -99,7 +99,7 @@ public class ConversationsOverviewFragment extends XmppFragment { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); if(actionState != ItemTouchHelper.ACTION_STATE_IDLE){ Paint paint = new Paint(); - paint.setColor(Color.get(activity,R.attr.conversations_overview_background)); + paint.setColor(StyledAttributes.getColor(activity,R.attr.conversations_overview_background)); paint.setStyle(Paint.Style.FILL); c.drawRect(viewHolder.itemView.getLeft(),viewHolder.itemView.getTop() ,viewHolder.itemView.getRight(),viewHolder.itemView.getBottom(), paint); diff --git a/src/main/java/eu/siacs/conversations/ui/SearchActivity.java b/src/main/java/eu/siacs/conversations/ui/SearchActivity.java index 5f1cb7854..3b337e0c2 100644 --- a/src/main/java/eu/siacs/conversations/ui/SearchActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SearchActivity.java @@ -35,7 +35,6 @@ import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.InputType; import android.text.TextWatcher; -import android.util.Log; import android.view.ContextMenu; import android.view.Menu; import android.view.MenuItem; @@ -47,21 +46,18 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; -import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.databinding.ActivitySearchBinding; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Conversational; import eu.siacs.conversations.entities.Message; -import eu.siacs.conversations.entities.StubConversation; import eu.siacs.conversations.services.MessageSearchTask; import eu.siacs.conversations.ui.adapter.MessageAdapter; import eu.siacs.conversations.ui.interfaces.OnSearchResultsAvailable; import eu.siacs.conversations.ui.util.ChangeWatcher; -import eu.siacs.conversations.ui.util.Color; import eu.siacs.conversations.ui.util.DateSeparator; -import eu.siacs.conversations.ui.util.Drawable; +import eu.siacs.conversations.ui.util.StyledAttributes; import eu.siacs.conversations.ui.util.ListViewUtils; import eu.siacs.conversations.ui.util.PendingItem; import eu.siacs.conversations.ui.util.ShareUtil; @@ -217,12 +213,12 @@ public class SearchActivity extends XmppActivity implements TextWatcher, OnSearc private void changeBackground(boolean hasSearch, boolean hasResults) { if (hasSearch) { if (hasResults) { - binding.searchResults.setBackgroundColor(Color.get(this, R.attr.color_background_secondary)); + binding.searchResults.setBackgroundColor(StyledAttributes.getColor(this, R.attr.color_background_secondary)); } else { - binding.searchResults.setBackground(Drawable.get(this, R.attr.activity_background_no_results)); + binding.searchResults.setBackground(StyledAttributes.getDrawable(this, R.attr.activity_background_no_results)); } } else { - binding.searchResults.setBackground(Drawable.get(this, R.attr.activity_background_search)); + binding.searchResults.setBackground(StyledAttributes.getDrawable(this, R.attr.activity_background_search)); } } diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java index ebdff2c00..a6ebacf47 100644 --- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java @@ -38,7 +38,7 @@ import eu.siacs.conversations.crypto.OmemoSetting; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.services.ExportLogsService; import eu.siacs.conversations.services.MemorizingTrustManager; -import eu.siacs.conversations.ui.util.Color; +import eu.siacs.conversations.ui.util.StyledAttributes; import eu.siacs.conversations.utils.GeoHelper; import eu.siacs.conversations.utils.TimeframeUtils; import rocks.xmpp.addr.Jid; @@ -74,7 +74,7 @@ public class SettingsActivity extends XmppActivity implements mSettingsFragment.setActivityIntent(getIntent()); this.mTheme = findTheme(); setTheme(this.mTheme); - getWindow().getDecorView().setBackgroundColor(Color.get(this, R.attr.color_background_primary)); + getWindow().getDecorView().setBackgroundColor(StyledAttributes.getColor(this, R.attr.color_background_primary)); setSupportActionBar(findViewById(R.id.toolbar)); configureActionBar(getSupportActionBar()); } diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java index 77334955e..d5dca11b5 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java @@ -25,7 +25,7 @@ import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.ui.ManageAccountActivity; import eu.siacs.conversations.ui.XmppActivity; -import eu.siacs.conversations.ui.util.Color; +import eu.siacs.conversations.ui.util.StyledAttributes; import eu.siacs.conversations.utils.UIHelper; public class AccountAdapter extends ArrayAdapter { @@ -65,14 +65,14 @@ public class AccountAdapter extends ArrayAdapter { statusView.setText(getContext().getString(account.getStatus().getReadableId())); switch (account.getStatus()) { case ONLINE: - statusView.setTextColor(Color.get(activity, R.attr.TextColorOnline)); + statusView.setTextColor(StyledAttributes.getColor(activity, R.attr.TextColorOnline)); break; case DISABLED: case CONNECTING: - statusView.setTextColor(Color.get(activity, android.R.attr.textColorSecondary)); + statusView.setTextColor(StyledAttributes.getColor(activity, android.R.attr.textColorSecondary)); break; default: - statusView.setTextColor(Color.get(activity, R.attr.TextColorError)); + statusView.setTextColor(StyledAttributes.getColor(activity, R.attr.TextColorError)); break; } final SwitchCompat tglAccountState = view.findViewById(R.id.tgl_account_status); diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java index e204b09bb..8e53caea6 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java @@ -26,9 +26,8 @@ import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.entities.Transferable; import eu.siacs.conversations.ui.ConversationFragment; -import eu.siacs.conversations.ui.ConversationsOverviewFragment; import eu.siacs.conversations.ui.XmppActivity; -import eu.siacs.conversations.ui.util.Color; +import eu.siacs.conversations.ui.util.StyledAttributes; import eu.siacs.conversations.ui.widget.UnreadCountCustomView; import eu.siacs.conversations.utils.EmojiWrapper; import eu.siacs.conversations.utils.IrregularUnicodeDetector; @@ -93,9 +92,9 @@ public class ConversationAdapter extends RecyclerView.Adapter { @@ -48,8 +47,29 @@ public class MediaPreviewAdapter extends RecyclerView.Adapter { int pos = mediaPreviews.indexOf(attachment); mediaPreviews.remove(pos); @@ -72,6 +92,7 @@ public class MediaPreviewAdapter extends RecyclerView.Adapter of(final Context context, Uri uri, Type type) { - final String mime = MimeUtils.guessMimeTypeFromUri(context, uri); + final String mime = type == Type.LOCATION ?null :MimeUtils.guessMimeTypeFromUri(context, uri); return Collections.singletonList(new Attachment(uri, type, mime)); } @@ -100,6 +101,10 @@ public class Attachment { return uris; } + public boolean renderThumbnail() { + return type == Type.IMAGE || (type == Type.FILE && mime != null && (mime.startsWith("video/") || mime.startsWith("image/"))); + } + public Uri getUri() { return uri; } diff --git a/src/main/java/eu/siacs/conversations/ui/util/Drawable.java b/src/main/java/eu/siacs/conversations/ui/util/Drawable.java deleted file mode 100644 index 993ef49aa..000000000 --- a/src/main/java/eu/siacs/conversations/ui/util/Drawable.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2018, Daniel Gultsch All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its contributors - * may be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package eu.siacs.conversations.ui.util; - -import android.content.Context; -import android.content.res.TypedArray; -import android.support.annotation.AttrRes; - -public class Drawable { - public static android.graphics.drawable.Drawable get(Context context, @AttrRes int id) { - TypedArray typedArray = context.obtainStyledAttributes(new int[]{id}); - android.graphics.drawable.Drawable drawable = typedArray.getDrawable(0); - typedArray.recycle(); - return drawable; - } -} diff --git a/src/main/java/eu/siacs/conversations/ui/util/Color.java b/src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java similarity index 75% rename from src/main/java/eu/siacs/conversations/ui/util/Color.java rename to src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java index ac3dcaf6d..2b0b3f6e3 100644 --- a/src/main/java/eu/siacs/conversations/ui/util/Color.java +++ b/src/main/java/eu/siacs/conversations/ui/util/StyledAttributes.java @@ -29,19 +29,30 @@ package eu.siacs.conversations.ui.util; - import android.content.Context; import android.content.res.TypedArray; import android.support.annotation.AttrRes; import android.support.annotation.ColorInt; -public class Color { +public class StyledAttributes { + public static android.graphics.drawable.Drawable getDrawable(Context context, @AttrRes int id) { + TypedArray typedArray = context.obtainStyledAttributes(new int[]{id}); + android.graphics.drawable.Drawable drawable = typedArray.getDrawable(0); + typedArray.recycle(); + return drawable; + } - public static @ColorInt int get(Context context, @AttrRes int attr) { + public static float getFloat(Context context, @AttrRes int id) { + TypedArray typedArray = context.obtainStyledAttributes(new int[]{id}); + float value = typedArray.getFloat(0,0f); + typedArray.recycle(); + return value; + } + + public static @ColorInt int getColor(Context context, @AttrRes int attr) { TypedArray typedArray = context.obtainStyledAttributes(new int[]{attr}); int color = typedArray.getColor(0,0); typedArray.recycle(); return color; } - } diff --git a/src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java b/src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java index ad1a1f8a9..42329c41a 100644 --- a/src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java +++ b/src/main/java/eu/siacs/conversations/utils/IrregularUnicodeDetector.java @@ -50,7 +50,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import eu.siacs.conversations.R; -import eu.siacs.conversations.ui.util.Color; +import eu.siacs.conversations.ui.util.StyledAttributes; import rocks.xmpp.addr.Jid; public class IrregularUnicodeDetector { @@ -73,7 +73,7 @@ public class IrregularUnicodeDetector { } public static Spannable style(Context context, Jid jid) { - return style(jid, Color.get(context, R.attr.color_warning)); + return style(jid, StyledAttributes.getColor(context, R.attr.color_warning)); } private static Spannable style(Jid jid, @ColorInt int color) { diff --git a/src/main/res/drawable-hdpi/ic_description_black_48dp.png b/src/main/res/drawable-hdpi/ic_description_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..dd23b93ac24f290c0fd00a5776de8433fe05ccb9 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhaw?s>X6hEy=Vy?l`KP=G+oLrdEr zXNL{;Csjow<|ZgSOJba+!12nlm-We({(8=qpUWHHZ&)2#d``5~>h(g)9gBmqOj!k9 zE?MN=GQr>K2*b}M!J?0*x$g>Z{8qWdU(};=Nxo`_8l%E2mWB)=h9(aN4uy>h4M&<7 zgt(bJbReAO3L*ZeNr(PMTxi;&mf`rw@c@s}358}eX0Bt6Y0W&h>^kN;vPn+)|BX#D zCEy)UZb7-$^OXh3S{VU5>_o3<#w^a3N)HNj-K}zIN!V1=SEjF6=Y3k>=c@f|&Tr-j XldErCzMe4$`jo-b)z4*}Q$iB}?q6)( literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-hdpi/ic_description_white_48dp.png b/src/main/res/drawable-hdpi/ic_description_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9b7071b710e270543eef0565af39a9702c3729e8 GIT binary patch literal 295 zcmV+?0oeYDP)`!t@1*uLj5cgsMmLLe~L4BUp)6BjxhP=OkveM1>mHdB7GiIw6lxcre07Lit-38RazRxWl`IQ!PfwNF~hKr;d#| z-X}~_WMW>{FIE`B)-X+eV_sYa4WsNMlen7VlhJaMl&Z#?^@=iSjPV97@{@5=*)isv zA+59Q8UL43STHWDOcrCt#WiqL;v4c&o+PV_$jAFL5l)uTA}jcCA1!hh2MYN`-)9IP zhWQ{`4^dc~MT^w&Xi(=JuXxH$ zG|Fu*hcvTn@QZ(S${S|T$%E1?Q^U3smPjQDTHrfz`^KYWKv{NhZHsZ=paL!WsmVis zAk7-Rim0%{JUKF?NRc7OJ)W~gM6XuSK0qUEa-D?H{C7b`Q;FG%;`RLP?( zHpk~4B;6lqjqc7UGK8|+FeT3EZnYm!f$k2NM8(_`hjjPA6_llg*?Y!N4!g=n%ziWO z2HK&Ua|z|R%j{vc_BeE@sMGbP+{wAR&Z8 zrdbq3QQ?elV2TvO=8w&3_i&DvnZt1JoLlgGe!F||@MZAA;UA}z$}q(e>ollSVUbBv zm7|2gU6Cv)Im<5$(QT0@1-WRBm6Rp03?)p5trFN2#d7Sz-r&l(!!SzUwDy$@-S|EfBIt?mul#5S7L|JDyV=oq$& zH|P_#6Y{)DEFa~di`W*uK?Q7=O8W!Y+*v%x5~97cAOn7+tSPjKbiByDmUS3%x=Cbrww2YVP-meokk8^&-Q zp($@~5!-$?Td@cQEd@i=gHX_eU=eBQLA@z{1pgou6|Y9nYVqbNCrf(}#V=q% z3QCDND2Srcq+cM4EtR^Pt$92RyE98N#4+0l@9(|sybBK{(1BG#h~7qyX%<!2JJ+F8juXd0KvY=ahYna?(84VP-R zK@D7jY=dxQl_0{ zYx^DAb-$pa#Kw%1Je#z#&Zx0lAa>XnzU- zw%3eVTZf3yZukf7WgYDmxzzb2^Hd24Smg<4Qs;fVLHofT{~*O}VntMk^N`pr6#hZ% z<}0x)9p%gr`$E5Oke+cOVnuQ&_t3|EViDv2@}KKvl9m{8zHxwM==?AHcfSSL;vPdS zcZZoHAn8#zt{-!l0-ke`VPj`Mmv})4?i~Lh#Z@BG>b&J8OH}wq+BVm^c|ki)l}^++ z(d`@K07bTNgJ0ZbAe$@f5VO>2r_KZRW&3Gi7iTH4N|U4}RZ5(rKl^VTdIm`v^#45N sKS@f0BuIiJNP>Jvf+R?SB&f&c4>-j2s;86O-2eap07*qoM6N<$f(C;WL6B4wV&>Lp(J~?z>aHJdBBezTh(_h2 z2 zWl@4t;f%A2vMfcT|HoQF4ki3PTq#q?u`fQ?yB~SzE}qo0g*>#$3A`9Xo_dW34aj5l zI2%L(EigpSPD3oBfF9zgm=$E{CvC*o6{nqfWNC>5IB5wu3zh6u#U!%SjFWEb*Qq3( zY8H^O+c+6T#@aCHK*pZqWX7_}F-+o?^`6E_5*Zr8W*8Y-#K{IS)PqegGV}{4YgrD| zhYW4t1BrN|fC&S2CJ0_jT*fX5mM8@W+BApuRO}mAY)5y{! z)oI3=MwVJ|Qo>rmrSBllt~i|m7k`~n9KApREiz0meT5=yyhNf zDOaJ<#uyuztn-9ZDim6oA{*~$k>99dgcRA@;QSBSxd#p^ABIeWOCIFoFyB}y_5|WF^Le60YRdeEXW3NOv3WOI3`iqAc;vx9vH&pmu#?wNk|?T#v~~l{KOy-ihn7xnnXS2yG*%J@hwKFMz!W0P!ca$NpnfNTw@5Gdn4+4w-2 z3WEmL$z+|QDjd4Wq+5l>C|*WYXjHO*$vl-RJeo<6PJ(6?2bW3bl8T2%?DtT`M1X1j zHBCUpMJ>zxwM?ywj}{XAk>G?52F{Zr#W@`u+~TH6N=p6^^f BPE!B? literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_description_white_48dp.png b/src/main/res/drawable-mdpi/ic_description_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..53083487f1450fc4cf91c419338eb930bc03a1df GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0Dxt=bLArXh)UUuX<6d=(2(9-v4 zbd|!wp!cB{cU?KQ^qtyC5y3h2cb_$1zuxhV{V<>Uoe8A{&)H)RJQcKPI8G96VOKO`}$sT|iMQYZrlc5P1WUNP$7ul0~cV4uVz{K@nmDz8WG9OUE?D!|N9(K&C9!(MXRhL7nrzG+goVWRiuiEeYJgpR!2n&m{?WY zcWCugB!h`5wf&CPKt)_kB-QpOTAmtHvTqB_3p8V%w*|Jq7W{p|M=S+>v|6zgG|<|O zrJ#aVlE;w?+PL_b;bEkLHq!)1vO|-8Aw5kY-P;;zBe?CIEm6Gyn zbG+{R8u!>;lh{tud@8aC(12(w9zgD*1iAm*bRAXnjz^rC9NQ_bu6+r1s2GvQdvd zdqG}~b}rDXTa@Eo_Xhi0TMoQ8{mETlBO;9NhhKgq&=!1;u=q$2 z2_nI-2;M>wbku@+D1xe5uoH@)=yj9s2Nu|#_mD~M1`^mz_+Qp-YIFh%I#el|UGpfS b`0McnR+sXvad^(?00000NkvXXu0mjfxI)B+ literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_mic_black_48dp.png b/src/main/res/drawable-mdpi/ic_mic_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..cac51c37a38c0ae7800b2f93c2d567508b417c52 GIT binary patch literal 418 zcmV;T0bTxyP)_%aKH zx>y7uq*Z&n1RjKgB=rdx$o1RL4QKfqBNGiPI(mBAZfU6586QN|drdWJsGhGTrqpId z3f)wjjudLCO-~AS)h6XeJ+MFa1HVQ+@N?`3evEoxZ|nzlM?KK{j|cWdTm#UPLOTGK zhyAi`5qAN!q|h?}_e5+N*i#XY0o;&6ivZR{tQpuH5naatQ{ENM%^|?7T@kAWc1}dx z1~BKXsA@Y6U{yq%HH38$-^>A+vTRdV*M=pB0nGa@;)$VLurK1JX@4_gQ^daWhV(#0 ztUHOaS$rWEjxowx#;HV{U#GiFsH?2lZ3({{v(@3NrCIgd!8cj_626bPT(G584*Z=?k M07*qoM6N<$f)`D-EC2ui literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_mic_white_48dp.png b/src/main/res/drawable-mdpi/ic_mic_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..9f44db5d21785d6d92316645fe5bf23ae994b77e GIT binary patch literal 436 zcmV;l0ZaagP)Dr;YEmosql-|Yvp75WH@G-;5;rMmp=!acAZ~6h{u2&vP8JI)D(y`~u{sNd zx>y7uB-Q5QQr;mP%S}8N4BY3P-uHXpfy+5Bw=q4`Xj#$K*Vl1ZOQT$sJm#D&0X}Kx z6trx?h@zQKup-5se1fhNMLt1aie5f}G*t_RQ!m)BTJU@71;45m>`lF3P_>}{9}D)t zO@}YL-N={0puAuQJcz!K;$`Fy!FGAU3-B!Z+fpn>z6RFH3+{uSlLvj%N23&u9Hesw zV70v9BH&(3=6w*L<7{NBfD7Z?qIK}Yd`y~_ZR+XSu;ggW&-)3Uk9SQk8-h1xG!Cg* zn_%eDxbNUGVBP7zo|*Fs@M!#p*76qc)s^IltF{5J9h>AOpV0yE&JAtx-7P8rY&bRP zsyN}P0N;J~#jXHP%>LUhy6&4a?6{U=*&Vm!y-~VunaQwCquLe#ENEx_eUAbpvszFK eCa+ph3;qD8LA)J0pe6_a0000W8GK5uatHXvo3W`#|5$P3?j&0QK~)Y2$Rv{Aw* zt}sHyW_X9Xc*`^uI>SEdVUK3{=X2zcmz$VjA35zYO|VhkqkuPz5NZhpT_#XQ8wIt< zaCZtNJYkNp!aS=eVIFrY$l@BEEhCFNxZ6zp-nNE}SGe0j#vHZyp@55o%lL?#K9EtO3&`m_C3}e+HYnXu4p0vV9HBz@ zQ4ja1)FfX}7u!ryu|?FyA~p07k@kREnxKsmJ~Kg09VbUd&M|821~RTwYZ=c_ho{uu z6fN{$iz)ihEV~G?%Pf8B9DfUE>0?(5!v?H>8`7pQS~rX*00000NkvXXu0mjfjSt0v literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-mdpi/ic_room_white_48dp.png b/src/main/res/drawable-mdpi/ic_room_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..814ca8ddc442ae97d8a78693c841e33141f96759 GIT binary patch literal 456 zcmV;(0XP1MP)cU)w;|q9DKG7l=esh}n{m&d1g3lw}x)F$Y!~$C!5fk%^P39>QDGRhSL4_ngcut#I zLoZ)x=I&|Hick!nNnYIHm{7mz zkRR^}^-dvpNT_~=VTTYq3dJ)*j42cm-|_lJq;NdNYgFm5j>nqP;vSbYbIDz$$0E(V zRx9XYpGNlRQfnBdkzuutxBSl=Wr0pAB>73FvcUslteE@C4ll5#l_erRQtN}VMmJ^t yDbua&(MOfPs`Tl4@PsR_c&zKgB$K*z!~6l{P?%`6vDruf0000 z3=XE&55yT7q8J!B9KM`73luDnV_>-Yra_s3VJna~!4^m`oRDkKw5ku;*{_kXzG$~b z!s4Rq2Y+r}cjZDb&xTNM@v81K^%oUN1?T<$Te(f@%B|iqtBg(l@>{Q`-Fz=BDEOCg Xsp3{n=E6sNL1uZn`njxgN@xNA5zmRw literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xhdpi/ic_description_white_48dp.png b/src/main/res/drawable-xhdpi/ic_description_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..f89ffeb30b15061225d9c74d4f01db83c405bdc1 GIT binary patch literal 378 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 literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxhdpi/ic_description_black_48dp.png b/src/main/res/drawable-xxhdpi/ic_description_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3d52dc2dab2136ffac5d32581e7ec2e6237a9cf6 GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q1xWh(YZ)^zFrM^uaSW+oe0$3rl7gz4imJDO$&@3nq!aQ}VYgE{q8zyd?&vwRt>P#LC@B@X|A5+xN2nr*;J zwy?o>0xPRFDf zSI;TcE1J~&)#mxmbGc#0Hd=W_Q#b2e((wewz@_>(XTvA$OJ)`X#w~-VtDnm{r-UW| D8*#-^ literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxhdpi/ic_description_white_48dp.png b/src/main/res/drawable-xxhdpi/ic_description_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e841544963976ed0e7be2666cd2ccb262d5dea62 GIT binary patch literal 563 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 literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxhdpi/ic_room_black_48dp.png b/src/main/res/drawable-xxhdpi/ic_room_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d6c467655bdee8f7026034ad8cc668dceca8f6 GIT binary patch literal 1264 zcmV!jMRxgr1o0|DnXc8 z--anD-gQePgw|JbT8ToKkz?AFd9$-QcYL)UB1qO@yFNSTdVkKj9?w7Ez=zMx^}en{ z5ClOG1VIo4L6CRGQ%fV;ILIm5=pxlyCvBYMTRxx=s;Ofq=TJXtYS6roN&U@AFjCI`?UwU-&>l(B3_gWM;KCMOiLoKBR1lDtL{ zF*lhbD1-gLL}F|KNtEF_c$QcyW)sR%8z>@XZsT*5#r9K1j8t$0Wx2zY6B89QBM%*= zJRT3%|BB$WR?rW6E}9tdB8dCNkJ`%s7Aywg)4oA*0=c30slTwqQU7UC3xjZpXW&D00`> zMLjhnDCsRh4NKTfH;P<6-W@`by2uJD=u0K5Xh)Gch-cN2S1Sq9siFx*=mw+kst!5V zLmmB5PY-f#Aztl_aCzp@U-Kheq9(jLha9V8AQmIXTJUIm7AK`9<&t}I_qY@Vh$B)8Byjg~vT7`=>$f=j{W)5tQkd(Lf40_dH%r zL6K^rigZS?14U{wo}EUKYG*Z-^d-R>E~7~Oig)j#$aS-a24*vop}mb{HcQ#dbriXG z@NO~~16`pUqt+n_o5*8tVBW2?B2Tq2j2KviJXJ?56!A0i&`%VRMwspA z5+estmfKIPOrjfQv1?2uX5L0wY#p&vMhnVPXBkcmJ&Cf^%>|yM^Og*kz!)*etJ-b>R|>sU_HuEYsm?>Z~|qZUl>Y`s3Dbs$7>cjWUc+Z zXTM5lMuXT$ z7lj1>DC5{oE9c<^|1ySF^mna{Cb${1NFqd%nFM{RCDq$Jg8%dqFOuhiAP9mW2!bF8 ag1-RE*56BYWB1bl0000vq z!xWTx=_Zj7T1ieTQ3x|q)KunWXKtS3J0t{=X*=JubAG@7IltFS3W6XAf*=TjAPDjd zBdKNy8`;Y-&T*9_N!mHbQNHIBmQc+I%RHd`z#!_`N9wNg1Fuq| zT*d@8aFukl^D*OwO1X-!;@l_Ks3(0LY@?P+ViZwCj7sLS zoleqME7#aZdM?mFsk%TJi)kf2d*v1tq-PT`-35bbA|2NmBA2MaE*6|Q0t zlM&@uw8<5cSQN>KVk{DJg=<(8$%tYsI^_x%v53itax7Zq3a7BBlo3@}oRljZ#$vvV zsK=s3uCNn}?J{Bq7R_>nby##zCIezz!(xqGVF5OaWxz6Q-jFLy#io_PN)bc2gw2z3 zh5NB;Qi|AuRZQ;iH&(Su0d-jYC71XNs|2&uO*~5yt54+;bFoV>Pu)NrN$g&cON=8u zO$^puFoZ3nXRO@fIO%C+DP`&cF_v+O^!y>$_<;0v(o7vylv7MG*NETz*mpU2lVCyJ~~b>`GF<)XpwxuFp~HtNrn8uPJGiW zpD-QYJSCsdi=+7DD81wt=HruE`G$V{gD=j~SN>rUzG#q-7{q0KaG4VMi52*uQNE&# zE4X%l2nPfIXGxr62O zv_|C;ifExH9i&LPg-7V1r*tr0xrevtDGQW~=*=E_!ngENZlZzAFL-;A1R;EkHe&*g}%x!jNua9b&*lZ zKUC9QGnAiLMR%-JzM_CV{GV?qQ2rvu3GU`k%9P)jNSr%~^QZz|;7*=ba0AQfN~41R z(3|btZX3N7+{6G5ajO>kE4UTIIL%F`8LHrROd-w2w@H($42!bF8 gf*=TjAjot70{j)J;M1A=dH?_b07*qoM6N<$f_+a;-T(jq literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_description_black_48dp.png b/src/main/res/drawable-xxxhdpi/ic_description_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c2720c71d2d16910fe1274bd76a5f178ec9c5b GIT binary patch literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJfoZO%i(^Oyv7d3zZ83N^~~51vM*3X?pTnb?`Y}IGDHPBg;0WtohHvzZG&wUwiU% z_q^BN=Nzovdt!HlPR}y0Nh+RTboa#KJ?FysiYMMbYVNuD-zhi0tYdBky60cdt7Pf^ z8DMVIRDE-;w8X)=f5Of6ns(-d`gK3Ze7c4s@A;OZ5Egwcc2|Sxhfi4w+N_ZkKDhbe zvRt!==DP!@-iVA&ZIOD+@ywCxeIp!wa_$g*6RT zObkz17*>HrG!z&v^gg)!1El5^C&LwCh7~Fd0S*ic8WtwrJ*@WqW$BF=T7LFU)S3I;DK`$Nzy==bVD>-`>XX zT5{3T7_(Z|*i#C7b2vB5N{l+O|LwE?>YpW7JeAoxt6slbat(Vg$G0MT=5OU?v;KUH zJhLG7{A$U1Wvla9&x}jTKkKC%|Js;s>%CLx?y1RpPL}Z%88V;$Q)jk$+EksCE@=Ak bob-<&=;5Ujiwzv=AQyVN`njxgN@xNAt#bKd literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_description_white_48dp.png b/src/main/res/drawable-xxxhdpi/ic_description_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..2942f7ee7ea91bbc8f020fb115cc48829ff7209b GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE1xWt5x}=AJf$6rVi(^OyU^vJL85}RAcj^tw-`zOgR=!oOES@>lPMAb~7&X2}*Ilv%}w?wR$M#RI%^w zd&~1ecJJTl{+@mY0eZ4+9+}?mnK?0UK~!Af&E03!grl-vus`5BKl5Uovpj=$4FdzG z5X1Ky>=P823%dOogi;v9Zm>;IVErKC&?Iue*Uzy@<^VSXXAlE-4~Xf^z*)p_K4Z0_ zmjFYBe{|>+1%?gRWgI2}sryn64GLTadAte^0<0E5%16OrhC_ovBSRt+;~^F%7LG*> z^P`zLggFG%1Q3#pO&SNLUt<6&XyIf*kz{Zbd61nA)s2t@n*QUOp2Iwc2Af8PN+!ln zEKE;0SxyLZ6#QhVYip19cYIZ7c!_Zs&bJGq``blPH(aKJWG^=A28#uPYmlf4P$- z_rOZH>TOG)+=2@4^|=AM3~LJf`h6qwm={!d_OA_G%h2<~BmeED8+;BM4;k8)9uT@J zMJv8B&S78zhGGE|#{(9D13<3={jc7@;MZ{Nn|RhMov6;u S-(LVzJA literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_headset_black_48dp.png b/src/main/res/drawable-xxxhdpi/ic_headset_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e5f79759d2d42ee42715d885cd82c13f0655b7cb GIT binary patch literal 1574 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 AUH||9 literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_mic_black_48dp.png b/src/main/res/drawable-xxxhdpi/ic_mic_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e365a0f6d4a4b7bfb1b15dc93ed5eab4ba4d1f1f GIT binary patch literal 1529 zcmb7EX*iS#0RCniGeeje6SI?Je6AtKj7n(M9F3!KBx@^0u8>$BQAy=W!!T~`swi^J zNY>CgHr3=BLXJ|RmYqgM8Ai2^3adZ;+CTd~&wD)Y^ZtI>9_~&mN;o9|095ulGdwq4 z@QrZ!O}3#6$hCc_l@v6jT0^|xb896P?p}MmX%@%3d2~#WQhvO3k|YO ze!V>R7t;FP#9YWe;xohR11#mI+%o!9yRsa}$a5CCUApx_L%#3miMB^gk@x&Dp7lMk zg-!ir^zUu5;*XRaGm}?$e7x{rxj-x7W1$YTX3C_p(3AOHQ0>*((`Lbt7+w|Hnb^78 zrz|tb$I08PgJPT05}WMy?3Nif)R>~DX!w%$Bg8W}!jQc}=zW-81|4SX&ZoWJS=R8} z71~=bKftZMn@?{bbWQdYopgY5uW-1#DslnlFej>pEsypq8v(NfT<%M-Aao(EA&oXkcqfAC5>ynVoH z4J8h?U1G#J!ekAY>o-OqZDxWhBW*#SPsFuqxj0^TmFZfP$uUQ^_u8jZ+JX|y3w5U- zoR~1AHg#4(0x&J9FpqeM9o1O^#6y^{A!QG{q+>}VkWbJ;)l$vUSl~WTDJM}NXj3hz zv;T9_KoJl`LprXUfTwVyC4JQ_@dkh>_6h`(-Odt82xInFUH`E)K3OH;=`RyG9%_Q=5kM`T2%Nu~qUC*#Nvqe3cg;Msd)>5xV2~Q%D z!z~u_wib`(d@=0>URpvCDazg>5V z4W*~N{bYw~WKq8@hx@G5(tVhGPQPn_xpwSG2VS2;bXF^g9ip3G^>)Wa&)U-8wFtk= zntgZ_5eZso8{XAfUNK(>)pEntTRAN|yFvP#dFLOO7`>Hfdxp=119#LawWTQy-in^~ z9X!-(qt^^slt{JQkinLs;hO{?4VANm4r;r?S6h_e70Or($Q*Z%j<}j>jA(dQjR|tF zz>)m!4XV4Z{Hxj`VL(Z#ClNKs3hR0R-@voumZFsUzogT2f68&&v5Fx{0EJMfZ#s=q z&&FC8@~=*$(?U(Efl*QtcGP7DExb&PRC6;7!&O|*!9MRg!i3XJ-rJ;MtpyQEV_J1! zw~EXvy5T^FMjiNBcym_19qTkk-I~z#vd5UCXOAmQ24zG)J^O9bJEgUOR>x}2CBLxg zAcz_xLrC+WxZOaNpYIBv9C6XTzs0JbhyclP51Ca%J!Blum~Ld}y+7sFf%Zs)oN*e$ zVP?=Ek9?v?1;aD40Bz^VSs1?6G2<*T7bEQ?#P5$m^wKmBXF&1H?ajH-b4H1JkE6J_ zGclTc-Lo$piYLoLWL49Xocvg#w&qDw=_`iW&Ys)P0;yMq+fkm*)Ys(&yEg00|Pq*ypsr1_hViLk;vcopN7@Hcr z?luSuGnX~KT8-(x1IGhUcoG1`CjtKvD>l3DfE_>B^kntDpVhZ!pMyK2j_#lGFUdEX AKmY&$ literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_mic_white_48dp.png b/src/main/res/drawable-xxxhdpi/ic_mic_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..89f1608b1e4ca9191cfbe78add779e214663467d GIT binary patch literal 1664 zcmbuAdpOg39LMeCp4rrc=6)?(Q>=$pbYvOEB$v%*Xq!+or=}>1W18IWV=moJriHcK z!YYpICRUt6bX>|M>4FmJDbD%rpPuLZeg61-Vh9ce(37))SY$ueD7rwHiYnADF*-_UX?}v{=i@{=!O1RL9#mvlBH3 zrLM)jV6Yp zkFF=&H!^hGikJE;(h<(PteHWwdS=R#Y$1&yc@iz5L9r)IEw&F?kQr)TyjYl70rC8M zZW^6bnGntT61u<%GEhQ-`+IEJl`Jtj>v0bazekf2CPp)h=B8^21({t$9MJHKW{s8s z#RxyhplK&Cu`|_8y{iVuvio~zkwJij2Xte|04xC^?+*c^V7b8(0Bv~`7br>qw`3M@ zBLKILTq5sc<&Xz}5&+kD0L00m5P$=6C<1^CfHvSH$aQHzjH^5b3B=HVN$YL^&daZ5 z0f4F8ln>}&b`CpL$Eq~&)CE3jIT9lwELlN6UktmMRN2gB&#S?FT4yXwRk-X#o`>v$ylLaV;>=OE|=04|SoxP7*R@7-iY%FN58h|ztVJ&PQMpRm4 z5qmFmtx*s3b^C|_>4?9ZfF-Z1(Iyy*=rOhXOlt@Qpr-x6rTrNoz5wRp$F3eJjjbHG` zwp;t23zSqek*QVt5famgh>)p+JOpG&TI)A7|^zryWJNmqCVKOx{r z%EavGfG=!%=O#WUVu;z2(KU9!Z+RO zM+@HDd_@J=wL97`?~ex82R+Fwx@tCMGIcxn`C%0b8r$YvTqCY4@bjk^B%EtFtbOa6 zmjSiFL!%z^Bp0%*Q&jdUCZ62C>OnQVG4Ez@BH6<*qBLAZ6zVh#Kbyf@he1{d4_e9{ z#F-BlrX!iJ=O4*V_4&^$iH1LP1YN&%of#nt*IyL4AKFntY1m$amf#&aRqQVQC7I!t z!Y$)Z4Kt-UYl8xTXso-h%o|HIAT#eZ1l-oD+w`BCF0 zx)QT^SVyOg6W?!7w*5#$?za1=o{$G8i)s}2e^R|?`}iFGGlD`!1X%0TUJuqdRt1Xv zj1}=}z%R*NI&lA6LQKW|{dW5t)hyC>FhAX3kG_)S{c*^BSig2ivkXN)J24$CjSfk_Zb2J literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_room_black_48dp.png b/src/main/res/drawable-xxxhdpi/ic_room_black_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..bfcc27a40a24e875feaa4cd243a192dac0538c64 GIT binary patch literal 1691 zcmV;M24wk(P)G0000JJNkly{<+fW?EkC8p3(1-sLEU|`(_nr=o=rX*7an|nBz zY<7C!4wRuBC>buzT!L}f3Jz$P#F#KU7&9wv$zq`EefRFi6XQWMpby`>zw5ew-`D$3 zxbOUa*YA45Ip>^n&N=6tbIv*EoO3Q9Rji?nN9d-9UfyPaVG0x&W`HyF(nB|0Y+yB2 z7;+2P$a9=x3{9~yPVy}G@=0dJwXlcdjH4M=q>mqS3)AM7^C+j0QK#r)DO2R`;Rxf% zxFWA|H`nDV*hn8LV}GHIYj7Q$MwGvkY{pH}%uzIly}?=>05FfID4;oRjJ?$3XyZJ} zr~z8ZwHls5nKr?bRFhMmr4I$rF`CGsc1BPj4bw)>Y@>t%s>B22$m1x$c9RR0{0s%! zekw^^B?nQ!9iWn=b)&$0!JqwE_d^o34MoxeB&eMdilh=7NX*TQpokixiG!;RF^$q=%SFA$AA$h=?C zz*H^a6=dGyMB}f>v;te0t_LZaA8(4p0^1YIV0r;>gNUnF?1Ba=2`={{uAKMCG}AkU`k%g?&-^T?z=ES*3m9VB?W%_ieM zjg_02NPkh%e)(f3R(9oSI=U4Zb%9ze)bTzts*T_+L1uMgVLLLbi3prSMh&rq*;>kF zWYh>zIDpK0h1oiU%sQIKvjLsKJbuKpMBz)wup({DR6FB&JTY8P5gB%sHfEyTcysOq zjd?vEQ{*A0Ydhn}w6jFx1!Ueq8kwr4975*3NHo?X>>K7`>bQ|QzQtvPeeFb}mJd-` zy2$rv;#zKE7w@C8G)g@Y`86tAC62R~4q9lWjyf7?;Xd|pf(cZ%UIV|VCd;-Fm3fS! zgetLu$ow89)KQ}I4U|w15}gK$epN@dUPXy?giQIBWt)joCGVmH`hXfD^%zQ^r-{~b z3Ml&460zT+$onHvyBkGbJCXYbinw>EBywFS;vOY>3%HCT?L!ulfFGeq+eZ?X@E;Um zAF-T7`~*cBS6M-#cKi2lw&w9~6nG;nB4Jxm;C+XrRdE&t+&OAVTssQ54szg6DA4{)F5E#0 z1z3qY$cb(gU_U1}8n_hT@UxK|`KF(M$yNouD4_bOB4=)A90k$@>&T&>qCk3yTw25j zD1Zi8Oita80_c8ntOsS>>*U(a886aYVHG*I-8bK6tAaOCMxCGv$LASE88k)<4uG8~ zgMNSm0IGQl&2cBG=KtJn6wn-2;5MA~1>4i;F(z?U97A(dA5~1|SUpD{WmotdAIojY zdg;X-MrH0buEQ;55S6h@Ea$r1S5X=J8aL!#%68?;eS*Iu`#4KIQ{rx66dCssw=!j} z6B)OiX>o^;VZURV+#&{$QSY*tX>)f{L|AHoU%qZX`k3}J zM_e^MXi_~?GiThwNn2OWvXD9DRx*hG*I*W7AGeNCgcxNVnQ$FUP~z)k#&yv}(42G5 lIp>^n&N=6tbIv*E{tK=2W+sP{xTOF9002ovPDHLkV1i$p8$JL4 literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxxhdpi/ic_room_white_48dp.png b/src/main/res/drawable-xxxhdpi/ic_room_white_48dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3baf20ac556df42fa98c3bb9e36408fd5f63bbd7 GIT binary patch literal 1709 zcmV;e22%NnP)G0000JbNklYvC>01>bv$GvtJRpe3(PK@CQG5x4OVaUVgaj^5nvf?xRJ2&phLZI z;L3KP7Y=b;Od>OlGr>$~2jeLyS(e}`3>Sfx7y_l|^z^+LW1@yad(QWN`uqLQ_w|yT zbIv*EoO8}O=bUrSIp=~w1@mZO4V`q+&Aar{M}`c2^m2-By69vzi@ei83%~nTZ$KLq`?x!i84--21gYq7LyhW z6(f2`i-U>}50WPLD>m#WP4+1+%wUK#$#R=w!Wxp3qnphvp^-YOsiuxbma>H&awKP! zV!{cMah7$=(g^rE>-jIqII4JX7fHCta;kI-RMXBSlJITCg3Z`_nL3RU(|84Yn-mNF zfvpV7G)6p57F&lD2PQFurK>Dd9%$hjmaqfUmX$Hqm4jtn-cWr!MV3@UV7!$!3XQG<<)LdQ95 z)X5O_*to3FaU2_sGDH(L&MS1hiH)T)#KYM5w?fBmY;2JswqfItLdWyi=#e3gU}KL$ z$3|@A_?nDxJHy!6uF$apE9+&14Om&F(9w*Qb5zR!HGGJb7KM&!*lCvmR$`|?;o}Te zE-_67Vmg8#}M4KWLv z)i$L8)3`#6t}|2Vz;B6Br_zEM3=o?k<|;jSp4hyoG@*eEF&Sc>(uF?~lNXgX%q2@K zvdmNZ@B*>uR2ngZE5zU$vy@J3BnI1*R!rc3gsz_{N-vfZx}Pe|sNggqJ43b7jaEX| zru5@&LiKl*0`4V8h;rPk(m*F6`h!XZbzCGg{nV>;@MA*Lp;AH_-Gt;M6)G*Tlr#nMBC z+?O$zD-^?3zA1MjETb4YdNYW4GZiQVWWtZHo@fF@9 z38$%*8x8Jc0BhH|OK!Ai$J$D{v0yKj{vtOvOraMmA23yJthkRX7P8zYmk)l1g>`cI zp^Vok)IQ4O^2HR+P>BC9Rjv@+!vOiZ&UfSr#d7l1E@y$4$j3`^HmKz!V|9{RIV;Se zkFn@yj+`aFPma;b(JW_;^^DdAxg_u^qp?>m8BE|5w{nV!a!Fw}m$;cr%$7?M_mg2H zS-vNiG};+SyIe7_gB#f)R~%H*#g}zaDOW5^<~=^|G?V3uiP>D>GZ&aGS8Oa`fKLpt zKyEzH#xOa4BsX4I&1yO4oO8}O=bUrSIp>^n&IRrNS7!nBCYOdW00000NkvXXu0mjf D1!p9K literal 0 HcmV?d00001 diff --git a/src/main/res/layout/media_preview.xml b/src/main/res/layout/media_preview.xml index ad7d5d034..07da56f4e 100644 --- a/src/main/res/layout/media_preview.xml +++ b/src/main/res/layout/media_preview.xml @@ -9,6 +9,7 @@ android:layout_height="@dimen/media_preview_size" android:background="@color/black54" android:layout_centerInParent="true" + android:scaleType="center" android:layout_margin="12dp"/> + + + + + + diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index 85a30f669..47d975634 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -63,6 +63,11 @@ 24dp 16dp + @drawable/ic_description_black_48dp + @drawable/ic_mic_black_48dp + @drawable/ic_headset_black_48dp + @drawable/ic_room_black_48dp + @drawable/ic_group_add_white_24dp @drawable/ic_person_add_white_24dp @drawable/ic_cancel_black_24dp @@ -164,6 +169,11 @@ 24dp 16dp + @drawable/ic_description_white_48dp + @drawable/ic_mic_white_48dp + @drawable/ic_headset_white_48dp + @drawable/ic_room_white_48dp + @drawable/ic_group_add_white_24dp @drawable/ic_person_add_white_24dp @drawable/ic_cancel_white_24dp