From efe2f49487a6c860a3bbf7b39bc793eeaa1a7df3 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 29 Apr 2020 12:40:31 +0200 Subject: [PATCH] merge changes from PixArtMessenger --- .gitignore | 8 +- .gitlab-ci.yml | 57 + .tx/config | 21 - CHANGELOG.md | 978 +++---- README-en.md | 140 + README.md | 527 +--- art/Feature_OMEMO.png | Bin 0 -> 51865 bytes art/conversations_baloon.svg | 237 ++ art/conversations_mono.svg | 462 +--- art/conversations_mono_dashed.png | Bin 0 -> 20417 bytes art/conversations_mono_dashed.svg | 568 ++--- art/date_bubble_grey.svg | 168 -- art/date_bubble_white.svg | 168 -- art/ic_launcher.svg | 427 ---- art/ic_no_results_black.svg | 54 - art/ic_no_results_white.svg | 54 - art/ic_notifications_none_white80.svg | 54 - art/ic_notifications_off_white80.svg | 54 - art/ic_notifications_paused_white80.svg | 54 - art/ic_notifications_white80.svg | 54 - art/ic_read_indicator.svg | 30 + art/ic_received_indicator.svg | 6 + art/ic_search_black.svg | 54 - art/ic_search_white.svg | 54 - art/ic_send_cancel_away.svg | 76 +- art/ic_send_cancel_dnd.svg | 76 +- art/ic_send_cancel_offline.svg | 76 +- art/ic_send_cancel_offline_white.svg | 54 - art/ic_send_cancel_online.svg | 76 +- art/ic_send_location_away.svg | 76 +- art/ic_send_location_dnd.svg | 76 +- art/ic_send_location_offline.svg | 76 +- art/ic_send_location_offline_white.svg | 54 - art/ic_send_location_online.svg | 76 +- art/ic_send_photo_away.svg | 83 +- art/ic_send_photo_dnd.svg | 83 +- art/ic_send_photo_offline.svg | 83 +- art/ic_send_photo_offline_white.svg | 60 - art/ic_send_photo_online.svg | 83 +- art/ic_send_picture_away.svg | 78 +- art/ic_send_picture_dnd.svg | 78 +- art/ic_send_picture_offline.svg | 78 +- art/ic_send_picture_offline_white.svg | 55 - art/ic_send_picture_online.svg | 78 +- art/ic_send_text_away.svg | 98 +- art/ic_send_text_dnd.svg | 98 +- art/ic_send_text_offline.svg | 99 +- art/ic_send_text_offline_white.svg | 70 - art/ic_send_text_online.svg | 98 +- art/ic_send_video_away.svg | 28 + art/ic_send_video_dnd.svg | 28 + art/ic_send_video_offline.svg | 28 + art/ic_send_video_online.svg | 28 + art/ic_send_videocam_away.svg | 54 - art/ic_send_videocam_dnd.svg | 54 - art/ic_send_videocam_offline.svg | 54 - art/ic_send_videocam_offline_white.svg | 54 - art/ic_send_videocam_online.svg | 55 - art/ic_send_voice_away.svg | 76 +- art/ic_send_voice_dnd.svg | 76 +- art/ic_send_voice_offline.svg | 76 +- art/ic_send_voice_offline_white.svg | 54 - art/ic_send_voice_online.svg | 76 +- art/ic_verified_fingerprint.svg | 76 +- art/icon.png | Bin 0 -> 2703 bytes art/logo.png | Bin 43688 -> 89296 bytes art/logo_highres.png | Bin 0 -> 70883 bytes art/main_logo.svg | 1 - art/marker.svg | 110 - art/message_bubble_received.svg | 219 +- art/message_bubble_received_dark.svg | 165 -- art/message_bubble_received_grey.svg | 167 -- art/message_bubble_received_warning.svg | 219 +- art/message_bubble_received_white.svg | 219 +- art/message_bubble_sent.svg | 219 +- art/message_bubble_sent_grey.svg | 167 -- art/message_bubble_sent_white.svg | 60 + art/nightly-qr.png | Bin 0 -> 1019 bytes art/omemo_logo.svg | 432 ++-- art/open_pdf_black.svg | 55 - art/open_pdf_white.svg | 55 - art/{play_gif_black.svg => play_gif.svg} | 22 +- art/play_gif_white.svg | 68 - art/play_video.svg | 29 + art/play_video_black.svg | 59 - art/play_video_white.svg | 59 - art/qr-code_suport.png | Bin 0 -> 166042 bytes art/qr-code_suport_small.png | Bin 0 -> 49123 bytes art/qrcode-scan.svg | 48 - art/quicksy.svg | 366 --- art/quicksy_main_logo.svg | 1 - art/quicksy_mono.svg | 181 -- art/quicksy_splash_logo.svg | 1 - art/render.rb | 61 +- art/schulchat/logo.png | Bin 0 -> 11870 bytes .../de/Screenshot_20180128-201225.png | Bin 0 -> 195262 bytes .../de/Screenshot_20180128-201239.png | Bin 0 -> 172344 bytes .../de/Screenshot_20180128-201246.png | Bin 0 -> 116959 bytes .../de/Screenshot_20180128-201335.png | Bin 0 -> 93344 bytes .../de/Screenshot_20180128-201731.png | Bin 0 -> 599922 bytes .../de/Screenshot_20180128-201735.png | Bin 0 -> 1713003 bytes .../de/Screenshot_20180220-113650.png | Bin 0 -> 160754 bytes .../de/Screenshot_20180220-113816.png | Bin 0 -> 154968 bytes .../de/Screenshot_20180220-113836.png | Bin 0 -> 55004 bytes .../de/Screenshot_20180220-113952.png | Bin 0 -> 72445 bytes .../de/Screenshot_20180220-114022.png | Bin 0 -> 75245 bytes art/screenshots/de/index | 1 + .../en/Screenshot_20180220-114149.png | Bin 0 -> 187778 bytes .../en/Screenshot_20180220-114227.png | Bin 0 -> 151773 bytes .../en/Screenshot_20180220-114239.png | Bin 0 -> 154084 bytes .../en/Screenshot_20180220-114301.png | Bin 0 -> 53531 bytes .../en/Screenshot_20180220-114333.png | Bin 0 -> 61781 bytes .../en/Screenshot_20180220-114345.png | Bin 0 -> 74433 bytes .../en/Screenshot_20180220-115013.png | Bin 0 -> 120128 bytes .../en/Screenshot_20180220-115016.png | Bin 0 -> 116215 bytes .../en/Screenshot_20180220-115506.png | Bin 0 -> 499757 bytes .../en/Screenshot_20180220-115525.png | Bin 0 -> 1701786 bytes art/screenshots/en/index | 1 + art/splash_logo.svg | 1 - build.gradle | 289 +-- contributing.json | 40 + crowdin.yml | 6 + doap.rdf | 340 --- docs/XEPs.md | 2 +- docs/encryption.md | 18 + docs/observations.md | 10 +- .../metadata/android/en-US/changelogs/349.txt | 4 - .../metadata/android/en-US/changelogs/351.txt | 3 - .../metadata/android/en-US/changelogs/353.txt | 4 - .../metadata/android/en-US/changelogs/360.txt | 1 - .../metadata/android/en-US/changelogs/362.txt | 1 - .../metadata/android/en-US/changelogs/364.txt | 2 - .../metadata/android/en-US/changelogs/367.txt | 2 - .../android/en-US/full_description.txt | 39 - .../en-US/images/phoneScreenshots/01.png | Bin 423522 -> 0 bytes .../en-US/images/phoneScreenshots/02.png | Bin 459456 -> 0 bytes .../en-US/images/phoneScreenshots/03.png | Bin 486008 -> 0 bytes .../en-US/images/phoneScreenshots/04.png | Bin 347570 -> 0 bytes .../en-US/images/phoneScreenshots/05.png | Bin 290959 -> 0 bytes .../en-US/images/phoneScreenshots/06.png | Bin 171666 -> 0 bytes .../en-US/images/phoneScreenshots/07.png | Bin 428560 -> 0 bytes .../en-US/images/tenInchScreenshots/01.png | Bin 400207 -> 0 bytes .../en-US/images/tenInchScreenshots/02.png | Bin 390902 -> 0 bytes .../en-US/images/tenInchScreenshots/03.png | Bin 87592 -> 0 bytes .../en-US/images/tenInchScreenshots/04.png | Bin 381234 -> 0 bytes .../android/en-US/short_description.txt | 1 - gradle.properties | 6 + gradlew | 110 +- gradlew.bat | 14 +- libs/android-transcoder/.gitignore | 1 + libs/android-transcoder/CHANGELOG.md | 17 + libs/android-transcoder/build.gradle | 30 + libs/android-transcoder/proguard-rules.pro | 17 + .../src/main/AndroidManifest.xml | 5 + .../androidtranscoder/MediaTranscoder.java | 248 ++ .../compat/MediaCodecBufferCompatWrapper.java | 42 + .../compat/MediaCodecListCompat.java | 102 + .../engine/AudioChannel.java | 231 ++ .../engine/AudioRemixer.java | 66 + .../engine/AudioTrackTranscoder.java | 209 ++ .../engine/InputSurface.java | 175 ++ .../engine/InvalidOutputFormatException.java | 22 + .../engine/MediaFormatValidator.java | 50 + .../engine/MediaTranscoderEngine.java | 211 ++ .../engine/OutputSurface.java | 276 ++ .../engine/PassThroughTrackTranscoder.java | 100 + .../androidtranscoder/engine/QueuedMuxer.java | 140 + .../engine/TextureRender.java | 219 ++ .../engine/TrackTranscoder.java | 50 + .../engine/VideoTrackTranscoder.java | 231 ++ .../format/Android16By9FormatStrategy.java | 88 + .../format}/Android720pFormatStrategy.java | 65 +- .../format/AndroidStandardFormatStrategy.java | 99 + .../format/ExportPreset960x540Strategy.java | 44 + .../format/MediaFormatExtraConstants.java | 56 + .../format/MediaFormatPresets.java | 80 + .../format/MediaFormatStrategy.java | 39 + .../format/MediaFormatStrategyPresets.java | 82 + .../OutputFormatUnavailableException.java | 22 + .../androidtranscoder/utils/AvcCsdUtils.java | 69 + .../androidtranscoder/utils/AvcSpsUtils.java | 26 + .../utils/ISO6709LocationParser.java | 37 + .../utils/MediaExtractorUtils.java | 63 + libs/gson-1.1/build.gradle | 2 + libs/gson-1.1/gson-1.1.jar | Bin 0 -> 126300 bytes libs/xmpp-addr/build.gradle | 2 +- .../main/java/rocks/xmpp/addr/FullJid.java | 8 +- .../src/main/java/rocks/xmpp/addr/Jid.java | 3 +- metadata/de/description.txt | 32 + metadata/de/summary.txt | 1 + metadata/en-US/description.txt | 29 + metadata/en-US/featureGraphic.png | Bin 0 -> 93947 bytes metadata/en-US/phoneScreenshots/00.png | Bin 0 -> 261799 bytes metadata/en-US/phoneScreenshots/01.png | Bin 0 -> 550203 bytes metadata/en-US/phoneScreenshots/02.png | Bin 0 -> 508619 bytes metadata/en-US/phoneScreenshots/03.png | Bin 0 -> 410456 bytes metadata/en-US/phoneScreenshots/04.png | Bin 0 -> 446658 bytes metadata/en-US/phoneScreenshots/05.png | Bin 0 -> 879578 bytes metadata/en-US/phoneScreenshots/06.png | Bin 0 -> 144342 bytes metadata/en-US/summary.txt | 1 + proguard-rules.pro | 31 +- screenshots.png | Bin 170292 -> 0 bytes screenshots.xcf | Bin 4889347 -> 0 bytes settings.gradle | 3 +- .../conversations/utils/EmojiWrapper.java | 47 - src/conversations/AndroidManifest.xml | 43 - .../conversations/ui/PickServerActivity.java | 104 - src/conversations/new_launcher-web.png | Bin 19483 -> 0 bytes .../res/drawable-hdpi/ic_notification.png | Bin 798 -> 0 bytes .../drawable-hdpi/ic_unarchive_white_24dp.png | Bin 258 -> 0 bytes .../res/drawable-hdpi/main_logo.png | Bin 23948 -> 0 bytes .../res/drawable-hdpi/splash_logo.png | Bin 16643 -> 0 bytes .../res/drawable-mdpi/ic_notification.png | Bin 554 -> 0 bytes .../drawable-mdpi/ic_unarchive_white_24dp.png | Bin 181 -> 0 bytes .../res/drawable-mdpi/main_logo.png | Bin 15309 -> 0 bytes .../res/drawable-mdpi/splash_logo.png | Bin 10492 -> 0 bytes .../res/drawable-xhdpi/ic_notification.png | Bin 1075 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 273 -> 0 bytes .../res/drawable-xhdpi/main_logo.png | Bin 33496 -> 0 bytes .../res/drawable-xhdpi/splash_logo.png | Bin 23030 -> 0 bytes .../res/drawable-xxhdpi/ic_notification.png | Bin 1619 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 391 -> 0 bytes .../res/drawable-xxhdpi/main_logo.png | Bin 52900 -> 0 bytes .../res/drawable-xxhdpi/splash_logo.png | Bin 36548 -> 0 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 2117 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 503 -> 0 bytes .../res/drawable-xxxhdpi/main_logo.png | Bin 74056 -> 0 bytes .../res/drawable-xxxhdpi/splash_logo.png | Bin 50538 -> 0 bytes .../res/drawable/ic_launcher_foreground.xml | 24 - .../res/layout/activity_pick_server.xml | 102 - src/conversations/res/menu/manageaccounts.xml | 32 - src/conversations/res/menu/welcome_menu.xml | 16 - .../res/mipmap-anydpi-v26/new_launcher.xml | 5 - .../mipmap-anydpi-v26/new_launcher_round.xml | 5 - .../res/mipmap-hdpi/new_launcher.png | Bin 2431 -> 0 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 4220 -> 0 bytes .../res/mipmap-mdpi/new_launcher.png | Bin 1788 -> 0 bytes .../res/mipmap-mdpi/new_launcher_round.png | Bin 2767 -> 0 bytes .../res/mipmap-xhdpi/new_launcher.png | Bin 3334 -> 0 bytes .../res/mipmap-xhdpi/new_launcher_round.png | Bin 6040 -> 0 bytes .../res/mipmap-xxhdpi/new_launcher.png | Bin 4837 -> 0 bytes .../res/mipmap-xxhdpi/new_launcher_round.png | Bin 9299 -> 0 bytes .../res/mipmap-xxxhdpi/new_launcher.png | Bin 6584 -> 0 bytes .../res/mipmap-xxxhdpi/new_launcher_round.png | Bin 13131 -> 0 bytes src/conversations/res/values-ar/strings.xml | 6 - src/conversations/res/values-bg/strings.xml | 8 - src/conversations/res/values-de/strings.xml | 11 - src/conversations/res/values-el/strings.xml | 11 - src/conversations/res/values-es/strings.xml | 11 - src/conversations/res/values-eu/strings.xml | 8 - src/conversations/res/values-fr/strings.xml | 11 - src/conversations/res/values-gl/strings.xml | 11 - src/conversations/res/values-hu/strings.xml | 11 - src/conversations/res/values-it/strings.xml | 13 - src/conversations/res/values-nl/strings.xml | 11 - src/conversations/res/values-pl/strings.xml | 11 - .../res/values-pt-rBR/strings.xml | 11 - .../res/values-ro-rRO/strings.xml | 11 - src/conversations/res/values-ru/strings.xml | 6 - src/conversations/res/values-sv/strings.xml | 5 - src/conversations/res/values-uk/strings.xml | 11 - .../res/values-zh-rCN/strings.xml | 11 - src/conversations/res/values/strings.xml | 11 - .../services/PushManagementService.java | 33 - .../conversations/services}/EmojiService.java | 16 +- .../services/PushManagementService.java | 37 + .../ui/widget/EmojiWrapperEditText.java | 3 +- .../utils/InstallReferrerUtils.java | 2 - src/main/AndroidManifest.xml | 202 +- src/main/assets/animate.min.css | 11 + src/main/assets/font-awesome.min.css | 4 + src/main/assets/fonts/weather.ttf | Bin 0 -> 99564 bytes src/main/assets/images/layers-2x.png | Bin 0 -> 1259 bytes src/main/assets/images/layers.png | Bin 0 -> 696 bytes src/main/assets/images/marker-icon-2x.png | Bin 0 -> 2464 bytes src/main/assets/images/marker-icon.png | Bin 0 -> 1466 bytes src/main/assets/images/marker-shadow.png | Bin 0 -> 618 bytes src/main/assets/jquery.min.js | 2 + src/main/assets/leaflet.css | 640 +++++ src/main/assets/leaflet.js | 5 + src/main/assets/leaflet.js.map | 1 + src/main/assets/map.html | 84 + .../java/de/pixart/messenger/ui/StartUI.java | 115 + .../java/eu/siacs/conversations/Config.java | 84 +- .../android/AbstractPhoneContact.java | 2 +- .../android/JabberIdContact.java | 6 +- .../crypto/DomainHostnameVerifier.java | 2 +- .../conversations/crypto/OmemoSetting.java | 73 +- .../conversations/crypto/OtrService.java | 312 +++ .../crypto/PgpDecryptionService.java | 456 ++-- .../siacs/conversations/crypto/PgpEngine.java | 506 ++-- .../crypto/XmppDomainVerifier.java | 2 +- .../crypto/axolotl/AxolotlService.java | 11 +- .../axolotl/BrokenSessionException.java | 2 +- .../crypto/axolotl/CryptoFailedException.java | 18 +- .../crypto/axolotl/FingerprintStatus.java | 8 +- .../axolotl/NoSessionsCreatedException.java | 2 +- .../NotEncryptedForThisDeviceException.java | 10 +- .../axolotl/OnMessageCreatedCallback.java | 2 +- .../axolotl/OutdatedSenderException.java | 2 +- .../crypto/axolotl/SQLiteAxolotlStore.java | 801 +++--- .../crypto/axolotl/XmppAxolotlMessage.java | 6 +- .../crypto/axolotl/XmppAxolotlSession.java | 287 ++- .../conversations/crypto/sasl/Anonymous.java | 30 +- .../conversations/crypto/sasl/DigestMd5.java | 140 +- .../conversations/crypto/sasl/External.java | 31 +- .../conversations/crypto/sasl/Plain.java | 40 +- .../crypto/sasl/SaslMechanism.java | 97 +- .../crypto/sasl/ScramMechanism.java | 8 +- .../conversations/crypto/sasl/ScramSha1.java | 32 +- .../crypto/sasl/ScramSha256.java | 32 +- .../conversations/crypto/sasl/Tokenizer.java | 120 +- .../entities/AbstractEntity.java | 18 +- .../siacs/conversations/entities/Account.java | 45 +- .../conversations/entities/Blockable.java | 14 +- .../conversations/entities/Bookmark.java | 414 +-- .../siacs/conversations/entities/Contact.java | 998 ++++---- .../conversations/entities/Conversation.java | 264 +- .../entities/Conversational.java | 17 +- .../entities/DownloadableFile.java | 131 +- .../eu/siacs/conversations/entities/Edit.java | 2 +- .../entities/IndividualMessage.java | 155 +- .../conversations/entities/ListItem.java | 53 +- .../conversations/entities/MTMDecision.java | 12 +- .../siacs/conversations/entities/Message.java | 1930 +++++++------- .../conversations/entities/MucOptions.java | 13 +- .../conversations/entities/Presence.java | 159 +- .../entities/PresenceTemplate.java | 116 +- .../conversations/entities/Presences.java | 261 +- .../conversations/entities/RawBlockable.java | 9 +- .../conversations/entities/ReadByMarker.java | 275 +- .../entities/ReceiptRequest.java | 66 +- .../eu/siacs/conversations/entities/Room.java | 2 - .../siacs/conversations/entities/Roster.java | 149 +- .../entities/ServiceDiscoveryResult.java | 601 +++-- .../entities/StubConversation.java | 62 +- .../conversations/entities/Transferable.java | 44 +- .../entities/TransferablePlaceholder.java | 47 +- .../generator/AbstractGenerator.java | 22 +- .../conversations/generator/IqGenerator.java | 24 +- .../generator/MessageGenerator.java | 56 +- .../generator/PresenceGenerator.java | 138 +- .../http/CustomURLStreamHandlerFactory.java | 1 - .../http/HttpConnectionManager.java | 7 +- .../http/HttpDownloadConnection.java | 73 +- .../http/HttpUploadConnection.java | 407 +-- .../eu/siacs/conversations/http/Method.java | 36 +- .../http/NoSSLv3SocketFactory.java | 419 +++ .../http/P1S3UrlStreamHandler.java | 38 +- .../conversations/http/SlotRequester.java | 252 +- .../http/services/MuclumbusService.java | 8 +- .../conversations/parser/AbstractParser.java | 262 +- .../siacs/conversations/parser/IqParser.java | 5 +- .../conversations/parser/MessageParser.java | 166 +- .../conversations/parser/PresenceParser.java | 670 +++-- .../persistance/DatabaseBackend.java | 321 ++- .../persistance/FileBackend.java | 1390 +++++----- .../persistance/OnPhoneContactsMerged.java | 2 +- .../services/AbstractConnectionManager.java | 24 +- .../AbstractQuickConversationsService.java | 8 +- .../conversations/services/AlarmReceiver.java | 23 + .../AttachFileToConversationRunnable.java | 299 +-- .../{ui/service => services}/AudioPlayer.java | 31 +- .../conversations/services/AvatarService.java | 1157 ++++----- .../services/BarcodeProvider.java | 316 +-- .../services/ChannelDiscoveryService.java | 8 +- .../services/ContactChooserTargetService.java | 2 +- .../conversations/services/EventReceiver.java | 3 +- .../services/ExportBackupService.java | 189 +- .../services/ImportBackupService.java | 13 +- .../conversations/services/MediaPlayer.java | 11 +- .../services/MemorizingTrustManager.java | 7 +- .../services/MessageArchiveService.java | 1236 ++++----- .../services/MessageSearchTask.java | 183 +- .../services/NotificationService.java | 178 +- .../services/QuickConversationsService.java | 0 .../services/ShortcutService.java | 41 +- .../conversations/services/UpdateService.java | 229 ++ .../services/XmppConnectionService.java | 747 +++++- .../siacs/conversations/ui/AboutActivity.java | 56 +- .../conversations/ui/AboutPreference.java | 24 +- .../AbstractSearchableListItemActivity.java | 181 +- .../conversations/ui/ActionBarActivity.java | 36 +- .../conversations/ui/BlockContactDialog.java | 99 +- .../conversations/ui/BlocklistActivity.java | 173 +- .../ui/ChangePasswordActivity.java | 197 +- .../ui/ChannelDiscoveryActivity.java | 36 +- ...hooseAccountForProfilePictureActivity.java | 12 +- .../ui/ChooseContactActivity.java | 18 +- .../ui/ConferenceDetailsActivity.java | 288 ++- .../ui/ContactDetailsActivity.java | 333 ++- .../ui/ConversationActivity.java | 16 - .../ui/ConversationFragment.java | 907 +++++-- .../ui/ConversationsActivity.java | 333 ++- .../ui/ConversationsOverviewFragment.java | 464 ++-- .../ui/CreatePrivateGroupChatDialog.java | 35 +- .../ui/CreatePublicChannelDialog.java | 37 +- .../conversations/ui/EditAccountActivity.java | 628 +++-- .../conversations/ui/EnterJidDialog.java | 406 +-- .../conversations/ui/EnterNameActivity.java | 53 +- .../ui/ImportBackupActivity.java | 64 +- .../siacs/conversations/ui/IntroActivity.java | 192 ++ .../ui/JoinConferenceDialog.java | 193 +- .../conversations/ui/LocationActivity.java | 328 +-- .../conversations/ui/MagicCreateActivity.java | 116 +- .../ui/ManageAccountActivity.java | 74 +- .../ui/MediaBrowserActivity.java | 199 +- .../conversations/ui/MediaViewerActivity.java | 502 ++++ .../conversations/ui/MemorizingActivity.java | 130 +- .../conversations/ui/MucUsersActivity.java | 14 +- .../siacs/conversations/ui/OmemoActivity.java | 359 ++- ...ublishGroupChatProfilePictureActivity.java | 19 +- .../ui/PublishProfilePictureActivity.java | 26 +- .../conversations/ui/RecordingActivity.java | 39 +- .../siacs/conversations/ui/ScanActivity.java | 451 ++-- .../conversations/ui/SearchActivity.java | 402 +-- .../conversations/ui/SetSettingsActivity.java | 185 ++ .../conversations/ui/SettingsActivity.java | 891 ++++--- .../conversations/ui/SettingsFragment.java | 97 +- .../ui/ShareLocationActivity.java | 407 +-- .../ui/ShareViaAccountActivity.java | 6 +- .../conversations/ui/ShareWithActivity.java | 53 +- .../conversations/ui/ShortcutActivity.java | 14 +- .../ui/ShowLocationActivity.java | 349 ++- .../ui/StartConversationActivity.java | 2246 ++++++++--------- .../conversations/ui/TimePreference.java | 136 +- .../conversations/ui/TrustKeysActivity.java | 766 +++--- .../eu/siacs/conversations/ui/UiCallback.java | 6 +- .../ui/UiInformableCallback.java | 2 +- .../conversations/ui/UpdaterActivity.java | 441 ++++ .../conversations/ui/UriHandlerActivity.java | 26 +- .../conversations/ui/VerifyOTRActivity.java | 450 ++++ .../conversations/ui/WelcomeActivity.java | 98 +- .../siacs/conversations/ui/XmppActivity.java | 2092 +++++++++------ .../siacs/conversations/ui/XmppFragment.java | 16 +- .../ui/adapter/AccountAdapter.java | 16 +- .../ui/adapter/BackupFileAdapter.java | 15 +- .../adapter/ChannelSearchResultAdapter.java | 14 +- .../ui/adapter/ConversationAdapter.java | 165 +- .../ui/adapter/KnownHostsAdapter.java | 20 +- .../ui/adapter/ListItemAdapter.java | 215 +- .../ui/adapter/MediaAdapter.java | 133 +- .../ui/adapter/MediaPreviewAdapter.java | 159 +- .../ui/adapter/MessageAdapter.java | 943 +++++-- .../ui/adapter/PresenceTemplateAdapter.java | 87 +- .../conversations/ui/adapter/UserAdapter.java | 15 +- .../ui/adapter/UserPreviewAdapter.java | 12 +- .../ui/forms/FormBooleanFieldWrapper.java | 114 +- .../ui/forms/FormFieldFactory.java | 31 +- .../ui/forms/FormFieldWrapper.java | 122 +- .../ui/forms/FormJidSingleFieldWrapper.java | 54 +- .../ui/forms/FormTextFieldWrapper.java | 138 +- .../conversations/ui/forms/FormWrapper.java | 98 +- .../ui/interfaces/OnAvatarPublication.java | 6 +- .../ui/interfaces/OnBackendConnected.java | 5 +- .../ui/interfaces/OnConversationArchived.java | 5 +- .../ui/interfaces/OnConversationRead.java | 4 +- .../ui/interfaces/OnConversationSelected.java | 3 +- .../OnConversationsListItemUpdated.java | 4 +- .../ui/interfaces/OnMediaLoaded.java | 2 +- .../interfaces/OnSearchResultsAvailable.java | 5 +- .../ui/service/CameraManager.java | 31 +- .../conversations/ui/text/DividerSpan.java | 32 +- .../conversations/ui/text/FixedURLSpan.java | 74 +- .../conversations/ui/text/QuoteSpan.java | 75 +- .../conversations/ui/util/ActivityResult.java | 24 +- .../conversations/ui/util/Attachment.java | 91 +- .../ui/util/AvatarWorkerTask.java | 32 +- .../conversations/ui/util/ChangeWatcher.java | 30 +- .../ui/util/ConversationMenuConfigurator.java | 175 +- .../conversations/ui/util/DateSeparator.java | 21 +- .../ui/util/DelayedHintHelper.java | 24 +- .../util/EditMessageActionModeCallback.java | 2 +- .../conversations/ui/util/GridManager.java | 16 +- .../conversations/ui/util/IntroHelper.java | 40 + .../conversations/ui/util/JidDialog.java | 4 +- .../conversations/ui/util/ListViewUtils.java | 93 +- .../conversations/ui/util/LocationHelper.java | 72 - .../ui/util/MucConfiguration.java | 13 +- .../ui/util/MucDetailsContextMenuHelper.java | 181 +- .../conversations/ui/util/MyLinkify.java | 47 +- .../ui/util/PendingActionHelper.java | 4 +- .../conversations/ui/util/PendingItem.java | 36 +- .../ui/util/PresenceSelector.java | 168 +- .../conversations/ui/util/ScrollState.java | 61 +- .../ui/util/SendButtonAction.java | 91 +- .../conversations/ui/util/SendButtonTool.java | 313 +-- .../conversations/ui/util/ShareUtil.java | 182 +- .../ui/util/SoftKeyboardUtils.java | 56 +- .../ui/util/StyledAttributes.java | 45 +- .../conversations/ui/util/UriHelper.java | 30 - .../siacs/conversations/ui/util/ViewUtil.java | 56 +- .../ui/widget/ClickableMovementMethod.java | 56 +- .../conversations/ui/widget/CopyTextView.java | 87 +- .../ui/widget/DisabledActionModeCallback.java | 33 +- .../conversations/ui/widget/EditMessage.java | 13 +- .../ui/widget/FailedCountCustomView.java | 77 + .../widget/ImmediateAutoCompleteTextView.java | 25 +- .../ui/widget/ListSelectionManager.java | 2 +- .../siacs/conversations/ui/widget/Marker.java | 52 - .../conversations/ui/widget/MyLocation.java | 54 - .../conversations/ui/widget/RichLinkView.java | 187 ++ .../conversations/ui/widget/ScannerView.java | 25 +- .../ui/widget/SquareFrameLayout.java | 2 +- .../ui/widget/SwipeRefreshListFragment.java | 148 -- .../ui/widget/TextInputEditText.java | 10 +- .../ui/widget/UnreadCountCustomView.java | 19 +- .../conversations/utils/AccountUtils.java | 39 +- .../utils/Android360pFormatStrategy.java | 75 - .../utils/AndroidUsingExecLowPriority.java | 110 +- .../utils/AndroidUsingLinkProperties.java | 8 +- .../conversations/utils/BackupFileHeader.java | 3 +- .../conversations/utils/Cancellable.java | 60 +- .../utils/CharSequenceUtils.java | 90 +- .../siacs/conversations/utils/Checksum.java | 38 +- .../conversations/utils/Compatibility.java | 47 +- .../utils/ConversationsFileObserver.java | 29 +- .../conversations/utils/CryptoHelper.java | 4 +- .../conversations/utils/CursorUtils.java | 3 +- .../conversations/utils/EmojiWrapper.java | 27 +- .../siacs/conversations/utils/Emoticons.java | 456 ++-- .../utils/EncryptDecryptFile.java | 73 + .../conversations/utils/ExceptionHandler.java | 32 +- .../conversations/utils/ExceptionHelper.java | 36 +- .../siacs/conversations/utils/ExifHelper.java | 4 +- .../siacs/conversations/utils/FileUtils.java | 295 ++- .../utils/FirstStartManager.java | 29 + .../siacs/conversations/utils/FtsUtils.java | 153 +- .../siacs/conversations/utils/GeoHelper.java | 223 +- .../java/eu/siacs/conversations/utils/IP.java | 2 +- .../conversations/utils/ImStyleParser.java | 2 +- .../utils/IrregularUnicodeDetector.java | 399 ++- .../siacs/conversations/utils/JidHelper.java | 2 +- .../conversations/utils/LanguageUtils.java | 11 +- .../conversations/utils/LocationHelper.java | 51 + .../conversations/utils/LocationProvider.java | 69 - .../{ui/util => utils}/MenuDoubleTabUtil.java | 28 +- .../conversations/utils/MessageUtils.java | 105 +- .../siacs/conversations/utils/MetaData.java | 74 + .../siacs/conversations/utils/MimeUtils.java | 50 +- .../{xml => utils}/Namespace.java | 23 +- .../utils/NickValidityChecker.java | 2 +- .../utils/OnPhoneContactsLoadedListener.java | 2 +- .../siacs/conversations/utils/PRNGFixes.java | 326 +++ .../siacs/conversations/utils/Patterns.java | 169 +- .../conversations/utils/PermissionUtils.java | 11 +- .../conversations/utils/PhoneHelper.java | 82 +- .../conversations/utils/QuickLoader.java | 45 +- .../ReplacingSerialSingleThreadExecutor.java | 36 +- .../utils/ReplacingTaskManager.java | 37 +- .../siacs/conversations/utils/Resolver.java | 367 ++- .../conversations/utils/RichPreview.java | 325 +++ .../conversations/utils/SSLSocketHelper.java | 8 +- .../utils/SerialSingleThreadExecutor.java | 2 + .../conversations/utils/SignupUtils.java | 17 +- .../utils/SocksSocketFactory.java | 128 +- .../conversations/utils/StylingHelper.java | 347 +-- .../conversations/utils/TLSSocketFactory.java | 15 +- .../conversations/utils/ThemeHelper.java | 183 +- .../conversations/utils/TimeframeUtils.java | 66 +- .../conversations/utils/TorServiceUtils.java | 2 +- .../siacs/conversations/utils/UIHelper.java | 1051 ++++---- .../conversations/utils/WakeLockHelper.java | 40 +- .../conversations/utils/WeakReferenceSet.java | 32 +- .../conversations/utils/XEP0392Helper.java | 7 +- .../siacs/conversations/utils/XmlHelper.java | 46 +- .../eu/siacs/conversations/utils/XmppUri.java | 19 +- .../eu/siacs/conversations/xml/Element.java | 332 ++- .../conversations/xml/LocalizedContent.java | 4 +- .../java/eu/siacs/conversations/xml/Tag.java | 156 +- .../eu/siacs/conversations/xml/TagWriter.java | 196 +- .../conversations/xml/XmlElementReader.java | 3 +- .../eu/siacs/conversations/xml/XmlReader.java | 184 +- .../siacs/conversations/xmpp/InvalidJid.java | 212 +- .../xmpp/OnAdvancedStreamFeaturesLoaded.java | 2 +- .../conversations/xmpp/OnBindListener.java | 2 +- .../xmpp/OnContactStatusChanged.java | 2 +- .../xmpp/OnIqPacketReceived.java | 2 +- .../xmpp/OnKeyStatusUpdated.java | 2 +- .../xmpp/OnMessageAcknowledged.java | 2 +- .../xmpp/OnMessagePacketReceived.java | 2 +- .../xmpp/OnNewKeysAvailable.java | 0 .../xmpp/OnPresencePacketReceived.java | 2 +- .../conversations/xmpp/OnStatusChanged.java | 2 +- .../conversations/xmpp/OnUpdateBlocklist.java | 16 +- .../eu/siacs/conversations/xmpp/Patches.java | 6 +- .../conversations/xmpp/XmppConnection.java | 273 +- .../xmpp/chatstate/ChatState.java | 46 +- .../siacs/conversations/xmpp/forms/Data.java | 192 +- .../siacs/conversations/xmpp/forms/Field.java | 110 +- .../conversations/xmpp/jid/OtrJidHelper.java | 16 + .../xmpp/jingle/DirectConnectionUtils.java | 3 +- .../xmpp/jingle/JingleCandidate.java | 182 +- .../xmpp/jingle/JingleConnectionManager.java | 2 +- .../jingle/JingleFileTransferConnection.java | 45 +- .../xmpp/jingle/JingleInBandTransport.java | 2 +- .../xmpp/jingle/JingleSocks5Transport.java | 6 +- .../xmpp/jingle/JingleTransport.java | 12 +- .../OnFileTransmissionStatusChanged.java | 4 +- .../xmpp/jingle/OnJinglePacketReceived.java | 2 +- .../xmpp/jingle/OnPrimaryCandidateFound.java | 2 +- .../xmpp/jingle/OnTransportConnected.java | 4 +- .../xmpp/jingle/stanzas/Content.java | 4 +- .../conversations/xmpp/mam/MamReference.java | 2 +- .../siacs/conversations/xmpp/pep/Avatar.java | 170 +- .../xmpp/pep/PublishOptions.java | 6 +- .../AbstractAcknowledgeableStanza.java | 47 +- .../xmpp/stanzas/AbstractStanza.java | 74 +- .../conversations/xmpp/stanzas/IqPacket.java | 128 +- .../xmpp/stanzas/MessagePacket.java | 164 +- .../xmpp/stanzas/PresencePacket.java | 6 +- .../xmpp/stanzas/csi/ActivePacket.java | 8 +- .../xmpp/stanzas/csi/InactivePacket.java | 8 +- .../xmpp/stanzas/streammgmt/AckPacket.java | 10 +- .../xmpp/stanzas/streammgmt/EnablePacket.java | 10 +- .../stanzas/streammgmt/RequestPacket.java | 8 +- .../xmpp/stanzas/streammgmt/ResumePacket.java | 12 +- src/main/res/animator/fade_in.xml | 8 + src/main/res/animator/fade_left_in.xml | 15 + src/main/res/animator/fade_left_out.xml | 15 + src/main/res/animator/fade_out.xml | 8 + src/main/res/animator/fade_right_in.xml | 15 + src/main/res/animator/fade_right_out.xml | 15 + src/main/res/color/button_state_color.xml | 5 + .../res/drawable-hdpi/date_bubble_grey.9.png | Bin 657 -> 0 bytes .../res/drawable-hdpi/date_bubble_white.9.png | Bin 689 -> 0 bytes .../ic_account_box_white_24dp.png | Bin 337 -> 0 bytes .../ic_account_card_details_grey600_48dp.png | Bin 0 -> 558 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 0 -> 1023 bytes .../ic_account_plus_grey600_48dp.png | Bin 0 -> 916 bytes src/main/res/drawable-hdpi/ic_action_chat.png | Bin 0 -> 204 bytes .../res/drawable-hdpi/ic_add_white_24dp.png | Bin 223 -> 120 bytes .../drawable-hdpi/ic_android_black_48dp.png | Bin 519 -> 710 bytes .../drawable-hdpi/ic_android_grey600_48dp.png | Bin 0 -> 866 bytes .../drawable-hdpi/ic_android_white_48dp.png | Bin 536 -> 733 bytes .../ic_announcement_white_24dp.png | Bin 251 -> 0 bytes .../drawable-hdpi/ic_archive_black_48dp.png | Bin 377 -> 560 bytes .../drawable-hdpi/ic_archive_white_24dp.png | Bin 247 -> 310 bytes .../drawable-hdpi/ic_archive_white_48dp.png | Bin 390 -> 557 bytes .../ic_arrow_back_white_24dp.png | Bin 0 -> 148 bytes .../res/drawable-hdpi/ic_attach_camera.png | Bin 1235 -> 395 bytes .../drawable-hdpi/ic_attach_camera_white.png | Bin 636 -> 394 bytes .../res/drawable-hdpi/ic_attach_document.png | Bin 1060 -> 236 bytes .../ic_attach_document_white.png | Bin 393 -> 249 bytes .../ic_attach_file_white_24dp.png | Bin 452 -> 358 bytes .../res/drawable-hdpi/ic_attach_location.png | Bin 1280 -> 463 bytes .../ic_attach_location_white.png | Bin 665 -> 505 bytes .../res/drawable-hdpi/ic_attach_photo.png | Bin 1117 -> 340 bytes .../drawable-hdpi/ic_attach_photo_white.png | Bin 463 -> 362 bytes .../res/drawable-hdpi/ic_attach_record.png | Bin 1233 -> 436 bytes .../drawable-hdpi/ic_attach_record_white.png | Bin 614 -> 467 bytes .../res/drawable-hdpi/ic_attach_video.png | Bin 0 -> 213 bytes .../res/drawable-hdpi/ic_attach_videocam.png | Bin 277 -> 222 bytes .../ic_attach_videocam_white.png | Bin 376 -> 234 bytes .../ic_attachment_black_24dp.png | Bin 0 -> 295 bytes .../ic_attachment_white_24dp.png | Bin 0 -> 792 bytes .../drawable-hdpi/ic_audio_grey600_48dp.png | Bin 0 -> 1092 bytes .../drawable-hdpi/ic_autorenew_white_24dp.png | Bin 489 -> 410 bytes .../drawable-hdpi/ic_backup_black_48dp.png | Bin 561 -> 943 bytes .../drawable-hdpi/ic_backup_white_48dp.png | Bin 589 -> 932 bytes .../res/drawable-hdpi/ic_block_white_24dp.png | Bin 606 -> 0 bytes .../res/drawable-hdpi/ic_book_black_48dp.png | Bin 278 -> 455 bytes .../res/drawable-hdpi/ic_book_white_48dp.png | Bin 283 -> 458 bytes .../ic_calendar_grey600_48dp.png | Bin 0 -> 305 bytes .../ic_camera_alt_white_24dp.png | Bin 364 -> 0 bytes .../drawable-hdpi/ic_cancel_black_24dp.png | Bin 397 -> 531 bytes .../drawable-hdpi/ic_cancel_white_24dp.png | Bin 510 -> 431 bytes .../res/drawable-hdpi/ic_chat_white_24dp.png | Bin 168 -> 223 bytes .../res/drawable-hdpi/ic_close_white_24dp.png | Bin 0 -> 277 bytes .../ic_cloud_download_white_24dp.png | Bin 353 -> 463 bytes .../res/drawable-hdpi/ic_cloud_white_24dp.png | Bin 0 -> 297 bytes .../drawable-hdpi/ic_contact_white_24dp.png | Bin 0 -> 324 bytes .../drawable-hdpi/ic_contacts_white_24dp.png | Bin 0 -> 430 bytes .../ic_content_copy_black_24dp.png | Bin 195 -> 0 bytes .../ic_content_copy_grey600_24dp.png | Bin 0 -> 208 bytes .../ic_content_copy_white_24dp.png | Bin 203 -> 253 bytes .../res/drawable-hdpi/ic_crop_white_24dp.png | Bin 302 -> 0 bytes .../drawable-hdpi/ic_delete_black_24dp.png | Bin 155 -> 492 bytes .../drawable-hdpi/ic_delete_grey600_24dp.png | Bin 0 -> 169 bytes .../drawable-hdpi/ic_delete_white_24dp.png | Bin 246 -> 167 bytes .../ic_description_black_48dp.png | Bin 279 -> 405 bytes .../ic_description_white_48dp.png | Bin 295 -> 421 bytes .../ic_directions_black_24dp.png | Bin 233 -> 0 bytes .../ic_directions_white_24dp.png | Bin 252 -> 0 bytes .../res/drawable-hdpi/ic_done_black_18dp.png | Bin 149 -> 0 bytes .../ic_done_black_24dp.png} | Bin .../res/drawable-hdpi/ic_done_white_18dp.png | Bin 157 -> 0 bytes .../ic_download_grey600_48dp.png | Bin 0 -> 241 bytes .../drawable-hdpi/ic_drafts_white_24dp.png | Bin 392 -> 0 bytes .../res/drawable-hdpi/ic_edit_black_24dp.png | Bin 202 -> 326 bytes .../res/drawable-hdpi/ic_edit_white_24dp.png | Bin 339 -> 260 bytes .../ic_email_open_outline_white_24dp.png | Bin 0 -> 785 bytes .../res/drawable-hdpi/ic_event_black_48dp.png | Bin 245 -> 344 bytes .../res/drawable-hdpi/ic_event_white_48dp.png | Bin 254 -> 342 bytes .../ic_file_download_white_24dp.png | Bin 277 -> 176 bytes .../drawable-hdpi/ic_file_grey600_48dp.png | Bin 0 -> 349 bytes .../ic_file_pdf_grey600_48dp.png | Bin 0 -> 1098 bytes .../drawable-hdpi/ic_forward_white_24dp.png | Bin 139 -> 193 bytes .../drawable-hdpi/ic_gps_fixed_black_24dp.png | Bin 549 -> 0 bytes .../drawable-hdpi/ic_gps_fixed_white_24dp.png | Bin 546 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 472 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 468 -> 0 bytes .../drawable-hdpi/ic_group_add_white_24dp.png | Bin 396 -> 317 bytes .../res/drawable-hdpi/ic_group_white_24dp.png | Bin 417 -> 312 bytes .../drawable-hdpi/ic_headset_black_48dp.png | Bin 586 -> 857 bytes .../drawable-hdpi/ic_headset_white_48dp.png | Bin 610 -> 865 bytes .../res/drawable-hdpi/ic_help_black_24dp.png | Bin 0 -> 458 bytes .../res/drawable-hdpi/ic_help_black_48dp.png | Bin 834 -> 1176 bytes .../ic_help_circle_outline_black_24dp.png | Bin 0 -> 888 bytes .../ic_help_circle_outline_white_24dp.png | Bin 0 -> 1297 bytes .../ic_help_circle_white_24dp.png | Bin 0 -> 966 bytes .../res/drawable-hdpi/ic_help_white_48dp.png | Bin 842 -> 1177 bytes .../ic_hourglass_empty_white_24dp.png | Bin 159 -> 159 bytes .../res/drawable-hdpi/ic_image_black_24dp.png | Bin 0 -> 256 bytes .../drawable-hdpi/ic_image_grey600_48dp.png | Bin 0 -> 777 bytes .../res/drawable-hdpi/ic_image_white_24dp.png | Bin 0 -> 649 bytes .../res/drawable-hdpi/ic_input_white_24dp.png | Bin 226 -> 263 bytes src/main/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 5445 bytes .../drawable-hdpi/ic_link_off_white_24dp.png | Bin 415 -> 604 bytes .../res/drawable-hdpi/ic_link_white_24dp.png | Bin 430 -> 351 bytes .../res/drawable-hdpi/ic_lock_black_18dp.png | Bin 275 -> 363 bytes .../drawable-hdpi/ic_lock_open_white_24dp.png | Bin 400 -> 321 bytes .../res/drawable-hdpi/ic_lock_white_18dp.png | Bin 281 -> 362 bytes .../res/drawable-hdpi/ic_lock_white_24dp.png | Bin 399 -> 320 bytes .../ic_map_marker_grey600_48dp.png | Bin 0 -> 899 bytes .../res/drawable-hdpi/ic_menu_white_24dp.png | Bin 0 -> 417 bytes .../res/drawable-hdpi/ic_mic_black_48dp.png | Bin 581 -> 866 bytes .../res/drawable-hdpi/ic_mic_white_48dp.png | Bin 606 -> 870 bytes .../drawable-hdpi/ic_mode_edit_black_18dp.png | Bin 264 -> 285 bytes .../drawable-hdpi/ic_mode_edit_white_18dp.png | Bin 299 -> 291 bytes .../ic_navigation_white_24dp.png | Bin 0 -> 341 bytes .../ic_no_results_background_black.png | Bin 3757 -> 3629 bytes .../ic_no_results_background_white.png | Bin 4625 -> 3793 bytes .../res/drawable-hdpi/ic_notification.png | Bin 0 -> 825 bytes .../ic_notifications_black_24dp.png | Bin 236 -> 311 bytes .../ic_notifications_grey600_24dp.png | Bin 0 -> 285 bytes .../ic_notifications_none_black_24dp.png | Bin 295 -> 393 bytes .../ic_notifications_none_white80.png | Bin 574 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 285 -> 405 bytes .../ic_notifications_off_black_24dp.png | Bin 390 -> 573 bytes .../ic_notifications_off_white80.png | Bin 762 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 385 -> 575 bytes .../ic_notifications_paused_black_24dp.png | Bin 308 -> 427 bytes .../ic_notifications_paused_white80.png | Bin 610 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 309 -> 437 bytes .../ic_notifications_white80.png | Bin 471 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 234 -> 319 bytes .../ic_open_in_new_white_24dp.png | Bin 0 -> 312 bytes .../res/drawable-hdpi/ic_pause_black_36dp.png | Bin 123 -> 148 bytes .../res/drawable-hdpi/ic_pause_white_36dp.png | Bin 124 -> 149 bytes .../ic_person_add_white_24dp.png | Bin 383 -> 304 bytes .../drawable-hdpi/ic_person_black_48dp.png | Bin 428 -> 622 bytes .../drawable-hdpi/ic_person_white_48dp.png | Bin 440 -> 623 bytes src/main/res/drawable-hdpi/ic_profile.png | Bin 999 -> 0 bytes .../drawable-hdpi/ic_public_white_24dp.png | Bin 504 -> 774 bytes .../ic_qr_code_scan_white_24dp.png | Bin 461 -> 0 bytes .../drawable-hdpi/ic_qrcode_grey600_24dp.png | Bin 0 -> 630 bytes .../ic_qrcode_scan_white_24dp.png | Bin 0 -> 284 bytes .../drawable-hdpi/ic_qrcode_white_24dp.png | Bin 0 -> 568 bytes .../res/drawable-hdpi/ic_read_indicator.png | Bin 0 -> 272 bytes .../drawable-hdpi/ic_received_indicator.png | Bin 0 -> 356 bytes .../drawable-hdpi/ic_refresh_black_24dp.png | Bin 391 -> 0 bytes .../drawable-hdpi/ic_refresh_grey600_24dp.png | Bin 0 -> 429 bytes .../drawable-hdpi/ic_refresh_white_24dp.png | Bin 387 -> 509 bytes .../ic_reply_circle_black_24dp.png | Bin 0 -> 602 bytes .../res/drawable-hdpi/ic_reply_white_24dp.png | Bin 253 -> 615 bytes .../res/drawable-hdpi/ic_room_black_48dp.png | Bin 683 -> 948 bytes .../res/drawable-hdpi/ic_room_white_24dp.png | Bin 494 -> 415 bytes .../res/drawable-hdpi/ic_room_white_48dp.png | Bin 675 -> 966 bytes .../res/drawable-hdpi/ic_save_black_24dp.png | Bin 240 -> 317 bytes .../res/drawable-hdpi/ic_save_white_24dp.png | Bin 247 -> 324 bytes .../ic_search_background_black.png | Bin 3220 -> 3446 bytes .../ic_search_background_white.png | Bin 4077 -> 3553 bytes .../drawable-hdpi/ic_search_white_24dp.png | Bin 504 -> 425 bytes .../drawable-hdpi/ic_security_black_24dp.png | Bin 0 -> 419 bytes .../drawable-hdpi/ic_security_white_24dp.png | Bin 0 -> 846 bytes .../drawable-hdpi/ic_send_attachment_away.png | Bin 0 -> 722 bytes .../drawable-hdpi/ic_send_attachment_dnd.png | Bin 0 -> 841 bytes .../ic_send_attachment_offline.png | Bin 0 -> 600 bytes .../ic_send_attachment_offline_white.png | Bin 0 -> 606 bytes .../ic_send_attachment_online.png | Bin 0 -> 806 bytes .../res/drawable-hdpi/ic_send_cancel_away.png | Bin 1396 -> 980 bytes .../res/drawable-hdpi/ic_send_cancel_dnd.png | Bin 1587 -> 1169 bytes .../drawable-hdpi/ic_send_cancel_offline.png | Bin 1206 -> 801 bytes .../ic_send_cancel_offline_dark.png | Bin 1163 -> 0 bytes .../ic_send_cancel_offline_white.png | Bin 1205 -> 807 bytes .../drawable-hdpi/ic_send_cancel_online.png | Bin 1550 -> 1118 bytes .../drawable-hdpi/ic_send_file_offline.png | Bin 412 -> 0 bytes .../ic_send_file_offline_white.png | Bin 356 -> 0 bytes .../drawable-hdpi/ic_send_location_away.png | Bin 1159 -> 928 bytes .../drawable-hdpi/ic_send_location_dnd.png | Bin 1333 -> 1088 bytes .../ic_send_location_offline.png | Bin 971 -> 744 bytes .../ic_send_location_offline_dark.png | Bin 945 -> 0 bytes .../ic_send_location_offline_white.png | Bin 1010 -> 768 bytes .../drawable-hdpi/ic_send_location_online.png | Bin 1345 -> 1027 bytes .../res/drawable-hdpi/ic_send_photo_away.png | Bin 1203 -> 777 bytes .../res/drawable-hdpi/ic_send_photo_dnd.png | Bin 1383 -> 898 bytes .../drawable-hdpi/ic_send_photo_offline.png | Bin 987 -> 591 bytes .../ic_send_photo_offline_dark.png | Bin 978 -> 0 bytes .../ic_send_photo_offline_white.png | Bin 1033 -> 597 bytes .../drawable-hdpi/ic_send_photo_online.png | Bin 1402 -> 837 bytes .../drawable-hdpi/ic_send_picture_away.png | Bin 790 -> 591 bytes .../res/drawable-hdpi/ic_send_picture_dnd.png | Bin 884 -> 691 bytes .../drawable-hdpi/ic_send_picture_offline.png | Bin 657 -> 488 bytes .../ic_send_picture_offline_dark.png | Bin 639 -> 0 bytes .../ic_send_picture_offline_white.png | Bin 675 -> 497 bytes .../drawable-hdpi/ic_send_picture_online.png | Bin 887 -> 670 bytes .../res/drawable-hdpi/ic_send_text_away.png | Bin 982 -> 939 bytes .../res/drawable-hdpi/ic_send_text_dnd.png | Bin 1128 -> 1112 bytes .../drawable-hdpi/ic_send_text_offline.png | Bin 800 -> 723 bytes .../ic_send_text_offline_dark.png | Bin 765 -> 0 bytes .../ic_send_text_offline_white.png | Bin 844 -> 767 bytes .../res/drawable-hdpi/ic_send_text_online.png | Bin 1121 -> 1043 bytes .../drawable-hdpi/ic_send_videocam_away.png | Bin 487 -> 342 bytes .../drawable-hdpi/ic_send_videocam_dnd.png | Bin 540 -> 397 bytes .../ic_send_videocam_offline.png | Bin 435 -> 292 bytes .../ic_send_videocam_offline_white.png | Bin 447 -> 298 bytes .../drawable-hdpi/ic_send_videocam_online.png | Bin 540 -> 389 bytes .../res/drawable-hdpi/ic_send_voice_away.png | Bin 1017 -> 774 bytes .../res/drawable-hdpi/ic_send_voice_dnd.png | Bin 1161 -> 908 bytes .../drawable-hdpi/ic_send_voice_offline.png | Bin 844 -> 620 bytes .../ic_send_voice_offline_dark.png | Bin 824 -> 0 bytes .../ic_send_voice_offline_white.png | Bin 878 -> 628 bytes .../drawable-hdpi/ic_send_voice_online.png | Bin 1170 -> 862 bytes .../drawable-hdpi/ic_settings_white_24dp.png | Bin 460 -> 546 bytes .../res/drawable-hdpi/ic_share_black_24dp.png | Bin 0 -> 753 bytes .../res/drawable-hdpi/ic_share_white_24dp.png | Bin 506 -> 427 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 0 -> 285 bytes .../ic_speaker_notes_white_24dp.png | Bin 0 -> 177 bytes .../drawable-hdpi/ic_stat_alert_warning.png | Bin 757 -> 0 bytes .../ic_stat_communication_import_export.png | Bin 620 -> 0 bytes .../drawable-hdpi/ic_unarchive_white_24dp.png | Bin 0 -> 312 bytes .../drawable-hdpi/ic_update_notification.png | Bin 0 -> 879 bytes .../drawable-hdpi/ic_verified_fingerprint.png | Bin 1324 -> 1324 bytes .../ic_verified_user_black_18dp.png | Bin 320 -> 471 bytes .../ic_verified_user_white_18dp.png | Bin 329 -> 488 bytes .../drawable-hdpi/ic_video_grey600_48dp.png | Bin 0 -> 352 bytes .../drawable-hdpi/ic_vpn_key_white_24dp.png | Bin 0 -> 289 bytes .../drawable-hdpi/ic_warning_white_24dp.png | Bin 421 -> 342 bytes .../res/drawable-hdpi/ic_web_grey600_48.png | Bin 0 -> 476 bytes .../intro_account_details_icon.png | Bin 0 -> 971 bytes .../res/drawable-hdpi/intro_account_icon.png | Bin 0 -> 1330 bytes .../res/drawable-hdpi/intro_contacts_icon.png | Bin 0 -> 1263 bytes .../res/drawable-hdpi/intro_location_icon.png | Bin 0 -> 1867 bytes .../res/drawable-hdpi/intro_memory_icon.png | Bin 0 -> 711 bytes .../res/drawable-hdpi/intro_security_icon.png | Bin 0 -> 1863 bytes .../drawable-hdpi/intro_start_chat_icon.png | Bin 0 -> 1044 bytes .../res/drawable-hdpi/intro_xmpp_icon.png | Bin 0 -> 1976 bytes src/main/res/drawable-hdpi/main_logo.png | Bin 0 -> 20315 bytes src/main/res/drawable-hdpi/marker.png | Bin 3591 -> 0 bytes .../message_bubble_received.9.png | Bin 772 -> 0 bytes .../message_bubble_received_dark.9.png | Bin 773 -> 0 bytes .../message_bubble_received_grey.9.png | Bin 750 -> 0 bytes .../message_bubble_received_warning.9.png | Bin 776 -> 0 bytes .../message_bubble_received_white.9.png | Bin 779 -> 0 bytes .../drawable-hdpi/message_bubble_sent.9.png | Bin 687 -> 0 bytes .../message_bubble_sent_grey.9.png | Bin 707 -> 0 bytes src/main/res/drawable-hdpi/open_pdf_black.png | Bin 1499 -> 0 bytes src/main/res/drawable-hdpi/open_pdf_white.png | Bin 1569 -> 0 bytes src/main/res/drawable-hdpi/pencil_overlay.png | Bin 0 -> 1199 bytes src/main/res/drawable-hdpi/play_gif.png | Bin 0 -> 1739 bytes src/main/res/drawable-hdpi/play_gif_black.png | Bin 761 -> 0 bytes src/main/res/drawable-hdpi/play_gif_white.png | Bin 791 -> 0 bytes src/main/res/drawable-hdpi/play_video.png | Bin 0 -> 9620 bytes .../res/drawable-hdpi/play_video_black.png | Bin 4799 -> 0 bytes .../res/drawable-hdpi/play_video_white.png | Bin 5087 -> 0 bytes src/main/res/drawable-hdpi/show_pdf.png | Bin 0 -> 3582 bytes src/main/res/drawable-hdpi/splash_logo.png | Bin 0 -> 30750 bytes .../res/drawable-mdpi/date_bubble_grey.9.png | Bin 514 -> 0 bytes .../res/drawable-mdpi/date_bubble_white.9.png | Bin 525 -> 0 bytes .../ic_account_box_white_24dp.png | Bin 290 -> 0 bytes .../ic_account_card_details_grey600_48dp.png | Bin 0 -> 380 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 0 -> 1002 bytes .../ic_account_plus_grey600_48dp.png | Bin 0 -> 795 bytes src/main/res/drawable-mdpi/ic_action_chat.png | Bin 0 -> 174 bytes .../res/drawable-mdpi/ic_add_white_24dp.png | Bin 174 -> 141 bytes .../drawable-mdpi/ic_android_black_48dp.png | Bin 343 -> 410 bytes .../drawable-mdpi/ic_android_grey600_48dp.png | Bin 0 -> 511 bytes .../drawable-mdpi/ic_android_white_48dp.png | Bin 356 -> 416 bytes .../ic_announcement_white_24dp.png | Bin 214 -> 0 bytes .../drawable-mdpi/ic_archive_black_48dp.png | Bin 261 -> 309 bytes .../drawable-mdpi/ic_archive_white_24dp.png | Bin 181 -> 278 bytes .../drawable-mdpi/ic_archive_white_48dp.png | Bin 267 -> 306 bytes .../ic_arrow_back_white_24dp.png | Bin 0 -> 115 bytes .../res/drawable-mdpi/ic_attach_camera.png | Bin 1114 -> 236 bytes .../drawable-mdpi/ic_attach_camera_white.png | Bin 453 -> 242 bytes .../res/drawable-mdpi/ic_attach_document.png | Bin 1021 -> 152 bytes .../ic_attach_document_white.png | Bin 322 -> 161 bytes .../ic_attach_file_white_24dp.png | Bin 332 -> 253 bytes .../res/drawable-mdpi/ic_attach_location.png | Bin 1146 -> 261 bytes .../ic_attach_location_white.png | Bin 486 -> 269 bytes .../res/drawable-mdpi/ic_attach_photo.png | Bin 1066 -> 190 bytes .../drawable-mdpi/ic_attach_photo_white.png | Bin 395 -> 198 bytes .../res/drawable-mdpi/ic_attach_record.png | Bin 1115 -> 235 bytes .../drawable-mdpi/ic_attach_record_white.png | Bin 451 -> 256 bytes .../res/drawable-mdpi/ic_attach_video.png | Bin 0 -> 133 bytes .../res/drawable-mdpi/ic_attach_videocam.png | Bin 215 -> 137 bytes .../ic_attach_videocam_white.png | Bin 308 -> 141 bytes .../ic_attachment_black_24dp.png | Bin 0 -> 217 bytes .../ic_attachment_white_24dp.png | Bin 0 -> 584 bytes .../drawable-mdpi/ic_audio_grey600_48dp.png | Bin 0 -> 626 bytes .../drawable-mdpi/ic_autorenew_white_24dp.png | Bin 353 -> 274 bytes .../drawable-mdpi/ic_backup_black_48dp.png | Bin 386 -> 813 bytes .../drawable-mdpi/ic_backup_white_48dp.png | Bin 405 -> 813 bytes .../res/drawable-mdpi/ic_block_white_24dp.png | Bin 428 -> 0 bytes .../res/drawable-mdpi/ic_book_black_48dp.png | Bin 201 -> 382 bytes .../res/drawable-mdpi/ic_book_white_48dp.png | Bin 197 -> 390 bytes .../ic_calendar_grey600_48dp.png | Bin 0 -> 230 bytes .../ic_camera_alt_white_24dp.png | Bin 240 -> 0 bytes .../drawable-mdpi/ic_cancel_black_24dp.png | Bin 291 -> 303 bytes .../drawable-mdpi/ic_cancel_white_24dp.png | Bin 393 -> 314 bytes .../res/drawable-mdpi/ic_chat_white_24dp.png | Bin 133 -> 154 bytes .../res/drawable-mdpi/ic_close_white_24dp.png | Bin 0 -> 243 bytes .../ic_cloud_download_white_24dp.png | Bin 242 -> 262 bytes .../res/drawable-mdpi/ic_cloud_white_24dp.png | Bin 0 -> 209 bytes .../drawable-mdpi/ic_contact_white_24dp.png | Bin 0 -> 201 bytes .../drawable-mdpi/ic_contacts_white_24dp.png | Bin 0 -> 320 bytes .../ic_content_copy_black_24dp.png | Bin 130 -> 0 bytes .../ic_content_copy_grey600_24dp.png | Bin 0 -> 138 bytes .../ic_content_copy_white_24dp.png | Bin 134 -> 148 bytes .../res/drawable-mdpi/ic_crop_white_24dp.png | Bin 214 -> 0 bytes .../drawable-mdpi/ic_delete_black_24dp.png | Bin 111 -> 410 bytes .../drawable-mdpi/ic_delete_grey600_24dp.png | Bin 0 -> 120 bytes .../drawable-mdpi/ic_delete_white_24dp.png | Bin 197 -> 118 bytes .../ic_description_black_48dp.png | Bin 202 -> 247 bytes .../ic_description_white_48dp.png | Bin 214 -> 257 bytes .../ic_directions_black_24dp.png | Bin 181 -> 0 bytes .../ic_directions_white_24dp.png | Bin 191 -> 0 bytes .../res/drawable-mdpi/ic_done_black_18dp.png | Bin 138 -> 0 bytes .../res/drawable-mdpi/ic_done_black_24dp.png | Bin 0 -> 130 bytes .../res/drawable-mdpi/ic_done_white_18dp.png | Bin 144 -> 0 bytes .../ic_download_grey600_48dp.png | Bin 0 -> 187 bytes .../drawable-mdpi/ic_drafts_white_24dp.png | Bin 284 -> 0 bytes .../res/drawable-mdpi/ic_edit_black_24dp.png | Bin 160 -> 165 bytes .../res/drawable-mdpi/ic_edit_white_24dp.png | Bin 272 -> 193 bytes .../ic_email_open_outline_white_24dp.png | Bin 0 -> 653 bytes .../res/drawable-mdpi/ic_event_black_48dp.png | Bin 188 -> 228 bytes .../res/drawable-mdpi/ic_event_white_48dp.png | Bin 193 -> 221 bytes .../ic_file_download_white_24dp.png | Bin 210 -> 131 bytes .../drawable-mdpi/ic_file_grey600_48dp.png | Bin 0 -> 252 bytes .../ic_file_pdf_grey600_48dp.png | Bin 0 -> 750 bytes .../drawable-mdpi/ic_forward_white_24dp.png | Bin 117 -> 125 bytes .../drawable-mdpi/ic_gps_fixed_black_24dp.png | Bin 341 -> 0 bytes .../drawable-mdpi/ic_gps_fixed_white_24dp.png | Bin 350 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 295 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 298 -> 0 bytes .../drawable-mdpi/ic_group_add_white_24dp.png | Bin 313 -> 234 bytes .../res/drawable-mdpi/ic_group_white_24dp.png | Bin 296 -> 217 bytes .../drawable-mdpi/ic_headset_black_48dp.png | Bin 412 -> 466 bytes .../drawable-mdpi/ic_headset_white_48dp.png | Bin 433 -> 473 bytes .../res/drawable-mdpi/ic_help_black_24dp.png | Bin 0 -> 298 bytes .../res/drawable-mdpi/ic_help_black_48dp.png | Bin 579 -> 656 bytes .../ic_help_circle_outline_black_24dp.png | Bin 0 -> 670 bytes .../ic_help_circle_outline_white_24dp.png | Bin 0 -> 704 bytes .../ic_help_circle_white_24dp.png | Bin 0 -> 656 bytes .../res/drawable-mdpi/ic_help_white_48dp.png | Bin 585 -> 659 bytes .../res/drawable-mdpi/ic_image_black_24dp.png | Bin 0 -> 183 bytes .../drawable-mdpi/ic_image_grey600_48dp.png | Bin 0 -> 405 bytes .../res/drawable-mdpi/ic_image_white_24dp.png | Bin 0 -> 506 bytes .../res/drawable-mdpi/ic_input_white_24dp.png | Bin 148 -> 239 bytes src/main/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 3096 bytes .../drawable-mdpi/ic_link_off_white_24dp.png | Bin 273 -> 555 bytes .../res/drawable-mdpi/ic_link_white_24dp.png | Bin 297 -> 218 bytes .../res/drawable-mdpi/ic_lock_black_18dp.png | Bin 206 -> 225 bytes .../drawable-mdpi/ic_lock_open_white_24dp.png | Bin 290 -> 211 bytes .../res/drawable-mdpi/ic_lock_white_18dp.png | Bin 211 -> 229 bytes .../res/drawable-mdpi/ic_lock_white_24dp.png | Bin 296 -> 217 bytes .../ic_map_marker_grey600_48dp.png | Bin 0 -> 557 bytes .../res/drawable-mdpi/ic_menu_white_24dp.png | Bin 0 -> 366 bytes .../res/drawable-mdpi/ic_mic_black_48dp.png | Bin 418 -> 487 bytes .../res/drawable-mdpi/ic_mic_white_48dp.png | Bin 436 -> 489 bytes .../drawable-mdpi/ic_mode_edit_black_18dp.png | Bin 229 -> 166 bytes .../drawable-mdpi/ic_mode_edit_white_18dp.png | Bin 249 -> 171 bytes .../ic_navigation_white_24dp.png | Bin 0 -> 250 bytes .../ic_no_results_background_black.png | Bin 2359 -> 1763 bytes .../ic_no_results_background_white.png | Bin 3019 -> 1819 bytes .../res/drawable-mdpi/ic_notification.png | Bin 0 -> 547 bytes .../ic_notifications_black_24dp.png | Bin 179 -> 191 bytes .../ic_notifications_grey600_24dp.png | Bin 0 -> 197 bytes .../ic_notifications_none_black_24dp.png | Bin 206 -> 226 bytes .../ic_notifications_none_white80.png | Bin 409 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 207 -> 234 bytes .../ic_notifications_off_black_24dp.png | Bin 290 -> 339 bytes .../ic_notifications_off_white80.png | Bin 505 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 279 -> 338 bytes .../ic_notifications_paused_black_24dp.png | Bin 235 -> 253 bytes .../ic_notifications_paused_white80.png | Bin 466 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 235 -> 256 bytes .../ic_notifications_white80.png | Bin 369 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 177 -> 194 bytes .../ic_open_in_new_white_24dp.png | Bin 0 -> 292 bytes .../res/drawable-mdpi/ic_pause_black_36dp.png | Bin 102 -> 117 bytes .../res/drawable-mdpi/ic_pause_white_36dp.png | Bin 105 -> 119 bytes .../ic_person_add_white_24dp.png | Bin 289 -> 210 bytes .../drawable-mdpi/ic_person_black_48dp.png | Bin 307 -> 359 bytes .../drawable-mdpi/ic_person_white_48dp.png | Bin 312 -> 351 bytes src/main/res/drawable-mdpi/ic_profile.png | Bin 622 -> 0 bytes .../drawable-mdpi/ic_public_white_24dp.png | Bin 339 -> 607 bytes .../ic_qr_code_scan_white_24dp.png | Bin 309 -> 0 bytes .../drawable-mdpi/ic_qrcode_grey600_24dp.png | Bin 0 -> 439 bytes .../ic_qrcode_scan_white_24dp.png | Bin 0 -> 188 bytes .../drawable-mdpi/ic_qrcode_white_24dp.png | Bin 0 -> 435 bytes .../res/drawable-mdpi/ic_read_indicator.png | Bin 0 -> 179 bytes .../drawable-mdpi/ic_received_indicator.png | Bin 0 -> 257 bytes .../drawable-mdpi/ic_refresh_black_24dp.png | Bin 249 -> 0 bytes .../drawable-mdpi/ic_refresh_grey600_24dp.png | Bin 0 -> 277 bytes .../drawable-mdpi/ic_refresh_white_24dp.png | Bin 254 -> 295 bytes .../ic_reply_circle_black_24dp.png | Bin 0 -> 502 bytes .../res/drawable-mdpi/ic_reply_white_24dp.png | Bin 186 -> 503 bytes .../res/drawable-mdpi/ic_room_black_48dp.png | Bin 457 -> 524 bytes .../res/drawable-mdpi/ic_room_white_24dp.png | Bin 362 -> 283 bytes .../res/drawable-mdpi/ic_room_white_48dp.png | Bin 456 -> 537 bytes .../res/drawable-mdpi/ic_save_black_24dp.png | Bin 167 -> 171 bytes .../res/drawable-mdpi/ic_save_white_24dp.png | Bin 168 -> 175 bytes .../ic_search_background_black.png | Bin 2080 -> 1667 bytes .../ic_search_background_white.png | Bin 2344 -> 1725 bytes .../drawable-mdpi/ic_search_white_24dp.png | Bin 346 -> 267 bytes .../drawable-mdpi/ic_security_black_24dp.png | Bin 0 -> 287 bytes .../drawable-mdpi/ic_security_white_24dp.png | Bin 0 -> 637 bytes .../drawable-mdpi/ic_send_attachment_away.png | Bin 0 -> 321 bytes .../drawable-mdpi/ic_send_attachment_dnd.png | Bin 0 -> 376 bytes .../ic_send_attachment_offline.png | Bin 0 -> 295 bytes .../ic_send_attachment_offline_white.png | Bin 0 -> 309 bytes .../ic_send_attachment_online.png | Bin 0 -> 372 bytes .../res/drawable-mdpi/ic_send_cancel_away.png | Bin 901 -> 491 bytes .../res/drawable-mdpi/ic_send_cancel_dnd.png | Bin 1025 -> 549 bytes .../drawable-mdpi/ic_send_cancel_offline.png | Bin 837 -> 389 bytes .../ic_send_cancel_offline_dark.png | Bin 786 -> 0 bytes .../ic_send_cancel_offline_white.png | Bin 799 -> 394 bytes .../drawable-mdpi/ic_send_cancel_online.png | Bin 1029 -> 554 bytes .../drawable-mdpi/ic_send_file_offline.png | Bin 282 -> 0 bytes .../ic_send_file_offline_white.png | Bin 248 -> 0 bytes .../drawable-mdpi/ic_send_location_away.png | Bin 784 -> 497 bytes .../drawable-mdpi/ic_send_location_dnd.png | Bin 917 -> 591 bytes .../ic_send_location_offline.png | Bin 673 -> 402 bytes .../ic_send_location_offline_dark.png | Bin 681 -> 0 bytes .../ic_send_location_offline_white.png | Bin 699 -> 414 bytes .../drawable-mdpi/ic_send_location_online.png | Bin 928 -> 564 bytes .../res/drawable-mdpi/ic_send_photo_away.png | Bin 776 -> 423 bytes .../res/drawable-mdpi/ic_send_photo_dnd.png | Bin 915 -> 491 bytes .../drawable-mdpi/ic_send_photo_offline.png | Bin 666 -> 345 bytes .../ic_send_photo_offline_dark.png | Bin 649 -> 0 bytes .../ic_send_photo_offline_white.png | Bin 683 -> 351 bytes .../drawable-mdpi/ic_send_photo_online.png | Bin 917 -> 455 bytes .../drawable-mdpi/ic_send_picture_away.png | Bin 512 -> 354 bytes .../res/drawable-mdpi/ic_send_picture_dnd.png | Bin 585 -> 391 bytes .../drawable-mdpi/ic_send_picture_offline.png | Bin 456 -> 285 bytes .../ic_send_picture_offline_dark.png | Bin 436 -> 0 bytes .../ic_send_picture_offline_white.png | Bin 475 -> 291 bytes .../drawable-mdpi/ic_send_picture_online.png | Bin 594 -> 383 bytes .../res/drawable-mdpi/ic_send_text_away.png | Bin 677 -> 490 bytes .../res/drawable-mdpi/ic_send_text_dnd.png | Bin 781 -> 554 bytes .../drawable-mdpi/ic_send_text_offline.png | Bin 542 -> 376 bytes .../ic_send_text_offline_dark.png | Bin 557 -> 0 bytes .../ic_send_text_offline_white.png | Bin 583 -> 405 bytes .../res/drawable-mdpi/ic_send_text_online.png | Bin 781 -> 534 bytes .../drawable-mdpi/ic_send_videocam_away.png | Bin 365 -> 217 bytes .../drawable-mdpi/ic_send_videocam_dnd.png | Bin 397 -> 242 bytes .../ic_send_videocam_offline.png | Bin 341 -> 198 bytes .../ic_send_videocam_offline_white.png | Bin 340 -> 203 bytes .../drawable-mdpi/ic_send_videocam_online.png | Bin 403 -> 245 bytes .../res/drawable-mdpi/ic_send_voice_away.png | Bin 679 -> 424 bytes .../res/drawable-mdpi/ic_send_voice_dnd.png | Bin 795 -> 495 bytes .../drawable-mdpi/ic_send_voice_offline.png | Bin 575 -> 341 bytes .../ic_send_voice_offline_dark.png | Bin 576 -> 0 bytes .../ic_send_voice_offline_white.png | Bin 606 -> 354 bytes .../drawable-mdpi/ic_send_voice_online.png | Bin 796 -> 484 bytes .../drawable-mdpi/ic_settings_white_24dp.png | Bin 326 -> 321 bytes .../res/drawable-mdpi/ic_share_black_24dp.png | Bin 0 -> 573 bytes .../res/drawable-mdpi/ic_share_white_24dp.png | Bin 361 -> 282 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 0 -> 201 bytes .../ic_speaker_notes_white_24dp.png | Bin 0 -> 134 bytes .../drawable-mdpi/ic_stat_alert_warning.png | Bin 425 -> 0 bytes .../ic_stat_communication_import_export.png | Bin 392 -> 0 bytes .../drawable-mdpi/ic_unarchive_white_24dp.png | Bin 0 -> 279 bytes .../drawable-mdpi/ic_update_notification.png | Bin 0 -> 496 bytes .../drawable-mdpi/ic_verified_fingerprint.png | Bin 1022 -> 1022 bytes .../ic_verified_user_black_18dp.png | Bin 238 -> 262 bytes .../ic_verified_user_white_18dp.png | Bin 241 -> 270 bytes .../drawable-mdpi/ic_video_grey600_48dp.png | Bin 0 -> 223 bytes .../drawable-mdpi/ic_vpn_key_white_24dp.png | Bin 0 -> 201 bytes .../drawable-mdpi/ic_warning_white_24dp.png | Bin 328 -> 249 bytes .../res/drawable-mdpi/ic_web_grey600_48.png | Bin 0 -> 345 bytes .../intro_account_details_icon.png | Bin 0 -> 880 bytes .../res/drawable-mdpi/intro_account_icon.png | Bin 0 -> 951 bytes .../res/drawable-mdpi/intro_contacts_icon.png | Bin 0 -> 984 bytes .../res/drawable-mdpi/intro_location_icon.png | Bin 0 -> 1408 bytes .../res/drawable-mdpi/intro_memory_icon.png | Bin 0 -> 694 bytes .../res/drawable-mdpi/intro_security_icon.png | Bin 0 -> 1574 bytes .../drawable-mdpi/intro_start_chat_icon.png | Bin 0 -> 794 bytes .../res/drawable-mdpi/intro_xmpp_icon.png | Bin 0 -> 1623 bytes src/main/res/drawable-mdpi/main_logo.png | Bin 0 -> 11996 bytes src/main/res/drawable-mdpi/marker.png | Bin 2211 -> 0 bytes .../message_bubble_received.9.png | Bin 596 -> 0 bytes .../message_bubble_received_dark.9.png | Bin 617 -> 0 bytes .../message_bubble_received_grey.9.png | Bin 595 -> 0 bytes .../message_bubble_received_warning.9.png | Bin 599 -> 0 bytes .../message_bubble_received_white.9.png | Bin 610 -> 0 bytes .../drawable-mdpi/message_bubble_sent.9.png | Bin 558 -> 0 bytes .../message_bubble_sent_grey.9.png | Bin 568 -> 0 bytes src/main/res/drawable-mdpi/open_pdf_black.png | Bin 1168 -> 0 bytes src/main/res/drawable-mdpi/open_pdf_white.png | Bin 1259 -> 0 bytes src/main/res/drawable-mdpi/pencil_overlay.png | Bin 0 -> 1873 bytes src/main/res/drawable-mdpi/play_gif.png | Bin 0 -> 904 bytes src/main/res/drawable-mdpi/play_gif_black.png | Bin 584 -> 0 bytes src/main/res/drawable-mdpi/play_gif_white.png | Bin 612 -> 0 bytes src/main/res/drawable-mdpi/play_video.png | Bin 0 -> 4450 bytes .../res/drawable-mdpi/play_video_black.png | Bin 3204 -> 0 bytes .../res/drawable-mdpi/play_video_white.png | Bin 3383 -> 0 bytes src/main/res/drawable-mdpi/show_pdf.png | Bin 0 -> 1807 bytes src/main/res/drawable-mdpi/splash_logo.png | Bin 0 -> 18313 bytes src/main/res/drawable-nodpi/bg_dark_blue.png | Bin 0 -> 6903 bytes .../res/drawable-nodpi/bg_dark_orange.png | Bin 0 -> 6376 bytes src/main/res/drawable-nodpi/bg_light_blue.png | Bin 0 -> 11555 bytes .../res/drawable-nodpi/bg_light_orange.png | Bin 0 -> 9140 bytes .../res/drawable-xhdpi/date_bubble_grey.9.png | Bin 739 -> 0 bytes .../drawable-xhdpi/date_bubble_white.9.png | Bin 769 -> 0 bytes .../ic_account_box_white_24dp.png | Bin 431 -> 0 bytes .../ic_account_card_details_grey600_48dp.png | Bin 0 -> 797 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 0 -> 1949 bytes .../ic_account_plus_grey600_48dp.png | Bin 0 -> 1597 bytes .../res/drawable-xhdpi/ic_action_chat.png | Bin 0 -> 211 bytes .../res/drawable-xhdpi/ic_add_white_24dp.png | Bin 198 -> 180 bytes .../drawable-xhdpi/ic_android_black_48dp.png | Bin 641 -> 838 bytes .../ic_android_grey600_48dp.png | Bin 0 -> 966 bytes .../drawable-xhdpi/ic_android_white_48dp.png | Bin 665 -> 852 bytes .../ic_announcement_white_24dp.png | Bin 285 -> 0 bytes .../drawable-xhdpi/ic_archive_black_48dp.png | Bin 483 -> 607 bytes .../drawable-xhdpi/ic_archive_white_24dp.png | Bin 267 -> 509 bytes .../drawable-xhdpi/ic_archive_white_48dp.png | Bin 489 -> 620 bytes .../ic_arrow_back_white_24dp.png | Bin 0 -> 131 bytes .../res/drawable-xhdpi/ic_attach_camera.png | Bin 1313 -> 445 bytes .../drawable-xhdpi/ic_attach_camera_white.png | Bin 757 -> 482 bytes .../res/drawable-xhdpi/ic_attach_document.png | Bin 1097 -> 240 bytes .../ic_attach_document_white.png | Bin 427 -> 250 bytes .../ic_attach_file_white_24dp.png | Bin 576 -> 458 bytes .../res/drawable-xhdpi/ic_attach_location.png | Bin 1372 -> 506 bytes .../ic_attach_location_white.png | Bin 766 -> 543 bytes .../res/drawable-xhdpi/ic_attach_photo.png | Bin 1169 -> 337 bytes .../drawable-xhdpi/ic_attach_photo_white.png | Bin 543 -> 353 bytes .../res/drawable-xhdpi/ic_attach_record.png | Bin 1310 -> 460 bytes .../drawable-xhdpi/ic_attach_record_white.png | Bin 689 -> 490 bytes .../res/drawable-xhdpi/ic_attach_video.png | Bin 0 -> 194 bytes .../res/drawable-xhdpi/ic_attach_videocam.png | Bin 276 -> 202 bytes .../ic_attach_videocam_white.png | Bin 378 -> 197 bytes .../ic_attachment_black_24dp.png | Bin 0 -> 399 bytes .../ic_attachment_white_24dp.png | Bin 0 -> 801 bytes .../drawable-xhdpi/ic_audio_grey600_48dp.png | Bin 0 -> 1287 bytes .../ic_autorenew_white_24dp.png | Bin 604 -> 525 bytes .../drawable-xhdpi/ic_backup_black_48dp.png | Bin 733 -> 1554 bytes .../drawable-xhdpi/ic_backup_white_48dp.png | Bin 770 -> 1585 bytes .../drawable-xhdpi/ic_block_white_24dp.png | Bin 796 -> 0 bytes .../res/drawable-xhdpi/ic_book_black_48dp.png | Bin 340 -> 806 bytes .../res/drawable-xhdpi/ic_book_white_48dp.png | Bin 350 -> 828 bytes .../ic_calendar_grey600_48dp.png | Bin 0 -> 430 bytes .../ic_camera_alt_white_24dp.png | Bin 446 -> 0 bytes .../drawable-xhdpi/ic_cancel_black_24dp.png | Bin 517 -> 603 bytes .../drawable-xhdpi/ic_cancel_white_24dp.png | Bin 645 -> 566 bytes .../res/drawable-xhdpi/ic_chat_white_24dp.png | Bin 205 -> 239 bytes .../drawable-xhdpi/ic_close_white_24dp.png | Bin 0 -> 431 bytes .../ic_cloud_download_white_24dp.png | Bin 417 -> 491 bytes .../drawable-xhdpi/ic_cloud_white_24dp.png | Bin 0 -> 354 bytes .../drawable-xhdpi/ic_contact_white_24dp.png | Bin 0 -> 370 bytes .../drawable-xhdpi/ic_contacts_white_24dp.png | Bin 0 -> 522 bytes .../ic_content_copy_black_24dp.png | Bin 180 -> 0 bytes .../ic_content_copy_grey600_24dp.png | Bin 0 -> 204 bytes .../ic_content_copy_white_24dp.png | Bin 188 -> 224 bytes .../res/drawable-xhdpi/ic_crop_white_24dp.png | Bin 272 -> 0 bytes .../drawable-xhdpi/ic_delete_black_24dp.png | Bin 148 -> 479 bytes .../drawable-xhdpi/ic_delete_grey600_24dp.png | Bin 0 -> 169 bytes .../drawable-xhdpi/ic_delete_white_24dp.png | Bin 270 -> 167 bytes .../ic_description_black_48dp.png | Bin 355 -> 460 bytes .../ic_description_white_48dp.png | Bin 378 -> 485 bytes .../ic_directions_black_24dp.png | Bin 274 -> 0 bytes .../ic_directions_white_24dp.png | Bin 307 -> 0 bytes .../res/drawable-xhdpi/ic_done_black_24dp.png | Bin 0 -> 188 bytes .../res/drawable-xhdpi/ic_done_white_18dp.png | Bin 188 -> 0 bytes .../ic_download_grey600_48dp.png | Bin 0 -> 284 bytes .../drawable-xhdpi/ic_drafts_white_24dp.png | Bin 509 -> 0 bytes .../res/drawable-xhdpi/ic_edit_black_24dp.png | Bin 222 -> 238 bytes .../res/drawable-xhdpi/ic_edit_white_24dp.png | Bin 378 -> 299 bytes .../ic_email_open_outline_white_24dp.png | Bin 0 -> 925 bytes .../drawable-xhdpi/ic_event_black_48dp.png | Bin 316 -> 435 bytes .../drawable-xhdpi/ic_event_white_48dp.png | Bin 326 -> 439 bytes .../ic_file_download_white_24dp.png | Bin 282 -> 178 bytes .../drawable-xhdpi/ic_file_grey600_48dp.png | Bin 0 -> 480 bytes .../ic_file_pdf_grey600_48dp.png | Bin 0 -> 1509 bytes .../drawable-xhdpi/ic_forward_white_24dp.png | Bin 159 -> 184 bytes .../ic_gps_fixed_black_24dp.png | Bin 660 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 687 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 561 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 577 -> 0 bytes .../ic_group_add_white_24dp.png | Bin 484 -> 405 bytes .../drawable-xhdpi/ic_group_white_24dp.png | Bin 464 -> 385 bytes .../drawable-xhdpi/ic_headset_black_48dp.png | Bin 786 -> 1006 bytes .../drawable-xhdpi/ic_headset_white_48dp.png | Bin 838 -> 1017 bytes .../res/drawable-xhdpi/ic_help_black_24dp.png | Bin 0 -> 579 bytes .../res/drawable-xhdpi/ic_help_black_48dp.png | Bin 1122 -> 1406 bytes .../ic_help_circle_outline_black_24dp.png | Bin 0 -> 1435 bytes .../ic_help_circle_outline_white_24dp.png | Bin 0 -> 1679 bytes .../ic_help_circle_white_24dp.png | Bin 0 -> 1109 bytes .../res/drawable-xhdpi/ic_help_white_48dp.png | Bin 1132 -> 1426 bytes .../drawable-xhdpi/ic_image_black_24dp.png | Bin 0 -> 295 bytes .../drawable-xhdpi/ic_image_grey600_48dp.png | Bin 0 -> 770 bytes .../drawable-xhdpi/ic_image_white_24dp.png | Bin 0 -> 731 bytes .../drawable-xhdpi/ic_input_white_24dp.png | Bin 219 -> 417 bytes src/main/res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 7757 bytes .../drawable-xhdpi/ic_link_off_white_24dp.png | Bin 472 -> 980 bytes .../res/drawable-xhdpi/ic_link_white_24dp.png | Bin 494 -> 415 bytes .../res/drawable-xhdpi/ic_lock_black_18dp.png | Bin 308 -> 342 bytes .../ic_lock_open_white_24dp.png | Bin 513 -> 377 bytes .../res/drawable-xhdpi/ic_lock_white_18dp.png | Bin 309 -> 342 bytes .../res/drawable-xhdpi/ic_lock_white_24dp.png | Bin 465 -> 386 bytes .../ic_map_marker_grey600_48dp.png | Bin 0 -> 1163 bytes .../res/drawable-xhdpi/ic_menu_white_24dp.png | Bin 0 -> 386 bytes .../res/drawable-xhdpi/ic_mic_black_48dp.png | Bin 773 -> 1002 bytes .../res/drawable-xhdpi/ic_mic_white_48dp.png | Bin 819 -> 1008 bytes .../ic_mode_edit_black_18dp.png | Bin 291 -> 223 bytes .../ic_mode_edit_white_18dp.png | Bin 351 -> 232 bytes .../ic_navigation_white_24dp.png | Bin 0 -> 434 bytes .../ic_no_results_background_black.png | Bin 5368 -> 3950 bytes .../ic_no_results_background_white.png | Bin 6250 -> 4137 bytes .../res/drawable-xhdpi/ic_notification.png | Bin 0 -> 1104 bytes .../ic_notifications_black_24dp.png | Bin 272 -> 322 bytes .../ic_notifications_grey600_24dp.png | Bin 0 -> 309 bytes .../ic_notifications_none_black_24dp.png | Bin 349 -> 407 bytes .../ic_notifications_none_white80.png | Bin 706 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 344 -> 404 bytes .../ic_notifications_off_black_24dp.png | Bin 492 -> 595 bytes .../ic_notifications_off_white80.png | Bin 1014 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 493 -> 596 bytes .../ic_notifications_paused_black_24dp.png | Bin 351 -> 421 bytes .../ic_notifications_paused_white80.png | Bin 745 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 351 -> 422 bytes .../ic_notifications_white80.png | Bin 583 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 265 -> 319 bytes .../ic_open_in_new_white_24dp.png | Bin 0 -> 488 bytes .../drawable-xhdpi/ic_pause_black_36dp.png | Bin 109 -> 156 bytes .../drawable-xhdpi/ic_pause_white_36dp.png | Bin 92 -> 155 bytes .../ic_person_add_white_24dp.png | Bin 423 -> 344 bytes .../drawable-xhdpi/ic_person_black_48dp.png | Bin 565 -> 751 bytes .../drawable-xhdpi/ic_person_white_48dp.png | Bin 577 -> 738 bytes src/main/res/drawable-xhdpi/ic_profile.png | Bin 1374 -> 0 bytes .../drawable-xhdpi/ic_public_white_24dp.png | Bin 661 -> 1231 bytes .../ic_qr_code_scan_white_24dp.png | Bin 444 -> 0 bytes .../drawable-xhdpi/ic_qrcode_grey600_24dp.png | Bin 0 -> 476 bytes .../ic_qrcode_scan_white_24dp.png | Bin 0 -> 273 bytes .../drawable-xhdpi/ic_qrcode_white_24dp.png | Bin 0 -> 473 bytes .../res/drawable-xhdpi/ic_read_indicator.png | Bin 0 -> 416 bytes .../drawable-xhdpi/ic_received_indicator.png | Bin 0 -> 451 bytes .../drawable-xhdpi/ic_refresh_black_24dp.png | Bin 506 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 0 -> 565 bytes .../drawable-xhdpi/ic_refresh_white_24dp.png | Bin 509 -> 614 bytes .../ic_reply_circle_black_24dp.png | Bin 0 -> 964 bytes .../drawable-xhdpi/ic_reply_white_24dp.png | Bin 306 -> 675 bytes .../res/drawable-xhdpi/ic_room_black_48dp.png | Bin 868 -> 1093 bytes .../res/drawable-xhdpi/ic_room_white_24dp.png | Bin 587 -> 508 bytes .../res/drawable-xhdpi/ic_room_white_48dp.png | Bin 869 -> 1121 bytes .../res/drawable-xhdpi/ic_save_black_24dp.png | Bin 264 -> 301 bytes .../res/drawable-xhdpi/ic_save_white_24dp.png | Bin 273 -> 309 bytes .../ic_search_background_black.png | Bin 4465 -> 3856 bytes .../ic_search_background_white.png | Bin 5477 -> 4067 bytes .../drawable-xhdpi/ic_search_white_24dp.png | Bin 591 -> 512 bytes .../drawable-xhdpi/ic_security_black_24dp.png | Bin 0 -> 486 bytes .../drawable-xhdpi/ic_security_white_24dp.png | Bin 0 -> 956 bytes .../ic_send_attachment_away.png | Bin 0 -> 442 bytes .../drawable-xhdpi/ic_send_attachment_dnd.png | Bin 0 -> 469 bytes .../ic_send_attachment_offline.png | Bin 0 -> 402 bytes .../ic_send_attachment_offline_white.png | Bin 0 -> 421 bytes .../ic_send_attachment_online.png | Bin 0 -> 465 bytes .../drawable-xhdpi/ic_send_cancel_away.png | Bin 1724 -> 985 bytes .../res/drawable-xhdpi/ic_send_cancel_dnd.png | Bin 1958 -> 1137 bytes .../drawable-xhdpi/ic_send_cancel_offline.png | Bin 1519 -> 799 bytes .../ic_send_cancel_offline_dark.png | Bin 1458 -> 0 bytes .../ic_send_cancel_offline_white.png | Bin 1494 -> 802 bytes .../drawable-xhdpi/ic_send_cancel_online.png | Bin 1972 -> 1039 bytes .../drawable-xhdpi/ic_send_file_offline.png | Bin 429 -> 0 bytes .../ic_send_file_offline_white.png | Bin 380 -> 0 bytes .../drawable-xhdpi/ic_send_location_away.png | Bin 1507 -> 943 bytes .../drawable-xhdpi/ic_send_location_dnd.png | Bin 1753 -> 1086 bytes .../ic_send_location_offline.png | Bin 1278 -> 747 bytes .../ic_send_location_offline_dark.png | Bin 1250 -> 0 bytes .../ic_send_location_offline_white.png | Bin 1311 -> 789 bytes .../ic_send_location_online.png | Bin 1773 -> 1041 bytes .../res/drawable-xhdpi/ic_send_photo_away.png | Bin 1516 -> 871 bytes .../res/drawable-xhdpi/ic_send_photo_dnd.png | Bin 1756 -> 964 bytes .../drawable-xhdpi/ic_send_photo_offline.png | Bin 1247 -> 695 bytes .../ic_send_photo_offline_dark.png | Bin 1191 -> 0 bytes .../ic_send_photo_offline_white.png | Bin 1290 -> 696 bytes .../drawable-xhdpi/ic_send_photo_online.png | Bin 1758 -> 945 bytes .../drawable-xhdpi/ic_send_picture_away.png | Bin 899 -> 619 bytes .../drawable-xhdpi/ic_send_picture_dnd.png | Bin 1016 -> 714 bytes .../ic_send_picture_offline.png | Bin 799 -> 516 bytes .../ic_send_picture_offline_dark.png | Bin 752 -> 0 bytes .../ic_send_picture_offline_white.png | Bin 828 -> 523 bytes .../drawable-xhdpi/ic_send_picture_online.png | Bin 1006 -> 694 bytes .../res/drawable-xhdpi/ic_send_text_away.png | Bin 1270 -> 848 bytes .../res/drawable-xhdpi/ic_send_text_dnd.png | Bin 1430 -> 972 bytes .../drawable-xhdpi/ic_send_text_offline.png | Bin 1007 -> 649 bytes .../ic_send_text_offline_dark.png | Bin 958 -> 0 bytes .../ic_send_text_offline_white.png | Bin 1079 -> 719 bytes .../drawable-xhdpi/ic_send_text_online.png | Bin 1429 -> 917 bytes .../drawable-xhdpi/ic_send_videocam_away.png | Bin 502 -> 307 bytes .../drawable-xhdpi/ic_send_videocam_dnd.png | Bin 542 -> 325 bytes .../ic_send_videocam_offline.png | Bin 479 -> 282 bytes .../ic_send_videocam_offline_white.png | Bin 470 -> 284 bytes .../ic_send_videocam_online.png | Bin 539 -> 318 bytes .../res/drawable-xhdpi/ic_send_voice_away.png | Bin 1257 -> 825 bytes .../res/drawable-xhdpi/ic_send_voice_dnd.png | Bin 1419 -> 944 bytes .../drawable-xhdpi/ic_send_voice_offline.png | Bin 1075 -> 677 bytes .../ic_send_voice_offline_dark.png | Bin 1034 -> 0 bytes .../ic_send_voice_offline_white.png | Bin 1109 -> 699 bytes .../drawable-xhdpi/ic_send_voice_online.png | Bin 1433 -> 934 bytes .../drawable-xhdpi/ic_settings_white_24dp.png | Bin 562 -> 662 bytes .../drawable-xhdpi/ic_share_black_24dp.png | Bin 0 -> 852 bytes .../drawable-xhdpi/ic_share_white_24dp.png | Bin 625 -> 546 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 0 -> 297 bytes .../ic_speaker_notes_white_24dp.png | Bin 0 -> 214 bytes .../drawable-xhdpi/ic_stat_alert_warning.png | Bin 1175 -> 0 bytes .../ic_stat_communication_import_export.png | Bin 972 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 505 bytes .../drawable-xhdpi/ic_update_notification.png | Bin 0 -> 982 bytes .../ic_verified_fingerprint.png | Bin 1551 -> 1551 bytes .../ic_verified_user_black_18dp.png | Bin 390 -> 466 bytes .../ic_verified_user_white_18dp.png | Bin 407 -> 475 bytes .../drawable-xhdpi/ic_video_grey600_48dp.png | Bin 0 -> 432 bytes .../drawable-xhdpi/ic_vpn_key_white_24dp.png | Bin 0 -> 349 bytes .../drawable-xhdpi/ic_warning_white_24dp.png | Bin 460 -> 381 bytes .../res/drawable-xhdpi/ic_web_grey600_48.png | Bin 0 -> 788 bytes .../intro_account_details_icon.png | Bin 0 -> 1677 bytes .../res/drawable-xhdpi/intro_account_icon.png | Bin 0 -> 1968 bytes .../drawable-xhdpi/intro_contacts_icon.png | Bin 0 -> 2046 bytes .../drawable-xhdpi/intro_location_icon.png | Bin 0 -> 2839 bytes .../res/drawable-xhdpi/intro_memory_icon.png | Bin 0 -> 1187 bytes .../drawable-xhdpi/intro_security_icon.png | Bin 0 -> 3167 bytes .../drawable-xhdpi/intro_start_chat_icon.png | Bin 0 -> 1621 bytes .../res/drawable-xhdpi/intro_xmpp_icon.png | Bin 0 -> 3171 bytes src/main/res/drawable-xhdpi/main_logo.png | Bin 0 -> 27022 bytes src/main/res/drawable-xhdpi/marker.png | Bin 4815 -> 0 bytes .../message_bubble_received.9.png | Bin 936 -> 0 bytes .../message_bubble_received_dark.9.png | Bin 926 -> 0 bytes .../message_bubble_received_grey.9.png | Bin 915 -> 0 bytes .../message_bubble_received_warning.9.png | Bin 916 -> 0 bytes .../message_bubble_received_white.9.png | Bin 935 -> 0 bytes .../drawable-xhdpi/message_bubble_sent.9.png | Bin 857 -> 0 bytes .../message_bubble_sent_grey.9.png | Bin 842 -> 0 bytes .../res/drawable-xhdpi/open_pdf_black.png | Bin 2247 -> 0 bytes .../res/drawable-xhdpi/open_pdf_white.png | Bin 2431 -> 0 bytes .../res/drawable-xhdpi/pencil_overlay.png | Bin 0 -> 3465 bytes src/main/res/drawable-xhdpi/play_gif.png | Bin 0 -> 2567 bytes .../res/drawable-xhdpi/play_gif_black.png | Bin 1052 -> 0 bytes .../res/drawable-xhdpi/play_gif_white.png | Bin 1110 -> 0 bytes src/main/res/drawable-xhdpi/play_video.png | Bin 0 -> 12361 bytes .../res/drawable-xhdpi/play_video_black.png | Bin 6572 -> 0 bytes .../res/drawable-xhdpi/play_video_white.png | Bin 6953 -> 0 bytes src/main/res/drawable-xhdpi/show_pdf.png | Bin 0 -> 4306 bytes src/main/res/drawable-xhdpi/splash_logo.png | Bin 0 -> 52202 bytes .../drawable-xxhdpi/date_bubble_grey.9.png | Bin 1072 -> 0 bytes .../drawable-xxhdpi/date_bubble_white.9.png | Bin 1127 -> 0 bytes .../ic_account_box_white_24dp.png | Bin 578 -> 0 bytes .../ic_account_card_details_grey600_48dp.png | Bin 0 -> 1253 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 0 -> 2156 bytes .../ic_account_plus_grey600_48dp.png | Bin 0 -> 1905 bytes .../res/drawable-xxhdpi/ic_action_chat.png | Bin 0 -> 278 bytes .../res/drawable-xxhdpi/ic_add_white_24dp.png | Bin 222 -> 191 bytes .../drawable-xxhdpi/ic_android_black_48dp.png | Bin 975 -> 1548 bytes .../ic_android_grey600_48dp.png | Bin 0 -> 1865 bytes .../drawable-xxhdpi/ic_android_white_48dp.png | Bin 1012 -> 1602 bytes .../ic_announcement_white_24dp.png | Bin 355 -> 0 bytes .../drawable-xxhdpi/ic_archive_black_48dp.png | Bin 718 -> 1073 bytes .../drawable-xxhdpi/ic_archive_white_24dp.png | Bin 390 -> 622 bytes .../drawable-xxhdpi/ic_archive_white_48dp.png | Bin 738 -> 1084 bytes .../ic_arrow_back_white_24dp.png | Bin 0 -> 191 bytes .../res/drawable-xxhdpi/ic_attach_camera.png | Bin 1552 -> 741 bytes .../ic_attach_camera_white.png | Bin 1085 -> 794 bytes .../drawable-xxhdpi/ic_attach_document.png | Bin 1183 -> 373 bytes .../ic_attach_document_white.png | Bin 518 -> 400 bytes .../ic_attach_file_white_24dp.png | Bin 870 -> 710 bytes .../drawable-xxhdpi/ic_attach_location.png | Bin 1628 -> 867 bytes .../ic_attach_location_white.png | Bin 1117 -> 959 bytes .../res/drawable-xxhdpi/ic_attach_photo.png | Bin 1324 -> 595 bytes .../drawable-xxhdpi/ic_attach_photo_white.png | Bin 716 -> 628 bytes .../res/drawable-xxhdpi/ic_attach_record.png | Bin 1494 -> 796 bytes .../ic_attach_record_white.png | Bin 913 -> 849 bytes .../res/drawable-xxhdpi/ic_attach_video.png | Bin 0 -> 299 bytes .../drawable-xxhdpi/ic_attach_videocam.png | Bin 373 -> 294 bytes .../ic_attach_videocam_white.png | Bin 469 -> 306 bytes .../ic_attachment_black_24dp.png | Bin 0 -> 551 bytes .../ic_attachment_white_24dp.png | Bin 0 -> 1199 bytes .../drawable-xxhdpi/ic_audio_grey600_48dp.png | Bin 0 -> 2318 bytes .../ic_autorenew_white_24dp.png | Bin 869 -> 790 bytes .../drawable-xxhdpi/ic_backup_black_48dp.png | Bin 1116 -> 2008 bytes .../drawable-xxhdpi/ic_backup_white_48dp.png | Bin 1177 -> 2040 bytes .../drawable-xxhdpi/ic_block_white_24dp.png | Bin 1194 -> 0 bytes .../drawable-xxhdpi/ic_book_black_48dp.png | Bin 516 -> 1086 bytes .../drawable-xxhdpi/ic_book_white_48dp.png | Bin 532 -> 1084 bytes .../ic_calendar_grey600_48dp.png | Bin 0 -> 735 bytes .../ic_camera_alt_white_24dp.png | Bin 666 -> 0 bytes .../drawable-xxhdpi/ic_cancel_black_24dp.png | Bin 721 -> 1136 bytes .../drawable-xxhdpi/ic_cancel_white_24dp.png | Bin 893 -> 814 bytes .../drawable-xxhdpi/ic_chat_white_24dp.png | Bin 270 -> 354 bytes .../drawable-xxhdpi/ic_close_white_24dp.png | Bin 0 -> 457 bytes .../ic_cloud_download_white_24dp.png | Bin 610 -> 900 bytes .../drawable-xxhdpi/ic_cloud_white_24dp.png | Bin 0 -> 517 bytes .../drawable-xxhdpi/ic_contact_white_24dp.png | Bin 0 -> 647 bytes .../ic_contacts_white_24dp.png | Bin 0 -> 794 bytes .../ic_content_copy_black_24dp.png | Bin 258 -> 0 bytes .../ic_content_copy_grey600_24dp.png | Bin 0 -> 290 bytes .../ic_content_copy_white_24dp.png | Bin 266 -> 344 bytes .../drawable-xxhdpi/ic_crop_white_24dp.png | Bin 326 -> 0 bytes .../drawable-xxhdpi/ic_delete_black_24dp.png | Bin 191 -> 575 bytes .../ic_delete_grey600_24dp.png | Bin 0 -> 223 bytes .../drawable-xxhdpi/ic_delete_white_24dp.png | Bin 338 -> 221 bytes .../ic_description_black_48dp.png | Bin 514 -> 824 bytes .../ic_description_white_48dp.png | Bin 563 -> 861 bytes .../ic_directions_black_24dp.png | Bin 393 -> 0 bytes .../ic_directions_white_24dp.png | Bin 444 -> 0 bytes .../drawable-xxhdpi/ic_done_black_18dp.png | Bin 199 -> 0 bytes .../ic_done_black_24dp.png} | Bin .../drawable-xxhdpi/ic_done_white_18dp.png | Bin 217 -> 0 bytes .../ic_download_grey600_48dp.png | Bin 0 -> 388 bytes .../drawable-xxhdpi/ic_drafts_white_24dp.png | Bin 717 -> 0 bytes .../drawable-xxhdpi/ic_edit_black_24dp.png | Bin 269 -> 453 bytes .../drawable-xxhdpi/ic_edit_white_24dp.png | Bin 490 -> 411 bytes .../ic_email_open_outline_white_24dp.png | Bin 0 -> 1249 bytes .../drawable-xxhdpi/ic_event_black_48dp.png | Bin 484 -> 787 bytes .../drawable-xxhdpi/ic_event_white_48dp.png | Bin 513 -> 800 bytes .../ic_file_download_white_24dp.png | Bin 351 -> 232 bytes .../drawable-xxhdpi/ic_file_grey600_48dp.png | Bin 0 -> 728 bytes .../ic_file_pdf_grey600_48dp.png | Bin 0 -> 2273 bytes .../drawable-xxhdpi/ic_forward_white_24dp.png | Bin 204 -> 303 bytes .../ic_gps_fixed_black_24dp.png | Bin 976 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 1012 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 803 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 830 -> 0 bytes .../ic_group_add_white_24dp.png | Bin 722 -> 595 bytes .../drawable-xxhdpi/ic_group_white_24dp.png | Bin 599 -> 520 bytes .../drawable-xxhdpi/ic_headset_black_48dp.png | Bin 1183 -> 1867 bytes .../drawable-xxhdpi/ic_headset_white_48dp.png | Bin 1246 -> 1896 bytes .../drawable-xxhdpi/ic_help_black_24dp.png | Bin 0 -> 834 bytes .../drawable-xxhdpi/ic_help_black_48dp.png | Bin 1652 -> 2613 bytes .../ic_help_circle_outline_black_24dp.png | Bin 0 -> 1979 bytes .../ic_help_circle_outline_white_24dp.png | Bin 0 -> 3315 bytes .../ic_help_circle_white_24dp.png | Bin 0 -> 1676 bytes .../drawable-xxhdpi/ic_help_white_48dp.png | Bin 1677 -> 2702 bytes .../drawable-xxhdpi/ic_image_black_24dp.png | Bin 0 -> 424 bytes .../drawable-xxhdpi/ic_image_grey600_48dp.png | Bin 0 -> 1506 bytes .../drawable-xxhdpi/ic_image_white_24dp.png | Bin 0 -> 975 bytes .../drawable-xxhdpi/ic_input_white_24dp.png | Bin 303 -> 513 bytes src/main/res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 13920 bytes .../ic_link_off_white_24dp.png | Bin 650 -> 1074 bytes .../drawable-xxhdpi/ic_link_white_24dp.png | Bin 670 -> 591 bytes .../drawable-xxhdpi/ic_lock_black_18dp.png | Bin 453 -> 650 bytes .../ic_lock_open_white_24dp.png | Bin 739 -> 545 bytes .../drawable-xxhdpi/ic_lock_white_18dp.png | Bin 463 -> 657 bytes .../drawable-xxhdpi/ic_lock_white_24dp.png | Bin 760 -> 571 bytes .../ic_map_marker_grey600_48dp.png | Bin 0 -> 1834 bytes .../drawable-xxhdpi/ic_menu_white_24dp.png | Bin 0 -> 420 bytes .../res/drawable-xxhdpi/ic_mic_black_48dp.png | Bin 1146 -> 1846 bytes .../res/drawable-xxhdpi/ic_mic_white_48dp.png | Bin 1220 -> 1866 bytes .../ic_mode_edit_black_18dp.png | Bin 336 -> 444 bytes .../ic_mode_edit_white_18dp.png | Bin 436 -> 450 bytes .../ic_navigation_white_24dp.png | Bin 0 -> 607 bytes .../ic_no_results_background_black.png | Bin 8790 -> 8130 bytes .../ic_no_results_background_white.png | Bin 9662 -> 8555 bytes .../res/drawable-xxhdpi/ic_notification.png | Bin 0 -> 1735 bytes .../ic_notifications_black_24dp.png | Bin 381 -> 554 bytes .../ic_notifications_grey600_24dp.png | Bin 0 -> 463 bytes .../ic_notifications_none_black_24dp.png | Bin 495 -> 723 bytes .../ic_notifications_none_white80.png | Bin 1033 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 485 -> 729 bytes .../ic_notifications_off_black_24dp.png | Bin 690 -> 1085 bytes .../ic_notifications_off_white80.png | Bin 1483 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 683 -> 1087 bytes .../ic_notifications_paused_black_24dp.png | Bin 482 -> 731 bytes .../ic_notifications_paused_white80.png | Bin 1049 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 482 -> 737 bytes .../ic_notifications_white80.png | Bin 831 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 378 -> 558 bytes .../ic_open_in_new_white_24dp.png | Bin 0 -> 546 bytes .../drawable-xxhdpi/ic_pause_black_36dp.png | Bin 143 -> 247 bytes .../drawable-xxhdpi/ic_pause_white_36dp.png | Bin 158 -> 249 bytes .../ic_person_add_white_24dp.png | Bin 683 -> 518 bytes .../drawable-xxhdpi/ic_person_black_48dp.png | Bin 846 -> 1351 bytes .../drawable-xxhdpi/ic_person_white_48dp.png | Bin 863 -> 1360 bytes src/main/res/drawable-xxhdpi/ic_profile.png | Bin 2137 -> 0 bytes .../drawable-xxhdpi/ic_public_white_24dp.png | Bin 982 -> 1608 bytes .../ic_qr_code_scan_white_24dp.png | Bin 599 -> 0 bytes .../ic_qrcode_grey600_24dp.png | Bin 0 -> 536 bytes .../ic_qrcode_scan_white_24dp.png | Bin 0 -> 409 bytes .../drawable-xxhdpi/ic_qrcode_white_24dp.png | Bin 0 -> 531 bytes .../res/drawable-xxhdpi/ic_read_indicator.png | Bin 0 -> 764 bytes .../drawable-xxhdpi/ic_received_indicator.png | Bin 0 -> 622 bytes .../drawable-xxhdpi/ic_refresh_black_24dp.png | Bin 721 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 0 -> 803 bytes .../drawable-xxhdpi/ic_refresh_white_24dp.png | Bin 734 -> 1094 bytes .../ic_reply_circle_black_24dp.png | Bin 0 -> 1280 bytes .../drawable-xxhdpi/ic_reply_white_24dp.png | Bin 436 -> 911 bytes .../drawable-xxhdpi/ic_room_black_48dp.png | Bin 1264 -> 2010 bytes .../drawable-xxhdpi/ic_room_white_24dp.png | Bin 861 -> 782 bytes .../drawable-xxhdpi/ic_room_white_48dp.png | Bin 1270 -> 2071 bytes .../drawable-xxhdpi/ic_save_black_24dp.png | Bin 368 -> 497 bytes .../drawable-xxhdpi/ic_save_white_24dp.png | Bin 391 -> 504 bytes .../ic_search_background_black.png | Bin 7248 -> 7855 bytes .../ic_search_background_white.png | Bin 9102 -> 8152 bytes .../drawable-xxhdpi/ic_search_white_24dp.png | Bin 871 -> 792 bytes .../ic_security_black_24dp.png | Bin 0 -> 674 bytes .../ic_security_white_24dp.png | Bin 0 -> 1338 bytes .../ic_send_attachment_away.png | Bin 0 -> 890 bytes .../ic_send_attachment_dnd.png | Bin 0 -> 948 bytes .../ic_send_attachment_offline.png | Bin 0 -> 802 bytes .../ic_send_attachment_offline_white.png | Bin 0 -> 819 bytes .../ic_send_attachment_online.png | Bin 0 -> 957 bytes .../drawable-xxhdpi/ic_send_cancel_away.png | Bin 2583 -> 1953 bytes .../drawable-xxhdpi/ic_send_cancel_dnd.png | Bin 2983 -> 2361 bytes .../ic_send_cancel_offline.png | Bin 2290 -> 1626 bytes .../ic_send_cancel_offline_white.png | Bin 2239 -> 1630 bytes .../drawable-xxhdpi/ic_send_cancel_online.png | Bin 2974 -> 2138 bytes .../drawable-xxhdpi/ic_send_file_offline.png | Bin 750 -> 0 bytes .../ic_send_file_offline_white.png | Bin 669 -> 0 bytes .../drawable-xxhdpi/ic_send_location_away.png | Bin 2229 -> 1753 bytes .../drawable-xxhdpi/ic_send_location_dnd.png | Bin 2589 -> 2046 bytes .../ic_send_location_offline.png | Bin 1881 -> 1405 bytes .../ic_send_location_offline_white.png | Bin 1940 -> 1415 bytes .../ic_send_location_online.png | Bin 2607 -> 1954 bytes .../drawable-xxhdpi/ic_send_photo_away.png | Bin 2256 -> 1631 bytes .../res/drawable-xxhdpi/ic_send_photo_dnd.png | Bin 2618 -> 1866 bytes .../drawable-xxhdpi/ic_send_photo_offline.png | Bin 1802 -> 1286 bytes .../ic_send_photo_offline_white.png | Bin 1943 -> 1288 bytes .../drawable-xxhdpi/ic_send_photo_online.png | Bin 2636 -> 1827 bytes .../drawable-xxhdpi/ic_send_picture_away.png | Bin 1327 -> 1199 bytes .../drawable-xxhdpi/ic_send_picture_dnd.png | Bin 1516 -> 1378 bytes .../ic_send_picture_offline.png | Bin 1159 -> 1020 bytes .../ic_send_picture_offline_white.png | Bin 1216 -> 1026 bytes .../ic_send_picture_online.png | Bin 1515 -> 1324 bytes .../res/drawable-xxhdpi/ic_send_text_away.png | Bin 1776 -> 1688 bytes .../res/drawable-xxhdpi/ic_send_text_dnd.png | Bin 2005 -> 1953 bytes .../drawable-xxhdpi/ic_send_text_offline.png | Bin 1410 -> 1322 bytes .../ic_send_text_offline_white.png | Bin 1486 -> 1361 bytes .../drawable-xxhdpi/ic_send_text_online.png | Bin 1970 -> 1878 bytes .../drawable-xxhdpi/ic_send_videocam_away.png | Bin 705 -> 609 bytes .../drawable-xxhdpi/ic_send_videocam_dnd.png | Bin 777 -> 667 bytes .../ic_send_videocam_offline.png | Bin 650 -> 542 bytes .../ic_send_videocam_offline_white.png | Bin 670 -> 546 bytes .../ic_send_videocam_online.png | Bin 776 -> 654 bytes .../drawable-xxhdpi/ic_send_voice_away.png | Bin 1895 -> 1565 bytes .../res/drawable-xxhdpi/ic_send_voice_dnd.png | Bin 2200 -> 1816 bytes .../drawable-xxhdpi/ic_send_voice_offline.png | Bin 1621 -> 1276 bytes .../ic_send_voice_offline_white.png | Bin 1644 -> 1303 bytes .../drawable-xxhdpi/ic_send_voice_online.png | Bin 2187 -> 1731 bytes .../ic_settings_white_24dp.png | Bin 843 -> 1185 bytes .../drawable-xxhdpi/ic_share_black_24dp.png | Bin 0 -> 1190 bytes .../drawable-xxhdpi/ic_share_white_24dp.png | Bin 857 -> 778 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 0 -> 388 bytes .../ic_speaker_notes_white_24dp.png | Bin 0 -> 276 bytes .../drawable-xxhdpi/ic_stat_alert_warning.png | Bin 2276 -> 0 bytes .../ic_stat_communication_import_export.png | Bin 1860 -> 0 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 619 bytes .../ic_update_notification.png | Bin 0 -> 1837 bytes .../ic_verified_fingerprint.png | Bin 2306 -> 2306 bytes .../ic_verified_user_black_18dp.png | Bin 516 -> 842 bytes .../ic_verified_user_white_18dp.png | Bin 538 -> 867 bytes .../drawable-xxhdpi/ic_video_grey600_48dp.png | Bin 0 -> 699 bytes .../drawable-xxhdpi/ic_vpn_key_white_24dp.png | Bin 0 -> 493 bytes .../drawable-xxhdpi/ic_warning_white_24dp.png | Bin 639 -> 560 bytes .../res/drawable-xxhdpi/ic_web_grey600_48.png | Bin 0 -> 1014 bytes .../intro_account_details_icon.png | Bin 0 -> 2064 bytes .../drawable-xxhdpi/intro_account_icon.png | Bin 0 -> 2670 bytes .../drawable-xxhdpi/intro_contacts_icon.png | Bin 0 -> 2764 bytes .../drawable-xxhdpi/intro_location_icon.png | Bin 0 -> 3848 bytes .../res/drawable-xxhdpi/intro_memory_icon.png | Bin 0 -> 1547 bytes .../drawable-xxhdpi/intro_security_icon.png | Bin 0 -> 3687 bytes .../drawable-xxhdpi/intro_start_chat_icon.png | Bin 0 -> 2229 bytes .../res/drawable-xxhdpi/intro_xmpp_icon.png | Bin 0 -> 3894 bytes src/main/res/drawable-xxhdpi/main_logo.png | Bin 0 -> 51730 bytes src/main/res/drawable-xxhdpi/marker.png | Bin 7462 -> 0 bytes .../message_bubble_received.9.png | Bin 1319 -> 0 bytes .../message_bubble_received_dark.9.png | Bin 1319 -> 0 bytes .../message_bubble_received_grey.9.png | Bin 1301 -> 0 bytes .../message_bubble_received_warning.9.png | Bin 1332 -> 0 bytes .../message_bubble_received_white.9.png | Bin 1344 -> 0 bytes .../drawable-xxhdpi/message_bubble_sent.9.png | Bin 1190 -> 0 bytes .../message_bubble_sent_grey.9.png | Bin 1173 -> 0 bytes .../res/drawable-xxhdpi/open_pdf_black.png | Bin 3076 -> 0 bytes .../res/drawable-xxhdpi/open_pdf_white.png | Bin 3301 -> 0 bytes .../res/drawable-xxhdpi/pencil_overlay.png | Bin 0 -> 2119 bytes src/main/res/drawable-xxhdpi/play_gif.png | Bin 0 -> 5085 bytes .../res/drawable-xxhdpi/play_gif_black.png | Bin 1580 -> 0 bytes .../res/drawable-xxhdpi/play_gif_white.png | Bin 1652 -> 0 bytes src/main/res/drawable-xxhdpi/play_video.png | Bin 0 -> 24711 bytes .../res/drawable-xxhdpi/play_video_black.png | Bin 10044 -> 0 bytes .../res/drawable-xxhdpi/play_video_white.png | Bin 10668 -> 0 bytes src/main/res/drawable-xxhdpi/show_pdf.png | Bin 0 -> 9223 bytes src/main/res/drawable-xxhdpi/splash_logo.png | Bin 0 -> 81130 bytes .../drawable-xxxhdpi/date_bubble_grey.9.png | Bin 1392 -> 0 bytes .../drawable-xxxhdpi/date_bubble_white.9.png | Bin 1430 -> 0 bytes .../ic_account_box_white_24dp.png | Bin 894 -> 0 bytes .../ic_account_card_details_grey600_48dp.png | Bin 0 -> 1833 bytes .../ic_account_multiple_plus_grey600_48dp.png | Bin 0 -> 6100 bytes .../ic_account_plus_grey600_48dp.png | Bin 0 -> 4815 bytes .../drawable-xxxhdpi/ic_add_white_24dp.png | Bin 269 -> 309 bytes .../ic_android_black_48dp.png | Bin 1295 -> 1868 bytes .../ic_android_grey600_48dp.png | Bin 0 -> 2224 bytes .../ic_android_white_48dp.png | Bin 1350 -> 1951 bytes .../ic_announcement_white_24dp.png | Bin 519 -> 0 bytes .../ic_archive_black_48dp.png | Bin 945 -> 1219 bytes .../ic_archive_white_24dp.png | Bin 489 -> 1405 bytes .../ic_archive_white_48dp.png | Bin 971 -> 1243 bytes .../ic_arrow_back_white_24dp.png | Bin 0 -> 194 bytes .../ic_attach_camera_white.png | Bin 1416 -> 1064 bytes .../ic_attach_document_white.png | Bin 627 -> 475 bytes .../ic_attach_file_white_24dp.png | Bin 1039 -> 917 bytes .../ic_attach_location_white.png | Bin 1395 -> 1090 bytes .../ic_attach_photo_white.png | Bin 900 -> 708 bytes .../ic_attach_record_white.png | Bin 1170 -> 986 bytes .../res/drawable-xxxhdpi/ic_attach_video.png | Bin 0 -> 528 bytes .../drawable-xxxhdpi/ic_attach_videocam.png | Bin 429 -> 405 bytes .../ic_attach_videocam_white.png | Bin 547 -> 371 bytes .../ic_attachment_black_24dp.png | Bin 0 -> 759 bytes .../ic_attachment_white_24dp.png | Bin 0 -> 1475 bytes .../ic_audio_grey600_48dp.png | Bin 0 -> 2623 bytes .../ic_autorenew_white_24dp.png | Bin 1114 -> 1035 bytes .../drawable-xxxhdpi/ic_backup_black_48dp.png | Bin 1465 -> 4951 bytes .../drawable-xxxhdpi/ic_backup_white_48dp.png | Bin 1562 -> 5049 bytes .../drawable-xxxhdpi/ic_block_white_24dp.png | Bin 1497 -> 0 bytes .../drawable-xxxhdpi/ic_book_black_48dp.png | Bin 750 -> 2458 bytes .../drawable-xxxhdpi/ic_book_white_48dp.png | Bin 766 -> 2507 bytes .../ic_calendar_grey600_48dp.png | Bin 0 -> 1096 bytes .../ic_camera_alt_white_24dp.png | Bin 894 -> 0 bytes .../drawable-xxxhdpi/ic_cancel_black_24dp.png | Bin 963 -> 1230 bytes .../drawable-xxxhdpi/ic_cancel_white_24dp.png | Bin 1179 -> 1100 bytes .../drawable-xxxhdpi/ic_chat_white_24dp.png | Bin 344 -> 416 bytes .../drawable-xxxhdpi/ic_close_white_24dp.png | Bin 0 -> 1189 bytes .../ic_cloud_download_white_24dp.png | Bin 789 -> 985 bytes .../drawable-xxxhdpi/ic_cloud_white_24dp.png | Bin 0 -> 660 bytes .../ic_contact_white_24dp.png | Bin 0 -> 756 bytes .../ic_contacts_white_24dp.png | Bin 0 -> 1020 bytes .../ic_content_copy_black_24dp.png | Bin 319 -> 0 bytes .../ic_content_copy_grey600_24dp.png | Bin 0 -> 367 bytes .../ic_content_copy_white_24dp.png | Bin 329 -> 439 bytes .../drawable-xxxhdpi/ic_crop_white_24dp.png | Bin 394 -> 0 bytes .../drawable-xxxhdpi/ic_delete_black_24dp.png | Bin 237 -> 668 bytes .../ic_delete_grey600_24dp.png | Bin 0 -> 278 bytes .../drawable-xxxhdpi/ic_delete_white_24dp.png | Bin 397 -> 275 bytes .../ic_description_black_48dp.png | Bin 726 -> 1050 bytes .../ic_description_white_48dp.png | Bin 788 -> 1087 bytes .../ic_directions_black_24dp.png | Bin 491 -> 0 bytes .../ic_directions_white_24dp.png | Bin 554 -> 0 bytes .../drawable-xxxhdpi/ic_done_black_24dp.png | Bin 0 -> 277 bytes .../drawable-xxxhdpi/ic_done_white_18dp.png | Bin 255 -> 0 bytes .../ic_download_grey600_48dp.png | Bin 0 -> 534 bytes .../drawable-xxxhdpi/ic_drafts_white_24dp.png | Bin 953 -> 0 bytes .../drawable-xxxhdpi/ic_edit_black_24dp.png | Bin 319 -> 410 bytes .../drawable-xxxhdpi/ic_edit_white_24dp.png | Bin 632 -> 501 bytes .../ic_email_open_outline_white_24dp.png | Bin 0 -> 1512 bytes .../drawable-xxxhdpi/ic_event_black_48dp.png | Bin 713 -> 1061 bytes .../drawable-xxxhdpi/ic_event_white_48dp.png | Bin 744 -> 1053 bytes .../ic_file_download_white_24dp.png | Bin 433 -> 307 bytes .../drawable-xxxhdpi/ic_file_grey600_48dp.png | Bin 0 -> 1048 bytes .../ic_file_pdf_grey600_48dp.png | Bin 0 -> 3200 bytes .../ic_forward_white_24dp.png | Bin 236 -> 306 bytes .../ic_gps_fixed_black_24dp.png | Bin 1334 -> 0 bytes .../ic_gps_fixed_white_24dp.png | Bin 1379 -> 0 bytes .../ic_gps_not_fixed_black_24dp.png | Bin 1102 -> 0 bytes .../ic_gps_not_fixed_white_24dp.png | Bin 1139 -> 0 bytes .../ic_group_add_white_24dp.png | Bin 935 -> 797 bytes .../drawable-xxxhdpi/ic_group_white_24dp.png | Bin 759 -> 680 bytes .../ic_headset_black_48dp.png | Bin 1574 -> 2162 bytes .../ic_headset_white_48dp.png | Bin 1736 -> 2214 bytes .../drawable-xxxhdpi/ic_help_black_24dp.png | Bin 0 -> 1122 bytes .../drawable-xxxhdpi/ic_help_black_48dp.png | Bin 2217 -> 2945 bytes .../ic_help_circle_outline_black_24dp.png | Bin 0 -> 4762 bytes .../ic_help_circle_outline_white_24dp.png | Bin 0 -> 4689 bytes .../ic_help_circle_white_24dp.png | Bin 0 -> 2216 bytes .../drawable-xxxhdpi/ic_help_white_48dp.png | Bin 2356 -> 3067 bytes .../drawable-xxxhdpi/ic_image_black_24dp.png | Bin 0 -> 548 bytes .../ic_image_grey600_48dp.png | Bin 0 -> 1476 bytes .../drawable-xxxhdpi/ic_image_white_24dp.png | Bin 0 -> 1210 bytes .../drawable-xxxhdpi/ic_input_white_24dp.png | Bin 382 -> 1121 bytes src/main/res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 20721 bytes .../ic_link_off_white_24dp.png | Bin 811 -> 2832 bytes .../drawable-xxxhdpi/ic_link_white_24dp.png | Bin 865 -> 786 bytes .../drawable-xxxhdpi/ic_lock_black_18dp.png | Bin 527 -> 643 bytes .../ic_lock_open_white_24dp.png | Bin 946 -> 725 bytes .../drawable-xxxhdpi/ic_lock_white_18dp.png | Bin 540 -> 649 bytes .../drawable-xxxhdpi/ic_lock_white_24dp.png | Bin 971 -> 768 bytes .../ic_map_marker_grey600_48dp.png | Bin 0 -> 2520 bytes .../drawable-xxxhdpi/ic_menu_white_24dp.png | Bin 0 -> 450 bytes .../drawable-xxxhdpi/ic_mic_black_48dp.png | Bin 1529 -> 2108 bytes .../drawable-xxxhdpi/ic_mic_white_48dp.png | Bin 1664 -> 2141 bytes .../ic_mode_edit_black_18dp.png | Bin 366 -> 331 bytes .../ic_mode_edit_white_18dp.png | Bin 490 -> 345 bytes .../ic_navigation_white_24dp.png | Bin 0 -> 798 bytes .../ic_no_results_background_black.png | Bin 12852 -> 9084 bytes .../ic_no_results_background_white.png | Bin 13693 -> 9494 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 0 -> 3852 bytes .../ic_notifications_black_24dp.png | Bin 493 -> 609 bytes .../ic_notifications_grey600_24dp.png | Bin 0 -> 577 bytes .../ic_notifications_none_black_24dp.png | Bin 641 -> 806 bytes .../ic_notifications_none_white80.png | Bin 1288 -> 0 bytes .../ic_notifications_none_white_24dp.png | Bin 633 -> 818 bytes .../ic_notifications_off_black_24dp.png | Bin 885 -> 1131 bytes .../ic_notifications_off_white80.png | Bin 1903 -> 0 bytes .../ic_notifications_off_white_24dp.png | Bin 877 -> 1129 bytes .../ic_notifications_paused_black_24dp.png | Bin 618 -> 794 bytes .../ic_notifications_paused_white80.png | Bin 1308 -> 0 bytes .../ic_notifications_paused_white_24dp.png | Bin 616 -> 803 bytes .../ic_notifications_white80.png | Bin 1053 -> 0 bytes .../ic_notifications_white_24dp.png | Bin 482 -> 624 bytes .../ic_open_in_new_white_24dp.png | Bin 0 -> 1204 bytes .../drawable-xxxhdpi/ic_pause_black_36dp.png | Bin 127 -> 364 bytes .../drawable-xxxhdpi/ic_pause_white_36dp.png | Bin 110 -> 365 bytes .../ic_person_add_white_24dp.png | Bin 909 -> 694 bytes .../drawable-xxxhdpi/ic_person_black_48dp.png | Bin 1121 -> 1552 bytes .../drawable-xxxhdpi/ic_person_white_48dp.png | Bin 1140 -> 1552 bytes .../drawable-xxxhdpi/ic_public_white_24dp.png | Bin 1288 -> 3975 bytes .../ic_qr_code_scan_white_24dp.png | Bin 754 -> 0 bytes .../ic_qrcode_grey600_24dp.png | Bin 0 -> 585 bytes .../ic_qrcode_scan_white_24dp.png | Bin 0 -> 492 bytes .../drawable-xxxhdpi/ic_qrcode_white_24dp.png | Bin 0 -> 582 bytes .../drawable-xxxhdpi/ic_read_indicator.png | Bin 0 -> 751 bytes .../ic_received_indicator.png | Bin 0 -> 799 bytes .../ic_refresh_black_24dp.png | Bin 948 -> 0 bytes .../ic_refresh_grey600_24dp.png | Bin 0 -> 1082 bytes .../ic_refresh_white_24dp.png | Bin 967 -> 1225 bytes .../ic_reply_circle_black_24dp.png | Bin 0 -> 3323 bytes .../drawable-xxxhdpi/ic_reply_white_24dp.png | Bin 579 -> 1196 bytes .../drawable-xxxhdpi/ic_room_black_48dp.png | Bin 1691 -> 2283 bytes .../drawable-xxxhdpi/ic_room_white_24dp.png | Bin 1093 -> 1014 bytes .../drawable-xxxhdpi/ic_room_white_48dp.png | Bin 1709 -> 2439 bytes .../drawable-xxxhdpi/ic_save_black_24dp.png | Bin 477 -> 598 bytes .../drawable-xxxhdpi/ic_save_white_24dp.png | Bin 504 -> 614 bytes .../ic_search_background_black.png | Bin 10595 -> 8540 bytes .../ic_search_background_white.png | Bin 12848 -> 9156 bytes .../drawable-xxxhdpi/ic_search_white_24dp.png | Bin 1090 -> 1011 bytes .../ic_security_black_24dp.png | Bin 0 -> 872 bytes .../ic_security_white_24dp.png | Bin 0 -> 1707 bytes .../ic_send_attachment_away.png | Bin 0 -> 598 bytes .../ic_send_attachment_dnd.png | Bin 0 -> 600 bytes .../ic_send_attachment_offline.png | Bin 0 -> 550 bytes .../ic_send_attachment_offline_white.png | Bin 0 -> 597 bytes .../ic_send_attachment_online.png | Bin 0 -> 2159 bytes .../drawable-xxxhdpi/ic_send_cancel_away.png | Bin 3377 -> 2189 bytes .../drawable-xxxhdpi/ic_send_cancel_dnd.png | Bin 3862 -> 2363 bytes .../ic_send_cancel_offline.png | Bin 2956 -> 1762 bytes .../ic_send_cancel_offline_white.png | Bin 2987 -> 1799 bytes .../ic_send_cancel_online.png | Bin 3861 -> 2283 bytes .../ic_send_location_away.png | Bin 3015 -> 2019 bytes .../drawable-xxxhdpi/ic_send_location_dnd.png | Bin 3514 -> 2189 bytes .../ic_send_location_offline.png | Bin 2523 -> 1615 bytes .../ic_send_location_offline_white.png | Bin 2563 -> 1661 bytes .../ic_send_location_online.png | Bin 3519 -> 2131 bytes .../drawable-xxxhdpi/ic_send_photo_away.png | Bin 3040 -> 1981 bytes .../drawable-xxxhdpi/ic_send_photo_dnd.png | Bin 3569 -> 2123 bytes .../ic_send_photo_offline.png | Bin 2491 -> 1614 bytes .../ic_send_photo_offline_white.png | Bin 2631 -> 1596 bytes .../drawable-xxxhdpi/ic_send_photo_online.png | Bin 3567 -> 2067 bytes .../drawable-xxxhdpi/ic_send_picture_away.png | Bin 1632 -> 1230 bytes .../drawable-xxxhdpi/ic_send_picture_dnd.png | Bin 1784 -> 1307 bytes .../ic_send_picture_offline.png | Bin 1428 -> 1034 bytes .../ic_send_picture_offline_white.png | Bin 1483 -> 1067 bytes .../ic_send_picture_online.png | Bin 1777 -> 1296 bytes .../drawable-xxxhdpi/ic_send_text_away.png | Bin 2311 -> 1475 bytes .../res/drawable-xxxhdpi/ic_send_text_dnd.png | Bin 2592 -> 1629 bytes .../drawable-xxxhdpi/ic_send_text_offline.png | Bin 1862 -> 1137 bytes .../ic_send_text_offline_white.png | Bin 1974 -> 1228 bytes .../drawable-xxxhdpi/ic_send_text_online.png | Bin 2665 -> 1567 bytes .../ic_send_videocam_away.png | Bin 821 -> 630 bytes .../drawable-xxxhdpi/ic_send_videocam_dnd.png | Bin 884 -> 663 bytes .../ic_send_videocam_offline.png | Bin 772 -> 558 bytes .../ic_send_videocam_offline_white.png | Bin 777 -> 565 bytes .../ic_send_videocam_online.png | Bin 894 -> 643 bytes .../drawable-xxxhdpi/ic_send_voice_away.png | Bin 2491 -> 1792 bytes .../drawable-xxxhdpi/ic_send_voice_dnd.png | Bin 2849 -> 1939 bytes .../ic_send_voice_offline.png | Bin 2092 -> 1463 bytes .../ic_send_voice_offline_white.png | Bin 2181 -> 1500 bytes .../drawable-xxxhdpi/ic_send_voice_online.png | Bin 2895 -> 1878 bytes .../ic_settings_white_24dp.png | Bin 1074 -> 1384 bytes .../drawable-xxxhdpi/ic_share_black_24dp.png | Bin 0 -> 1556 bytes .../drawable-xxxhdpi/ic_share_white_24dp.png | Bin 1115 -> 1036 bytes .../ic_speaker_notes_off_white_24dp.png | Bin 0 -> 534 bytes .../ic_speaker_notes_white_24dp.png | Bin 0 -> 348 bytes .../ic_unarchive_white_24dp.png | Bin 0 -> 1425 bytes .../ic_update_notification.png | Bin 0 -> 2035 bytes .../ic_verified_fingerprint.png | Bin 2773 -> 2773 bytes .../ic_verified_user_black_18dp.png | Bin 634 -> 772 bytes .../ic_verified_user_white_18dp.png | Bin 668 -> 807 bytes .../ic_video_grey600_48dp.png | Bin 0 -> 964 bytes .../ic_vpn_key_white_24dp.png | Bin 0 -> 652 bytes .../ic_warning_white_24dp.png | Bin 887 -> 654 bytes .../drawable-xxxhdpi/ic_web_grey600_48.png | Bin 0 -> 2346 bytes .../intro_account_details_icon.png | Bin 0 -> 5313 bytes .../drawable-xxxhdpi/intro_account_icon.png | Bin 0 -> 6431 bytes .../drawable-xxxhdpi/intro_contacts_icon.png | Bin 0 -> 6681 bytes .../drawable-xxxhdpi/intro_location_icon.png | Bin 0 -> 9784 bytes .../drawable-xxxhdpi/intro_memory_icon.png | Bin 0 -> 3715 bytes .../drawable-xxxhdpi/intro_security_icon.png | Bin 0 -> 10568 bytes .../intro_start_chat_icon.png | Bin 0 -> 5163 bytes .../res/drawable-xxxhdpi/intro_xmpp_icon.png | Bin 0 -> 10769 bytes src/main/res/drawable-xxxhdpi/main_logo.png | Bin 0 -> 58337 bytes src/main/res/drawable-xxxhdpi/marker.png | Bin 9950 -> 0 bytes .../message_bubble_received.9.png | Bin 1713 -> 0 bytes .../message_bubble_received_dark.9.png | Bin 1691 -> 0 bytes .../message_bubble_received_grey.9.png | Bin 1670 -> 0 bytes .../message_bubble_received_warning.9.png | Bin 1696 -> 0 bytes .../message_bubble_received_white.9.png | Bin 1705 -> 0 bytes .../message_bubble_sent.9.png | Bin 1499 -> 0 bytes .../message_bubble_sent_grey.9.png | Bin 1468 -> 0 bytes .../res/drawable-xxxhdpi/open_pdf_black.png | Bin 4626 -> 0 bytes .../res/drawable-xxxhdpi/open_pdf_white.png | Bin 4986 -> 0 bytes .../res/drawable-xxxhdpi/pencil_overlay.png | Bin 0 -> 9724 bytes src/main/res/drawable-xxxhdpi/play_gif.png | Bin 0 -> 7359 bytes .../res/drawable-xxxhdpi/play_gif_black.png | Bin 2334 -> 0 bytes .../res/drawable-xxxhdpi/play_gif_white.png | Bin 2436 -> 0 bytes src/main/res/drawable-xxxhdpi/play_video.png | Bin 0 -> 29246 bytes .../res/drawable-xxxhdpi/play_video_black.png | Bin 13926 -> 0 bytes .../res/drawable-xxxhdpi/play_video_white.png | Bin 15040 -> 0 bytes src/main/res/drawable-xxxhdpi/show_pdf.png | Bin 0 -> 10923 bytes src/main/res/drawable-xxxhdpi/splash_logo.png | Bin 0 -> 95109 bytes .../res/drawable/account_image_border.xml | 15 - src/main/res/drawable/background.xml | 6 +- src/main/res/drawable/chatbg.xml | 4 + src/main/res/drawable/date_bubble.xml | 14 + src/main/res/drawable/date_bubble_dark.xml | 14 + .../res/drawable/es_slidingpane_shadow.xml | 12 - src/main/res/drawable/grey.xml | 2 +- src/main/res/drawable/greybackground.xml | 2 +- .../res/drawable/ic_directions_black_24dp.xml | 9 - .../res/drawable/ic_gps_fixed_black_24dp.xml | 9 - .../drawable/ic_gps_not_fixed_black_24dp.xml | 9 - .../res/drawable/ic_launcher_foreground.xml | 24 - src/main/res/drawable/ic_place_black_24dp.xml | 9 - .../res/drawable/ic_scroll_to_end_black.xml | 12 +- .../res/drawable/ic_scroll_to_end_white.xml | 12 +- src/main/res/drawable/ic_visibility.xml | 10 +- src/main/res/drawable/ic_visibility_off.xml | 10 +- .../drawable/list_item_background_dark.xml | 6 +- .../drawable/list_item_background_light.xml | 6 +- .../message_bubble_received_light.xml | 14 + .../message_bubble_received_light_private.xml | 15 + .../message_bubble_received_warning.xml | 14 + ...essage_bubble_received_warning_private.xml | 15 + src/main/res/drawable/message_bubble_sent.xml | 14 + .../drawable/message_bubble_sent_private.xml | 15 + .../drawable/no_results_background_dark.xml | 9 +- .../drawable/no_results_background_light.xml | 9 +- .../no_results_primary_background_dark.xml | 41 - .../no_results_primary_background_light.xml | 41 - .../res/drawable/search_background_dark.xml | 9 +- .../res/drawable/search_background_light.xml | 9 +- src/main/res/drawable/snackbar.xml | 2 +- src/main/res/drawable/white_cursor.xml | 9 +- .../layout-w945dp/activity_conversations.xml | 10 +- src/main/res/layout/ab_title.xml | 37 + src/main/res/layout/account_row.xml | 21 +- src/main/res/layout/actionview_search.xml | 12 +- src/main/res/layout/activity_about.xml | 127 +- .../res/layout/activity_change_password.xml | 47 +- .../res/layout/activity_channel_discovery.xml | 27 +- .../res/layout/activity_choose_contact.xml | 17 +- .../res/layout/activity_contact_details.xml | 371 ++- .../res/layout/activity_conversations.xml | 10 +- src/main/res/layout/activity_edit_account.xml | 627 +++-- .../res/layout/activity_enter_name.xml | 2 +- .../res/layout/activity_import_backup.xml | 33 +- .../res/layout/activity_magic_create.xml} | 83 +- .../res/layout/activity_manage_accounts.xml | 5 +- .../res/layout/activity_media_browser.xml | 34 +- src/main/res/layout/activity_media_viewer.xml | 55 + src/main/res/layout/activity_muc_details.xml | 688 ++--- src/main/res/layout/activity_muc_users.xml | 14 +- .../activity_publish_profile_picture.xml | 130 +- src/main/res/layout/activity_recording.xml | 21 +- src/main/res/layout/activity_scan.xml | 2 +- src/main/res/layout/activity_search.xml | 7 +- src/main/res/layout/activity_set_settings.xml | 268 ++ src/main/res/layout/activity_settings.xml | 7 +- .../res/layout/activity_share_locaction.xml | 66 + .../res/layout/activity_share_location.xml | 80 - src/main/res/layout/activity_share_with.xml | 7 +- .../res/layout/activity_show_locaction.xml | 34 + .../res/layout/activity_show_location.xml | 35 - .../layout/activity_start_conversation.xml | 42 +- src/main/res/layout/activity_start_ui.xml | 6 + src/main/res/layout/activity_trust_keys.xml | 149 +- src/main/res/layout/activity_updater.xml | 32 + src/main/res/layout/activity_verify_otr.xml | 156 ++ src/main/res/layout/captcha.xml | 12 +- src/main/res/layout/choose_account_dialog.xml | 24 + src/main/res/layout/contact.xml | 28 +- src/main/res/layout/contact_key.xml | 18 +- src/main/res/layout/conversation_list_row.xml | 161 +- .../res/layout/create_conference_dialog.xml | 23 +- .../layout/create_public_channel_dialog.xml | 26 +- src/main/res/layout/dialog_block_contact.xml | 10 +- src/main/res/layout/dialog_clear_history.xml | 23 +- .../res/layout/dialog_enter_password.xml | 34 +- .../res/layout/dialog_join_conference.xml | 28 +- src/main/res/layout/dialog_presence.xml | 110 +- src/main/res/layout/dialog_quickedit.xml | 8 +- src/main/res/layout/dialog_show_password.xml | 23 + .../res/layout/dialog_verify_fingerprints.xml | 11 +- src/main/res/layout/enter_jid_dialog.xml | 19 +- src/main/res/layout/form_boolean.xml | 11 +- src/main/res/layout/form_text.xml | 13 +- src/main/res/layout/fragment_conversation.xml | 164 +- .../fragment_conversations_overview.xml | 27 +- src/main/res/layout/keys_card.xml | 21 +- src/main/res/layout/link_layout.xml | 43 + src/main/res/layout/list_item_tag.xml | 23 +- src/main/res/layout/media.xml | 10 +- src/main/res/layout/media_preview.xml | 17 +- src/main/res/layout/message_content.xml | 85 +- src/main/res/layout/message_date_bubble.xml | 12 +- src/main/res/layout/message_received.xml | 63 +- src/main/res/layout/message_rtp_session.xml | 2 +- src/main/res/layout/message_sent.xml | 58 +- src/main/res/layout/message_status.xml | 30 +- src/main/res/layout/presence_template.xml | 47 - src/main/res/layout/search_result_item.xml | 6 +- src/main/res/layout/simple_list_item.xml | 5 +- src/main/res/layout/toolbar.xml | 10 +- src/main/res/layout/user_preview.xml | 10 +- .../res/layout/welcome.xml} | 59 +- src/main/res/menu/account_context.xml | 17 +- src/main/res/menu/activity_conversations.xml | 27 +- src/main/res/menu/activity_search.xml | 7 +- src/main/res/menu/block.xml | 2 +- .../res/menu/channel_discovery_activity.xml | 7 +- src/main/res/menu/channel_item_context.xml | 2 +- src/main/res/menu/choose_attachment.xml | 37 + src/main/res/menu/choose_contact.xml | 4 +- src/main/res/menu/conference_context.xml | 7 +- src/main/res/menu/contact_context.xml | 8 +- src/main/res/menu/contact_details.xml | 58 +- src/main/res/menu/edit_message_actions.xml | 7 +- src/main/res/menu/editaccount.xml | 76 +- src/main/res/menu/fragment_conversation.xml | 55 +- .../menu/fragment_conversations_overview.xml | 7 +- src/main/res/menu/import_backup.xml | 4 +- src/main/res/menu/manageaccounts.xml | 26 + src/main/res/menu/manageaccounts_context.xml | 17 +- src/main/res/menu/media_browser.xml | 12 + src/main/res/menu/media_viewer.xml | 18 + src/main/res/menu/menu_show_location.xml | 14 - src/main/res/menu/message_context.xml | 8 +- src/main/res/menu/muc_details.xml | 50 +- src/main/res/menu/muc_details_context.xml | 51 +- src/main/res/menu/muc_users_activity.xml | 10 +- src/main/res/menu/omemo_key_context.xml | 6 +- src/main/res/menu/one_on_one_context.xml | 9 +- src/main/res/menu/search_result_context.xml | 14 +- src/main/res/menu/share_with.xml | 4 +- src/main/res/menu/start_conversation.xml | 20 +- .../menu/start_conversation_fab_submenu.xml | 20 +- src/main/res/menu/trust_keys.xml | 12 +- src/main/res/menu/verification_choices.xml | 12 + src/main/res/menu/verify_otr.xml | 15 + src/main/res/menu/welcome_menu.xml | 11 + .../mipmap-hdpi/ic_launcher_background.png | Bin 1752 -> 0 bytes src/main/res/mipmap-hdpi/new_launcher.png | Bin 2385 -> 0 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 4216 -> 0 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 1162 -> 0 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 2499 -> 0 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 3882 -> 0 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 5359 -> 0 bytes src/main/res/raw/countries | 245 -- src/main/res/values-ar/strings.xml | 1293 +++++----- src/main/res/values-az/strings.xml | 1010 ++++++++ src/main/res/values-bg/strings.xml | 1564 +++++++----- src/main/res/values-ca-rES/strings.xml | 2 - src/main/res/values-ca/strings.xml | 1507 ++++++----- src/main/res/values-ceb/strings.xml | 570 +++++ src/main/res/values-cs/strings.xml | 864 +++---- src/main/res/values-da/strings.xml | 3 + src/main/res/values-de/strings.xml | 1930 +++++++------- src/main/res/values-el/strings.xml | 1057 +++----- src/main/res/values-es/strings.xml | 1855 +++++++------- src/main/res/values-eu/strings.xml | 1300 ++++------ src/main/res/values-fa-rIR/strings.xml | 161 -- src/main/res/values-fa/strings.xml | 2 - src/main/res/values-fi/strings.xml | 3 + src/main/res/values-fil/strings.xml | 606 +++++ src/main/res/values-fr/strings.xml | 1846 +++++++------- src/main/res/values-gl/strings.xml | 1453 ++++------- src/main/res/values-h360dp/dimens.xml | 3 +- src/main/res/values-h500dp/dimens.xml | 3 +- src/main/res/values-hi-rIN/strings.xml | 2 - src/main/res/values-hu/strings.xml | 836 ------ src/main/res/values-id/strings.xml | 908 ++++--- src/main/res/values-it/strings.xml | 1822 +++++++------ src/main/res/values-iw/strings.xml | 288 --- src/main/res/values-ja/strings.xml | 563 ----- src/main/res/values-kn/strings.xml | 401 +++ src/main/res/values-ko/strings.xml | 405 --- src/main/res/values-nb-rNO/strings.xml | 476 ---- src/main/res/values-nl/strings.xml | 1440 +++++------ src/main/res/values-no/strings.xml | 5 + src/main/res/values-pl/strings.xml | 1812 +++++++------ src/main/res/values-pt-rBR/strings.xml | 926 ------- src/main/res/values-pt/strings.xml | 818 +++--- src/main/res/values-ro-rRO/strings.xml | 935 ------- src/main/res/values-ro/strings.xml | 876 +++++++ src/main/res/values-ru/strings.xml | 1666 +++++++----- src/main/res/values-sk/strings.xml | 262 -- src/main/res/values-sq-rAL/strings.xml | 2 - src/main/res/values-sr/strings.xml | 541 ---- src/main/res/values-sv/strings.xml | 1061 ++++---- src/main/res/values-tl/strings.xml | 93 + src/main/res/values-tr-rTR/strings.xml | 421 --- src/main/res/values-tr/strings.xml | 606 +++++ src/main/res/values-uk/strings.xml | 1791 +++++++------ src/main/res/values-v21/dimens.xml | 4 + src/main/res/values-v29/theme-settings.xml | 16 - src/main/res/values-vi/strings.xml | 319 --- src/main/res/values-w300dp/dimens.xml | 1 + src/main/res/values-w360dp/dimens.xml | 1 + src/main/res/values-w360dp/fineprint.xml | 4 - src/main/res/values-w384dp/dimens.xml | 15 +- src/main/res/values-w820dp/dimens.xml | 6 + src/main/res/values-zh-rCN/strings.xml | 809 ------ src/main/res/values-zh-rTW/strings.xml | 440 ---- src/main/res/values-zh/strings.xml | 982 +++++++ src/main/res/values/about.xml | 75 +- src/main/res/values/arrays.xml | 255 +- src/main/res/values/attrs.xml | 216 +- src/main/res/values/colors.xml | 99 +- src/main/res/values/defaults.xml | 234 +- src/main/res/values/dimens.xml | 12 +- src/main/res/values/fineprint.xml | 4 - .../res/values/font_certs.xml | 0 src/main/res/values/ids.xml | 12 +- src/main/res/values/strings.xml | 903 ++++--- src/main/res/values/styles.xml | 39 +- src/main/res/values/theme-settings.xml | 14 - src/main/res/values/themes.xml | 692 +++-- src/main/res/xml/automotive_app_desc.xml | 2 +- src/main/res/xml/file_paths.xml | 20 +- src/main/res/xml/preferences.xml | 743 +++--- src/playstore/AndroidManifest.xml | 25 +- .../conversations/services}/EmojiService.java | 15 +- .../services/MaintenanceReceiver.java | 44 +- .../services/PushManagementService.java | 71 +- .../services/PushMessageReceiver.java | 48 +- .../ui/widget/EmojiWrapperEditText.java | 3 +- .../utils/InstallReferrerUtils.java | 3 +- src/quicksy/AndroidManifest.xml | 36 - .../android/PhoneNumberContact.java | 79 - .../siacs/conversations/entities/Entry.java | 111 - .../services/QuickConversationsService.java | 453 ---- .../ui/ChooseCountryActivity.java | 129 - .../ui/EnterPhoneNumberActivity.java | 239 -- .../siacs/conversations/ui/TosActivity.java | 80 - .../conversations/ui/VerifyActivity.java | 348 --- .../ui/adapter/CountryAdapter.java | 70 - .../ui/drawable/TextDrawable.java | 240 -- .../ui/util/ApiDialogHelper.java | 101 - .../ui/util/PinEntryWrapper.java | 155 -- .../utils/PhoneNumberUtilWrapper.java | 101 - .../conversations/utils/SignupUtils.java | 58 - src/quicksy/new_launcher-web.png | Bin 23321 -> 0 bytes .../ic_arrow_drop_down_black_18dp.png | Bin 117 -> 0 bytes .../res/drawable-hdpi/ic_notification.png | Bin 1059 -> 0 bytes src/quicksy/res/drawable-hdpi/launcher.png | Bin 4512 -> 0 bytes src/quicksy/res/drawable-hdpi/main_logo.png | Bin 19860 -> 0 bytes src/quicksy/res/drawable-hdpi/splash_logo.png | Bin 14191 -> 0 bytes .../ic_arrow_drop_down_black_18dp.png | Bin 88 -> 0 bytes .../res/drawable-mdpi/ic_notification.png | Bin 663 -> 0 bytes src/quicksy/res/drawable-mdpi/launcher.png | Bin 3001 -> 0 bytes src/quicksy/res/drawable-mdpi/main_logo.png | Bin 13004 -> 0 bytes src/quicksy/res/drawable-mdpi/splash_logo.png | Bin 9070 -> 0 bytes .../ic_arrow_drop_down_black_18dp.png | Bin 117 -> 0 bytes .../res/drawable-xhdpi/ic_notification.png | Bin 1326 -> 0 bytes src/quicksy/res/drawable-xhdpi/launcher.png | Bin 6005 -> 0 bytes src/quicksy/res/drawable-xhdpi/main_logo.png | Bin 26976 -> 0 bytes .../res/drawable-xhdpi/splash_logo.png | Bin 19010 -> 0 bytes .../ic_arrow_drop_down_black_18dp.png | Bin 126 -> 0 bytes .../res/drawable-xxhdpi/ic_notification.png | Bin 2112 -> 0 bytes src/quicksy/res/drawable-xxhdpi/launcher.png | Bin 9070 -> 0 bytes src/quicksy/res/drawable-xxhdpi/main_logo.png | Bin 41177 -> 0 bytes .../res/drawable-xxhdpi/splash_logo.png | Bin 29217 -> 0 bytes .../ic_arrow_drop_down_black_18dp.png | Bin 141 -> 0 bytes .../res/drawable-xxxhdpi/ic_notification.png | Bin 2856 -> 0 bytes src/quicksy/res/drawable-xxxhdpi/launcher.png | Bin 12398 -> 0 bytes .../res/drawable-xxxhdpi/main_logo.png | Bin 55474 -> 0 bytes .../res/drawable-xxxhdpi/splash_logo.png | Bin 39466 -> 0 bytes .../res/drawable/ic_launcher_foreground.xml | 19 - .../res/layout/activity_choose_country.xml | 24 - .../res/layout/activity_enter_number.xml | 113 - src/quicksy/res/layout/activity_tos.xml | 77 - src/quicksy/res/layout/activity_verify.xml | 193 -- src/quicksy/res/layout/country_item.xml | 30 - src/quicksy/res/menu/choose_country.xml | 11 - .../res/mipmap-anydpi-v26/new_launcher.xml | 5 - .../mipmap-anydpi-v26/new_launcher_round.xml | 5 - src/quicksy/res/mipmap-hdpi/new_launcher.png | Bin 2829 -> 0 bytes .../res/mipmap-hdpi/new_launcher_round.png | Bin 4704 -> 0 bytes src/quicksy/res/mipmap-mdpi/new_launcher.png | Bin 2031 -> 0 bytes .../res/mipmap-mdpi/new_launcher_round.png | Bin 3020 -> 0 bytes src/quicksy/res/mipmap-xhdpi/new_launcher.png | Bin 3900 -> 0 bytes .../res/mipmap-xhdpi/new_launcher_round.png | Bin 6674 -> 0 bytes .../res/mipmap-xxhdpi/new_launcher.png | Bin 5642 -> 0 bytes .../res/mipmap-xxhdpi/new_launcher_round.png | Bin 10202 -> 0 bytes .../res/mipmap-xxxhdpi/new_launcher.png | Bin 7697 -> 0 bytes .../res/mipmap-xxxhdpi/new_launcher_round.png | Bin 14559 -> 0 bytes src/quicksy/res/values-ar/strings.xml | 10 - src/quicksy/res/values-bg/strings.xml | 21 - src/quicksy/res/values-ca/strings.xml | 20 - src/quicksy/res/values-de/strings.xml | 26 - src/quicksy/res/values-el/strings.xml | 24 - src/quicksy/res/values-es/strings.xml | 26 - src/quicksy/res/values-fr/strings.xml | 26 - src/quicksy/res/values-gl/strings.xml | 26 - src/quicksy/res/values-hu/strings.xml | 26 - src/quicksy/res/values-it/strings.xml | 24 - src/quicksy/res/values-ja/strings.xml | 20 - src/quicksy/res/values-nl/strings.xml | 24 - src/quicksy/res/values-pl/strings.xml | 26 - src/quicksy/res/values-pt-rBR/strings.xml | 26 - src/quicksy/res/values-ro-rRO/strings.xml | 26 - src/quicksy/res/values-sv/strings.xml | 9 - src/quicksy/res/values-uk/strings.xml | 24 - src/quicksy/res/values-zh-rCN/strings.xml | 24 - src/quicksy/res/values/defaults.xml | 4 - src/quicksy/res/values/strings.xml | 26 - .../ui/service/EmojiService.java | 14 - 2126 files changed, 59448 insertions(+), 55316 deletions(-) create mode 100644 .gitlab-ci.yml delete mode 100644 .tx/config create mode 100644 README-en.md create mode 100644 art/Feature_OMEMO.png create mode 100644 art/conversations_baloon.svg create mode 100644 art/conversations_mono_dashed.png delete mode 100644 art/date_bubble_grey.svg delete mode 100644 art/date_bubble_white.svg delete mode 100644 art/ic_launcher.svg delete mode 100644 art/ic_no_results_black.svg delete mode 100644 art/ic_no_results_white.svg delete mode 100644 art/ic_notifications_none_white80.svg delete mode 100644 art/ic_notifications_off_white80.svg delete mode 100644 art/ic_notifications_paused_white80.svg delete mode 100644 art/ic_notifications_white80.svg create mode 100644 art/ic_read_indicator.svg create mode 100644 art/ic_received_indicator.svg delete mode 100644 art/ic_search_black.svg delete mode 100644 art/ic_search_white.svg delete mode 100644 art/ic_send_cancel_offline_white.svg delete mode 100644 art/ic_send_location_offline_white.svg delete mode 100644 art/ic_send_photo_offline_white.svg delete mode 100644 art/ic_send_picture_offline_white.svg delete mode 100644 art/ic_send_text_offline_white.svg create mode 100644 art/ic_send_video_away.svg create mode 100644 art/ic_send_video_dnd.svg create mode 100644 art/ic_send_video_offline.svg create mode 100644 art/ic_send_video_online.svg delete mode 100644 art/ic_send_videocam_away.svg delete mode 100644 art/ic_send_videocam_dnd.svg delete mode 100644 art/ic_send_videocam_offline.svg delete mode 100644 art/ic_send_videocam_offline_white.svg delete mode 100644 art/ic_send_videocam_online.svg delete mode 100644 art/ic_send_voice_offline_white.svg create mode 100644 art/icon.png create mode 100644 art/logo_highres.png delete mode 120000 art/main_logo.svg delete mode 100644 art/marker.svg delete mode 100644 art/message_bubble_received_dark.svg delete mode 100644 art/message_bubble_received_grey.svg delete mode 100644 art/message_bubble_sent_grey.svg create mode 100644 art/message_bubble_sent_white.svg create mode 100644 art/nightly-qr.png delete mode 100644 art/open_pdf_black.svg delete mode 100644 art/open_pdf_white.svg rename art/{play_gif_black.svg => play_gif.svg} (68%) delete mode 100644 art/play_gif_white.svg create mode 100644 art/play_video.svg delete mode 100644 art/play_video_black.svg delete mode 100644 art/play_video_white.svg create mode 100644 art/qr-code_suport.png create mode 100644 art/qr-code_suport_small.png delete mode 100644 art/qrcode-scan.svg delete mode 100644 art/quicksy.svg delete mode 120000 art/quicksy_main_logo.svg delete mode 100644 art/quicksy_mono.svg delete mode 120000 art/quicksy_splash_logo.svg create mode 100644 art/schulchat/logo.png create mode 100644 art/screenshots/de/Screenshot_20180128-201225.png create mode 100644 art/screenshots/de/Screenshot_20180128-201239.png create mode 100644 art/screenshots/de/Screenshot_20180128-201246.png create mode 100644 art/screenshots/de/Screenshot_20180128-201335.png create mode 100644 art/screenshots/de/Screenshot_20180128-201731.png create mode 100644 art/screenshots/de/Screenshot_20180128-201735.png create mode 100644 art/screenshots/de/Screenshot_20180220-113650.png create mode 100644 art/screenshots/de/Screenshot_20180220-113816.png create mode 100644 art/screenshots/de/Screenshot_20180220-113836.png create mode 100644 art/screenshots/de/Screenshot_20180220-113952.png create mode 100644 art/screenshots/de/Screenshot_20180220-114022.png create mode 100644 art/screenshots/de/index create mode 100644 art/screenshots/en/Screenshot_20180220-114149.png create mode 100644 art/screenshots/en/Screenshot_20180220-114227.png create mode 100644 art/screenshots/en/Screenshot_20180220-114239.png create mode 100644 art/screenshots/en/Screenshot_20180220-114301.png create mode 100644 art/screenshots/en/Screenshot_20180220-114333.png create mode 100644 art/screenshots/en/Screenshot_20180220-114345.png create mode 100644 art/screenshots/en/Screenshot_20180220-115013.png create mode 100644 art/screenshots/en/Screenshot_20180220-115016.png create mode 100644 art/screenshots/en/Screenshot_20180220-115506.png create mode 100644 art/screenshots/en/Screenshot_20180220-115525.png create mode 100644 art/screenshots/en/index delete mode 120000 art/splash_logo.svg create mode 100644 contributing.json create mode 100644 crowdin.yml delete mode 100644 doap.rdf create mode 100644 docs/encryption.md delete mode 100644 fastlane/metadata/android/en-US/changelogs/349.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/351.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/353.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/360.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/362.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/364.txt delete mode 100644 fastlane/metadata/android/en-US/changelogs/367.txt delete mode 100644 fastlane/metadata/android/en-US/full_description.txt delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/01.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/02.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/03.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/04.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/05.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/06.png delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/07.png delete mode 100644 fastlane/metadata/android/en-US/images/tenInchScreenshots/01.png delete mode 100644 fastlane/metadata/android/en-US/images/tenInchScreenshots/02.png delete mode 100644 fastlane/metadata/android/en-US/images/tenInchScreenshots/03.png delete mode 100644 fastlane/metadata/android/en-US/images/tenInchScreenshots/04.png delete mode 100644 fastlane/metadata/android/en-US/short_description.txt create mode 100644 gradle.properties create mode 100644 libs/android-transcoder/.gitignore create mode 100644 libs/android-transcoder/CHANGELOG.md create mode 100644 libs/android-transcoder/build.gradle create mode 100644 libs/android-transcoder/proguard-rules.pro create mode 100644 libs/android-transcoder/src/main/AndroidManifest.xml create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/MediaTranscoder.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/compat/MediaCodecBufferCompatWrapper.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/compat/MediaCodecListCompat.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/AudioChannel.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/AudioRemixer.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/AudioTrackTranscoder.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/InputSurface.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/InvalidOutputFormatException.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaFormatValidator.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/MediaTranscoderEngine.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/OutputSurface.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/PassThroughTrackTranscoder.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/QueuedMuxer.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/TextureRender.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/TrackTranscoder.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/engine/VideoTrackTranscoder.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/Android16By9FormatStrategy.java rename {src/main/java/eu/siacs/conversations/utils => libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format}/Android720pFormatStrategy.java (51%) create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/AndroidStandardFormatStrategy.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/ExportPreset960x540Strategy.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/MediaFormatExtraConstants.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/MediaFormatPresets.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/MediaFormatStrategy.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/MediaFormatStrategyPresets.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/format/OutputFormatUnavailableException.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/utils/AvcCsdUtils.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/utils/AvcSpsUtils.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/utils/ISO6709LocationParser.java create mode 100644 libs/android-transcoder/src/main/java/net/ypresto/androidtranscoder/utils/MediaExtractorUtils.java create mode 100644 libs/gson-1.1/build.gradle create mode 100644 libs/gson-1.1/gson-1.1.jar create mode 100644 metadata/de/description.txt create mode 100644 metadata/de/summary.txt create mode 100644 metadata/en-US/description.txt create mode 100644 metadata/en-US/featureGraphic.png create mode 100644 metadata/en-US/phoneScreenshots/00.png create mode 100644 metadata/en-US/phoneScreenshots/01.png create mode 100644 metadata/en-US/phoneScreenshots/02.png create mode 100644 metadata/en-US/phoneScreenshots/03.png create mode 100644 metadata/en-US/phoneScreenshots/04.png create mode 100644 metadata/en-US/phoneScreenshots/05.png create mode 100644 metadata/en-US/phoneScreenshots/06.png create mode 100644 metadata/en-US/summary.txt delete mode 100644 screenshots.png delete mode 100644 screenshots.xcf delete mode 100644 src/compat/java/eu/siacs/conversations/utils/EmojiWrapper.java delete mode 100644 src/conversations/AndroidManifest.xml delete mode 100644 src/conversations/java/eu/siacs/conversations/ui/PickServerActivity.java delete mode 100644 src/conversations/new_launcher-web.png delete mode 100644 src/conversations/res/drawable-hdpi/ic_notification.png delete mode 100644 src/conversations/res/drawable-hdpi/ic_unarchive_white_24dp.png delete mode 100644 src/conversations/res/drawable-hdpi/main_logo.png delete mode 100644 src/conversations/res/drawable-hdpi/splash_logo.png delete mode 100644 src/conversations/res/drawable-mdpi/ic_notification.png delete mode 100644 src/conversations/res/drawable-mdpi/ic_unarchive_white_24dp.png delete mode 100644 src/conversations/res/drawable-mdpi/main_logo.png delete mode 100644 src/conversations/res/drawable-mdpi/splash_logo.png delete mode 100644 src/conversations/res/drawable-xhdpi/ic_notification.png delete mode 100644 src/conversations/res/drawable-xhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/conversations/res/drawable-xhdpi/main_logo.png delete mode 100644 src/conversations/res/drawable-xhdpi/splash_logo.png delete mode 100644 src/conversations/res/drawable-xxhdpi/ic_notification.png delete mode 100644 src/conversations/res/drawable-xxhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/conversations/res/drawable-xxhdpi/main_logo.png delete mode 100644 src/conversations/res/drawable-xxhdpi/splash_logo.png delete mode 100644 src/conversations/res/drawable-xxxhdpi/ic_notification.png delete mode 100644 src/conversations/res/drawable-xxxhdpi/ic_unarchive_white_24dp.png delete mode 100644 src/conversations/res/drawable-xxxhdpi/main_logo.png delete mode 100644 src/conversations/res/drawable-xxxhdpi/splash_logo.png delete mode 100644 src/conversations/res/drawable/ic_launcher_foreground.xml delete mode 100644 src/conversations/res/layout/activity_pick_server.xml delete mode 100644 src/conversations/res/menu/manageaccounts.xml delete mode 100644 src/conversations/res/menu/welcome_menu.xml delete mode 100644 src/conversations/res/mipmap-anydpi-v26/new_launcher.xml delete mode 100644 src/conversations/res/mipmap-anydpi-v26/new_launcher_round.xml delete mode 100644 src/conversations/res/mipmap-hdpi/new_launcher.png delete mode 100644 src/conversations/res/mipmap-hdpi/new_launcher_round.png delete mode 100644 src/conversations/res/mipmap-mdpi/new_launcher.png delete mode 100644 src/conversations/res/mipmap-mdpi/new_launcher_round.png delete mode 100644 src/conversations/res/mipmap-xhdpi/new_launcher.png delete mode 100644 src/conversations/res/mipmap-xhdpi/new_launcher_round.png delete mode 100644 src/conversations/res/mipmap-xxhdpi/new_launcher.png delete mode 100644 src/conversations/res/mipmap-xxhdpi/new_launcher_round.png delete mode 100644 src/conversations/res/mipmap-xxxhdpi/new_launcher.png delete mode 100644 src/conversations/res/mipmap-xxxhdpi/new_launcher_round.png delete mode 100644 src/conversations/res/values-ar/strings.xml delete mode 100644 src/conversations/res/values-bg/strings.xml delete mode 100644 src/conversations/res/values-de/strings.xml delete mode 100644 src/conversations/res/values-el/strings.xml delete mode 100644 src/conversations/res/values-es/strings.xml delete mode 100644 src/conversations/res/values-eu/strings.xml delete mode 100644 src/conversations/res/values-fr/strings.xml delete mode 100644 src/conversations/res/values-gl/strings.xml delete mode 100644 src/conversations/res/values-hu/strings.xml delete mode 100644 src/conversations/res/values-it/strings.xml delete mode 100644 src/conversations/res/values-nl/strings.xml delete mode 100644 src/conversations/res/values-pl/strings.xml delete mode 100644 src/conversations/res/values-pt-rBR/strings.xml delete mode 100644 src/conversations/res/values-ro-rRO/strings.xml delete mode 100644 src/conversations/res/values-ru/strings.xml delete mode 100644 src/conversations/res/values-sv/strings.xml delete mode 100644 src/conversations/res/values-uk/strings.xml delete mode 100644 src/conversations/res/values-zh-rCN/strings.xml delete mode 100644 src/conversations/res/values/strings.xml delete mode 100644 src/free/java/eu/siacs/conversations/services/PushManagementService.java rename src/{freeCompat/java/eu/siacs/conversations/ui/service => git/java/eu/siacs/conversations/services}/EmojiService.java (60%) create mode 100644 src/git/java/eu/siacs/conversations/services/PushManagementService.java rename src/{compat => git}/java/eu/siacs/conversations/ui/widget/EmojiWrapperEditText.java (85%) rename src/{conversationsFree => git}/java/eu/siacs/conversations/utils/InstallReferrerUtils.java (95%) create mode 100644 src/main/assets/animate.min.css create mode 100644 src/main/assets/font-awesome.min.css create mode 100644 src/main/assets/fonts/weather.ttf create mode 100644 src/main/assets/images/layers-2x.png create mode 100644 src/main/assets/images/layers.png create mode 100644 src/main/assets/images/marker-icon-2x.png create mode 100644 src/main/assets/images/marker-icon.png create mode 100644 src/main/assets/images/marker-shadow.png create mode 100644 src/main/assets/jquery.min.js create mode 100644 src/main/assets/leaflet.css create mode 100644 src/main/assets/leaflet.js create mode 100644 src/main/assets/leaflet.js.map create mode 100644 src/main/assets/map.html create mode 100644 src/main/java/de/pixart/messenger/ui/StartUI.java create mode 100644 src/main/java/eu/siacs/conversations/crypto/OtrService.java create mode 100644 src/main/java/eu/siacs/conversations/http/NoSSLv3SocketFactory.java create mode 100644 src/main/java/eu/siacs/conversations/services/AlarmReceiver.java rename src/main/java/eu/siacs/conversations/{ui/service => services}/AudioPlayer.java (93%) rename src/{conversations => main}/java/eu/siacs/conversations/services/ImportBackupService.java (97%) rename src/{conversations => main}/java/eu/siacs/conversations/services/QuickConversationsService.java (100%) create mode 100644 src/main/java/eu/siacs/conversations/services/UpdateService.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/ConversationActivity.java rename src/{quicksy => main}/java/eu/siacs/conversations/ui/EnterNameActivity.java (55%) rename src/{conversations => main}/java/eu/siacs/conversations/ui/ImportBackupActivity.java (82%) create mode 100644 src/main/java/eu/siacs/conversations/ui/IntroActivity.java rename src/{conversations => main}/java/eu/siacs/conversations/ui/MagicCreateActivity.java (58%) rename src/{conversations => main}/java/eu/siacs/conversations/ui/ManageAccountActivity.java (86%) create mode 100644 src/main/java/eu/siacs/conversations/ui/MediaViewerActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/SetSettingsActivity.java rename src/{conversations => main}/java/eu/siacs/conversations/ui/ShareViaAccountActivity.java (95%) create mode 100644 src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java create mode 100644 src/main/java/eu/siacs/conversations/ui/VerifyOTRActivity.java rename src/{conversations => main}/java/eu/siacs/conversations/ui/WelcomeActivity.java (74%) rename src/{conversations => main}/java/eu/siacs/conversations/ui/adapter/BackupFileAdapter.java (92%) create mode 100644 src/main/java/eu/siacs/conversations/ui/util/IntroHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/LocationHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/util/UriHelper.java create mode 100644 src/main/java/eu/siacs/conversations/ui/widget/FailedCountCustomView.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/widget/Marker.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/widget/MyLocation.java create mode 100644 src/main/java/eu/siacs/conversations/ui/widget/RichLinkView.java delete mode 100644 src/main/java/eu/siacs/conversations/ui/widget/SwipeRefreshListFragment.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/Android360pFormatStrategy.java rename src/{system => main}/java/eu/siacs/conversations/utils/EmojiWrapper.java (79%) create mode 100644 src/main/java/eu/siacs/conversations/utils/EncryptDecryptFile.java create mode 100644 src/main/java/eu/siacs/conversations/utils/FirstStartManager.java create mode 100644 src/main/java/eu/siacs/conversations/utils/LocationHelper.java delete mode 100644 src/main/java/eu/siacs/conversations/utils/LocationProvider.java rename src/main/java/eu/siacs/conversations/{ui/util => utils}/MenuDoubleTabUtil.java (77%) create mode 100644 src/main/java/eu/siacs/conversations/utils/MetaData.java rename src/main/java/eu/siacs/conversations/{xml => utils}/Namespace.java (70%) create mode 100644 src/main/java/eu/siacs/conversations/utils/PRNGFixes.java create mode 100644 src/main/java/eu/siacs/conversations/utils/RichPreview.java rename src/{conversations => main}/java/eu/siacs/conversations/utils/SignupUtils.java (80%) create mode 100644 src/main/java/eu/siacs/conversations/xmpp/OnNewKeysAvailable.java create mode 100644 src/main/java/eu/siacs/conversations/xmpp/jid/OtrJidHelper.java create mode 100644 src/main/res/animator/fade_in.xml create mode 100644 src/main/res/animator/fade_left_in.xml create mode 100644 src/main/res/animator/fade_left_out.xml create mode 100644 src/main/res/animator/fade_out.xml create mode 100644 src/main/res/animator/fade_right_in.xml create mode 100644 src/main/res/animator/fade_right_out.xml create mode 100644 src/main/res/color/button_state_color.xml delete mode 100644 src/main/res/drawable-hdpi/date_bubble_grey.9.png delete mode 100644 src/main/res/drawable-hdpi/date_bubble_white.9.png delete mode 100644 src/main/res/drawable-hdpi/ic_account_box_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_account_card_details_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_account_multiple_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_account_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_action_chat.png create mode 100644 src/main/res/drawable-hdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_announcement_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_arrow_back_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_attach_video.png create mode 100644 src/main/res/drawable-hdpi/ic_attachment_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_attachment_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_audio_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_block_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_camera_alt_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_cloud_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_contact_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_contacts_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_content_copy_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_crop_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_delete_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_directions_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_directions_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_done_black_18dp.png rename src/main/res/{drawable-xhdpi/ic_done_black_18dp.png => drawable-hdpi/ic_done_black_24dp.png} (100%) delete mode 100644 src/main/res/drawable-hdpi/ic_done_white_18dp.png create mode 100644 src/main/res/drawable-hdpi/ic_download_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_drafts_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_email_open_outline_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_file_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_file_pdf_grey600_48dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_gps_not_fixed_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_help_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_help_circle_outline_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_help_circle_outline_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_help_circle_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_image_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_image_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_image_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_launcher.png create mode 100644 src/main/res/drawable-hdpi/ic_map_marker_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_menu_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_navigation_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_notification.png create mode 100644 src/main/res/drawable-hdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_none_white80.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_off_white80.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_paused_white80.png delete mode 100644 src/main/res/drawable-hdpi/ic_notifications_white80.png create mode 100644 src/main/res/drawable-hdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_profile.png delete mode 100644 src/main/res/drawable-hdpi/ic_qr_code_scan_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_qrcode_grey600_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_qrcode_scan_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_qrcode_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_read_indicator.png create mode 100644 src/main/res/drawable-hdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-hdpi/ic_refresh_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_refresh_grey600_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_reply_circle_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_security_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_security_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_send_attachment_away.png create mode 100644 src/main/res/drawable-hdpi/ic_send_attachment_dnd.png create mode 100644 src/main/res/drawable-hdpi/ic_send_attachment_offline.png create mode 100644 src/main/res/drawable-hdpi/ic_send_attachment_offline_white.png create mode 100644 src/main/res/drawable-hdpi/ic_send_attachment_online.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_cancel_offline_dark.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_file_offline.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_file_offline_white.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_location_offline_dark.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_photo_offline_dark.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_picture_offline_dark.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_text_offline_dark.png delete mode 100644 src/main/res/drawable-hdpi/ic_send_voice_offline_dark.png create mode 100644 src/main/res/drawable-hdpi/ic_share_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_speaker_notes_off_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-hdpi/ic_stat_alert_warning.png delete mode 100644 src/main/res/drawable-hdpi/ic_stat_communication_import_export.png create mode 100644 src/main/res/drawable-hdpi/ic_unarchive_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_update_notification.png create mode 100644 src/main/res/drawable-hdpi/ic_video_grey600_48dp.png create mode 100644 src/main/res/drawable-hdpi/ic_vpn_key_white_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_web_grey600_48.png create mode 100644 src/main/res/drawable-hdpi/intro_account_details_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_account_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_contacts_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_location_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_memory_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_security_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_start_chat_icon.png create mode 100644 src/main/res/drawable-hdpi/intro_xmpp_icon.png create mode 100644 src/main/res/drawable-hdpi/main_logo.png delete mode 100644 src/main/res/drawable-hdpi/marker.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_received.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_received_dark.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_received_grey.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_received_warning.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_received_white.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_sent.9.png delete mode 100644 src/main/res/drawable-hdpi/message_bubble_sent_grey.9.png delete mode 100644 src/main/res/drawable-hdpi/open_pdf_black.png delete mode 100644 src/main/res/drawable-hdpi/open_pdf_white.png create mode 100644 src/main/res/drawable-hdpi/pencil_overlay.png create mode 100644 src/main/res/drawable-hdpi/play_gif.png delete mode 100644 src/main/res/drawable-hdpi/play_gif_black.png delete mode 100644 src/main/res/drawable-hdpi/play_gif_white.png create mode 100644 src/main/res/drawable-hdpi/play_video.png delete mode 100644 src/main/res/drawable-hdpi/play_video_black.png delete mode 100644 src/main/res/drawable-hdpi/play_video_white.png create mode 100644 src/main/res/drawable-hdpi/show_pdf.png create mode 100644 src/main/res/drawable-hdpi/splash_logo.png delete mode 100644 src/main/res/drawable-mdpi/date_bubble_grey.9.png delete mode 100644 src/main/res/drawable-mdpi/date_bubble_white.9.png delete mode 100644 src/main/res/drawable-mdpi/ic_account_box_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_account_card_details_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_account_multiple_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_account_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_action_chat.png create mode 100644 src/main/res/drawable-mdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_announcement_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_arrow_back_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_attach_video.png create mode 100644 src/main/res/drawable-mdpi/ic_attachment_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_attachment_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_audio_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_block_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_camera_alt_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_cloud_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_contact_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_contacts_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_content_copy_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_crop_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_delete_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_directions_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_directions_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_done_black_18dp.png create mode 100644 src/main/res/drawable-mdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_done_white_18dp.png create mode 100644 src/main/res/drawable-mdpi/ic_download_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_drafts_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_email_open_outline_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_file_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_file_pdf_grey600_48dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_gps_not_fixed_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_help_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_help_circle_outline_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_help_circle_outline_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_help_circle_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_image_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_image_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_image_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_launcher.png create mode 100644 src/main/res/drawable-mdpi/ic_map_marker_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_menu_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_navigation_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_notification.png create mode 100644 src/main/res/drawable-mdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_none_white80.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_off_white80.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_paused_white80.png delete mode 100644 src/main/res/drawable-mdpi/ic_notifications_white80.png create mode 100644 src/main/res/drawable-mdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_profile.png delete mode 100644 src/main/res/drawable-mdpi/ic_qr_code_scan_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_qrcode_grey600_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_qrcode_scan_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_qrcode_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_read_indicator.png create mode 100644 src/main/res/drawable-mdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-mdpi/ic_refresh_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_refresh_grey600_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_reply_circle_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_security_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_security_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_send_attachment_away.png create mode 100644 src/main/res/drawable-mdpi/ic_send_attachment_dnd.png create mode 100644 src/main/res/drawable-mdpi/ic_send_attachment_offline.png create mode 100644 src/main/res/drawable-mdpi/ic_send_attachment_offline_white.png create mode 100644 src/main/res/drawable-mdpi/ic_send_attachment_online.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_cancel_offline_dark.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_file_offline.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_file_offline_white.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_location_offline_dark.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_photo_offline_dark.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_picture_offline_dark.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_text_offline_dark.png delete mode 100644 src/main/res/drawable-mdpi/ic_send_voice_offline_dark.png create mode 100644 src/main/res/drawable-mdpi/ic_share_black_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_speaker_notes_off_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-mdpi/ic_stat_alert_warning.png delete mode 100644 src/main/res/drawable-mdpi/ic_stat_communication_import_export.png create mode 100644 src/main/res/drawable-mdpi/ic_unarchive_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_update_notification.png create mode 100644 src/main/res/drawable-mdpi/ic_video_grey600_48dp.png create mode 100644 src/main/res/drawable-mdpi/ic_vpn_key_white_24dp.png create mode 100644 src/main/res/drawable-mdpi/ic_web_grey600_48.png create mode 100644 src/main/res/drawable-mdpi/intro_account_details_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_account_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_contacts_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_location_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_memory_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_security_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_start_chat_icon.png create mode 100644 src/main/res/drawable-mdpi/intro_xmpp_icon.png create mode 100644 src/main/res/drawable-mdpi/main_logo.png delete mode 100644 src/main/res/drawable-mdpi/marker.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_received.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_received_dark.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_received_grey.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_received_warning.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_received_white.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_sent.9.png delete mode 100644 src/main/res/drawable-mdpi/message_bubble_sent_grey.9.png delete mode 100644 src/main/res/drawable-mdpi/open_pdf_black.png delete mode 100644 src/main/res/drawable-mdpi/open_pdf_white.png create mode 100644 src/main/res/drawable-mdpi/pencil_overlay.png create mode 100644 src/main/res/drawable-mdpi/play_gif.png delete mode 100644 src/main/res/drawable-mdpi/play_gif_black.png delete mode 100644 src/main/res/drawable-mdpi/play_gif_white.png create mode 100644 src/main/res/drawable-mdpi/play_video.png delete mode 100644 src/main/res/drawable-mdpi/play_video_black.png delete mode 100644 src/main/res/drawable-mdpi/play_video_white.png create mode 100644 src/main/res/drawable-mdpi/show_pdf.png create mode 100644 src/main/res/drawable-mdpi/splash_logo.png create mode 100644 src/main/res/drawable-nodpi/bg_dark_blue.png create mode 100644 src/main/res/drawable-nodpi/bg_dark_orange.png create mode 100644 src/main/res/drawable-nodpi/bg_light_blue.png create mode 100644 src/main/res/drawable-nodpi/bg_light_orange.png delete mode 100644 src/main/res/drawable-xhdpi/date_bubble_grey.9.png delete mode 100644 src/main/res/drawable-xhdpi/date_bubble_white.9.png delete mode 100644 src/main/res/drawable-xhdpi/ic_account_box_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_account_card_details_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_account_multiple_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_account_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_action_chat.png create mode 100644 src/main/res/drawable-xhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_announcement_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_arrow_back_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_attach_video.png create mode 100644 src/main/res/drawable-xhdpi/ic_attachment_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_attachment_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_audio_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_block_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_camera_alt_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_cloud_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_contact_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_contacts_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_content_copy_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_crop_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_delete_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_directions_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_directions_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_done_white_18dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_download_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_drafts_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_email_open_outline_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_file_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_file_pdf_grey600_48dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_gps_not_fixed_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_help_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_outline_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_outline_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_help_circle_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_image_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_image_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_image_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_launcher.png create mode 100644 src/main/res/drawable-xhdpi/ic_map_marker_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_menu_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_navigation_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_notification.png create mode 100644 src/main/res/drawable-xhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_none_white80.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_off_white80.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_paused_white80.png delete mode 100644 src/main/res/drawable-xhdpi/ic_notifications_white80.png create mode 100644 src/main/res/drawable-xhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_profile.png delete mode 100644 src/main/res/drawable-xhdpi/ic_qr_code_scan_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_grey600_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_scan_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_qrcode_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_read_indicator.png create mode 100644 src/main/res/drawable-xhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xhdpi/ic_refresh_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_refresh_grey600_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_reply_circle_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_security_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_security_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_send_attachment_away.png create mode 100644 src/main/res/drawable-xhdpi/ic_send_attachment_dnd.png create mode 100644 src/main/res/drawable-xhdpi/ic_send_attachment_offline.png create mode 100644 src/main/res/drawable-xhdpi/ic_send_attachment_offline_white.png create mode 100644 src/main/res/drawable-xhdpi/ic_send_attachment_online.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_cancel_offline_dark.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_file_offline.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_file_offline_white.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_location_offline_dark.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_photo_offline_dark.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_picture_offline_dark.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_text_offline_dark.png delete mode 100644 src/main/res/drawable-xhdpi/ic_send_voice_offline_dark.png create mode 100644 src/main/res/drawable-xhdpi/ic_share_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_speaker_notes_off_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-xhdpi/ic_stat_alert_warning.png delete mode 100644 src/main/res/drawable-xhdpi/ic_stat_communication_import_export.png create mode 100644 src/main/res/drawable-xhdpi/ic_unarchive_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_update_notification.png create mode 100644 src/main/res/drawable-xhdpi/ic_video_grey600_48dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_vpn_key_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_web_grey600_48.png create mode 100644 src/main/res/drawable-xhdpi/intro_account_details_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_account_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_contacts_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_location_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_memory_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_security_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_start_chat_icon.png create mode 100644 src/main/res/drawable-xhdpi/intro_xmpp_icon.png create mode 100644 src/main/res/drawable-xhdpi/main_logo.png delete mode 100644 src/main/res/drawable-xhdpi/marker.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_received.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_received_dark.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_received_grey.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_received_white.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_sent.9.png delete mode 100644 src/main/res/drawable-xhdpi/message_bubble_sent_grey.9.png delete mode 100644 src/main/res/drawable-xhdpi/open_pdf_black.png delete mode 100644 src/main/res/drawable-xhdpi/open_pdf_white.png create mode 100644 src/main/res/drawable-xhdpi/pencil_overlay.png create mode 100644 src/main/res/drawable-xhdpi/play_gif.png delete mode 100644 src/main/res/drawable-xhdpi/play_gif_black.png delete mode 100644 src/main/res/drawable-xhdpi/play_gif_white.png create mode 100644 src/main/res/drawable-xhdpi/play_video.png delete mode 100644 src/main/res/drawable-xhdpi/play_video_black.png delete mode 100644 src/main/res/drawable-xhdpi/play_video_white.png create mode 100644 src/main/res/drawable-xhdpi/show_pdf.png create mode 100644 src/main/res/drawable-xhdpi/splash_logo.png delete mode 100644 src/main/res/drawable-xxhdpi/date_bubble_grey.9.png delete mode 100644 src/main/res/drawable-xxhdpi/date_bubble_white.9.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_account_box_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_account_card_details_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_account_multiple_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_account_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_action_chat.png create mode 100644 src/main/res/drawable-xxhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_announcement_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_arrow_back_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_attach_video.png create mode 100644 src/main/res/drawable-xxhdpi/ic_attachment_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_attachment_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_audio_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_block_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_camera_alt_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_cloud_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_contact_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_contacts_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_content_copy_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_crop_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_delete_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_directions_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_directions_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_done_black_18dp.png rename src/main/res/{drawable-xxxhdpi/ic_done_black_18dp.png => drawable-xxhdpi/ic_done_black_24dp.png} (100%) delete mode 100644 src/main/res/drawable-xxhdpi/ic_done_white_18dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_download_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_drafts_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_email_open_outline_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_file_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_file_pdf_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_gps_not_fixed_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_help_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_outline_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_outline_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_help_circle_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_image_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_image_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_image_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_launcher.png create mode 100644 src/main/res/drawable-xxhdpi/ic_map_marker_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_menu_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_navigation_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_notification.png create mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_none_white80.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_off_white80.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_paused_white80.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_notifications_white80.png create mode 100644 src/main/res/drawable-xxhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_profile.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_qr_code_scan_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_grey600_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_scan_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_qrcode_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_read_indicator.png create mode 100644 src/main/res/drawable-xxhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_refresh_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_refresh_grey600_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_reply_circle_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_security_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_security_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_send_attachment_away.png create mode 100644 src/main/res/drawable-xxhdpi/ic_send_attachment_dnd.png create mode 100644 src/main/res/drawable-xxhdpi/ic_send_attachment_offline.png create mode 100644 src/main/res/drawable-xxhdpi/ic_send_attachment_offline_white.png create mode 100644 src/main/res/drawable-xxhdpi/ic_send_attachment_online.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_send_file_offline.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_send_file_offline_white.png create mode 100644 src/main/res/drawable-xxhdpi/ic_share_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_speaker_notes_off_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_speaker_notes_white_24dp.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_stat_alert_warning.png delete mode 100644 src/main/res/drawable-xxhdpi/ic_stat_communication_import_export.png create mode 100644 src/main/res/drawable-xxhdpi/ic_unarchive_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_update_notification.png create mode 100644 src/main/res/drawable-xxhdpi/ic_video_grey600_48dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_vpn_key_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_web_grey600_48.png create mode 100644 src/main/res/drawable-xxhdpi/intro_account_details_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_account_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_contacts_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_location_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_memory_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_security_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_start_chat_icon.png create mode 100644 src/main/res/drawable-xxhdpi/intro_xmpp_icon.png create mode 100644 src/main/res/drawable-xxhdpi/main_logo.png delete mode 100644 src/main/res/drawable-xxhdpi/marker.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_received.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_received_dark.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_received_grey.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_sent.9.png delete mode 100644 src/main/res/drawable-xxhdpi/message_bubble_sent_grey.9.png delete mode 100644 src/main/res/drawable-xxhdpi/open_pdf_black.png delete mode 100644 src/main/res/drawable-xxhdpi/open_pdf_white.png create mode 100644 src/main/res/drawable-xxhdpi/pencil_overlay.png create mode 100644 src/main/res/drawable-xxhdpi/play_gif.png delete mode 100644 src/main/res/drawable-xxhdpi/play_gif_black.png delete mode 100644 src/main/res/drawable-xxhdpi/play_gif_white.png create mode 100644 src/main/res/drawable-xxhdpi/play_video.png delete mode 100644 src/main/res/drawable-xxhdpi/play_video_black.png delete mode 100644 src/main/res/drawable-xxhdpi/play_video_white.png create mode 100644 src/main/res/drawable-xxhdpi/show_pdf.png create mode 100644 src/main/res/drawable-xxhdpi/splash_logo.png delete mode 100644 src/main/res/drawable-xxxhdpi/date_bubble_grey.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/date_bubble_white.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_account_box_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_account_card_details_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_account_multiple_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_account_plus_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_android_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_announcement_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_arrow_back_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_attach_video.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_attachment_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_attachment_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_audio_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_block_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_calendar_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_camera_alt_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_close_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_cloud_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_contact_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_contacts_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_content_copy_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_content_copy_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_crop_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_delete_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_directions_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_directions_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_done_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_done_white_18dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_download_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_drafts_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_email_open_outline_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_file_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_file_pdf_grey600_48dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_fixed_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_not_fixed_black_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_gps_not_fixed_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_help_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_outline_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_outline_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_help_circle_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_image_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_image_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_image_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_map_marker_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_menu_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_navigation_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_notification.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_grey600_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_none_white80.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_off_white80.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_paused_white80.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_notifications_white80.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_open_in_new_white_24dp.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_qr_code_scan_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_grey600_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_scan_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_qrcode_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_read_indicator.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_received_indicator.png delete mode 100644 src/main/res/drawable-xxxhdpi/ic_refresh_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_refresh_grey600_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_reply_circle_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_security_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_security_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_send_attachment_away.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_send_attachment_dnd.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_send_attachment_offline.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_send_attachment_offline_white.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_send_attachment_online.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_share_black_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_speaker_notes_off_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_speaker_notes_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_unarchive_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_update_notification.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_video_grey600_48dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_vpn_key_white_24dp.png create mode 100644 src/main/res/drawable-xxxhdpi/ic_web_grey600_48.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_account_details_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_account_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_contacts_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_location_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_memory_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_security_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_start_chat_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/intro_xmpp_icon.png create mode 100644 src/main/res/drawable-xxxhdpi/main_logo.png delete mode 100644 src/main/res/drawable-xxxhdpi/marker.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_received.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_received_dark.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_received_grey.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/message_bubble_sent_grey.9.png delete mode 100644 src/main/res/drawable-xxxhdpi/open_pdf_black.png delete mode 100644 src/main/res/drawable-xxxhdpi/open_pdf_white.png create mode 100644 src/main/res/drawable-xxxhdpi/pencil_overlay.png create mode 100644 src/main/res/drawable-xxxhdpi/play_gif.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_gif_black.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_gif_white.png create mode 100644 src/main/res/drawable-xxxhdpi/play_video.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_video_black.png delete mode 100644 src/main/res/drawable-xxxhdpi/play_video_white.png create mode 100644 src/main/res/drawable-xxxhdpi/show_pdf.png create mode 100644 src/main/res/drawable-xxxhdpi/splash_logo.png delete mode 100644 src/main/res/drawable/account_image_border.xml create mode 100644 src/main/res/drawable/chatbg.xml create mode 100644 src/main/res/drawable/date_bubble.xml create mode 100644 src/main/res/drawable/date_bubble_dark.xml delete mode 100644 src/main/res/drawable/es_slidingpane_shadow.xml delete mode 100644 src/main/res/drawable/ic_directions_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_gps_fixed_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_gps_not_fixed_black_24dp.xml delete mode 100644 src/main/res/drawable/ic_launcher_foreground.xml delete mode 100644 src/main/res/drawable/ic_place_black_24dp.xml create mode 100644 src/main/res/drawable/message_bubble_received_light.xml create mode 100644 src/main/res/drawable/message_bubble_received_light_private.xml create mode 100644 src/main/res/drawable/message_bubble_received_warning.xml create mode 100644 src/main/res/drawable/message_bubble_received_warning_private.xml create mode 100644 src/main/res/drawable/message_bubble_sent.xml create mode 100644 src/main/res/drawable/message_bubble_sent_private.xml delete mode 100644 src/main/res/drawable/no_results_primary_background_dark.xml delete mode 100644 src/main/res/drawable/no_results_primary_background_light.xml create mode 100644 src/main/res/layout/ab_title.xml rename src/{quicksy => main}/res/layout/activity_enter_name.xml (99%) rename src/{conversations => main}/res/layout/activity_import_backup.xml (52%) rename src/{conversations/res/layout/magic_create.xml => main/res/layout/activity_magic_create.xml} (66%) create mode 100644 src/main/res/layout/activity_media_viewer.xml create mode 100644 src/main/res/layout/activity_set_settings.xml create mode 100644 src/main/res/layout/activity_share_locaction.xml delete mode 100644 src/main/res/layout/activity_share_location.xml create mode 100644 src/main/res/layout/activity_show_locaction.xml delete mode 100644 src/main/res/layout/activity_show_location.xml create mode 100644 src/main/res/layout/activity_start_ui.xml create mode 100644 src/main/res/layout/activity_updater.xml create mode 100644 src/main/res/layout/activity_verify_otr.xml create mode 100644 src/main/res/layout/choose_account_dialog.xml rename src/{conversations => main}/res/layout/dialog_enter_password.xml (67%) create mode 100644 src/main/res/layout/dialog_show_password.xml create mode 100644 src/main/res/layout/link_layout.xml delete mode 100644 src/main/res/layout/presence_template.xml rename src/{conversations/res/layout/activity_welcome.xml => main/res/layout/welcome.xml} (59%) create mode 100644 src/main/res/menu/choose_attachment.xml create mode 100644 src/main/res/menu/manageaccounts.xml create mode 100644 src/main/res/menu/media_browser.xml create mode 100644 src/main/res/menu/media_viewer.xml delete mode 100644 src/main/res/menu/menu_show_location.xml create mode 100644 src/main/res/menu/verification_choices.xml create mode 100644 src/main/res/menu/verify_otr.xml create mode 100644 src/main/res/menu/welcome_menu.xml delete mode 100644 src/main/res/mipmap-hdpi/ic_launcher_background.png delete mode 100644 src/main/res/mipmap-hdpi/new_launcher.png delete mode 100644 src/main/res/mipmap-hdpi/new_launcher_round.png delete mode 100644 src/main/res/mipmap-mdpi/ic_launcher_background.png delete mode 100644 src/main/res/mipmap-xhdpi/ic_launcher_background.png delete mode 100644 src/main/res/mipmap-xxhdpi/ic_launcher_background.png delete mode 100644 src/main/res/mipmap-xxxhdpi/ic_launcher_background.png delete mode 100644 src/main/res/raw/countries create mode 100644 src/main/res/values-az/strings.xml delete mode 100644 src/main/res/values-ca-rES/strings.xml create mode 100644 src/main/res/values-ceb/strings.xml create mode 100644 src/main/res/values-da/strings.xml delete mode 100644 src/main/res/values-fa-rIR/strings.xml delete mode 100644 src/main/res/values-fa/strings.xml create mode 100644 src/main/res/values-fi/strings.xml create mode 100644 src/main/res/values-fil/strings.xml delete mode 100644 src/main/res/values-hi-rIN/strings.xml delete mode 100644 src/main/res/values-hu/strings.xml delete mode 100644 src/main/res/values-iw/strings.xml delete mode 100644 src/main/res/values-ja/strings.xml create mode 100644 src/main/res/values-kn/strings.xml delete mode 100644 src/main/res/values-ko/strings.xml delete mode 100644 src/main/res/values-nb-rNO/strings.xml create mode 100644 src/main/res/values-no/strings.xml delete mode 100644 src/main/res/values-pt-rBR/strings.xml delete mode 100644 src/main/res/values-ro-rRO/strings.xml create mode 100644 src/main/res/values-ro/strings.xml delete mode 100644 src/main/res/values-sk/strings.xml delete mode 100644 src/main/res/values-sq-rAL/strings.xml delete mode 100644 src/main/res/values-sr/strings.xml create mode 100644 src/main/res/values-tl/strings.xml delete mode 100644 src/main/res/values-tr-rTR/strings.xml create mode 100644 src/main/res/values-tr/strings.xml create mode 100644 src/main/res/values-v21/dimens.xml delete mode 100644 src/main/res/values-v29/theme-settings.xml delete mode 100644 src/main/res/values-vi/strings.xml create mode 100644 src/main/res/values-w300dp/dimens.xml create mode 100644 src/main/res/values-w360dp/dimens.xml delete mode 100644 src/main/res/values-w360dp/fineprint.xml create mode 100644 src/main/res/values-w820dp/dimens.xml delete mode 100644 src/main/res/values-zh-rCN/strings.xml delete mode 100644 src/main/res/values-zh-rTW/strings.xml create mode 100644 src/main/res/values-zh/strings.xml delete mode 100644 src/main/res/values/fineprint.xml rename src/{playstoreCompat => main}/res/values/font_certs.xml (100%) delete mode 100644 src/main/res/values/theme-settings.xml rename src/{playstoreCompat/java/eu/siacs/conversations/ui/service => playstore/java/eu/siacs/conversations/services}/EmojiService.java (83%) rename src/{system => playstore}/java/eu/siacs/conversations/ui/widget/EmojiWrapperEditText.java (87%) rename src/{conversationsPlaystore => playstore}/java/eu/siacs/conversations/utils/InstallReferrerUtils.java (99%) delete mode 100644 src/quicksy/AndroidManifest.xml delete mode 100644 src/quicksy/java/eu/siacs/conversations/android/PhoneNumberContact.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/entities/Entry.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/services/QuickConversationsService.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/ChooseCountryActivity.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/EnterPhoneNumberActivity.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/TosActivity.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/VerifyActivity.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/adapter/CountryAdapter.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/drawable/TextDrawable.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/util/ApiDialogHelper.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/ui/util/PinEntryWrapper.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/utils/PhoneNumberUtilWrapper.java delete mode 100644 src/quicksy/java/eu/siacs/conversations/utils/SignupUtils.java delete mode 100644 src/quicksy/new_launcher-web.png delete mode 100644 src/quicksy/res/drawable-hdpi/ic_arrow_drop_down_black_18dp.png delete mode 100644 src/quicksy/res/drawable-hdpi/ic_notification.png delete mode 100644 src/quicksy/res/drawable-hdpi/launcher.png delete mode 100644 src/quicksy/res/drawable-hdpi/main_logo.png delete mode 100644 src/quicksy/res/drawable-hdpi/splash_logo.png delete mode 100644 src/quicksy/res/drawable-mdpi/ic_arrow_drop_down_black_18dp.png delete mode 100644 src/quicksy/res/drawable-mdpi/ic_notification.png delete mode 100644 src/quicksy/res/drawable-mdpi/launcher.png delete mode 100644 src/quicksy/res/drawable-mdpi/main_logo.png delete mode 100644 src/quicksy/res/drawable-mdpi/splash_logo.png delete mode 100644 src/quicksy/res/drawable-xhdpi/ic_arrow_drop_down_black_18dp.png delete mode 100644 src/quicksy/res/drawable-xhdpi/ic_notification.png delete mode 100644 src/quicksy/res/drawable-xhdpi/launcher.png delete mode 100644 src/quicksy/res/drawable-xhdpi/main_logo.png delete mode 100644 src/quicksy/res/drawable-xhdpi/splash_logo.png delete mode 100644 src/quicksy/res/drawable-xxhdpi/ic_arrow_drop_down_black_18dp.png delete mode 100644 src/quicksy/res/drawable-xxhdpi/ic_notification.png delete mode 100644 src/quicksy/res/drawable-xxhdpi/launcher.png delete mode 100644 src/quicksy/res/drawable-xxhdpi/main_logo.png delete mode 100644 src/quicksy/res/drawable-xxhdpi/splash_logo.png delete mode 100644 src/quicksy/res/drawable-xxxhdpi/ic_arrow_drop_down_black_18dp.png delete mode 100644 src/quicksy/res/drawable-xxxhdpi/ic_notification.png delete mode 100644 src/quicksy/res/drawable-xxxhdpi/launcher.png delete mode 100644 src/quicksy/res/drawable-xxxhdpi/main_logo.png delete mode 100644 src/quicksy/res/drawable-xxxhdpi/splash_logo.png delete mode 100644 src/quicksy/res/drawable/ic_launcher_foreground.xml delete mode 100644 src/quicksy/res/layout/activity_choose_country.xml delete mode 100644 src/quicksy/res/layout/activity_enter_number.xml delete mode 100644 src/quicksy/res/layout/activity_tos.xml delete mode 100644 src/quicksy/res/layout/activity_verify.xml delete mode 100644 src/quicksy/res/layout/country_item.xml delete mode 100644 src/quicksy/res/menu/choose_country.xml delete mode 100644 src/quicksy/res/mipmap-anydpi-v26/new_launcher.xml delete mode 100644 src/quicksy/res/mipmap-anydpi-v26/new_launcher_round.xml delete mode 100644 src/quicksy/res/mipmap-hdpi/new_launcher.png delete mode 100644 src/quicksy/res/mipmap-hdpi/new_launcher_round.png delete mode 100644 src/quicksy/res/mipmap-mdpi/new_launcher.png delete mode 100644 src/quicksy/res/mipmap-mdpi/new_launcher_round.png delete mode 100644 src/quicksy/res/mipmap-xhdpi/new_launcher.png delete mode 100644 src/quicksy/res/mipmap-xhdpi/new_launcher_round.png delete mode 100644 src/quicksy/res/mipmap-xxhdpi/new_launcher.png delete mode 100644 src/quicksy/res/mipmap-xxhdpi/new_launcher_round.png delete mode 100644 src/quicksy/res/mipmap-xxxhdpi/new_launcher.png delete mode 100644 src/quicksy/res/mipmap-xxxhdpi/new_launcher_round.png delete mode 100644 src/quicksy/res/values-ar/strings.xml delete mode 100644 src/quicksy/res/values-bg/strings.xml delete mode 100644 src/quicksy/res/values-ca/strings.xml delete mode 100644 src/quicksy/res/values-de/strings.xml delete mode 100644 src/quicksy/res/values-el/strings.xml delete mode 100644 src/quicksy/res/values-es/strings.xml delete mode 100644 src/quicksy/res/values-fr/strings.xml delete mode 100644 src/quicksy/res/values-gl/strings.xml delete mode 100644 src/quicksy/res/values-hu/strings.xml delete mode 100644 src/quicksy/res/values-it/strings.xml delete mode 100644 src/quicksy/res/values-ja/strings.xml delete mode 100644 src/quicksy/res/values-nl/strings.xml delete mode 100644 src/quicksy/res/values-pl/strings.xml delete mode 100644 src/quicksy/res/values-pt-rBR/strings.xml delete mode 100644 src/quicksy/res/values-ro-rRO/strings.xml delete mode 100644 src/quicksy/res/values-sv/strings.xml delete mode 100644 src/quicksy/res/values-uk/strings.xml delete mode 100644 src/quicksy/res/values-zh-rCN/strings.xml delete mode 100644 src/quicksy/res/values/defaults.xml delete mode 100644 src/quicksy/res/values/strings.xml delete mode 100644 src/system/java/eu/siacs/conversations/ui/service/EmojiService.java diff --git a/.gitignore b/.gitignore index 81a24e7f4..48eb0334e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,16 +2,12 @@ *.swp .settings -src/conversationsPlaystore/res/values/push.xml -src/quicksyPlaystore/res/values/push.xml - +src/playstore/res/values/gcm.xml # https://github.com/github/gitignore/blob/master/Gradle.gitignore .gradle/ build/ -gradle.properties captures/ -signing.properties # Ignore Gradle GUI config gradle-app.setting @@ -46,3 +42,5 @@ proguard/ import-summary.txt .navigation/ +src/main/res/values/api_keys.xml +src/standardPush/res/values/gcm.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..ca171dde6 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,57 @@ +image: registry.gitlab.com/fdroid/ci-images-client:latest + +cache: + paths: + - .gradle/wrapper + - .gradle/caches + +stages: + - build + +before_script: + - export GRADLE_USER_HOME=$PWD/.gradle + - export ANDROID_COMPILE_SDK=`sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' build.gradle` + - echo y | sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" > /dev/null + + +build: + stage: build + #except: + #- master + script: + # generate version number + - export versionCode="$CI_JOB_ID" + - export versionName="$(git describe --tag --abbrev=0)-${CI_JOB_ID}_${CI_COMMIT_REF_NAME}" + - echo "set VersionCode '${versionCode}' and VersonName '${versionName}'" + - sed -i "s/^\(\s*versionCode\s*\).*$/\1$versionCode/" build.gradle + - sed -i "0,/versionName/s/^\(\s*versionName\).*/\1 \"$versionName\"/" build.gradle + # build + - ./gradlew assembleStandard + artifacts: + paths: + - build/outputs/apk/standard + +publish: + stage: build + only: + #- master + - master--not-build-on-my-repo + script: + # generate version number + - export versionCode="$CI_JOB_ID" + - export versionName="$(git describe --tag --abbrev=0)-${CI_JOB_ID}_${CI_COMMIT_REF_NAME}" + - echo "set VersionCode '${versionCode}' and VersonName '${versionName}'" + - sed -i "s/^\(\s*versionCode\s*\).*$/\1$versionCode/" build.gradle + - sed -i "0,/versionName/s/^\(\s*versionName\).*/\1 \"$versionName\"/" build.gradle + # build + - ./gradlew assembleStandard + # publish on nightly fdroid repo + - fdroid nightly -v + artifacts: + paths: + - build/outputs/apk/standard + +after_script: + # this file changes every time but should not be cached + - rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock + - rm -fr $GRADLE_USER_HOME/caches/*/plugin-resolution/ diff --git a/.tx/config b/.tx/config deleted file mode 100644 index 7ed95ad03..000000000 --- a/.tx/config +++ /dev/null @@ -1,21 +0,0 @@ -[main] -host = https://www.transifex.com -lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA, no_NO: no-rNO, he_IL: iw-rIL, he: iw - -[conversations.strings] -file_filter = src/main/res/values-/strings.xml -source_file = src/main/res/values/strings.xml -source_lang = en - -[conversations.quicksy-strings] -file_filter = src/quicksy/res/values-/strings.xml -source_file = src/quicksy/res/values/strings.xml -source_lang = en -type = ANDROID - -[conversations.conversations-strings] -file_filter = src/conversations/res/values-/strings.xml -source_file = src/conversations/res/values/strings.xml -source_lang = en -type = ANDROID - diff --git a/CHANGELOG.md b/CHANGELOG.md index 360b1acd3..6c9a8c463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,703 +1,739 @@ -# Changelog +### Changelog -### Version 2.8.2 +#### Version 2.3.7 +* bug fixes -* Add button to switch camea during video call -* Fixed voice calls on tablets +#### Version 2.3.6 +* bug fixes -### Version 2.8.1 - -* Audible feedback (dialing, call started, call ended) for voice calls. -* Fixed issue with retrying failed video call - -### Version 2.8.0 - -* Audio/Video calls (Requires server support in form of STUN and TURN servers discoverable via XEP-0215) - - -### Version 2.7.1 - -* Fix avatar selection on some Android 10 devices -* Fix file transfer for larger files - -### Version 2.7.0 - -* Provide PDF preview on Android 5+ -* Use 12 byte IVs for OMEMO - -### Version 2.6.4 - -* Support automatic theme switching on Android 10 - -### Version 2.6.3 - -* Support for ?register and ?register;preauth XMPP uri parameters - -### Version 2.6.2 -* let users set their own nick name +#### Version 2.3.5 +* start removing OTR +* rework conference and contact details (big avatar is available via long click) (PAM) * resume download of OMEMO encrypted files -* Channels now use '#' as symbol in avatar -* Quicksy uses 'always' as OMEMO encryption default (hides lock icon) +* channels now use '#' as symbol in avatar +* support for ?register and ?register;preauth XMPP uri parameters +* update connection settings +* use ExoPlayer for video playback (PAM) +* show artist - title for audio files (PAM) +* show PDF previews (PAM) +* minor UI improvements (PAM) +* use 12 byte IV for OMEMO +* a lot of bug fixes -### Version 2.6.1 +#### Version 2.3.4 * fixes for Jingle IBB file transfer * fixes for repeated corrections filling up the database * switched to Last Message Correction v1.1 +* increase mam messages catchup (PAM) +* bug fixes -### Version 2.6.0 -* Introduce expert setting to perform channel discovery on local server instead of [search.jabber.network](https://search.jabber.network) -* Enable delivery check marks by default and remove setting -* Enable ‘Send button indicates status’ by default and remove setting -* Move Backup and Foreground Service settings to main screen +#### Version 2.3.3 +* fix missing send button -### Version 2.5.12 -* Jingle file transfer fixes -* Fixed OMEMO self healing (after backup restore) on servers w/o MAM +#### Version 2.3.2 +* fix shareWithActivity -### Version 2.5.11 -* Fixed crash on Android <5.0 +#### Version 2.3.1 +* bug fixes -### Version 2.5.10 -* Fixed crash on Xiaomi devices running Android 8.0 + 8.1 - -### Version 2.5.9 +#### Version 2.3.0 +* show name in quotes (PAM) +* introduce theme based on systems theme (PAM) +* increase default video quality (720p instead of 360p) (PAM) +* replace YouTube links with Invidious links (PAM) +* rework profile view (PAM) +* introduce app intro and some help screens (PAM) * fixed minor security issues -* Share XMPP uri from channel search by long pressing a result +* share XMPP uri from channel search by long pressing a result +* fixed OMEMO self healing (after backup restore) on servers w/o MAM +* introduce expert setting to perform channel discovery on local server instead of [search.jabber.network](https://search.jabber.network) +* introduce new orange theme color (PAM) +* bug fixes -### Version 2.5.8 -* fixed connection issues over Tor -* P2P file transfer (Jingle) now offers direct candidates -* Support XEP-0396: Jingle Encrypted Transports - OMEMO +#### Version 2.2.9 +* bug fixes -### Version 2.5.7 -* fixed crash when scanning QR codes on Android 6 and lower -* when sharing a message from and to Conversations insert it as quote - -### Version 2.5.6 +#### Version 2.2.8 +* stability improvements for group chats and channels +* allow backups to be restored from anywhere +* make short vibrate in open chat configurable and respect silent mode (PAM) * fixes for Jingle file transfer * fixed some rare crashes - -### Version 2.5.5 -* allow backups to be restored from anywhere +* when sharing a message from and to messenger insert it as quote +* find orphaned files and show them in the chat again instead of showing them deleted (PAM) +* introduce file uploads/downloads with queue (PAM) +* fixed connection issues over Tor +* P2P file transfer (Jingle) now offers direct candidates +* support XEP-0396: Jingle Encrypted Transports - OMEMO * bug fixes -### Version 2.5.4 -* stability improvements for group chats and channels +#### Version 2.2.7 +* fixing crashes -### Version 2.5.3 +#### Version 2.2.6 +* fixing connection issues +* fix broken updater + +#### Version 2.2.5 +* make backup compatible to Conversations (only works for Android >= 8) (PAM) +* bug fix + +#### Version 2.2.4 +* added channel search via search.jabbercat.org +* reworked onboarding screens +* warn when trying to enter domain address or channel address in Add Contact dialog +* set own OMEMO devices to inactive after not seeing them for 60 days. (was 7 days) * bug fixes for peer to peer file transfer (Jingle) * fixed server info for unlimited/unknown max file size - -### Version 2.5.2 +* make backup compatible to Conversations (PAM) +* performance improvements * bug fixes -### Version 2.5.1 -* minor bug fixes -* Set own OMEMO devices to inactive after not seeing them for 14 days. (was 7 days) +#### Version 2.2.3 +* bug fixes -### Version 2.5.0 -* Added channel search via search.jabbercat.org -* Reworked onboarding screens -* Warn when trying to enter domain address or channel address in Add Contact dialog +#### Version 2.2.2 +* add activity to define some important privacy settings on first start (PAM) +* add ability to delete account also from server (PAM) +* add ability to kick users from room and not just ban them (PAM) +* bug fixes -### Version 2.4.3 -* Fixed display of private messages sent from another client -* Fixed backup creation on long time installations +#### Version 2.2.1 +* use extra activity for enter name during registration (PAM) +* bug fixes -### Version 2.4.2 -* Fix image preview on older Android version - -### Version 2.4.1 -* Fixed crash in message view - -### Version 2.4.0 -* New Backup / Restore feature -* Clearly distinguish between (private) group chats and (public) channels -* Redesigned participants view for group chats and channels -* Redesigned create new contact/group chat/channel flow in Start Conversation screen - - -### Version 2.3.12 -* Fixed rare crash on start up -* Fixed avatar not being refreshed in group chats - -### Version 2.3.11 -* Support for Android 9 'message style' notifications +#### Version 2.2.0 +* add ability to set/edit nickname in own profile (PAM) +* add ability to configure autojoin flag in groupchat details (PAM) +* support for Android 9 'message style' notifications * OMEMO stability improvements -* Added ability to destroy group chats -* Do not show deleted files in media browser -* Added 'Keep Original' as video quality choice +* do not show deleted files in media browser +* added 'Keep Original' as image and video quality choice (PAM) +* fixed avatar not being refreshed in group chats +* make users avatars configurable (prefer either from xmpp or addressbook) (PAM) +* integrate last message deletion on remote devices (server and client need support for message correction) (PAM) +* clearly distinguish between (private) group chats and (public) channels +* redesigned participants view for group chats and channels +* redesigned create new contact/group chat/channel flow in Start Conversation screen +* reworked backup & restore +* use Ad-Hoc Commands to invite new users (PAM) +* show link preview in chat (PAM) +* bug fixes -### Version 2.3.10 -* lower minimum required Android version to 4.1 -* Synchronize group chat join/leaves across multiple clients -* Fixed sending PGP encrypted messages from quick reply - -### Version 2.3.9 -* OMEMO stability improvements -* Context menu when long pressing avatar in 1:1 chat - -### Version 2.3.8 -* make PEP avatars public to play nice with Prosody 0.11 -* Fixed re-sending failed files in group chats - -### Version 2.3.7 +#### Version 2.1.5 +* improved handling of bookmark nicks * long press on 'allow' or 'add back' snackbar to bring up 'reject' -* bug fixes for Android 9 - -### Version 2.3.6 -* Improved handling of bookmark nicks -* Show send PM menu entry in anonymous MUCs - -### Version 2.3.5 -* Fixed group chat mentions when nick ends in . (dot) -* Fixed Conversations not asking for permissions after direct share -* Fixed CVE-2018-18467 - -### Version 2.3.4 -* Fixed sending OMEMO files to ChatSecure - -### Version 2.3.3 -* Fixed connection issues with user@ip type JIDs - -### Version 2.3.2 -* Fixed OMEMO on Android 5.1 & 6.0 -* Added setting for video quality +* let the user forbid android from taking screenshots (PAM) +* make PEP avatars public to play nice with Prosody 0.11 +* fixed re-sending failed files in group chats +* OMEMO stability improvements +* context menu when long pressing avatar in 1:1 chat +* synchronize group chat join/leaves across multiple clients +* fixed sending PGP encrypted messages from quick reply * bug fixes -### Version 2.3.1 -* Stronger compression for video files -* Use SNI on STARTTLS to fix gtalk -* Fix Quiet Hours on Android 8+ -* Use Consistent Color Generation (XEP-0392) +#### Version 2.1.4 +* fix crash with xmpp uris + +#### Version 2.1.3 +* bring back gif support in internal mediaviewer +* fixed group chat mentions when nick ends in . (dot) +* fixed not asking for permissions after direct share +* fixed CVE-2018-18467 +* implement message deletion (PAM) +* bug fixes -### Version 2.3.0 -* Preview and ask for confirmation before sending media files -* View per conversation media files in contact and conference details screens -* Enable foreground service by default for Android 8 (notification can be disabled by long pressing it) -* Audio player: disable screen and switch to ear piece -* Support TLSv1.3 (ejabberd ≤ 18.06 is incompatible with openssl 1.1.1 - Update ejabberd or downgrade openssl if you get ›Stream opening error‹) +#### Version 2.1.2 +* fix crash with updater +#### Version 2.1.1 +* make quick actions/attachment choice configurable (PAM) +* add a hideable separate quick button for voice messages (PAM) +* switch between speaker/earpiece while playing audios/voice messages +* store bookmarks in PEP if server has ability to convert to old bookmarks +* show Jabber IDs from address book in address book +* preview and ask for confirmation before sending media files +* view per conversation media files in contact and conference details screens +* enable foreground service by default for Android 8 (notification can be disabled by long pressing it) +* reworked MediaViewer (PAM) +* support TLSv1.3 (ejabberd ≤ 18.06 is incompatible with openssl 1.1.1 - Update ejabberd or downgrade openssl if you get ›Stream opening error‹) +* add push messages for playstore versions +* bug fixes -### Version 2.2.9 -* Store bookmarks in PEP if server has ability to convert to old bookmarks -* Show Jabber IDs from address book in Start Conversation screen +#### Version 2.1.0 +* use group chat name as primary identifier +* upload group chat avatar on compatible servers +* show group name and subject in group chat details +* UI improvements +* introduce Expert Setting to enable direct search +* introduce Paste As Quote on Android 6+ +* attempt to delete broken bundles from PEP +* offer Paste as quote for HTML content +* use SNI on STARTTLS to fix gtalk +* use Consistent Color Generation (XEP-0392) +* bug fixes -### Version 2.2.8 -* fixed regression that broke XMPP uris +#### Version 2.0.2 +* bug fixes especially for Android 4 -### Version 2.2.7 -* stability improvements - -### Version 2.2.6 -* support old MAM version to work with Prosody - -### Version 2.2.5 -* Persist MUC avatar across restarts / show in bookmarks -* Offer Paste as quote for HTML content - -### Version 2.2.4 -* Use group chat name as primary identifier -* Show group name and subject in group chat details -* Upload group chat avatar on compatible servers - -### Version 2.2.3 -* Introduce Expert Setting to enable direct search -* Introduce Paste As Quote on Android 6+ -* Fixed issues with HTTP Upload - -### Version 2.2.2 -* Fixed connection problems with TLS1.3 servers -* Attempt to delete broken bundles from PEP -* Use FCM instead of GCM - -### Version 2.2.1 +#### Version 2.0.1 * improved recording quality -* load map tiles over Tor if enabled +* let the user select a public server for account creation (PAM) +* add possibility to de-/activate accounts in multi account mode +* bug fixes -### Version 2.2.0 -* Integrate Voice Recorder -* Integrate Share Location -* Added ability to search messages +#### Version 2.0.0 +* highlight irregular unicode code blocks in Jabber IDs +* integrate QR code scanner (requires camera permission) +* removed support for customizable resources +* reworked message search +* added splash screen at startup +* integrate dark theme +* keep OTR, but without further development and support, just for compatibility (PAM) +* added configurable font size +* added global OMEMO preference +* added scroll to bottom button +* added contact button as android widget +* only mark visible messages as read +* a lot of bug fixes -### Version 2.1.4 +#### Version 1.22.1 +* show extended/TOR connection options in expert settings * bug fixes -### Version 2.1.3 -* Do not process stanzas with invalid JIDs +#### Version 1.22.0 +* integrated expert option to enable multiple account (PAM) +* some UI improvements +* improved MAM support +* bug fixes -### Version 2.1.2 -* Fixed avatars not being displayed on new installs - -### Version 2.1.1 -* Improved start up performance +#### Version 1.21.3 +* small self messages improvement +* small notification improvement * bug fixes -### Version 2.1.0 -* Added configurable font size -* Added global OMEMO preference -* Added scroll to bottom button -* Only mark visible messages as read - - -### Version 2.0.0 -* OMEMO by default for everything but public group chats -* Integrate QR code scanner (requires camera permission) -* Removed support for OTR -* Removed support for customizable resources -* Removed slide out panel for conversation overview -* Add ability to change status message -* Highlight irregular unicode code blocks in Jabber IDs -* Conversations now requires Android 4.4+ - -### Version 1.23.8 +#### Version 1.21.2 * bug fixes -### Version 1.23.7 -* Improved MAM support + bug fixes - -### Version 1.23.6 -* Fixed crash on receiving invalid HTTP slot response - -### Version 1.23.5 -* improved self chat - -### Version 1.23.4 -* keep screen on while playing audio -* send delivery receipts after MAM catch-up +#### Version 1.21.1 +* don't use integrated updater if Messenger is installed from F-Droid (PAM) +* check if app installs from unknown sources are allowed, if not open settings to allow this (PAM) +* show hint in chatview if private message is activated (PAM) +* send delivery receipts after MAM catchup * reduce number of wake locks +* add possibility to destroy group chats (PAM) +* show progress dialog while downloading update with internal updater (PAM) +* implemented message search (PAM) +* improved self chat +* bug fixes -### Version 1.23.3 -* Fixed OMEMO device list not being announced +#### Version 1.21.0 +* replaced google maps location service with open street map services via leaflet (PAM) +* let screen on while playing audio files (PAM) +* add Turkish translations +* bug fixes -### Version 1.23.2 -* Removed NFC support -* upload Avatars as JPEG -* reduce APK size - -### Version 1.23.1 -* Show icon instead of image preview in conversation overview +#### Version 1.20.3 +* show icon instead of image preview in conversation overview * fixed loop when trying to decrypt with YubiKey +* Removed NFC support +* Fixed OMEMO device list no being announced +* bug fixes -### Version 1.23.0 -* Support for read markers in private, non-anonymous group chats +#### Version 1.20.2 +* bug fixes -### Version 1.22.1 -* Disable swipe to left to end conversation -* Fixed 'No permission to access …' when opening files shared from the SD card -* Always open URLs in new tab +#### Version 1.20.1 +* bug fixes -### Version 1.22.0 -* Text markup *bold*, _italic_,`monospace` and ~strikethrough~ -* Use same emoji style on all Android versions -* Display emojis slightly larger within continuous text +#### Version 1.20.0 +* reworked AppUpdater and show a notification if there is an update available (PAM) +* some UI and performance improvements +* add french and spanish translations +* text markup *bold*, _italic_,`monospace` and ~strikethrough~ +* fixed 'No permission to access …' when opening files shared from the SD card +* always open URLs in new tab +* bring back quick share (default off) and return to previous app after sharing +* send and show read markers in private, non-anonymous groups +* warn if chat is unencrypted and switch to OMEMO if available after pressing OK (warning can be disabled in settings) (PAM) +* support sending and receiving opus file +* bug fixes -### Version 1.21.0 -* Inline player for audio messages -* Stronger compression for long videos -* Long press the 'add back' button to show block menu -### Version 1.20.1 +#### Version 1.19.2 +* reworked inline player for audio messages +* long press the 'add back' button to show block menu +* foregroundservice can be switched off +* bug fixes + +#### Version 1.19.1 * fixed OTR encrypted file transfer - -### Version 1.20.0 -* presence subscription no longer required for OMEMO on compatible servers -* display emoji-only messages slightly larger - -### Version 1.19.5 -* fixed connection loop on Android <4.4 - -### Version 1.19.4 -* work around for OpensFire’s self signed certs -* use VPN’s DNS servers first - -### Version 1.19.3 -* Do not create foreground service when all accounts are disabled * bug fixes -### Version 1.19.2 -* bug fixes - -### Version 1.19.1 -* Made DNSSEC hostname validation opt-in - -### Version 1.19.0 +#### Version 1.19.0 * Added 'App Shortcuts' to quickly access frequent contacts * Use DNSSEC to verify hostname instead of domain in certificate * Setting to enable Heads-up notifications -* Added date separators in message view +* Made DNSSEC hostname validation opt-in +* work around for OpensFire's self signed certs +* use VPN's DNS servers first +* fixed connection loop on Android < 4.4 +* presence subscription no longer required for OMEMO on compatible servers +* bug fixes -### Version 1.18.5 + +#### Version 1.18.2 * colorize send button only after history is caught up * improved MAM catchup strategy +* bug fixes -### Version 1.18.4 +#### Version 1.18.1 +* limited GPG encryption for MUC offline members +* show extended connection settings for open version in export settings +* fixed landscape layout problems for tablets * fixed UI freezes during connection timeout * fixed notification sound playing twice * fixed conversations being marked as read * removed 'copy text' in favor of 'select text' and 'share with' +* bug fixes -### Version 1.18.3 -* limited GPG encryption for MUC offline members - -### Version 1.18.2 +#### Version 1.18.0 +* enable OTR and OpenPGP again +* fix bug with updater on devices < SDK 21 (PAM) +* Show colored contact names for their presence status (via settings) +* treat URL as file if URL is in oob or contains key * added support for Android Auto * fixed HTTP Download over Tor * work around for nimbuzz.com MUCs - -### Version 1.18.1 * bug fixes -### Version 1.18.0 -* Conversations <1.16.0 will be unable to receive OMEMO encrypted messages -* OMEMO: put auth tag into key (verify auth tag as well) -* offer to block entire domain in message from stranger snackbar -* treat URL as file if URL is in oob or contains key - -### Version 1.17.1 +#### Version 1.17.1 +* grey out offline contacts in StartConversation (PAM) +* change emoji library which supports newer emojis +* change avatar images to circles * Switch Aztec to QR for faster scans -* Fixed unread counter for image messages +* make automatic fullscreen media rotation configurable (PAM) +* open version can use tor networks +* make image compression configurable (PAM) +* show read/received markers in chatlist (PAM) +* OMEMO: put auth tag into key (verify auth tag as well) +* offer to block entire domain in message from stanger snackbar +* bug fixes -### Version 1.17.0 -* Do not notify for messages from strangers by default -* Blocking a JID closes the corresponding conversation -* Show message sender in conversation overview -* Show unread counter for every conversation -* Send typing notifications in private, non-anonymous MUCs +#### Version 1.17.0 +* add date bubbles in chat view (PAM) +* show last used resource in contact details +* make brightness overwrite in image/video viewer configurable (PAM) +* make video resolution configurable (PAM) +* do not notify for messages from strangers by default +* blocking a JID closes the corresponding conversation +* show message sender in conversation overview * Support for the latest MAM namespace * Icons for attach menu - -### Version 1.16.2 -* change mam catchup strategie. support mam:1 +* send typing notifications in private, non-anonymous MUCs +* change media directory names (PAM) * bug fixes +#### Version 1.16.5 +* show read marker in whisper messages +* bug fixes -### Version 1.16.1 +#### Version 1.16.4 +* show failed file uploads in chatlist (PAM) +* resend failed file uploads automatically (PAM) +* preview files in chatlist +* move (un)mute settings to contact-/conference details * UI performance fixes * bug fixes -### Version 1.16.0 -* configurable client side message retention period -* compress videos before sending them - -### Version 1.15.5 -* show nick as bold text when mentioned in conference +#### Version 1.16.3 +* don't use jingle as fallback if file is too big * bug fixes -### Version 1.15.4 +#### Version 1.16.2 +* show app name and version from shared apk files +* add ability to compress videos with 720p and not only bigger ones + +#### Version 1.16.1 * bug fixes -### Version 1.15.3 -* show offline contacts in MUC as grayed-out -* don't transcode gifs. add overlay indication to gifs +#### Version 1.16.0 +* show unread messages in chatlist (PAM) +* increase image size to 4k UHD (PAM) +* add support for GIF files +* reworked video compression (PAM) +* reworked app updater * bug fixes -### Version 1.15.2 -* bug fixes - -### Version 1.15.1 +#### Version 1.15.4 +* improve video compression quality (PAM) * support for POSH (RFC7711) * support for quoting messages (via select text) -* verified messages show shield icon. unverified messages show lock - -### Version 1.15.0 -* New [Blind Trust Before Verification](https://gultsch.de/trust.html) mode -* Easily share Barcode and XMPP uri from Account details -* Automatically deactivate own devices after 7 day of inactivity -* Improvements fo doze/push mode +* verified messages show shield icon; unverified messages show lock * bug fixes -### Version 1.14.9 -* warn in account details when data saver is enabled -* automatically enable foreground service after detecting frequent restarts +#### Version 1.15.3 +* new [Blind Trust Before Verification](https://gultsch.de/trust.html) mode +* easily share Barcode and XMPP uri from Account details * bug fixes -### Version 1.14.8 +#### Version 1.15.2 +* automatically remove old OMEMO devices after 7 days * bug fixes -### Version 1.14.7 +#### Version 1.15.1 +* introduces preference option to choose if videos should be compressed (always, automatically, never) +* bug fixes + +#### Version 1.15.0 +* make OMEMO working with other clients +* make OMEMO encryption standard for 1:1 chats as default +* start navigation app directly from show location activity (PAM) +* show map preview on shared locations (PAM) +* show contacts name on shared VCARDs (PAM) +* send text directly via ShareWithActivity +* bug fixes + +#### Version 1.14.5 * error message accessible via context menu for failed messages * don't include pgp signature in anonymous mucs * bug fixes -### Version 1.14.6 +#### Version 1.14.4 * make error notification dismissable * bug fixes - -### Version 1.14.5 -* expert setting to delete OMEMO identities -* bug fixes - -### Version 1.14.4 -* bug fixes - -### Version 1.14.3 +#### Version 1.14.3 +* set different auto-download-sizes for mobile, roaming and WiFi connections (PAM) +* add ability to report errors and bugs directly from menu (PAM) * XEP-0377: Spam Reporting * fix rare start up crashes +* bug fixes -### Version 1.14.2 +#### Version 1.14.2 * support ANONYMOUS SASL +* add custom Emojis +* scroll long actionbar titles +* some performance improvements +* some video compression improvements (PAM) * bug fixes -### Version 1.14.1 -* Press lock icon to see why OMEMO is deactivated +#### Version 1.14.1 +* fix crash on taking photos directly within the app + +#### Version 1.14.0 +* compress videos > 5 MB before sending +* improvments for Android N +* quick reply to notifications on Android N +* don't download avatars and files when data saver is on * bug fixes -### Version 1.14.0 -* Improvments for N -* Quick Reply to Notifications on N -* Don't download avatars and files when data saver is on +#### Version 1.13.9 +* add icons for files in chat view +* reworked backup service to automatically backup database encrypted to local storage at 4 am each day (PAM) +* make human readable log export optional (PAM) * bug fixes -### Version 1.13.9 +#### Version 1.13.8 * bug fixes -### Version 1.13.8 -* show identities instead of resources in selection dialog -* allow TLS direct connect when port is set to 5223 +#### Version 1.13.7 +* improved video thumbnails in chatlist * bug fixes -### Version 1.13.7 -* bug fixes - -### Version 1.13.6 -* thumbnails for videos -* bug fixes - -### Version 1.13.5 -* bug fixes - -### Version 1.13.4 +#### Version 1.13.6 +* share image/video directly from fullscreen view (PAM) +* show online status in foreground service * support jingle ft:4 * show contact as DND if one resource is * bug fixes -### Version 1.13.3 +#### Version 1.13.5 +* add image preview before sending single images directly (PAM) +* add vibrate notification when app is open (PAM) +* hide actionbar in fullscreen image/video view (PAM) * bug fixes -### Version 1.13.2 +#### Version 1.13.4 * new PGP decryption logic * bug fixes -### Version 1.13.1 -* changed some colors in dark theme -* fixed fall-back message for OMEMO - -### Version 1.13.0 -* configurable dark theme -* opt-in to share Last User Interaction - -### Version 1.12.9 -* make grace period configurable - -### Version 1.12.8 -* more bug fixes :-( - -### Version 1.12.7 +#### Version 1.13.3 +* new permission check and request at startup (PAM) * bug fixes -### Version 1.12.6 +#### Version 1.13.2 +* refactored lastseen info * bug fixes -### Version 1.12.5 +#### Version 1.13.1 +* bug fixes + +#### Version 1.13.0 +* changed applicationId (PAM) +* play videos directly without touching play button (PAM) +* add database importer from local storage as backup (PAM) +* changed files directories and names (PAM) +* bug fixes + +#### Version 1.12.6 +* bug fixes +* add database exporter to local storage as backup (PAM) + +#### Version 1.12.5 +* bug fixes + +#### Version 1.12.4 * new create conference dialog * show first unread message on top * show geo uri as links * circumvent long message DOS +* integrate simple videoplayer and image viewer (PAM) -### Version 1.12.4 -* show offline members in conference (needs server support) +#### Version 1.12.3 +* show offline members in conferences * various bug fixes -### Version 1.12.3 +#### Version 1.12.2 * make omemo default when all resources support it * show presence of other resources as template * start typing in StartConversationsActivity to search +* show addresses in locations (PAM) +* show video previews in chats * various bug fixes and improvements - -### Version 1.12.2 * fixed pgp presence signing -### Version 1.12.1 +#### Version 1.12.1 +* expert setting to modify presence +* added simple audio player (PAM) +* added audio recorder (PAM) +* added location services (PAM) +* changed theme color from green to blue (PAM) * small bug fixes -### Version 1.12.0 -* new welcome screen that makes it easier to register account -* expert setting to modify presence +#### Version 1.12.0 +* added welcome screen for first start +* use IP/Port instead of query DNS to improve connection performance +* UI improvements +* bug fixes -### Version 1.11.7 +#### Version 1.11.7 * Share xmpp uri from conference details * add setting to allow quick sharing +* use material design icons for android < lollipop +* make foreground service always activated (PAM) +* disable account deactivation +* UI improvements * various bug fixes -### Version 1.11.6 +#### Version 1.11.6 * added preference to disable notification light * various bug fixes -### Version 1.11.5 +#### Version 1.11.5 * check file ownership to not accidentally share private files -### Version 1.11.4 +#### Version 1.11.4 * fixed a bug where contacts are shown as offline * improved broken PEP detection - -### Version 1.11.3 * check maximum file size when using HTTP Upload * properly calculate caps hash +* some UI improvements -### Version 1.11.2 +#### Version 1.11.3 * only add image files to media scanner * allow to delete files * various bug fixes -### Version 1.11.1 +#### Version 1.11.2 +* added voice recorder to plugins +* bug fixes + +#### Version 1.11.1 * fixed some bugs when sharing files with Conversations -### Version 1.11.0 +#### Version 1.11.0 * OMEMO encrypted conferences +* resend failed filetransfers automatically +* Support for XEP-0357: Push Notifications +* disable support for only one account -### Version 1.10.1 -* made message correction opt-in +#### Version 1.10.1 +* support only one account * various bug fixes -### Version 1.10.0 -* Support for XEP-0357: Push Notifications +#### Version 1.10.0 * Support for XEP-0308: Last Message Correction -* introduced build flavors to make dependence on play-services optional -### Version 1.9.4 +#### Version 1.9.4 * prevent cleared Conversations from reloading history with MAM * various MAM fixes -### Version 1.9.3 +#### Version 1.9.3 * expert setting that enables host and port configuration * expert setting opt-out of bookmark autojoin handling * offer to rejoin a conference after server sent unavailable -* internal rewrites +* internal rewrites and optimizations -### Version 1.9.2 +#### Version 1.9.2 * prevent startup crash on Sailfish OS * minor bug fixes +* removed contact-/conferece-details button (PAM) +* touch contact name or conference name in action bar opens contact-/conference-details (PAM) -### Version 1.9.1 +#### Version 1.9.1 * minor bug fixes incl. a workaround for nimbuzz.com -### Version 1.9.0 +#### Version 1.9.0 * Per conference notification settings * Let user decide whether to compress pictures * Support for XEP-0368 * Ask user to exclude Conversations from battery optimizations -### Version 1.8.4 +#### Version 1.8.4 * prompt to trust own OMEMO devices * fixed rotation issues in avatar publication * invite non-contact JIDs to conferences -### Version 1.8.3 +#### Version 1.8.3 * brought text selection back +* hide settings, manage accounts and updater in all menus except in the main activity +* bug fixes -### Version 1.8.2 +#### Version 1.8.2 * fixed stuck at 'connecting...' bug * make message box behave correctly with multiple links +* bug fixes -### Version 1.8.1 +#### Version 1.8.1 * enabled direct share on Android 6.0 * ask for permissions on Android 6.0 * notify on MAM catchup messages * bug fixes -### Version 1.8.0 +#### Version 1.8.0 * TOR/ORBOT support in advanced settings * show vcard avatars of participants in a conference - -### Version 1.7.3 +* Own contact picture in tile for conferences with only one other occupant +* added button to updater dialog to show full changelog +* added plugin loader to settings * fixed PGP encrypted file transfer -* fixed repeating messages in slack conferences +* bug fixes -### Version 1.7.2 -* decode PGP messages in background +#### Versrion 1.7.3 +* changed app name from Conversations to Pix-Art Messenger (PAM) +* changed chat background to light yellow +* added own name for sent locations (PAM) -### Version 1.7.1 +#### Version 1.7.2 +* let users crop their avatars +* bug fixes + +#### Versrion 1.7.1 * performance improvements when opening a conversation +* bug fixes -### Version 1.7.0 +#### Version 1.7.0 +* redownload deleted files from HTTP hosts +* bug fixes +* show lastseen info as subitle in single chats + +#### Version 1.6.13 +* bugfixes +* fetching MUC history via MAM +* Expert setting to automatically set presence +* show client-to-client encryption in chatview +* added changelog to AppUpdater dialog +* delete old version files in download folder on updating +* use standard namespace for file transfers * CAPTCHA support * SASL EXTERNAL (client certifiates) -* fetching MUC history via MAM -* redownload deleted files from HTTP hosts -* Expert setting to automatically set presence -* bug fixes -### Version 1.6.11 +#### Version 1.6.12 +* added blue tick as read indicator * tab completion for MUC nicks -* history export +* history export to SD card * bug fixes -### Version 1.6.10 +#### Version 1.6.11 +* optimized app updater and increased app update check period to once a day + +#### Version 1.6.10 * fixed facebook login * fixed bug with ejabberd mam -* use official HTTP File Upload namespace +* run app updater automatically -### Version 1.6.9 +#### Version 1.6.9 * basic keyboard support +* bug fixes +* update checker with in app version updates -### Version 1.6.8 +#### Version 1.6.8 * reworked 'enter is send' setting * reworked DNS server discovery on lolipop devices * various bug fixes -### Version 1.6.7 +#### Version 1.6.7 * bug fixes -### Version 1.6.6 +#### Version 1.6.6 * best 1.6 release yet -### Version 1.6.5 +#### Version 1.6.5 * more OMEMO fixes -### Version 1.6.4 +#### Version 1.6.4 * setting to enable white chat bubbles * limit OMEMO key publish attempts to work around broken PEP * various bug fixes -### Version 1.6.3 +#### Version 1.6.3 * bug fixes -### Version 1.6.2 +#### Version 1.6.2 * fixed issues with connection time out when server does not support ping -### Version 1.6.1 +#### Version 1.6.1 * fixed crashes -### Version 1.6.0 +#### Version 1.6.0 * new multi-end-to-multi-end encryption method -* redesigned chat bubbles * show unexpected encryption changes as red chat bubbles * always notify in private/non-anonymous conferences +* some bugfixes +* hard coded pix-art.de as standard server -### Version 1.5.1 +#### Version 1.5.2 +* added new message bubbles +* added subtitles to chatviews in ActionBar to display typing info in single chats and participant names in conferences +* some bug fixes + +#### Version 1.5.1 * fixed rare crashes * improved otr support +* moved typing info to ActionBar -### Version 1.5.0 -* upload files to HTTP host and share them in MUCs. requires new [HttpUploadComponent](https://github.com/siacs/HttpUploadComponent) on server side +#### Version 1.5.0 +* new file transfer mode to offline contacts and conferences for files smaller than 20 MB: upload files to HTTP host and share them in MUCs. requires new [HttpUploadComponent](https://github.com/siacs/HttpUploadComponent) on server side +* default image format is JPEG +* small layout modifications with bigger avatars +* show contacts name in locations shared in conferences -### Version 1.4.5 +#### Version 1.4.5 * fixes to message parser to not display some ejabberd muc status messages -### Version 1.4.4 +#### Version 1.4.4 * added unread count badges on supported devices * rewrote message parser -### Version 1.4.0 +#### Version 1.4.0 * send button turns into quick action button to offer faster access to take photo, send location or record audio * visually separate merged messages * faster reconnects of failed accounts after network switches * r/o vcard avatars for contacts * various bug fixes -### Version 1.3.0 +#### Version 1.3.0 * swipe conversations to end them * quickly enable / disable account via slider * share multiple images at once @@ -705,32 +741,32 @@ * mlink compatibility * bug fixes -### Version 1.2.0 +#### Version 1.2.0 * Send current location. (requires [plugin](https://play.google.com/store/apps/details?id=eu.siacs.conversations.sharelocation)) * Invite multiple contacts at once * performance improvements * bug fixes -### Version 1.1.0 +#### Version 1.1.0 * Typing notifications (must be turned on in settings) * Various UI performance improvements * bug fixes -### Version 1.0.4 +#### Version 1.0.4 * load avatars asynchronously on start up * support for XEP-0092: Software Version -### Version 1.0.3 +#### Version 1.0.3 * load messages asynchronously on start up * bug fixes -### Version 1.0.2 +#### Version 1.0.2 * skipped -### Version 1.0.1 +#### Version 1.0.1 * accept more ciphers -### Version 1.0 +#### Version 1.0 * MUC controls (Affiliaton changes) * Added download button to notification * Added check box to hide offline contacts @@ -738,7 +774,7 @@ * Improved security * bug fixes + code clean up -### Version 0.10 +#### Version 0.10 * Support for Message Archive Management * Dynamically load message history * Ability to block contacts @@ -748,16 +784,16 @@ * quiet hours * fixed connection issues on ipv6 servers -### Version 0.9.3 +#### Version 0.9.3 * bug fixes -### Version 0.9.2 +#### Version 0.9.2 * more bug fixes -### Version 0.9.1 +#### Version 0.9.1 * bug fixes including some that caused Conversations to crash on start -### Version 0.9 +#### Version 0.9 * arbitrary file transfer * more options to verify OTR (SMP, QR Codes, NFC) * ability to create instant conferences @@ -766,44 +802,44 @@ * added SCRAM-SHA1 login method * bug fixes -### Version 0.8.4 +#### Version 0.8.4 * bug fixes -### Version 0.8.3 +#### Version 0.8.3 * increased UI performance * fixed rotation bugs -### Version 0.8.2 +#### Version 0.8.2 * Share contacts via QR codes or NFC * Slightly improved UI * minor bug fixes -### Version 0.8.1 +#### Version 0.8.1 * minor bug fixes -### Version 0.8 +#### Version 0.8 * Download HTTP images * Show avatars in MUC tiles * Disabled SSLv3 * Performance improvements * bug fixes -### Version 0.7.3 +#### Version 0.7.3 * revised tablet ui * internal rewrites * bug fixes -### Version 0.7.2 +#### Version 0.7.2 * show full timestamp in messages * brought back option to use JID to identify conferences * optionally request delivery receipts (expert option) * more languages * bug fixes -### Version 0.7.1 +#### Version 0.7.1 * Optionally use send button as status indicator -### Version 0.7 +#### Version 0.7 * Ability to disable notifications for single conversations * Merge messages in chat bubbles * Fixes for OpenPGP and OTR (please republish your public key) @@ -812,26 +848,26 @@ * Configurable font size * Expert options for encryption -### Version 0.6 +#### Version 0.6 * Support for server side avatars * save images in gallery * show contact name and picture in non-anonymous conferences * reworked account creation * various bug fixes -### Version 0.5.2 +#### Version 0.5.2 * minor bug fixes -### Version 0.5.1 +#### Version 0.5.1 * couple of small bug fixes that have been missed in 0.5 * complete translations for Swedish, Dutch, German, Spanish, French, Russian -### Version 0.5 +#### Version 0.5 * UI overhaul * MUC / Conference bookmarks * A lot of bug fixes -### Version 0.4 +#### Version 0.4 * OTR file encryption * keep OTR messages and files on device until both parties or online at the same time * XEP-0333. Mark whether the other party has read your messages @@ -840,7 +876,7 @@ * Infinit history scrolling * Mark the last used presence in presence selection dialog -### Version 0.3 +#### Version 0.3 * Mostly bug fixes and internal rewrites * Touch contact picture in conference to highlight * Long press on received image to share @@ -848,27 +884,27 @@ * improved issues with occasional message lost * experimental conference encryption. (see FAQ) -### Version 0.2.3 +#### Version 0.2.3 * regression fix with receiving encrypted images -### Version 0.2.2 +#### Version 0.2.2 * Ability to take photos directly * Improved openPGP offline handling * Various bug fixes * Updated Translations -### Version 0.2.1 +#### Version 0.2.1 * Various bug fixes * Updated Translations -### Version 0.2 +#### Version 0.2 * Image file transfer * Better integration with OpenKeychain (PGP encryption) * Nicer conversation tiles for conferences * Ability to clear conversation history * A lot of bug fixes and code clean up -### Version 0.1.3 +#### Version 0.1.3 * Switched to minidns library to resolve SRV records * Faster DNS in some cases * Enabled stream compression @@ -876,12 +912,12 @@ * Various bug fixes involving message notifications * Added support for DIGEST-MD5 auth -### Version 0.1.2 +#### Version 0.1.2 * Various bug fixes relating to conferences * Further DNS lookup improvements -### Version 0.1.1 +#### Version 0.1.1 * Fixed the 'server not found' bug -### Version 0.1 +#### Version 0.1 * Initial release diff --git a/README-en.md b/README-en.md new file mode 100644 index 000000000..edca8e426 --- /dev/null +++ b/README-en.md @@ -0,0 +1,140 @@ +![logo](/art/icon.png) +# Pix-Art Messenger [![CircleCI](https://circleci.com/gh/kriztan/Pix-Art-Messenger/tree/master.svg?style=shield)](https://circleci.com/gh/kriztan/Pix-Art-Messenger/tree/master) + +🇩🇪 Deutsche Version der Readme hier verfügbar. + +Pix-Art Messenger is a fork of [Conversations](https://github.com/siacs/Conversations). +The changes aim to improve usability and ease transition from pre-installed and other widespread messengers. Here are some screenshots: + + + +(Images used were taken from http://freestockgallery.de) + +## Download +Pix-Art is available for install in the F-Droid and Google-Play stores. +Alternatively release and beta-release APKs are available via github: [Releases](https://github.com/kriztan/Pix-Art-Messenger/releases/latest) + +Get it on Google Play Get it on F-Droid + +#### Pix-Art-Messenger nightly and beta + +##### F-Droid +Scan the QR-Code below and add it to your F-Droid repositories. + + + +#### Google Play +Google-Users can join the Google-Play beta program: +[Pix-Art Messenger beta](https://play.google.com/apps/testing/de.pixart.messenger) + + +## Social Media +Pix-Art Messenger on Mastodon (German) + +There are also English and German speaking XMPP-MUCs focusing on support and development of the Pix-Art Messenger. + +If you are interested in the development of the messenger, here is a MUC for you (English and German speaking): + +Development-Chat: [development@room.pix-art.de](https://jabber.pix-art.de/j/development@room.pix-art.de?join) +[![Users in muc](https://inverse.chat/badge.svg?room=development@room.pix-art.de)](https://jabber.pix-art.de/j/development@room.pix-art.de?join) + + +There also is an Support-MUC where you can ask questions and get help with issues you may encounter, see further below for details. + + +## How can I support translations ? +[![Crowdin](https://d322cqt584bo4o.cloudfront.net/pix-art-messenger/localized.svg)](https://crowdin.com/project/pix-art-messenger) + +Translation of in-app text is organised via [crowdin.com](https://crowdin.com/project/pix-art-messenger). You can add new languages as locales and add and edit translations already existing. + +[Here is the project page on crowdin.com](https://crowdin.com/project/pix-art-messenger/invite?d=75l6j4k6k6k523f4j4m4e473u663d3m4p4t4q4) + +## Help! I've encountered issues! +The easiest way to get some help is to join our support-MUC (both English and German). + +Support-Chat invite link: [support@room.pix-art.de](https://jabber.pix-art.de/j/support@room.pix-art.de?join) +[![Users in muc](https://inverse.chat/badge.svg?room=support@room.pix-art.de)](https://jabber.pix-art.de/j/support@room.pix-art.de?join) + +Or scan this QR-Code: + + + +If we can't fix your problem there, you can open an issue here on github, detailing your problem, how to reproduce it and provide logs. See instructions below on how to create log files. + + + +### How to create debug logs? (adb) + +#### GNU/Linux, OSX and other Unix-like systems: + +1. First install The **A**ndroid **D**ebugging **B**ridge, if not already present. + ###### Ubuntu / Linux Mint + ``` + sudo apt-get update + sudo apt-get install android-tools-adb + ``` + ###### openSUSE 42.2 and 42.3 + ``` + sudo zypper ref + sudo zypper install android-tools + ``` + ###### openSUSE Tumbleweed + here you need to add the following repo (e.g. via Yast): + http://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/ + + alternatively you have the option to use the `1 Click installer` + https://software.opensuse.org/package/android-tools + ###### other systems + install adb using a method appropriate for your system + +2. Now open a terminal in a directory of you're choice, or navigate to the directory using `cd`. + +3. Follow steps [6] to [10] of the Windows instructions. + +4. Start outputting your log to a file on your computer. We will be using `logcat.txt`. Enter: + ``` + $ adb -d logcat -v time | grep -i Pix-Art > logcat.txt + ``` + +5. Follow the remaining steps [12] and [13] of the Windows instructions. + + +#### Windows: + +1. Download Google's SDK-platform tools for your operating system: + + https://developer.android.com/studio/releases/platform-tools.html +2. In case they were not included: You also need the ADB_drivers for your version of Microsoft Windows: + + https://developer.android.com/studio/run/win-usb.html +3. Extract the zip-archive (e.g. to `C:\ADB\`) +4. Open the command line (CMD) using the start menu: Start > Execute: cmd +5. Navigate to the directory you extracted the zip to as following. We will be using `C:\ADB\` + ``` + c: + cd ADB + ``` +6. On your smartphone open the settings and search for the item `Developer Options`. If this option is not already present on your phone you will need to unlock it beforehand. To do this navigate to `Settings > About phone`, there locate `Build number` (or similar) and tap it 7-times in succession. You should now see a notification, that you are now a developer. Congrats, `Developer Options` are now available in your settings menu. +7. Inside `Developer Options` search activate the setting `USB-Debugging` (sometimes just called `Android Debugging`). +8. Connect your phone to your computer via USB cable. The necessary drivers should now be downloaded and installed if not already present. On Windows all necessary drivers should be downloaded automatically if you followed step [2] beforehand. On most GNU/Linux systems no additional action is required. +9. If everything worked out, you can now return to the command line and test if your device is being recognised. Enter `adb devices -l`; you should see output similar to: + ``` + > adb devices -l + List of devices attached + * daemon not running. starting it now on port 5037 * + * daemon started successfully * + 042111560169500303f4 unauthorized + ``` +10. If your devices is labelled as `unautorized`, you must first accept a prompt on your phone asking if debugging over USB should be allowed. When rerunning `adb devices` you should now see: + ``` + > adb devices + List of devices attached + 042111560169500303f4 device + ``` +11. Start outputting your log to a file on your computer. We will be using `logcat.txt` in `C:\ADB\`. Just enter the following (without `> ` into the command line): + ``` + > adb -d logcat -v time | FINDSTR Pix-Art > logcat.txt + ``` +12. Now reproduce the issue encountered. + +13. Stop logging. Now take a close look at your log file and remove any personal and private information you may find before sending it together with a detailed description of your issue, instructions on how to reproduce to me. You can use GitHub's issue tracker: [Issues](https://github.com/kriztan/Pix-Art-Messenger/issues) diff --git a/README.md b/README.md index b77a577a5..b24ca9eb6 100644 --- a/README.md +++ b/README.md @@ -1,468 +1,115 @@ -

Conversations

+![logo](/art/icon.png) +# Pix-Art Messenger [![CircleCI](https://circleci.com/gh/kriztan/Pix-Art-Messenger/tree/master.svg?style=shield)](https://circleci.com/gh/kriztan/Pix-Art-Messenger/tree/master) -

Conversations: the very last word in instant messaging

+🇬🇧🇺🇸… English Readme version available here -

- - chat on our conference room - - - build status - -

+Pix-Art Messenger ist eine Kopie der offiziellen Android-App [Conversations](https://github.com/siacs/Conversations) mit einigen Änderungen, insbesondere zur Verbesserung der Benutzerfreundlichkeit, um den Umstieg von oftmals vorinstallierten Messengern zu erleichtern. Die folgenden Bilder geben erste Eindrücke der App: -

- - Google Play - -

+ -![screenshots](https://raw.githubusercontent.com/inputmice/Conversations/master/screenshots.png) +(Bilder wurden über http://freestockgallery.de bezogen) -## Design principles +Download ist hier möglich: -* Be as beautiful and easy to use as possible without sacrificing security or - privacy -* Rely on existing, well established protocols (XMPP) -* Do not require a Google Account or specifically Google Cloud Messaging (GCM) +Jeztz bei Google Play Jetzt bei F-Droid -## Features +Alternativ kannst du den Messenger auch direkt hier von GitHub unter [Releases](https://github.com/kriztan/Pix-Art-Messenger/releases/latest) herunterladen. -* End-to-end encryption with [OMEMO](http://conversations.im/omemo/) or [OpenPGP](http://openpgp.org/about/) -* Send and receive images as well as other kind of files -* Make audio and video calls -* Share your location -* Send voice messages -* Indication when your contact has read your message -* Intuitive UI that follows Android Design guidelines -* Pictures / Avatars for your Contacts -* Synchronizes with desktop client -* Conferences (with support for bookmarks) -* Address book integration -* Multiple accounts / unified inbox -* Very low impact on battery life +Pix-Art Messenger bei Mastodon +#### Pix-Art-Messenger nightly bzw. beta -### XMPP Features +Scanne den QR-Code und füge es zu deinen F-Droid Quellen hinzu: -Conversations works with every XMPP server out there. However XMPP is an -extensible protocol. These extensions are standardized as well in so called -XEP's. Conversations supports a couple of these to make the overall user -experience better. There is a chance that your current XMPP server does not -support these extensions; therefore to get the most out of Conversations you -should consider either switching to an XMPP server that does or — even better — -run your own XMPP server for you and your friends. These XEP's are: + -* [XEP-0065: SOCKS5 Bytestreams](http://xmpp.org/extensions/xep-0065.html) (or mod_proxy65). Will be used to transfer - files if both parties are behind a firewall (NAT). -* [XEP-0163: Personal Eventing Protocol](http://xmpp.org/extensions/xep-0163.html) for avatars and OMEMO. -* [XEP-0191: Blocking command](http://xmpp.org/extensions/xep-0191.html) lets you blacklist spammers or block contacts - without removing them from your roster. -* [XEP-0198: Stream Management](http://xmpp.org/extensions/xep-0198.html) allows XMPP to survive small network outages and - changes of the underlying TCP connection. -* [XEP-0280: Message Carbons](http://xmpp.org/extensions/xep-0280.html) which automatically syncs the messages you send to - your desktop client and thus allows you to switch seamlessly from your mobile - client to your desktop client and back within one conversation. -* [XEP-0237: Roster Versioning](http://xmpp.org/extensions/xep-0237.html) mainly to save bandwidth on poor mobile connections -* [XEP-0313: Message Archive Management](http://xmpp.org/extensions/xep-0313.html) synchronize message history with the - server. Catch up with messages that were sent while Conversations was - offline. -* [XEP-0352: Client State Indication](http://xmpp.org/extensions/xep-0352.html) lets the server know whether or not - Conversations is in the background. Allows the server to save bandwidth by - withholding unimportant packages. -* [XEP-0363: HTTP File Upload](http://xmpp.org/extensions/xep-0363.html) allows you to share files in conferences - and with offline contacts. +Google-Nutzer können dem Betaprogramm beitreten: +[Pix-Art Messenger beta](https://play.google.com/apps/testing/de.pixart.messenger) -## FAQ +#### Wie kann ich bei der Übersetzung helfen? +[![Crowdin](https://d322cqt584bo4o.cloudfront.net/pix-art-messenger/localized.svg)](https://crowdin.com/project/pix-art-messenger) -### General +Übersetzungen werden bei [crowdin.com](https://crowdin.com/project/pix-art-messenger) geführt. Dort können Übersetzungen erstellt, geändert und ergänzt werden. -#### How do I install Conversations? +[Hier geht's zur Projektseite bei crowdin.com](https://crowdin.com/project/pix-art-messenger/invite?d=75l6j4k6k6k523f4j4m4e473u663d3m4p4t4q4) -Conversations is entirely open source and licensed under GPLv3. So if you are a -software developer you can check out the sources from GitHub and use Gradle to -build your apk file. +#### Ich habe Probleme, was soll ich tun? +Am einfachsten ist es, wenn du unserer Support-Gruppe beitrittst, dort werden deine Probleme mit Sicherheit schnell gelöst. -The more convenient way — which not only gives you automatic updates but also -supports the further development of Conversations — is to buy the App in the -Google [Play Store](https://play.google.com/store/apps/details?id=eu.siacs.conversations&referrer=utm_source%3Dgithub). +Support-Chat: [support@room.pix-art.de](https://jabber.pix-art.de/j/support@room.pix-art.de?join) +[![Users in muc](https://inverse.chat/badge.svg?room=support@room.pix-art.de)](https://jabber.pix-art.de/j/support@room.pix-art.de?join) -Buying the App from the Play Store will also give you access to our [beta test](#beta). +Development-Chat: [development@room.pix-art.de](https://jabber.pix-art.de/j/development@room.pix-art.de?join) +[![Users in muc](https://inverse.chat/badge.svg?room=development@room.pix-art.de)](https://jabber.pix-art.de/j/development@room.pix-art.de?join) -#### I don't have a Google Account but I would still like to make a contribution +Scanne den QR-Code um in den Support-Chat zu gelangen: -I accept donations over PayPal, bank transfer and various crypto currencies. For donations via PayPal use the button below: + -[![Donate with PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.me/ConversationsIM) -**Disclaimer:** I'm not a huge fan of PayPal and their business policies. For -larger contributions please get in touch with me beforehand and we can talk -about bank transfer (SEPA). -##### Crypto currencies +Solltest du dort nicht weiter kommen kannst du hier ein Issue erstellen, in welchem du dein Problem genau beschreibst und welche Schritte erforderlich sind, um zu dem Problem zu gelangen. -Bitcoin: `3KAD8vew6tPZDjiUJNnZ3YUoUxrCEVNwFL` +#### Wie erstelle ich Debug- bzw. ADB-Logs? -Bitcoin Cash: `16ABkXzYAwWz8Y5DcWFfbBRqL63g3hzEaU` +##### Linux: -Ether: `0x5c4e5239cd9c6f4a909e4e8361526e2e3c8ba9fa` +1. Installation von ADB + ###### Ubuntu / Linux Mint + ``` + sudo apt-get update + sudo apt-get install android-tools-adb + ``` + ###### openSUSE 42.2 und 42.3 + ``` + sudo zypper ref + sudo zypper install android-tools + ``` + ###### openSUSE Tumbleweed + hier muss für das benötigte Packet folgende Repo eingebunden werden (z.B. bequem über Yast): + http://download.opensuse.org/repositories/hardware/openSUSE_Tumbleweed/ + + alternativ kann auch der `1 Click Installer` benutzt werden: + https://software.opensuse.org/package/android-tools + +2. Navigiere mit `cd` in das Verzeichnis deines Vertrauens und fahre mit Schritt [6] unter [Windows] fort. s.u. -#### How do I create an account? -XMPP, like email, is a federated protocol, which means that there is not one company you can create an *official XMPP account* with. Instead there are hundreds, or even thousands, of providers out there. One of those providers is our very own [conversations.im](https://account.conversations.im). If you don’t like to use *conversations.im* use a web search engine of your choice to find another provider. Or maybe your university has one. Or you can run your own. Or ask a friend to run one. Once you've found one, you can use Conversations to create an account. Just select *register new account* on server within the create account dialog. +##### Windows: -##### Domain hosting -Using your own domain not only gives you a more recognizable Jabber ID, it also gives you the flexibility to migrate your account between different XMPP providers. This is a good compromise between the responsibilities of having to operate your own server and the downsides of being dependent on a single provider. - -Learn more about [conversations.im Jabber/XMPP domain hosting](https://account.conversations.im/domain/). - -##### Running your own -If you already have a server somewhere and are willing and able to put the necessary work in you can run your own XMPP server. - -As of 2019 we recommend you use [ejabberd](https://ejabberd.im). The default configuration file already enables everything you need to pass the [Conversations Compliance Suite](https://compliance.conversations.im). Make sure your Linux distribution ships a fairly recent version. - -With a little bit of effort [Prosody](https://prosody.im) can be configured to support all necessary extensions as well. However you will have to rely on so called [Community Modules](https://modules.prosody.im/) of varying quality. Prosody can be interesting to people who like to modify their server and create / prototype own modules. - -Performance wise - for small deployments - both ejabberd and Prosody should be fine. - -#### Where can I set up a custom hostname / port -Conversations will automatically look up the SRV records for your domain name -which can point to any hostname port combination. If your server doesn’t provide -those please contact your admin and have them read -[this](http://prosody.im/doc/dns#srv_records). If your server operator is unwilling -to fix this you can enable advanced server settings in the expert settings of -Conversations. - -#### I get 'Incompatible Server' - -As regular user you should be picking a different server. The server you selected -is probably insecure and/or very old. - -If you are a server administrator you should make sure that your server provides -either STARTTLS or [XEP-0368: SRV records for XMPP over TLS](https://xmpp.org/extensions/xep-0368.html). - -On rare occasions this error message might also be caused by a server not providing -a login (SASL) mechanism that Conversations is able to handle. Conversations supports -SCRAM-SHA1, PLAIN, EXTERNAL (client certs) and DIGEST-MD5. - -#### I get 'Bind failure'. What does that mean? - -Some Bind failures are transient and resolve themselves after a reconnect. - -When trying to connect to OpenFire the bind failure can be a permanent problem when the domain part of the Jabber ID entered in Conversations doesn’t match the domain the OpenFire server feels responsible for. For example OpenFire is configured to use the domain `a.tld` but the Jabber ID entered is `user@b.tld` where `b.tld` also points to the same host. During bind OpenFire tries to reassign the Jabber to `user@a.tld`. Conversations doesn’t like that. -This can be fixed by creating a new account in Conversations that uses the Jabber ID `user@a.tld`. - -Note: This is kind of a weird quirk in OpenFire. Most other servers would just throw a 'Server not responsible for domain' error instead of attempting to reassign the Jabber ID. - -Maybe you attempted to use the Jabber ID `test@b.tld` because `a.tld` doesn’t point to the correct host. In that case you might have to enable the extended connection settings in the expert settings of Conversations and set a host name. - -### I get 'Stream opening error'. What does that mean? - -In most cases this error is caused by ejabberd advertising support for TLSv1.3 but not properly supporting it. This can happen if the openssl version on the server already supports TLSv1.3 but the fast\_tls wrapper library used by ejabberd not (properly) support it. Upgrading fast\_tls and ejabberd or - theoretically - downgrading openssl should fix the issue. A work around is to explicity disable TLSv1.3 support in the ejabberd configuration. More information can be found on [this issue on the ejabberd issue tracker](https://github.com/processone/ejabberd/issues/2614). - - -#### I’m getting this annoying permanent notification -Starting with Conversations 2.3.6 Conversations releases distributed over the Google Play Store will display a permanent notification if you are running it on Android 8 and above. This is a rule that it is essentially enforced by the Google Play Store. (You won’t have the problem of a *forced* foreground notification if you are getting your app from F-Droid.) - -However you can disable the notification via settings of the operating system. (Not settings in Conversations.) - -**The battery consumption and the entire behaviour of Conversations will remain the same (as good or as bad as it was before). Why is Google doing this to you? We have no idea.** - -##### Android <= 7.1 or Conversations from F-Droid (all Android versions) -The foreground notification is still controlled over the expert settings within Conversations as it always has been. Whether or not you need to enable it depends on how aggressive the non-standard 'power saving' features are that your phone vendor has built into the operating system. - -##### Android 8.x -Long press the permanent notification and disable that particular type of notification by moving the slider to the left. This will make the notification disappear but create another notification (this time created by the operating system itself.) that will complain about Conversations (and other apps) using battery. Starting with Android 8.1 you can disable that notification again with the same method described above. - -##### Android 9.0+ -Long press the permanent notification and press the info `(i)` button to get into the App info screen. In that screen touch the 'Notification' entry. In the next screen remove the checkbox for the 'Foreground service' entry. - -#### How do XEP-0357: Push Notifications work? -You need to be running the Play Store version of Conversations and your server needs to support push notifications.¹ Because *Google’s Firebase Cloud Messaging (FCM)* are tied with an API key to a specific app your server can not initiate the push message directly. Instead your server will send the push notification to the [Conversations App server](https://github.com/iNPUTmice/p2) (operated by us) which then acts as a proxy and initiates the push message for you. The push message sent from our App server through FCM doesn’t contain any personal information. It is just an empty message which will wake up your device and tell Conversations to reconnect to your server. The information sent from your server to our App server depends on the configuration of your server but can be limited to your account name. (In any case the Conversations App server won't redirect any information through FCM even if your server sends this information.) - -In summary Google will never get hold of any personal information besides that *something* happened. (Which doesn’t even have to be a message but can be some automated event as well.) We - as the operator of the App server - will just get hold of your account name (without being able to tie this to your specific device). - -If you don’t want this simply pick a server which does not offer Push Notifications or build Conversations yourself without support for push notifications. (This is available via a gradle build flavor.) Non-play store source of Conversations like the Amazon App store will also offer a version without push notifications. Conversations will just work as before and maintain its own TCP connection in the background. - -You can find a detailed description of how your server, the app server and FCM are interacting with each other in the [README](https://github.com/iNPUTmice/p2/blob/master/README.md) of the Conversations App Server. - - ¹ If you use the Play Store version you do **not** need to run your own app server. Your server only needs to support the server side of [XEP-0357: Push Notifications](http://xmpp.org/extensions/xep-0357.html) and [XEP-0198: Stream Management](https://xmpp.org/extensions/xep-0198.html). The prosody server modules are called *mod_cloud_notify* and *mod_smacks*. The ejabberd server modules are called *mod_push* and *mod_stream_mgmt*. - - -#### But why do I need a permanent notification if I use Google Push? -FCM (Google Push) allows an app to wake up from *Doze* which is (as the name suggests) a hibernation feature of the Android operating system that cuts the network connection and also reduces the number of times the app is allowed to wake up (to ping the server for example). The app can ask to be excluded from doze. Non push variants of the app (from F-Droid or if the server doesn’t support it) will do this on first start up. So if you get exemption from *Doze*, or if you get regular push events sent to you, Doze should not pose a threat to Conversatons working properly. But even with *Doze* the app is still open in the background (kept in memory); it is just limited in the actions it can do. Conversations needs to stay in memory to hold certain session state (online status of contacts, join status of group chats, …). However with Android 8 Google changed all of this again and now an App that wants to stay in memory needs to have a foreground service which is visible to the user via the annoying notification. But why does Conversations need to hold that state? XMPP is a stateful protocol that has a lot of per-session information; packets need to be counted, presence information needs to be held, some features like Message Carbons get activated once per session, MAM catchup happens once, service discovery happens only once; the list goes on. When Conversations was created in early 2014 none of this was a problem because apps were just allowed to stay in memory. Basically every XMPP client out there holds that information in memory because it would be a lot more complicated trying to persist it to disk. An entire rewrite of Conversations in the year 2019 would attempt to do that and would probably succeed however it would require exactly that; a complete rewrite which is not feasible right now. That’s by the way also the reason why it is difficult to write an XMPP client on iOS. Or more broadly put this is also the reason why other protocols are designed as or migrated to stateless protocols (often based on HTTP); take for example the migration of IMAP to [JMAP](https://jmap.io/). - -#### Conversations doesn’t work for me. Where can I get help? - -You can join our conference room on [`conversations@conference.siacs.eu`](https://conversations.im/j/conversations@conference.siacs.eu). -A lot of people in there are able to answer basic questions about the usage of -Conversations or can provide you with tips on running your own XMPP server. If -you found a bug or your app crashes please read the Developer / Report Bugs -section of this document. - -#### I need professional support with Conversations or setting up my server - -I'm available for hire. Contact information can be found on [my website](https://gultsch.de). - -#### How does the address book integration work? - -The address book integration was designed to protect your privacy. Conversations -neither uploads contacts from your address book to your server nor fills your -address book with unnecessary contacts from your online roster. If you manually -add a Jabber ID to your phones address book Conversations will use the name and -the profile picture of this contact. To make the process of adding Jabber IDs to -your address book easier you can click on the profile picture in the contact -details within Conversations. This will start an "add to address book" intent -with the JID as the payload. This doesn't require Conversations to have write -permissions on your address book but also doesn't require you to copy/paste a -JID from one app to another. - -#### I get 'delivery failed' on my messages - -If you get delivery failed on images it's probably because the recipient lost -network connectivity during reception. In that case you can try it again at a -later time. - -For text messages the answer to your question is a little bit more complex. -When you see 'delivery failed' on text messages, it is always something that is -being reported by the server. The most common reason for this is that the -recipient failed to resume a connection. When a client loses connectivity for a -short time the client usually has a five minute window to pick up that -connection again. When the client fails to do so because the network -connectivity is out for longer than that all messages sent to that client will -be returned to the sender resulting in a delivery failed. - -Instead of returning a message to the sender both ejabberd and prosody have the -ability to store messages in offline storage when the disconnecting client is -the only client. In prosody this is available via an extra module called -```mod_smacks_offline```. In ejabberd this is available via some configuration -settings. - -Other less common reasons are that the message you sent didn't meet some -criteria enforced by the server (too large, too many). Another reason could be -that the recipient is offline and the server doesn't provide offline storage. - -Usually you are able to distinguish between these two groups in the fact that -the first one happens always after some time and the second one happens almost -instantly. - -#### Where can I see the status of my contacts? How can I set a status or priority? - -Statuses are a horrible metric. Setting them manually to a proper value rarely -works because users are either lazy or just forget about them. Setting them -automatically does not provide quality results either. Keyboard or mouse -activity as indicator for example fails when the user is just looking at -something (reading an article, watching a movie). Furthermore automatic setting -of status always implies an impact on your privacy (are you sure you want -everybody in your contact list to know that you have been using your computer at -4am‽). - -In the past status has been used to judge the likelihood of whether or not your -messages are being read. This is no longer necessary. With Chat Markers -(XEP-0333, supported by Conversations since 0.4) we have the ability to **know** -whether or not your messages are being read. Similar things can be said for -priorities. In the past priorities have been used (by servers, not by clients!) -to route your messages to one specific client. With carbon messages (XEP-0280, -supported by Conversations since 0.1) this is no longer necessary. Using -priorities to route OTR messages isn't practical either because they are not -changeable on the fly. Metrics like last active client (the client which sent -the last message) are much better. - -Unfortunately these modern replacements for legacy XMPP features are not widely -adopted. However Conversations should be an instant messenger for the future and -instead of making Conversations compatible with the past we should work on -implementing new, improved technologies and getting them into other XMPP clients -as well. - -Making these status and priority optional isn't a solution either because -Conversations is trying to get rid of old behaviours and set an example for -other clients. - -#### Translations -Translations are managed on [Transifex](https://www.transifex.com/projects/p/conversations/). -If you want to become a translator Please register on transifex, apply to join -the translation team and then step by our group chat on -[conversations@conference.siacs.eu](https://conversations.im/j/conversations@conference.siacs.eu) -and introduce yourself to `iNPUTmice` so he can approve your join request. - -#### How do I backup / move Conversations to a new device? -On the one hand Conversations supports Message Archive Management to keep a server side history of your messages so when migrating to a new device that device can display your entire history. However that does not work if you enable OMEMO due to its forward secrecy. (Read [The State of Mobile XMPP in 2016](https://gultsch.de/xmpp_2016.html) especially the section on encryption.) - -As of version 2.4.0 an integrated Backup & Restore function will help with this, go to Settings and you’ll find a setting called Create backup. A notification will pop-up during the creation process that will announce you when it's ready. After the files, one for each account, are created, you can move the **Conversations** folder *(if you want your old media files too)* or only the **Conversations/Backup** folder *(for OMEMO keys and history only)* to your new device (or to a storage place) where a freshly installed Conversations can restore each account. Don't forget to enable the accounts after a succesful restore. - -This backup method will include your OMEMO keys. Due to forward secrecy you will not be able to recover messages sent and received between creating the backup and restoring it. If you have a server side archive (MAM) those messages will be retrieved but displayed as *unable to decrypt*. For technical reasons you might also lose the first message you either sent or receive after the restore; for each conversation you have. This message will then also show up as *unable to decrypt*, but this will automatically recover itself as long as both participants are on Conversations 2.3.11+. Note that this doesn’t happen if you just transfer to a new phone and no messages have been exchanged between backup and restore. - -In the vast, vast majority of cases you won’t have to manually delete OMEMO keys or do anything like that. Conversations only introduced the offical backup feature in 2.4.0 after making sure the *OMEMO self healing* mechanism introduced in 2.3.11 works fine. - -**WARNING**: Be sure to know your accounts passwords or find ways to reset them **before** doing the backup as the files are encrypted using those passwords and the Restore process will ask for them. -**WARNING**: Do not use the restore backup feature in an attempt to clone (run simultaneously) an installation. Restoring a backup is only meant for migrations or in case you’ve lost the original device. - -#### Conversations is missing a certain feature - -I'm open for new feature suggestions. You can use the [issue tracker][issues] on -GitHub. Please take some time to browse through the issues to see if someone -else already suggested it. Be assured that I read each and every ticket. If I -like it I will leave it open until it's implemented. If I don't like it I will -close it (usually with a short comment). If I don't comment on an feature -request that's probably a good sign because this means I agree with you. -Commenting with +1 on either open or closed issues won't change my mind, nor -will it accelerate the development. - -#### You closed my feature request but I want it really really badly - -Just write it yourself and send me a pull request. If I like it I will happily -merge it if I don't at least you and like minded people get to enjoy it. - -#### I need a feature and I need it now! - -I am available for hire. Find contact information on [my website](https://gultsch.de). - -### Security - -#### Why are there two end-to-end encryption methods and which one should I choose? - -* OMEMO works even when a contact is offline, and works with multiple devices. It also allows asynchronous file-transfer when the server has [HTTP File Upload](http://xmpp.org/extensions/xep-0363.html). However, OMEMO not widely support and is currently implemented only [by a handful of clients](https://omemo.top). -* OpenPGP (XEP-0027) is a very old encryption method that has some advantages over OMEMO but should only be used by people who know what they are doing. - -#### How do I use OpenPGP - -Before you continue reading you should note that the OpenPGP support in -Conversations is experimental. This is not because it will make the app unstable -but because the fundamental concepts of PGP aren't ready for widespread use. -The way PGP works is that you trust Key IDs instead of JID's or email addresses. -So in theory your contact list should consist of Public-Key-IDs instead of -JID's. But of course no email or XMPP client out there implements these -concepts. Plus PGP in the context of instant messaging has a couple of -downsides: It is vulnerable to replay attacks and it is rather verbose. - -To use OpenPGP you have to install the open source app -[OpenKeychain](http://www.openkeychain.org) and then long press on the account in -manage accounts and choose renew PGP announcement from the contextual menu. - -#### OMEMO is grayed out. What do I do? -OMEMO is only available in 1:1 chats and private (members-only, non-anonymous) group chats. Encrypting public group chats makes little to no sense since anyone (including a hypothetical attacker) can join and a user couldn’t possibily verify all participants anyway. Furthermore for a lot of public group chat it is desirable to give new comers access to the full history. - -#### OMEMO doesn’t work. I get a 'Something went wrong' message in the 'Trust OMEMO Fingerprints' screen. -OMEMO has two requirements: Your server and the server of your contact need to support PEP. Both of you can verify that individually by opening your account details and selecting ```Server info``` from the menu. The appearing table should list PEP as available. The second requirement is that the initial sender needs to have access to the published key material. This can either be achieved by having mutual presence subscription (you can verify that by opening the contact details and see if both check boxes *Send presence updates* and *Receive presence updates* are checked) or by using a server that makes the public key material accessible to anyone. In the [Compliance Tester](https://compliance.conversations.im) this is indicated by the 'OMEMO' feature. Since it is very common that the first messages are exchanged *before* adding each other to the contact list it is desirable to use servers that have 'OMEMO support'. - -#### How does the encryption for group chats work? - -##### OMEMO - -OMEMO encryption works only in private (members only) conferences that are non-anonymous. Non-anonymous (being able to discover the real JID of other participants) is a technical requirement to discover the key material. Members only is a sort of arbitrary requirement imposed by Conversations. (see 'OMEMO is grayed out') - -The server of all participants need to pass the OMEMO [Compliance Test](https://conversations.im/compliance/). -In other words they either need to run Ejabberd 18.01+ or Prosody 0.11+. - -(Alternatively it would also work if all participants had each other in their contact list; But that rarely is the case in larger group chats.) - -The owner of a conference can make a public conference private by going into the conference -details and hit the settings button (the one with the gears) and select both *private* and -*members only*. - -##### OpenPGP - -Every participant has to announce their OpenPGP key (see answer above). -If you would like to send encrypted messages to a conference you have to make -sure that you have every participant's public key in your OpenKeychain. -Right now there is no check in Conversations to ensure that. -You have to take care of that yourself. Go to the conference details and -touch every key id (The hexadecimal number below a contact). This will send you -to OpenKeychain which will assist you on adding the key. This works best in -very small conferences with contacts you are already using OpenPGP with. This -feature is regarded experimental. Conversations is the only client that uses -XEP-0027 with conferences. (The XEP neither specifically allows nor disallows -this.) - -#### What is Blind Trust Before Verification / why are messages marked with a red lock? - -Read more about the concept on https://gultsch.de/trust.html - -#### What happened to OTR support? -OTR was removed because it was highly unreliable. It didn’t work with multiple devices and was never really specified to work with XMPP. The codebase was a mess (There was an HTML parser in there for crying out loud to deal with the garbage some OTR clients would send.) Verification was implemented in a non-blocking way. It would tell you if the current session was using an unknown fingerprint but it didn’t actively stopped you from sending messages until you have confirmed the new fingerprint. (Like Conversations would do now with BTBV after verification or when BTBV is turned off.) Considering the previous points there was little to no desire from my point to fix this potential security issue or clean up the code base. Another reason for the removal was that people would use it *accidentally* even to communicate between two Conversations clients because they read somewhere that OTR is good. - -### What clients do I use on other platforms -There are XMPP Clients available for all major platforms. -#### Windows / Linux -For your desktop computer we recommend that you use [Gajim](https://gajim.org). You need to install the plugins `OMEMO`, `HTTP Upload` and `URL image preview` to get the best compatibility with Conversations. Plugins can be installed from within the app. -#### iOS -Unfortunately we don‘t have a recommendation for iPhones right now. There are two clients available [ChatSecure](https://chatsecure.org/) and [Monal](https://monal.im/). Both with their own pros and cons. - - -### Development - - -#### Beta testing -If you bought the App on [Google Play](https://play.google.com/store/apps/details?id=eu.siacs.conversations) -you can get access to the the latest beta version by signing up using [this link](https://play.google.com/apps/testing/eu.siacs.conversations). - -#### How do I build Conversations - -**Note:** Starting with version 2.8.0 you will need to compile libwebrtc. -[Instructions](https://webrtc.github.io/webrtc-org/native-code/android/) can be found on the WebRTC -website. Place the resulting libwebrtc.aar in the `libs/` directory. The PlayStore release currently -uses the stable M81 release and renamed the file name to `libwebrtc-m81.aar` put potentially you can -reference any file name by modifying `build.gradle`. - -Make sure to have ANDROID_HOME point to your Android SDK. Use the Android SDK Manager to install missing dependencies. - - git clone https://github.com/inputmice/Conversations.git - cd Conversations - ./gradlew assembleConversationsFreeSystemDebug - -There are two build flavors available. *free* and *playstore*. Unless you know what you are doing you only need *free*. - - -[![Build Status](https://travis-ci.org/inputmice/Conversations.svg?branch=development)](https://travis-ci.org/inputmice/Conversations) - -#### How do I update/add external libraries? - -If the library you want to update is in Maven Central or JCenter (or has its own -Maven repo), add it or update its version in `build.gradle`. If the library is -in the `libs/` directory, you can update it using a subtree merge by doing the -following (using `minidns` as an example): - - git remote add minidns https://github.com/rtreffer/minidns.git - git fetch minidns - git merge -s subtree minidns master - -To add a new dependency to the `libs/` directory (replacing "name", "branch" and -"url" as necessary): - - git remote add name url - git merge -s ours --no-commit name/branch - git read-tree --prefix=libs/name -u name/branch - git commit -m "Subtree merged in name" - -#### How do I debug Conversations - -If something goes wrong Conversations usually exposes very little information in -the UI (other than the fact that something didn't work). However with adb -(android debug bridge) you can squeeze some more information out of Conversations. -These information are especially useful if you are experiencing trouble with -your connection or with file transfer. - -To use adb you have to connect your mobile phone to your computer with an USB cable -and install `adb`. Most Linux systems have prebuilt packages for that tool. On -Debian/Ubuntu for example it is called `android-tools-adb`. - -Furthermore you might have to enable 'USB debugging' in the Developer options of your -phone. After that you can just execute the following on your computer: - - adb -d logcat -v time -s conversations - -If need be there are also some Apps on the PlayStore that can be used to show the logcat -directly on your rooted phone. (Search for logcat). However in regards to further processing -(for example to create an issue here on Github) it is more convenient to just use your PC. - -#### I found a bug - -Please report it to our [issue tracker][issues]. If your app crashes please -provide a stack trace. If you are experiencing misbehavior please provide -detailed steps to reproduce. Always mention whether you are running the latest -Play Store version or the current HEAD. If you are having problems connecting to -your XMPP server your file transfer doesn’t work as expected please always -include a logcat debug output with your issue (see above). - -[issues]: https://github.com/inputmice/Conversations/issues +1. Lade dir die SDK-Plattform-Tools für dein Betriebssystem von Google herunter: + + https://developer.android.com/studio/releases/platform-tools.html +2. Falls noch nicht getan, lade dir die ADB Treiber für dein Betriebssystem von Google herunter, für Windows hier: + + https://developer.android.com/studio/run/win-usb.html +3. Entpacke die zip (z.B. nach C:\ADB\) +4. Öffne die Kommandozeile (CMD) mit Start > Ausführen: cmd +5. Wechsele in der Kommandozeile in das Verzeichnis C:\ADB wie folgt + ``` + c: + cd ADB + ``` +6. Auf deinem Telefon gehst du in die Einstellungen und suchst nach dem Punkt `Entwickleroptionen`. Sollte dieser bei dir nicht vorhanden sein, musst du diese Optionen erst noch freischalten. Dazu wechselst du in den Einstellungen in den Punkt `über das Telefon` und suchst dort nach `Buildnummer` oder Ähnlichem. Diese Zeile musst Du mindestens 7 mal hintereinander antippen, es sollte dann ein Hinweis eingeblendet werden, der dir bestätigt, dass du nun Entwickler bist. +7. In den `Entwickleroptionen` suchst du nach dem Eintrag `USB-Debugging` und aktivierst ihn. +8. Schließe dein Handy mit dem USB-Kabel an deinen PC an. Die erforderlichen Treiber sollten zumindest in Windows automatisch installiert werden. +9. Wenn alles ohne Fehler geklappt hat, kannst du wieder in die Kommandozeile gehen und testen, ob alles funktioniert. Gib dazu in CMD `adb devices -l` ein, es sollte in etwa sowas bei dir stehen: + ``` + > adb devices -l + List of devices attached + * daemon not running. starting it now on port 5037 * + * daemon started successfully * + 042111560169500303f4 unauthorized + ``` +10. Falls dein Handy als `unauthorized` markiert wird, sollte am Handy eine Meldung `USB-Debugging zulassen?` kommen, diese mit `OK` bestätigen, sodass bei `adb devices` folgendes dort stehen sollte: + ``` + > adb devices + List of devices attached + 042111560169500303f4 device + ``` +11. Nun kannst du mit der Ausgabe der Debug-Logs beginnen. Dazu gibst du im CMD folgendes ein und die Ausgabe beginnt in die Datei `logcat.txt` im Verzeichnis `C:\ADB`: + ``` + > adb -d logcat -v time | FINDSTR Pix-Art > logcat.txt + ``` +12. Führe nun die Schritte aus, die zum Fehler führen. + +13. Zum Schluss schaue dir die `logcat.txt` an, lösche ggf. persönliche Angaben und sende diese Datei zur Problemlösung mit einer Beschreibung des Fehlers und was man tun muss, um diesen Fehler zu erhalten, an mich. Nutz dafür den Menüpunkt [Issues](https://github.com/kriztan/Pix-Art-Messenger/issues) diff --git a/art/Feature_OMEMO.png b/art/Feature_OMEMO.png new file mode 100644 index 0000000000000000000000000000000000000000..1afdb8d6e225c224e56621845480731501152705 GIT binary patch literal 51865 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 z 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/art/conversations_mono.svg b/art/conversations_mono.svg index 8bd294736..c1428ea29 100644 --- a/art/conversations_mono.svg +++ b/art/conversations_mono.svg @@ -1,337 +1,129 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/conversations_mono_dashed.png b/art/conversations_mono_dashed.png new file mode 100644 index 0000000000000000000000000000000000000000..7e36cde09ef2b7c3b24a60790da2777d2fa1d3b2 GIT binary patch literal 20417 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 literal 0 HcmV?d00001 diff --git a/art/conversations_mono_dashed.svg b/art/conversations_mono_dashed.svg index a8bba9414..985964a3f 100644 --- a/art/conversations_mono_dashed.svg +++ b/art/conversations_mono_dashed.svg @@ -1,400 +1,176 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/art/date_bubble_grey.svg b/art/date_bubble_grey.svg deleted file mode 100644 index 38db49f9b..000000000 --- a/art/date_bubble_grey.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/art/date_bubble_white.svg b/art/date_bubble_white.svg deleted file mode 100644 index 452ae9272..000000000 --- a/art/date_bubble_white.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/art/ic_launcher.svg b/art/ic_launcher.svg deleted file mode 100644 index 96b17d2b4..000000000 --- a/art/ic_launcher.svg +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/art/ic_no_results_black.svg b/art/ic_no_results_black.svg deleted file mode 100644 index fb0f78117..000000000 --- a/art/ic_no_results_black.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_no_results_white.svg b/art/ic_no_results_white.svg deleted file mode 100644 index 744616a48..000000000 --- a/art/ic_no_results_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_notifications_none_white80.svg b/art/ic_notifications_none_white80.svg deleted file mode 100644 index d333130ff..000000000 --- a/art/ic_notifications_none_white80.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_notifications_off_white80.svg b/art/ic_notifications_off_white80.svg deleted file mode 100644 index f0af47b61..000000000 --- a/art/ic_notifications_off_white80.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_notifications_paused_white80.svg b/art/ic_notifications_paused_white80.svg deleted file mode 100644 index 4f92e8475..000000000 --- a/art/ic_notifications_paused_white80.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_notifications_white80.svg b/art/ic_notifications_white80.svg deleted file mode 100644 index 398e51385..000000000 --- a/art/ic_notifications_white80.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_read_indicator.svg b/art/ic_read_indicator.svg new file mode 100644 index 000000000..7580e2ae6 --- /dev/null +++ b/art/ic_read_indicator.svg @@ -0,0 +1,30 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_received_indicator.svg b/art/ic_received_indicator.svg new file mode 100644 index 000000000..c7833a741 --- /dev/null +++ b/art/ic_received_indicator.svg @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/art/ic_search_black.svg b/art/ic_search_black.svg deleted file mode 100644 index e3d0e8096..000000000 --- a/art/ic_search_black.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_search_white.svg b/art/ic_search_white.svg deleted file mode 100644 index 7186d8e23..000000000 --- a/art/ic_search_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_cancel_away.svg b/art/ic_send_cancel_away.svg index 1ee9c40f6..fa803779c 100644 --- a/art/ic_send_cancel_away.svg +++ b/art/ic_send_cancel_away.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_cancel_dnd.svg b/art/ic_send_cancel_dnd.svg index 67a562b2f..9501f7441 100644 --- a/art/ic_send_cancel_dnd.svg +++ b/art/ic_send_cancel_dnd.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_cancel_offline.svg b/art/ic_send_cancel_offline.svg index b88ade09d..9d37a350f 100644 --- a/art/ic_send_cancel_offline.svg +++ b/art/ic_send_cancel_offline.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_cancel_offline_white.svg b/art/ic_send_cancel_offline_white.svg deleted file mode 100644 index f84f62f57..000000000 --- a/art/ic_send_cancel_offline_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_cancel_online.svg b/art/ic_send_cancel_online.svg index 133e69f11..53ac9c8b1 100644 --- a/art/ic_send_cancel_online.svg +++ b/art/ic_send_cancel_online.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_location_away.svg b/art/ic_send_location_away.svg index fcd50b521..8a171774e 100644 --- a/art/ic_send_location_away.svg +++ b/art/ic_send_location_away.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_location_dnd.svg b/art/ic_send_location_dnd.svg index 705cdb6f4..6fc835bc7 100644 --- a/art/ic_send_location_dnd.svg +++ b/art/ic_send_location_dnd.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_location_offline.svg b/art/ic_send_location_offline.svg index 56529b723..e957a15b2 100644 --- a/art/ic_send_location_offline.svg +++ b/art/ic_send_location_offline.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_location_offline_white.svg b/art/ic_send_location_offline_white.svg deleted file mode 100644 index f7f60a8f4..000000000 --- a/art/ic_send_location_offline_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_location_online.svg b/art/ic_send_location_online.svg index 76d146ccf..d82369d69 100644 --- a/art/ic_send_location_online.svg +++ b/art/ic_send_location_online.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_photo_away.svg b/art/ic_send_photo_away.svg index 31a20e09f..9c605e7cf 100644 --- a/art/ic_send_photo_away.svg +++ b/art/ic_send_photo_away.svg @@ -1,60 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_photo_dnd.svg b/art/ic_send_photo_dnd.svg index 9ef8b7821..6e5562cd9 100644 --- a/art/ic_send_photo_dnd.svg +++ b/art/ic_send_photo_dnd.svg @@ -1,60 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_photo_offline.svg b/art/ic_send_photo_offline.svg index b2ca20a6f..fcbab71e4 100644 --- a/art/ic_send_photo_offline.svg +++ b/art/ic_send_photo_offline.svg @@ -1,60 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_photo_offline_white.svg b/art/ic_send_photo_offline_white.svg deleted file mode 100644 index 45875731c..000000000 --- a/art/ic_send_photo_offline_white.svg +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/art/ic_send_photo_online.svg b/art/ic_send_photo_online.svg index f29c3c7c7..3c4ccceae 100644 --- a/art/ic_send_photo_online.svg +++ b/art/ic_send_photo_online.svg @@ -1,60 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_picture_away.svg b/art/ic_send_picture_away.svg index a85a1eecb..5a2bfaf28 100644 --- a/art/ic_send_picture_away.svg +++ b/art/ic_send_picture_away.svg @@ -1,55 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_picture_dnd.svg b/art/ic_send_picture_dnd.svg index 0c7d06356..2666b76ee 100644 --- a/art/ic_send_picture_dnd.svg +++ b/art/ic_send_picture_dnd.svg @@ -1,55 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_picture_offline.svg b/art/ic_send_picture_offline.svg index 048508a35..cb77ee998 100644 --- a/art/ic_send_picture_offline.svg +++ b/art/ic_send_picture_offline.svg @@ -1,55 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_picture_offline_white.svg b/art/ic_send_picture_offline_white.svg deleted file mode 100644 index 16131740f..000000000 --- a/art/ic_send_picture_offline_white.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/art/ic_send_picture_online.svg b/art/ic_send_picture_online.svg index ff388a4d4..ab8109c7f 100644 --- a/art/ic_send_picture_online.svg +++ b/art/ic_send_picture_online.svg @@ -1,55 +1,27 @@ - - - - - image/svg+xml - - - - - - - - + + + + + image/svg+xml + + + + + + + + diff --git a/art/ic_send_text_away.svg b/art/ic_send_text_away.svg index ea83086ae..f6b02b4f9 100644 --- a/art/ic_send_text_away.svg +++ b/art/ic_send_text_away.svg @@ -1,69 +1,33 @@ - - + - - - - - image/svg+xml - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_text_dnd.svg b/art/ic_send_text_dnd.svg index 1b7ad51f4..0ebb40f41 100644 --- a/art/ic_send_text_dnd.svg +++ b/art/ic_send_text_dnd.svg @@ -1,69 +1,33 @@ - - + - - - - - image/svg+xml - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_text_offline.svg b/art/ic_send_text_offline.svg index c87bfaac6..25ffc5f61 100644 --- a/art/ic_send_text_offline.svg +++ b/art/ic_send_text_offline.svg @@ -1,69 +1,34 @@ - - + - - - - - image/svg+xml - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_text_offline_white.svg b/art/ic_send_text_offline_white.svg deleted file mode 100644 index 4434d33db..000000000 --- a/art/ic_send_text_offline_white.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/art/ic_send_text_online.svg b/art/ic_send_text_online.svg index ff01bd6ef..aec29e306 100644 --- a/art/ic_send_text_online.svg +++ b/art/ic_send_text_online.svg @@ -1,69 +1,33 @@ - - + - - - - - image/svg+xml - - - - - - - - - - + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_video_away.svg b/art/ic_send_video_away.svg new file mode 100644 index 000000000..c98417a27 --- /dev/null +++ b/art/ic_send_video_away.svg @@ -0,0 +1,28 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_video_dnd.svg b/art/ic_send_video_dnd.svg new file mode 100644 index 000000000..cbf7d5775 --- /dev/null +++ b/art/ic_send_video_dnd.svg @@ -0,0 +1,28 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_video_offline.svg b/art/ic_send_video_offline.svg new file mode 100644 index 000000000..0426a7233 --- /dev/null +++ b/art/ic_send_video_offline.svg @@ -0,0 +1,28 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_video_online.svg b/art/ic_send_video_online.svg new file mode 100644 index 000000000..021da4eb5 --- /dev/null +++ b/art/ic_send_video_online.svg @@ -0,0 +1,28 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/art/ic_send_videocam_away.svg b/art/ic_send_videocam_away.svg deleted file mode 100644 index 52b8478cf..000000000 --- a/art/ic_send_videocam_away.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_videocam_dnd.svg b/art/ic_send_videocam_dnd.svg deleted file mode 100644 index 254e3859a..000000000 --- a/art/ic_send_videocam_dnd.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_videocam_offline.svg b/art/ic_send_videocam_offline.svg deleted file mode 100644 index 91a7778d6..000000000 --- a/art/ic_send_videocam_offline.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_videocam_offline_white.svg b/art/ic_send_videocam_offline_white.svg deleted file mode 100644 index 67f5563a6..000000000 --- a/art/ic_send_videocam_offline_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_videocam_online.svg b/art/ic_send_videocam_online.svg deleted file mode 100644 index 7ee2fff97..000000000 --- a/art/ic_send_videocam_online.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - diff --git a/art/ic_send_voice_away.svg b/art/ic_send_voice_away.svg index 379f55b7d..f1c303984 100644 --- a/art/ic_send_voice_away.svg +++ b/art/ic_send_voice_away.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_voice_dnd.svg b/art/ic_send_voice_dnd.svg index b1b7a7a97..fdd21b126 100644 --- a/art/ic_send_voice_dnd.svg +++ b/art/ic_send_voice_dnd.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_voice_offline.svg b/art/ic_send_voice_offline.svg index 64ea44731..41edd5b65 100644 --- a/art/ic_send_voice_offline.svg +++ b/art/ic_send_voice_offline.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_send_voice_offline_white.svg b/art/ic_send_voice_offline_white.svg deleted file mode 100644 index 25ffe3223..000000000 --- a/art/ic_send_voice_offline_white.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/art/ic_send_voice_online.svg b/art/ic_send_voice_online.svg index 2c5405236..e73c6697b 100644 --- a/art/ic_send_voice_online.svg +++ b/art/ic_send_voice_online.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/ic_verified_fingerprint.svg b/art/ic_verified_fingerprint.svg index 689c42ebd..625b29759 100644 --- a/art/ic_verified_fingerprint.svg +++ b/art/ic_verified_fingerprint.svg @@ -1,54 +1,26 @@ - - - - - image/svg+xml - - - - - - - + + + + + image/svg+xml + + + + + + + diff --git a/art/icon.png b/art/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbce8a00c5b225939f874702e6789a598223ad6 GIT binary patch literal 2703 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