aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--art/conversations_plus_beta_baloons.svg476
-rw-r--r--art/conversations_plus_beta_baloons_notification.svg259
-rwxr-xr-xart/render.rb6
-rw-r--r--build.gradle6
-rw-r--r--src/free/java/eu/siacs/conversations/services/PushManagementService.java (renamed from src/free/java/de/thedevstack/conversationsplus/services/PushManagementService.java)4
-rw-r--r--src/main/AndroidManifest.xml4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java12
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ConversationsPlusColors.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/entities/FileParams.java47
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/http/HttpClient.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/persistance/db/access/MessageDatabaseAccess.java39
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/persistance/observers/FileDeletionObserver.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/FileTransferService.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferEntity.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferManager.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferStatusListener.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java12
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java8
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileTransferEntity.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileUploader.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadFileTransferService.java14
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadSlotRequestReceived.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadedFileEncryptionUiCallback.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/jingle/JingleFileTransferService.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/LogCatOutputActivity.java3
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/adapter/PresencesArrayAdapter.java10
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/dialogs/AbstractAlertDialog.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/dialogs/MessageDetailsDialog.java12
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/dialogs/SimpleConfirmDialog.java3
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/dialogs/UserDecisionDialog.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java22
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShareWithResizePictureUserDecisionListener.java6
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/AvatarUtil.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/ClipboardUtil.java3
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java12
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/ImageUtil.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/MessageUtil.java80
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/UiUpdateHelper.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/UrlUtil.java25
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/XmppConnectionServiceAccessor.java3
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/utils/XmppSendUtil.java12
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/IqPacketParser.java3
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnBindListener.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnIqPacketReceived.java8
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnKeyStatusUpdated.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessagePacketReceived.java8
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnPresencePacketReceived.java8
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/OnStatusChanged.java7
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketGenerator.java8
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketParser.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/BadRequestIqErrorException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/InternalServerErrorException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/IqPacketErrorException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredContentException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredElementException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/ServiceUnavailableException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UndefinedConditionException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UnexpectedIqPacketTypeException.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/XmppException.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotPacketParser.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotRequestPacket.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/FileTransferHttpDeleteSlotRequestPacketGenerator.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/HttpUploadRequestSlotPacketGenerator.java6
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotPacketParser.java5
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotRequestPacket.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/httpuploadim/HttpUploadHint.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnJinglePacketReceived.java9
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacket.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketGenerator.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketParser.java4
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacketGenerator.java2
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/xmpp/utils/ErrorIqPacketExceptionHelper.java3
-rw-r--r--src/main/java/eu/siacs/conversations/Config.java (renamed from src/main/java/de/thedevstack/conversationsplus/Config.java)5
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/OtrService.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/OtrService.java)20
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/PgpDecryptionService.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/PgpDecryptionService.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/PgpEngine.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/PgpEngine.java)22
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/XmppDomainVerifier.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/XmppDomainVerifier.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlService.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceImpl.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceImpl.java)33
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceStub.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceStub.java)12
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/CryptoFailedException.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/CryptoFailedException.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/NoSessionsCreatedException.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/NoSessionsCreatedException.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/OnMessageCreatedCallback.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/OnMessageCreatedCallback.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/SQLiteAxolotlStore.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/SQLiteAxolotlStore.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlMessage.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlMessage.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlSession.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlSession.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/DigestMd5.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/DigestMd5.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/External.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/External.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/Plain.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Plain.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/SaslMechanism.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/SaslMechanism.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/ScramSha1.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/ScramSha1.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/crypto/sasl/Tokenizer.java (renamed from src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Tokenizer.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/entities/AbstractEntity.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/AbstractEntity.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Account.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Account.java)25
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Blockable.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Blockable.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Bookmark.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Bookmark.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Contact.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Contact.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Conversation.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java)13
-rw-r--r--src/main/java/eu/siacs/conversations/entities/DownloadableFile.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/DownloadableFile.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/entities/ListItem.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/ListItem.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Message.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Message.java)78
-rw-r--r--src/main/java/eu/siacs/conversations/entities/MucOptions.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/MucOptions.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Presence.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Presence.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Presences.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Presences.java)5
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Roster.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Roster.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/entities/ServiceDiscoveryResult.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/ServiceDiscoveryResult.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Transferable.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/Transferable.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/entities/TransferablePlaceholder.java (renamed from src/main/java/de/thedevstack/conversationsplus/entities/TransferablePlaceholder.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/generator/AbstractGenerator.java (renamed from src/main/java/de/thedevstack/conversationsplus/generator/AbstractGenerator.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/generator/IqGenerator.java (renamed from src/main/java/de/thedevstack/conversationsplus/generator/IqGenerator.java)25
-rw-r--r--src/main/java/eu/siacs/conversations/generator/MessageGenerator.java (renamed from src/main/java/de/thedevstack/conversationsplus/generator/MessageGenerator.java)19
-rw-r--r--src/main/java/eu/siacs/conversations/generator/PresenceGenerator.java (renamed from src/main/java/de/thedevstack/conversationsplus/generator/PresenceGenerator.java)12
-rw-r--r--src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java (renamed from src/main/java/de/thedevstack/conversationsplus/http/HttpConnectionManager.java)17
-rw-r--r--src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java (renamed from src/main/java/de/thedevstack/conversationsplus/http/HttpDownloadConnection.java)57
-rw-r--r--src/main/java/eu/siacs/conversations/parser/AbstractParser.java (renamed from src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/parser/IqParser.java (renamed from src/main/java/de/thedevstack/conversationsplus/parser/IqParser.java)26
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java (renamed from src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java)57
-rw-r--r--src/main/java/eu/siacs/conversations/parser/PresenceParser.java (renamed from src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java)36
-rw-r--r--src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java (renamed from src/main/java/de/thedevstack/conversationsplus/persistance/DatabaseBackend.java)28
-rw-r--r--src/main/java/eu/siacs/conversations/persistance/FileBackend.java (renamed from src/main/java/de/thedevstack/conversationsplus/persistance/FileBackend.java)26
-rw-r--r--src/main/java/eu/siacs/conversations/persistance/OnPhoneContactsMerged.java (renamed from src/main/java/de/thedevstack/conversationsplus/persistance/OnPhoneContactsMerged.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/providers/ConversationsPlusFileProvider.java (renamed from src/main/java/de/thedevstack/conversationsplus/providers/ConversationsPlusFileProvider.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/services/AbstractConnectionManager.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/AbstractConnectionManager.java)7
-rw-r--r--src/main/java/eu/siacs/conversations/services/AvatarService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/AvatarService.java)42
-rw-r--r--src/main/java/eu/siacs/conversations/services/ContactChooserTargetService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/ContactChooserTargetService.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/services/EventReceiver.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/EventReceiver.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/services/ExportLogsService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/ExportLogsService.java)16
-rw-r--r--src/main/java/eu/siacs/conversations/services/MessageArchiveService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/MessageArchiveService.java)23
-rw-r--r--src/main/java/eu/siacs/conversations/services/NotificationService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java)20
-rw-r--r--src/main/java/eu/siacs/conversations/services/XmppConnectionService.java (renamed from src/main/java/de/thedevstack/conversationsplus/services/XmppConnectionService.java)115
-rw-r--r--src/main/java/eu/siacs/conversations/ui/AboutActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/AboutActivity.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/AboutPreference.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/AboutPreference.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/AbstractSearchableListItemActivity.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/ui/BlockContactDialog.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/BlockContactDialog.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/ui/BlocklistActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/BlocklistActivity.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ChangePasswordActivity.java)9
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ChooseContactActivity.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ConferenceDetailsActivity.java)31
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ContactDetailsActivity.java)38
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java)55
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationFragment.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java)64
-rw-r--r--src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/EditAccountActivity.java)41
-rw-r--r--src/main/java/eu/siacs/conversations/ui/EditMessage.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/EditMessage.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/EnterJidDialog.java)12
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ExportLogsPreference.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ExportLogsPreference.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ManageAccountActivity.java)18
-rw-r--r--src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/PublishProfilePictureActivity.java)19
-rw-r--r--src/main/java/eu/siacs/conversations/ui/SettingsActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/SettingsActivity.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/ui/SettingsFragment.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/SettingsFragment.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/ShareWithActivity.java)25
-rw-r--r--src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/StartConversationActivity.java)36
-rw-r--r--src/main/java/eu/siacs/conversations/ui/TimePreference.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/TimePreference.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/TrustKeysActivity.java)19
-rw-r--r--src/main/java/eu/siacs/conversations/ui/UiCallback.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/UiCallback.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/VerifyOTRActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/VerifyOTRActivity.java)21
-rw-r--r--src/main/java/eu/siacs/conversations/ui/XmppActivity.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/XmppActivity.java)39
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/adapter/AccountAdapter.java)15
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/adapter/ConversationAdapter.java)21
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/KnownHostsAdapter.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/adapter/KnownHostsAdapter.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/adapter/ListItemAdapter.java)13
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java)411
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormBooleanFieldWrapper.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormBooleanFieldWrapper.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormFieldFactory.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldFactory.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormFieldWrapper.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java)7
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormJidSingleFieldWrapper.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormJidSingleFieldWrapper.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormTextFieldWrapper.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormTextFieldWrapper.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/ui/forms/FormWrapper.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/forms/FormWrapper.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/ui/listeners/ConversationMoreMessagesLoadedListener.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationMoreMessagesLoadedListener.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/ui/listeners/ConversationSwipeRefreshListener.java (renamed from src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationSwipeRefreshListener.java)20
-rw-r--r--src/main/java/eu/siacs/conversations/utils/CryptoHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/CryptoHelper.java)12
-rw-r--r--src/main/java/eu/siacs/conversations/utils/DNSHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/DNSHelper.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHandler.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHelper.java)20
-rw-r--r--src/main/java/eu/siacs/conversations/utils/ExifHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/ExifHelper.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/FileUtils.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/FileUtils.java)14
-rw-r--r--src/main/java/eu/siacs/conversations/utils/GeoHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/GeoHelper.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/utils/MimeUtils.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/MimeUtils.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/OnPhoneContactsLoadedListener.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/OnPhoneContactsLoadedListener.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/PRNGFixes.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/PRNGFixes.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/PhoneHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/PhoneHelper.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/SSLSocketHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/SSLSocketHelper.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/SerialSingleThreadExecutor.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/SerialSingleThreadExecutor.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/SocksSocketFactory.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/SocksSocketFactory.java)5
-rw-r--r--src/main/java/eu/siacs/conversations/utils/UIHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java)45
-rw-r--r--src/main/java/eu/siacs/conversations/utils/XmlHelper.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/XmlHelper.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/utils/Xmlns.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/utils/XmppUri.java (renamed from src/main/java/de/thedevstack/conversationsplus/utils/XmppUri.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/xml/Element.java (renamed from src/main/java/de/thedevstack/conversationsplus/xml/Element.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/xml/Tag.java (renamed from src/main/java/de/thedevstack/conversationsplus/xml/Tag.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xml/TagWriter.java (renamed from src/main/java/de/thedevstack/conversationsplus/xml/TagWriter.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xml/XmlReader.java (renamed from src/main/java/de/thedevstack/conversationsplus/xml/XmlReader.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnAdvancedStreamFeaturesLoaded.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/OnAdvancedStreamFeaturesLoaded.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnBindListener.java7
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnContactStatusChanged.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/OnContactStatusChanged.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnIqPacketReceived.java8
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnKeyStatusUpdated.java7
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnMessageAcknowledged.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessageAcknowledged.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnMessagePacketReceived.java8
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnPresencePacketReceived.java8
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnStatusChanged.java7
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/OnUpdateBlocklist.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/OnUpdateBlocklist.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/PacketReceived.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/PacketReceived.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/XmppConnection.java)76
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/chatstate/ChatState.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/chatstate/ChatState.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/forms/Data.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Data.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/forms/Field.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Field.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jid/InvalidJidException.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jid/InvalidJidException.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jid/Jid.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleCandidate.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnection.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnection.java)48
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnectionManager.java)28
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleInbandTransport.java)18
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleSocks5Transport.java)10
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/JingleTransport.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleTransport.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/OnFileTransmissionStatusChanged.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnFileTransmissionStatusChanged.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/OnJinglePacketReceived.java9
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/OnPrimaryCandidateFound.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnPrimaryCandidateFound.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/OnTransportConnected.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnTransportConnected.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Content.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/JinglePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/JinglePacket.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Reason.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Reason.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/pep/Avatar.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/pep/Avatar.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractAcknowledgeableStanza.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractAcknowledgeableStanza.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractStanza.java)8
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/IqPacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/MessagePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/MessagePacket.java)6
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/PresencePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/PresencePacket.java)2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/ActivePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/ActivePacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/InactivePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/InactivePacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/AckPacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/EnablePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/EnablePacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/RequestPacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/RequestPacket.java)4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java (renamed from src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/ResumePacket.java)4
-rw-r--r--src/main/res/drawable-hdpi/ic_launcher.pngbin4334 -> 5133 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_notification.pngbin1708 -> 2067 bytes
-rw-r--r--src/main/res/drawable-hdpi/message_bubble_received.9.pngbin765 -> 765 bytes
-rw-r--r--src/main/res/drawable-hdpi/message_bubble_received_warning.9.pngbin757 -> 757 bytes
-rw-r--r--src/main/res/drawable-hdpi/message_bubble_received_white.9.pngbin779 -> 779 bytes
-rw-r--r--src/main/res/drawable-hdpi/message_bubble_sent.9.pngbin687 -> 687 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_launcher.pngbin2656 -> 3096 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_notification.pngbin887 -> 960 bytes
-rw-r--r--src/main/res/drawable-mdpi/message_bubble_received.9.pngbin594 -> 594 bytes
-rw-r--r--src/main/res/drawable-mdpi/message_bubble_received_warning.9.pngbin598 -> 598 bytes
-rw-r--r--src/main/res/drawable-mdpi/message_bubble_received_white.9.pngbin610 -> 610 bytes
-rw-r--r--src/main/res/drawable-mdpi/message_bubble_sent.9.pngbin558 -> 558 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_launcher.pngbin6157 -> 7317 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_notification.pngbin2488 -> 2949 bytes
-rw-r--r--src/main/res/drawable-xhdpi/message_bubble_received.9.pngbin929 -> 929 bytes
-rw-r--r--src/main/res/drawable-xhdpi/message_bubble_received_warning.9.pngbin921 -> 921 bytes
-rw-r--r--src/main/res/drawable-xhdpi/message_bubble_received_white.9.pngbin935 -> 935 bytes
-rw-r--r--src/main/res/drawable-xhdpi/message_bubble_sent.9.pngbin857 -> 857 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_launcher.pngbin10033 -> 11957 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_notification.pngbin4234 -> 5182 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/message_bubble_received.9.pngbin1334 -> 1334 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.pngbin1308 -> 1308 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/message_bubble_received_white.9.pngbin1344 -> 1344 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/message_bubble_sent.9.pngbin1190 -> 1190 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_launcher.pngbin14018 -> 16932 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_notification.pngbin6209 -> 7562 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/message_bubble_received.9.pngbin1714 -> 1714 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.pngbin1674 -> 1674 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.pngbin1705 -> 1705 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/message_bubble_sent.9.pngbin1499 -> 1499 bytes
-rw-r--r--src/main/res/layout/activity_about.xml2
-rw-r--r--src/main/res/layout/contact_key.xml1
-rw-r--r--src/main/res/layout/dialog_message_details.xml22
-rw-r--r--src/main/res/layout/fragment_conversation.xml4
-rw-r--r--src/main/res/values-ar/strings.xml8
-rw-r--r--src/main/res/values-bg/strings.xml26
-rw-r--r--src/main/res/values-ca/strings.xml12
-rw-r--r--src/main/res/values-cs/strings.xml14
-rw-r--r--src/main/res/values-de/strings.xml60
-rw-r--r--src/main/res/values-el/strings.xml16
-rw-r--r--src/main/res/values-es/strings.xml26
-rw-r--r--src/main/res/values-eu/strings.xml12
-rw-r--r--src/main/res/values-fr/strings.xml28
-rw-r--r--src/main/res/values-gl/strings.xml10
-rw-r--r--src/main/res/values-id/strings.xml12
-rw-r--r--src/main/res/values-it/strings.xml26
-rw-r--r--src/main/res/values-iw/strings.xml22
-rw-r--r--src/main/res/values-ja/strings.xml29
-rw-r--r--src/main/res/values-ko/strings.xml26
-rw-r--r--src/main/res/values-nb-rNO/strings.xml26
-rw-r--r--src/main/res/values-nl/strings.xml29
-rw-r--r--src/main/res/values-pl/strings.xml26
-rw-r--r--src/main/res/values-pt-rBR/strings.xml26
-rw-r--r--src/main/res/values-pt/strings.xml27
-rw-r--r--src/main/res/values-ro-rRO/strings.xml31
-rw-r--r--src/main/res/values-ru/strings.xml20
-rw-r--r--src/main/res/values-sk/strings.xml16
-rw-r--r--src/main/res/values-sv/strings.xml29
-rw-r--r--src/main/res/values-tr-rTR/strings.xml28
-rw-r--r--src/main/res/values-vi/strings.xml26
-rw-r--r--src/main/res/values-zh-rCN/strings.xml30
-rw-r--r--src/main/res/values-zh-rTW/strings.xml12
-rw-r--r--src/main/res/values/dimens.xml1
-rw-r--r--src/main/res/values/strings.xml37
-rw-r--r--src/main/res/xml/preferences.xml8
302 files changed, 2803 insertions, 1742 deletions
diff --git a/art/conversations_plus_beta_baloons.svg b/art/conversations_plus_beta_baloons.svg
new file mode 100644
index 00000000..9383890a
--- /dev/null
+++ b/art/conversations_plus_beta_baloons.svg
@@ -0,0 +1,476 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="512"
+ height="512"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="conversations_plus_beta_baloons.svg"
+ inkscape:export-filename="/home/diesys/diesys/grafica/conversation/conversation_bubble.png"
+ inkscape:export-xdpi="100"
+ inkscape:export-ydpi="100">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3874">
+ <stop
+ style="stop-color:#00a000;stop-opacity:1;"
+ offset="0"
+ id="stop3876" />
+ <stop
+ style="stop-color:#00a000;stop-opacity:0;"
+ offset="1"
+ id="stop3878" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3913">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3915" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3917" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3818">
+ <stop
+ style="stop-color:#669900;stop-opacity:1"
+ offset="0"
+ id="stop3820" />
+ <stop
+ style="stop-color:#99cc00;stop-opacity:1"
+ offset="1"
+ id="stop3822" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3818"
+ id="radialGradient3824"
+ cx="212.07048"
+ cy="1045.9178"
+ fx="212.07048"
+ fy="1045.9178"
+ r="238.57143"
+ gradientTransform="matrix(1.9491621,-0.90817722,0.65829208,1.4128498,-879.63121,-248.98648)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3913"
+ id="radialGradient3919"
+ cx="362.98563"
+ cy="379.77524"
+ fx="362.98563"
+ fy="379.77524"
+ r="139.95312"
+ gradientTransform="matrix(1.3800477,1.0445431,-1.3325077,1.7605059,339.09383,-577.83938)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="-155.75885"
+ x2="114.59022"
+ y1="35.545681"
+ x1="114.55434"
+ id="linearGradient3794"
+ xlink:href="#linearGradient3788"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3788">
+ <stop
+ id="stop3790"
+ offset="0"
+ style="stop-color:#1eed00;stop-opacity:1;" />
+ <stop
+ id="stop3792"
+ offset="1"
+ style="stop-color:#abff28;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3821">
+ <stop
+ style="stop-color:#ff283d;stop-opacity:1;"
+ offset="0"
+ id="stop3823" />
+ <stop
+ style="stop-color:#ff28ae;stop-opacity:1;"
+ offset="1"
+ id="stop3825" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4543">
+ <stop
+ style="stop-color:#2e45bf;stop-opacity:1;"
+ offset="0"
+ id="stop4545" />
+ <stop
+ style="stop-color:#28a7ff;stop-opacity:1;"
+ offset="1"
+ id="stop4547" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4098">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4100" />
+ <stop
+ style="stop-color:#e6e6e6;stop-opacity:1"
+ offset="1"
+ id="stop4102" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4098"
+ id="linearGradient3833"
+ x1="273.81851"
+ y1="764.74677"
+ x2="304.14023"
+ y2="936.47272"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4098"
+ id="linearGradient3853"
+ gradientUnits="userSpaceOnUse"
+ x1="273.81851"
+ y1="764.74677"
+ x2="304.14023"
+ y2="936.47272" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3818"
+ id="radialGradient3863"
+ cx="262.33273"
+ cy="945.23846"
+ fx="262.33273"
+ fy="945.23846"
+ r="185.49754"
+ gradientTransform="matrix(1.2253203,-0.54206726,0.43090148,0.97403458,-466.4135,170.11831)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3818"
+ id="radialGradient3866"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2253203,-0.54206726,0.43090148,0.97403458,-466.4135,170.11831)"
+ cx="262.33273"
+ cy="945.23846"
+ fx="262.33273"
+ fy="945.23846"
+ r="185.49754" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3913"
+ id="radialGradient3873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3800477,1.0445431,-1.3325077,1.7605059,339.09383,-577.83938)"
+ cx="321.75275"
+ cy="386.38751"
+ fx="321.75275"
+ fy="386.38751"
+ r="139.95312" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3818"
+ id="radialGradient3880"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2253203,-0.54206726,0.43090148,0.97403458,-466.4135,-370.24387)"
+ cx="262.33273"
+ cy="945.23846"
+ fx="262.33273"
+ fy="945.23846"
+ r="185.49754" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3913"
+ id="radialGradient3883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1091694,-0.44385763,0.39005536,0.79756286,-331.32325,189.97334)"
+ cx="262.33273"
+ cy="945.23846"
+ fx="262.33273"
+ fy="945.23846"
+ r="185.49754" />
+ <filter
+ inkscape:collect="always"
+ id="filter3895">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.0013623"
+ id="feGaussianBlur3897" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3874"
+ id="radialGradient3881"
+ cx="150.35715"
+ cy="236.28571"
+ fx="150.35715"
+ fy="236.28571"
+ r="26.887305"
+ gradientTransform="matrix(1,0,0,0.98671703,0,3.1385771)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3913"
+ id="radialGradient3883-8"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.94668007,-0.41802431,-0.33291364,0.75114325,727.90951,-151.09719)"
+ cx="262.33273"
+ cy="945.23846"
+ fx="262.33273"
+ fy="945.23846"
+ r="185.49754" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.0000001"
+ inkscape:cx="238.14573"
+ inkscape:cy="130.29797"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer4"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="728"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-to-guides="true"
+ inkscape:snap-grids="false"
+ inkscape:object-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-nodes="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="0,534.28571"
+ id="guide3004" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="394.28571,511.42857"
+ id="guide3006" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="511.42857,320"
+ id="guide3008" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="401.42857,0"
+ id="guide3010" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="17.142857,258.57143"
+ id="guide3012" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="327.14286,494.28571"
+ id="guide3014" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="324.28571,17.142857"
+ id="guide3016" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="494.28571,237.14286"
+ id="guide3018" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="255.71429,302.85714"
+ id="guide3022" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="660,-315"
+ id="guide3904" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="554.28571,475.71429"
+ id="guide3931" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="581.42857,244.28571"
+ id="guide3933" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-540.36218)"
+ style="display:inline">
+ <path
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ id="path3885"
+ style="opacity:0.6;fill:#000000;fill-opacity:1;stroke:none;filter:url(#filter3895)"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ inkscape:radius="12.358562"
+ sodipodi:type="inkscape:offset"
+ transform="matrix(0.90520781,0,0,0.81882383,90.877888,53.951708)" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="12.358562"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ style="fill:#0066ff;fill-opacity:1;stroke:none"
+ id="path3868"
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ transform="matrix(0.90520781,0,0,0.81882383,90.877888,50.676388)" />
+ <path
+ style="opacity:0.19211821;fill:url(#radialGradient3883);fill-opacity:1;stroke:none"
+ d="m 465.37929,645.95092 c -99.66655,0 -180.44749,71.72047 -180.44749,160.18241 0,18.66021 3.60043,36.57544 10.21189,53.2232 8.1887,1.03054 16.56083,1.56103 25.06293,1.56103 30.37749,0 53.79867,-5.64549 80.53519,-14.43157 l 84.91981,30.96145 a 11.188184,10.120499 0 0 0 15.04907,-11.82159 l -22.99792,-84.08283 c 14.78214,-23.46997 19.8297,-50.19542 19.8297,-77.76269 0,-20.04753 -4.25121,-39.20586 -11.994,-56.83149 -6.62195,-0.65358 -13.3526,-0.99792 -20.16918,-0.99792 z"
+ id="path3878"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccsssscc"
+ inkscape:connector-curvature="0"
+ id="path3845"
+ d="m 493.47738,871.35334 -24.04389,-87.99322 c 15.28869,-22.23857 20.55595,-48.35175 20.55595,-76.28358 0,-81.18671 -74.40499,-146.97946 -166.16989,-146.97946 -91.76484,0 -166.16981,65.79275 -166.16981,146.97946 0,81.18672 74.40497,147.02794 166.16981,147.02794 30.46639,0 52.72061,-5.65874 80.85763,-15.12352 z"
+ style="opacity:0;fill:none;stroke:#000000;stroke-width:17.21866226;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:68.87464583, 68.87464583;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3855"
+ d="m 320.17833,548.76674 c -4.13827,-9.4e-4 -8.25632,0.0605 -9.81586,0.15351 -12.92075,0.76954 -22.81917,2.12193 -34.11502,4.70824 -4.34132,0.99402 -7.66199,1.87532 -11.68283,3.07059 -2.5677,0.76329 -6.47023,1.98325 -6.6759,2.09824 -0.0631,0.0352 2.55734,6.48362 6.13843,15.14825 0.0358,0.0868 0.13111,0.0961 0.2546,0.0511 0.85568,-0.31146 4.96317,-1.59671 6.87391,-2.14942 16.44697,-4.75734 33.78787,-7.08565 50.97451,-6.85765 2.42028,0.0321 5.48294,0.11062 6.78907,0.17914 1.30611,0.0686 2.39944,0.10688 2.43274,0.0767 0.0526,-0.0476 1.17785,-16.13384 1.13152,-16.1718 -0.01,-0.008 -1.08429,-0.0761 -2.40448,-0.15351 -1.60409,-0.0941 -5.76244,-0.15187 -9.90069,-0.15351 z m 85.17439,19.57499 c -0.0778,0.0759 -8.57119,14.09759 -8.57119,14.15032 0,0.0128 0.38971,0.21991 0.8769,0.46056 6.4421,3.18205 13.4978,7.39333 19.91497,11.84882 2.48679,1.7266 4.87769,3.48988 7.09982,5.24414 3.2378,2.55607 6.46633,5.33835 9.55245,8.21414 4.9072,4.57277 9.45432,9.38196 13.10605,13.89411 0.50173,0.62001 0.608,0.70303 0.79207,0.58852 0.87167,-0.54223 14.14115,-9.56974 14.14386,-9.62116 0.004,-0.0695 -2.56391,-3.14501 -3.64912,-4.37562 -4.33822,-4.91937 -8.14593,-8.7511 -13.26695,-13.38263 -6.3529,-5.74565 -12.40806,-10.50897 -19.23603,-15.09142 -1.9729,-1.32405 -4.01031,-2.63303 -6.13807,-3.94623 -5.07411,-3.13161 -14.3826,-8.21954 -14.62476,-7.98355 z m -211.19629,27.76323 -1.86699,1.79122 c -16.58679,15.77185 -29.26131,34.2146 -37.25495,54.24707 -0.39127,0.98058 -0.7358,1.85972 -0.76377,1.97029 -0.0367,0.14529 2.27287,0.91046 8.2883,2.73794 4.57858,1.39099 8.39743,2.52833 8.48633,2.53327 0.0889,0.005 0.70476,-1.35221 1.3861,-3.01945 6.99352,-17.11289 17.82285,-32.84295 32.02173,-46.51941 l 2.34786,-2.27736 -6.30817,-5.73177 z m 298.4074,80.04008 -7.60942,1.33057 c -4.18792,0.7436 -8.12463,1.43993 -8.76921,1.53529 -0.80487,0.1191 -1.18807,0.24336 -1.18807,0.38383 0,0.1125 0.17929,1.13426 0.39603,2.27735 2.07747,10.95686 2.52391,24.06935 1.30123,38.40797 -0.55966,6.56324 -1.80497,14.62573 -2.9985,19.47266 -0.17944,0.72877 -0.2917,1.37377 -0.25457,1.40735 0.0371,0.0335 3.93999,0.80348 8.68429,1.71443 4.74436,0.9109 8.69153,1.65348 8.74095,1.66321 0.0493,0.01 0.35153,-1.20446 0.67889,-2.71235 2.58164,-11.8915 3.70992,-23.06661 3.734,-37.02617 0.0169,-9.79205 -0.60847,-16.92701 -2.20646,-25.69062 z m -328.42069,44.52355 -0.59404,0.0767 c -0.32426,0.0425 -4.30309,0.47062 -8.82578,0.94676 -4.52269,0.47615 -8.27005,0.90467 -8.3166,0.94677 -0.10914,0.0987 0.19395,2.02928 0.87693,5.78293 3.74286,20.5706 11.55924,39.09836 24.24259,57.42003 0.34643,0.50043 0.71596,0.88794 0.82035,0.87001 0.27802,-0.0476 14.92958,-8.4814 14.93592,-8.59767 0.003,-0.0541 -0.61241,-0.97536 -1.35781,-2.04705 -3.27958,-4.71514 -7.63657,-12.12967 -10.04215,-17.09296 -5.78721,-11.94039 -9.59955,-24.12581 -11.56969,-37.02614 z m 316.85099,82.03592 c -0.36048,0.007 -16.97617,3.73907 -17.08581,3.83822 -0.0753,0.0682 16.94207,62.59192 17.19896,63.25382 0.30965,0.798 2.86925,7.31813 10.42538,6.19627 8.42278,-1.62864 7.56799,-10.19392 6.91501,-10.06007 -0.0867,0.0174 -3.86345,-14.3273 -8.59948,-31.67794 -6.7623,-24.77405 -8.66138,-31.55359 -8.85406,-31.5503 z m -244.80211,18.57706 c -0.31471,0.009 -0.93458,0.92267 -4.83721,6.70413 -2.54758,3.77402 -4.63919,6.89516 -4.63919,6.93441 0,0.095 2.63539,1.52222 5.43123,2.96823 17.18076,8.88581 36.19242,15.16537 55.6703,18.37201 2.75979,0.45453 4.36027,0.69944 8.48631,1.25377 0.53344,0.0717 1.05269,0.14407 1.15981,0.15373 0.242,0.0216 0.18744,0.43638 1.44268,-7.95778 0.57722,-3.86012 1.0799,-7.25173 1.13152,-7.54849 0.0906,-0.52038 0.0663,-0.53984 -0.45265,-0.6141 -0.29582,-0.0422 -2.06498,-0.28682 -3.93198,-0.53739 -17.1444,-2.30049 -34.78834,-7.57763 -50.21072,-14.99469 -2.7318,-1.3138 -7.81528,-3.92179 -9.10866,-4.68264 -0.0408,-0.024 -0.0965,-0.0525 -0.14144,-0.0512 z m 164.66293,6.32028 c -1.52266,0.0905 -3.53738,0.70727 -8.03371,2.175 -8.68549,2.83522 -18.54878,5.74416 -22.99794,6.7809 -0.64367,0.15 -1.18718,0.35231 -1.18807,0.43501 -0.002,0.14944 4.40029,15.44773 4.46946,15.532 0.0424,0.0521 4.87869,-1.18335 7.89228,-2.02144 3.91758,-1.08954 10.50973,-3.08747 15.2188,-4.60587 l 4.6675,-1.50969 17.14236,6.2435 c 13.94595,5.08505 17.14167,6.22073 17.22724,6.03865 0.69647,-1.48186 6.62352,-14.82249 6.59105,-14.84098 -0.29825,-0.17022 -37.77097,-13.74416 -38.3582,-13.89441 -0.96682,-0.2474 -1.71716,-0.3869 -2.63077,-0.33267 z"
+ style="opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.30466557;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="ccssccssscccccccssssscccsssscccscsssccccccssssssssssccccscssccsscccsscsscsssssccsccsscsscsccscccccssc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2"
+ style="display:inline">
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="12.358562"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ style="display:inline;fill:#ff8000;fill-opacity:1;stroke:none"
+ id="path3868-5"
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ transform="matrix(-0.77259808,0,0,0.77116679,367.55932,-282.28679)" />
+ <path
+ style="display:inline;opacity:0.19211821;fill:url(#radialGradient3883-8);fill-opacity:1;stroke:none"
+ d="m 47.92104,278.34166 c 85.06576,0 154.01258,67.54622 154.01258,150.8595 0,17.57416 -3.07299,34.44668 -8.71589,50.12552 -6.98908,0.97055 -14.13472,1.47017 -21.3913,1.47017 -25.9273,0 -45.91736,-5.31691 -68.73708,-13.59163 L 30.609993,496.36466 A 9.5491555,9.5314668 0 0 1 17.765567,485.2311 l 19.6288,-79.18904 C 24.777759,383.93808 20.469653,358.7681 20.469653,332.8053 c 0,-18.88073 3.628423,-36.92402 10.236917,-53.5238 5.65186,-0.61553 11.396492,-0.93984 17.21447,-0.93984 z"
+ id="path3878-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccsssscc"
+ inkscape:connector-curvature="0"
+ id="path3845-7"
+ d="M 23.939214,490.62525 44.460762,407.7534 C 31.411813,386.80914 26.916189,362.2158 26.916189,335.90966 c 0,-76.4615 63.504925,-138.42498 141.826591,-138.42498 78.32162,0 141.82653,61.96348 141.82653,138.42498 0,76.4615 -63.50491,138.47065 -141.82653,138.47065 -26.00317,0 -44.99723,-5.3294 -69.012271,-14.24332 z"
+ style="display:inline;opacity:0;fill:none;stroke:#000000;stroke-width:15.43764114;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:61.75056976, 61.75056976;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3855-0"
+ d="m 171.85058,186.81378 c 3.53202,-0.001 7.0468,0.057 8.37786,0.14458 11.02792,0.72475 19.47625,1.99843 29.1173,4.43421 3.70534,0.93617 6.53954,1.76617 9.97134,2.89187 2.19153,0.71887 5.52236,1.86783 5.6979,1.97612 0.0538,0.0332 -2.18271,6.10627 -5.23917,14.2666 -0.0306,0.0818 -0.1119,0.0905 -0.2173,0.0482 -0.73033,-0.29333 -4.23609,-1.50378 -5.86691,-2.02432 -14.03755,-4.48046 -28.83807,-6.67326 -43.50693,-6.45851 -2.06572,0.0302 -4.6797,0.10417 -5.7945,0.1687 -1.11476,0.0646 -2.04792,0.10066 -2.07634,0.0722 -0.045,-0.0448 -1.0053,-15.19482 -0.96576,-15.23057 0.008,-0.008 0.92544,-0.0716 2.05223,-0.14458 1.3691,-0.0887 4.91826,-0.14303 8.45028,-0.14457 z m -72.696647,18.43569 c 0.06643,0.0714 7.315537,13.27709 7.315537,13.32675 0,0.012 -0.33262,0.20711 -0.74844,0.43375 -5.49836,2.99686 -11.520423,6.96303 -16.997493,11.15921 -2.122486,1.6261 -4.163129,3.28675 -6.059727,4.93891 -2.763466,2.4073 -5.519031,5.02765 -8.153046,7.73607 -4.188314,4.30662 -8.069301,8.83591 -11.18606,13.08544 -0.428228,0.58393 -0.518926,0.66211 -0.676036,0.55427 -0.743971,-0.51067 -12.069524,-9.01277 -12.07184,-9.0612 -0.0032,-0.0654 2.188315,-2.96196 3.114542,-4.12094 3.702693,-4.63305 6.952577,-8.24177 11.323395,-12.60374 5.422218,-5.41124 10.590321,-9.89733 16.418014,-14.21307 1.68388,-1.247 3.422814,-2.47978 5.238862,-3.71655 4.330773,-2.94935 12.27561,-7.74115 12.482292,-7.5189 z m 180.256787,26.14737 1.59348,1.68696 c 14.15689,14.8539 24.97464,32.22325 31.79723,51.08979 0.33396,0.9235 0.62801,1.75148 0.65189,1.85562 0.0314,0.13682 -1.93992,0.85746 -7.0741,2.57859 -3.90783,1.31002 -7.16723,2.38116 -7.24311,2.38582 -0.0759,0.005 -0.60152,-1.2735 -1.18304,-2.84371 -5.969,-16.11689 -15.21187,-30.93143 -27.33066,-43.81189 l -2.00392,-2.14481 5.38405,-5.39818 z m -254.691788,75.38159 6.494676,1.25313 c 3.574397,0.70032 6.934399,1.35613 7.484553,1.44593 0.686953,0.11217 1.014012,0.2292 1.014012,0.36149 0,0.10595 -0.153023,1.06824 -0.338008,2.14481 -1.77313,10.31915 -2.154169,22.66846 -1.110602,36.17254 0.477667,6.18126 1.540548,13.7745 2.559231,18.33932 0.153154,0.68636 0.248963,1.29382 0.21727,1.32544 -0.03169,0.0316 -3.362797,0.75672 -7.412074,1.61465 -4.049328,0.85789 -7.418252,1.55725 -7.460429,1.56642 -0.04205,0.009 -0.300037,-1.13437 -0.579433,-2.5545 -2.203444,-11.19939 -3.166429,-21.72408 -3.186982,-34.87117 -0.01437,-9.22213 0.519332,-15.94183 1.88322,-24.19538 z m 280.308238,41.9322 0.50701,0.0722 c 0.27676,0.0401 3.6727,0.44323 7.53284,0.89166 3.86013,0.44843 7.05852,0.85201 7.09824,0.89167 0.0932,0.0929 -0.16553,1.91116 -0.74845,5.44635 -3.19455,19.37336 -9.86586,36.82275 -20.69114,54.07808 -0.29568,0.4713 -0.61108,0.83626 -0.70017,0.81936 -0.2373,-0.0448 -12.74246,-7.98776 -12.74787,-8.09727 -0.003,-0.051 0.5227,-0.91859 1.15889,-1.9279 2.79915,-4.44071 6.51785,-11.42371 8.57102,-16.09812 4.93941,-11.24543 8.19324,-22.72164 9.87477,-34.87114 z M 34.593711,425.97191 c 0.307673,0.006 14.489227,3.52144 14.582798,3.61483 0.06429,0.0642 -14.460111,58.94894 -14.679361,59.57234 -0.264295,0.75154 -2.448917,6.89219 -8.89811,5.83562 -7.188866,-1.53385 -6.459303,-9.60062 -5.901978,-9.47455 0.07403,0.0164 3.297467,-13.49343 7.339677,-29.83423 5.771655,-23.33215 7.392523,-29.71712 7.556974,-29.71401 z m 208.939479,17.49584 c 0.26861,0.009 0.79767,0.86897 4.12858,6.31393 2.17437,3.55436 3.95956,6.49385 3.95956,6.53082 0,0.0895 -2.24931,1.43362 -4.63558,2.79547 -14.66383,8.36864 -30.89035,14.28272 -47.5148,17.30273 -2.35548,0.42806 -3.72149,0.65873 -7.24309,1.18079 -0.4553,0.0675 -0.89848,0.13569 -0.9899,0.14479 -0.20655,0.0203 -0.15998,0.41098 -1.23133,-7.49463 -0.49266,-3.63545 -0.9217,-6.82967 -0.96575,-7.10914 -0.0773,-0.4901 -0.0566,-0.50843 0.38632,-0.57837 0.25249,-0.0397 1.76248,-0.27013 3.35596,-0.5061 14.63282,-2.1666 29.69198,-7.13661 42.85504,-14.12199 2.3316,-1.23733 6.67037,-3.69353 7.77427,-4.4101 0.0348,-0.0226 0.0823,-0.0494 0.12072,-0.0482 z m -140.5404,5.95243 c 1.2996,0.0852 3.01916,0.6661 6.8568,2.04841 7.41309,2.6702 15.83145,5.40983 19.62883,6.38623 0.54937,0.14127 1.01325,0.3318 1.01402,0.4097 0.001,0.14074 -3.75566,14.54864 -3.8147,14.628 -0.0362,0.0491 -4.16398,-1.11446 -6.73609,-1.90379 -3.34367,-1.02612 -8.97009,-2.90777 -12.9893,-4.33779 l -3.98373,-1.42183 -14.631058,5.88012 c -11.902923,4.78909 -14.630484,5.85868 -14.703523,5.68719 -0.594444,-1.39562 -5.653196,-13.95979 -5.625485,-13.97721 0.254566,-0.16031 32.237656,-12.94422 32.738866,-13.08573 0.82518,-0.233 1.4656,-0.36438 2.24537,-0.3133 z"
+ style="display:inline;opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:3.85941029;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="ccssccssscccccccssssscccsssscccscsssccccccssssssssssccccscssccsscccsscsscsssssccsccsscsscsccscccccssc" />
+ <ellipse
+ cy="334.93869"
+ cx="-242.26097"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047-7"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ <ellipse
+ cy="334.93869"
+ cx="-170.28149"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047-1-89"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ <ellipse
+ cy="334.93869"
+ cx="-98.116379"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047-1-8-8"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ <path
+ sodipodi:type="star"
+ style="fill:#ffff00;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3409"
+ sodipodi:sides="10"
+ sodipodi:cx="-291.32794"
+ sodipodi:cy="72.179588"
+ sodipodi:r1="89.286057"
+ sodipodi:r2="66.964546"
+ sodipodi:arg1="1.0575441"
+ sodipodi:arg2="1.3717033"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m -247.48733,149.96134 -30.59634,-12.14 -23.49543,23.05387 -17.61726,-27.80554 -32.55892,4.8407 2.09103,-32.85031 -29.18603,-15.221449 21.00062,-25.347389 -14.66505,-29.469521 31.88867,-8.162619 5.45748,-32.4612411 30.59635,12.1399946 23.49543,-23.0538705 17.61725,27.805542 32.55893,-4.8407045 -2.09103,32.8503175 29.18602,15.221446 -21.00061,25.347389 14.66505,29.469525 -31.88868,8.16261 z"
+ transform="matrix(0.87747641,0.4796198,-0.4796198,0.87747641,697.98935,480.8689)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Dots">
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047"
+ cx="231.68259"
+ cy="161.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047-1"
+ cx="316.01675"
+ cy="161.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path3047-1-8"
+ cx="400.56836"
+ cy="161.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="495.09454"
+ y="174.28543"
+ id="text3401"
+ sodipodi:linespacing="125%"
+ transform="matrix(0.87747641,0.4796198,-0.4796198,0.87747641,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan3403"
+ x="495.09454"
+ y="174.28543"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;writing-mode:lr-tb;fill:#ffffff">BETA</tspan></text>
+ </g>
+</svg>
diff --git a/art/conversations_plus_beta_baloons_notification.svg b/art/conversations_plus_beta_baloons_notification.svg
new file mode 100644
index 00000000..ec1c5b73
--- /dev/null
+++ b/art/conversations_plus_beta_baloons_notification.svg
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="512"
+ height="512"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="conversations_plus_beta_baloons_notification.svg"
+ inkscape:export-filename="/home/diesys/diesys/grafica/conversation/conversation_bubble.png"
+ inkscape:export-xdpi="100"
+ inkscape:export-ydpi="100">
+ <defs
+ id="defs35" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8284272"
+ inkscape:cx="376.51354"
+ inkscape:cy="140.66148"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="728"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:snap-to-guides="true"
+ inkscape:snap-grids="false"
+ inkscape:object-paths="true"
+ inkscape:object-nodes="false"
+ inkscape:snap-nodes="false">
+ <sodipodi:guide
+ orientation="1,0"
+ position="0,534.28571"
+ id="guide3004" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="394.28571,511.42857"
+ id="guide3006" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="511.42857,320"
+ id="guide3008" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="401.42857,0"
+ id="guide3010" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="17.142857,258.57143"
+ id="guide3012" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="327.14286,494.28571"
+ id="guide3014" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="324.28571,17.142857"
+ id="guide3016" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="494.28571,237.14286"
+ id="guide3018" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="255.71429,302.85714"
+ id="guide3022" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="660,-315"
+ id="guide3904" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="554.28571,475.71429"
+ id="guide3931" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="581.42857,244.28571"
+ id="guide3933" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-540.36218)"
+ style="display:inline">
+ <path
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ id="path3885"
+ style="opacity:0.6;fill:#000000;fill-opacity:1;stroke:#000000"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ inkscape:radius="12.358562"
+ sodipodi:type="inkscape:offset"
+ transform="matrix(0.90520781,0,0,0.81882383,90.877888,53.951708)" />
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="12.358562"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000"
+ id="path3868"
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ transform="matrix(0.90520781,0,0,0.81882383,90.877888,50.676388)" />
+ <path
+ style="opacity:0.19211821;fill:url(#radialGradient3883);fill-opacity:1;stroke:none"
+ d="m 465.37929,645.95092 c -99.66655,0 -180.44749,71.72047 -180.44749,160.18241 0,18.66021 3.60043,36.57544 10.21189,53.2232 8.1887,1.03054 16.56083,1.56103 25.06293,1.56103 30.37749,0 53.79867,-5.64549 80.53519,-14.43157 l 84.91981,30.96145 a 11.188184,10.120499 0 0 0 15.04907,-11.82159 l -22.99792,-84.08283 c 14.78214,-23.46997 19.8297,-50.19542 19.8297,-77.76269 0,-20.04753 -4.25121,-39.20586 -11.994,-56.83149 -6.62195,-0.65358 -13.3526,-0.99792 -20.16918,-0.99792 z"
+ id="path3878"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccsssscc"
+ inkscape:connector-curvature="0"
+ id="path3845"
+ d="m 493.47738,871.35334 -24.04389,-87.99322 c 15.28869,-22.23857 20.55595,-48.35175 20.55595,-76.28358 0,-81.18671 -74.40499,-146.97946 -166.16989,-146.97946 -91.76484,0 -166.16981,65.79275 -166.16981,146.97946 0,81.18672 74.40497,147.02794 166.16981,147.02794 30.46639,0 52.72061,-5.65874 80.85763,-15.12352 z"
+ style="opacity:0;fill:none;stroke:#000000;stroke-width:17.21866226;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:68.87464583, 68.87464583;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3855"
+ d="m 320.17833,548.76674 c -4.13827,-9.4e-4 -8.25632,0.0605 -9.81586,0.15351 -12.92075,0.76954 -22.81917,2.12193 -34.11502,4.70824 -4.34132,0.99402 -7.66199,1.87532 -11.68283,3.07059 -2.5677,0.76329 -6.47023,1.98325 -6.6759,2.09824 -0.0631,0.0352 2.55734,6.48362 6.13843,15.14825 0.0358,0.0868 0.13111,0.0961 0.2546,0.0511 0.85568,-0.31146 4.96317,-1.59671 6.87391,-2.14942 16.44697,-4.75734 33.78787,-7.08565 50.97451,-6.85765 2.42028,0.0321 5.48294,0.11062 6.78907,0.17914 1.30611,0.0686 2.39944,0.10688 2.43274,0.0767 0.0526,-0.0476 1.17785,-16.13384 1.13152,-16.1718 -0.01,-0.008 -1.08429,-0.0761 -2.40448,-0.15351 -1.60409,-0.0941 -5.76244,-0.15187 -9.90069,-0.15351 z m 85.17439,19.57499 c -0.0778,0.0759 -8.57119,14.09759 -8.57119,14.15032 0,0.0128 0.38971,0.21991 0.8769,0.46056 6.4421,3.18205 13.4978,7.39333 19.91497,11.84882 2.48679,1.7266 4.87769,3.48988 7.09982,5.24414 3.2378,2.55607 6.46633,5.33835 9.55245,8.21414 4.9072,4.57277 9.45432,9.38196 13.10605,13.89411 0.50173,0.62001 0.608,0.70303 0.79207,0.58852 0.87167,-0.54223 14.14115,-9.56974 14.14386,-9.62116 0.004,-0.0695 -2.56391,-3.14501 -3.64912,-4.37562 -4.33822,-4.91937 -8.14593,-8.7511 -13.26695,-13.38263 -6.3529,-5.74565 -12.40806,-10.50897 -19.23603,-15.09142 -1.9729,-1.32405 -4.01031,-2.63303 -6.13807,-3.94623 -5.07411,-3.13161 -14.3826,-8.21954 -14.62476,-7.98355 z m -211.19629,27.76323 -1.86699,1.79122 c -16.58679,15.77185 -29.26131,34.2146 -37.25495,54.24707 -0.39127,0.98058 -0.7358,1.85972 -0.76377,1.97029 -0.0367,0.14529 2.27287,0.91046 8.2883,2.73794 4.57858,1.39099 8.39743,2.52833 8.48633,2.53327 0.0889,0.005 0.70476,-1.35221 1.3861,-3.01945 6.99352,-17.11289 17.82285,-32.84295 32.02173,-46.51941 l 2.34786,-2.27736 -6.30817,-5.73177 z m 298.4074,80.04008 -7.60942,1.33057 c -4.18792,0.7436 -8.12463,1.43993 -8.76921,1.53529 -0.80487,0.1191 -1.18807,0.24336 -1.18807,0.38383 0,0.1125 0.17929,1.13426 0.39603,2.27735 2.07747,10.95686 2.52391,24.06935 1.30123,38.40797 -0.55966,6.56324 -1.80497,14.62573 -2.9985,19.47266 -0.17944,0.72877 -0.2917,1.37377 -0.25457,1.40735 0.0371,0.0335 3.93999,0.80348 8.68429,1.71443 4.74436,0.9109 8.69153,1.65348 8.74095,1.66321 0.0493,0.01 0.35153,-1.20446 0.67889,-2.71235 2.58164,-11.8915 3.70992,-23.06661 3.734,-37.02617 0.0169,-9.79205 -0.60847,-16.92701 -2.20646,-25.69062 z m -328.42069,44.52355 -0.59404,0.0767 c -0.32426,0.0425 -4.30309,0.47062 -8.82578,0.94676 -4.52269,0.47615 -8.27005,0.90467 -8.3166,0.94677 -0.10914,0.0987 0.19395,2.02928 0.87693,5.78293 3.74286,20.5706 11.55924,39.09836 24.24259,57.42003 0.34643,0.50043 0.71596,0.88794 0.82035,0.87001 0.27802,-0.0476 14.92958,-8.4814 14.93592,-8.59767 0.003,-0.0541 -0.61241,-0.97536 -1.35781,-2.04705 -3.27958,-4.71514 -7.63657,-12.12967 -10.04215,-17.09296 -5.78721,-11.94039 -9.59955,-24.12581 -11.56969,-37.02614 z m 316.85099,82.03592 c -0.36048,0.007 -16.97617,3.73907 -17.08581,3.83822 -0.0753,0.0682 16.94207,62.59192 17.19896,63.25382 0.30965,0.798 2.86925,7.31813 10.42538,6.19627 8.42278,-1.62864 7.56799,-10.19392 6.91501,-10.06007 -0.0867,0.0174 -3.86345,-14.3273 -8.59948,-31.67794 -6.7623,-24.77405 -8.66138,-31.55359 -8.85406,-31.5503 z m -244.80211,18.57706 c -0.31471,0.009 -0.93458,0.92267 -4.83721,6.70413 -2.54758,3.77402 -4.63919,6.89516 -4.63919,6.93441 0,0.095 2.63539,1.52222 5.43123,2.96823 17.18076,8.88581 36.19242,15.16537 55.6703,18.37201 2.75979,0.45453 4.36027,0.69944 8.48631,1.25377 0.53344,0.0717 1.05269,0.14407 1.15981,0.15373 0.242,0.0216 0.18744,0.43638 1.44268,-7.95778 0.57722,-3.86012 1.0799,-7.25173 1.13152,-7.54849 0.0906,-0.52038 0.0663,-0.53984 -0.45265,-0.6141 -0.29582,-0.0422 -2.06498,-0.28682 -3.93198,-0.53739 -17.1444,-2.30049 -34.78834,-7.57763 -50.21072,-14.99469 -2.7318,-1.3138 -7.81528,-3.92179 -9.10866,-4.68264 -0.0408,-0.024 -0.0965,-0.0525 -0.14144,-0.0512 z m 164.66293,6.32028 c -1.52266,0.0905 -3.53738,0.70727 -8.03371,2.175 -8.68549,2.83522 -18.54878,5.74416 -22.99794,6.7809 -0.64367,0.15 -1.18718,0.35231 -1.18807,0.43501 -0.002,0.14944 4.40029,15.44773 4.46946,15.532 0.0424,0.0521 4.87869,-1.18335 7.89228,-2.02144 3.91758,-1.08954 10.50973,-3.08747 15.2188,-4.60587 l 4.6675,-1.50969 17.14236,6.2435 c 13.94595,5.08505 17.14167,6.22073 17.22724,6.03865 0.69647,-1.48186 6.62352,-14.82249 6.59105,-14.84098 -0.29825,-0.17022 -37.77097,-13.74416 -38.3582,-13.89441 -0.96682,-0.2474 -1.71716,-0.3869 -2.63077,-0.33267 z"
+ style="opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.30466557;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="ccssccssscccccccssssscccsssscccscsssccccccssssssssssccccscssccsscccsscsscsssssccsccsscsscsccscccccssc" />
+ <path
+ sodipodi:type="star"
+ style="display:inline;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3409"
+ sodipodi:sides="10"
+ sodipodi:cx="-291.32794"
+ sodipodi:cy="72.179588"
+ sodipodi:r1="89.286057"
+ sodipodi:r2="66.964546"
+ sodipodi:arg1="1.0575441"
+ sodipodi:arg2="1.3717033"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m -247.48733,149.96134 -30.59634,-12.14 -23.49543,23.05387 -17.61726,-27.80554 -32.55892,4.8407 2.09103,-32.85031 -29.18603,-15.221449 21.00062,-25.347389 -14.66505,-29.469521 31.88867,-8.162619 5.45748,-32.4612411 30.59635,12.1399946 23.49543,-23.0538705 17.61725,27.805542 32.55893,-4.8407045 -2.09103,32.8503175 29.18602,15.221446 -21.00061,25.347389 14.66505,29.469525 -31.88868,8.16261 z"
+ transform="matrix(0.87747641,0.4796198,-0.4796198,0.87747641,697.30301,1021.4737)" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ x="753.77692"
+ y="648.98254"
+ id="text3401"
+ sodipodi:linespacing="125%"
+ transform="matrix(0.87747641,0.4796198,-0.4796198,0.87747641,0,0)"><tspan
+ sodipodi:role="line"
+ id="tspan3403"
+ x="753.77692"
+ y="648.98254"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;writing-mode:lr-tb;fill:#ffffff;opacity:1;stroke:#000000;stroke-opacity:1">BETA</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Layer 2"
+ style="display:inline">
+ <path
+ sodipodi:type="inkscape:offset"
+ inkscape:radius="12.358562"
+ inkscape:original="M 253.34375 618.125 C 151.96941 618.125 69.75 698.4746 69.75 797.625 C 69.75 896.77539 151.96941 977.1875 253.34375 977.1875 C 287.00054 977.1875 311.5728 970.27778 342.65625 958.71875 L 440.75 998.25 L 414.1875 890.8125 C 431.0772 863.65332 436.90625 831.73711 436.90625 797.625 C 436.90625 698.4746 354.71813 618.125 253.34375 618.125 z "
+ style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000"
+ id="path3868-5"
+ d="m 253.34375,605.76562 c -107.90463,0 -195.953125,85.87684 -195.953125,191.85938 0,105.98253 88.043415,191.92187 195.953125,191.92188 33.56396,0 59.43822,-6.90343 88.98047,-17.63672 l 93.80664,37.80274 a 12.359798,12.359798 0 0 0 16.61719,-14.4297 L 427.35352,892.57031 c 16.32005,-28.65755 21.9121,-61.28733 21.9121,-94.94531 0,-105.97994 -88.0172,-191.85938 -195.92187,-191.85938 z"
+ transform="matrix(-0.77259808,0,0,0.77116679,367.55932,-282.28679)" />
+ <path
+ style="display:inline;opacity:0.19211821;fill:url(#radialGradient3883-8);fill-opacity:1;stroke:none"
+ d="m 47.92104,278.34166 c 85.06576,0 154.01258,67.54622 154.01258,150.8595 0,17.57416 -3.07299,34.44668 -8.71589,50.12552 -6.98908,0.97055 -14.13472,1.47017 -21.3913,1.47017 -25.9273,0 -45.91736,-5.31691 -68.73708,-13.59163 L 30.609993,496.36466 A 9.5491555,9.5314668 0 0 1 17.765567,485.2311 l 19.6288,-79.18904 C 24.777759,383.93808 20.469653,358.7681 20.469653,332.8053 c 0,-18.88073 3.628423,-36.92402 10.236917,-53.5238 5.65186,-0.61553 11.396492,-0.93984 17.21447,-0.93984 z"
+ id="path3878-3"
+ inkscape:connector-curvature="0" />
+ <path
+ sodipodi:nodetypes="ccsssscc"
+ inkscape:connector-curvature="0"
+ id="path3845-7"
+ d="M 23.939214,490.62525 44.460762,407.7534 C 31.411813,386.80914 26.916189,362.2158 26.916189,335.90966 c 0,-76.4615 63.504925,-138.42498 141.826591,-138.42498 78.32162,0 141.82653,61.96348 141.82653,138.42498 0,76.4615 -63.50491,138.47065 -141.82653,138.47065 -26.00317,0 -44.99723,-5.3294 -69.012271,-14.24332 z"
+ style="display:inline;opacity:0;fill:none;stroke:#000000;stroke-width:15.43764114;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:61.75056976, 61.75056976;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path3855-0"
+ d="m 171.85058,186.81378 c 3.53202,-0.001 7.0468,0.057 8.37786,0.14458 11.02792,0.72475 19.47625,1.99843 29.1173,4.43421 3.70534,0.93617 6.53954,1.76617 9.97134,2.89187 2.19153,0.71887 5.52236,1.86783 5.6979,1.97612 0.0538,0.0332 -2.18271,6.10627 -5.23917,14.2666 -0.0306,0.0818 -0.1119,0.0905 -0.2173,0.0482 -0.73033,-0.29333 -4.23609,-1.50378 -5.86691,-2.02432 -14.03755,-4.48046 -28.83807,-6.67326 -43.50693,-6.45851 -2.06572,0.0302 -4.6797,0.10417 -5.7945,0.1687 -1.11476,0.0646 -2.04792,0.10066 -2.07634,0.0722 -0.045,-0.0448 -1.0053,-15.19482 -0.96576,-15.23057 0.008,-0.008 0.92544,-0.0716 2.05223,-0.14458 1.3691,-0.0887 4.91826,-0.14303 8.45028,-0.14457 z m -72.696647,18.43569 c 0.06643,0.0714 7.315537,13.27709 7.315537,13.32675 0,0.012 -0.33262,0.20711 -0.74844,0.43375 -5.49836,2.99686 -11.520423,6.96303 -16.997493,11.15921 -2.122486,1.6261 -4.163129,3.28675 -6.059727,4.93891 -2.763466,2.4073 -5.519031,5.02765 -8.153046,7.73607 -4.188314,4.30662 -8.069301,8.83591 -11.18606,13.08544 -0.428228,0.58393 -0.518926,0.66211 -0.676036,0.55427 -0.743971,-0.51067 -12.069524,-9.01277 -12.07184,-9.0612 -0.0032,-0.0654 2.188315,-2.96196 3.114542,-4.12094 3.702693,-4.63305 6.952577,-8.24177 11.323395,-12.60374 5.422218,-5.41124 10.590321,-9.89733 16.418014,-14.21307 1.68388,-1.247 3.422814,-2.47978 5.238862,-3.71655 4.330773,-2.94935 12.27561,-7.74115 12.482292,-7.5189 z m 180.256787,26.14737 1.59348,1.68696 c 14.15689,14.8539 24.97464,32.22325 31.79723,51.08979 0.33396,0.9235 0.62801,1.75148 0.65189,1.85562 0.0314,0.13682 -1.93992,0.85746 -7.0741,2.57859 -3.90783,1.31002 -7.16723,2.38116 -7.24311,2.38582 -0.0759,0.005 -0.60152,-1.2735 -1.18304,-2.84371 -5.969,-16.11689 -15.21187,-30.93143 -27.33066,-43.81189 l -2.00392,-2.14481 5.38405,-5.39818 z m -254.691788,75.38159 6.494676,1.25313 c 3.574397,0.70032 6.934399,1.35613 7.484553,1.44593 0.686953,0.11217 1.014012,0.2292 1.014012,0.36149 0,0.10595 -0.153023,1.06824 -0.338008,2.14481 -1.77313,10.31915 -2.154169,22.66846 -1.110602,36.17254 0.477667,6.18126 1.540548,13.7745 2.559231,18.33932 0.153154,0.68636 0.248963,1.29382 0.21727,1.32544 -0.03169,0.0316 -3.362797,0.75672 -7.412074,1.61465 -4.049328,0.85789 -7.418252,1.55725 -7.460429,1.56642 -0.04205,0.009 -0.300037,-1.13437 -0.579433,-2.5545 -2.203444,-11.19939 -3.166429,-21.72408 -3.186982,-34.87117 -0.01437,-9.22213 0.519332,-15.94183 1.88322,-24.19538 z m 280.308238,41.9322 0.50701,0.0722 c 0.27676,0.0401 3.6727,0.44323 7.53284,0.89166 3.86013,0.44843 7.05852,0.85201 7.09824,0.89167 0.0932,0.0929 -0.16553,1.91116 -0.74845,5.44635 -3.19455,19.37336 -9.86586,36.82275 -20.69114,54.07808 -0.29568,0.4713 -0.61108,0.83626 -0.70017,0.81936 -0.2373,-0.0448 -12.74246,-7.98776 -12.74787,-8.09727 -0.003,-0.051 0.5227,-0.91859 1.15889,-1.9279 2.79915,-4.44071 6.51785,-11.42371 8.57102,-16.09812 4.93941,-11.24543 8.19324,-22.72164 9.87477,-34.87114 z M 34.593711,425.97191 c 0.307673,0.006 14.489227,3.52144 14.582798,3.61483 0.06429,0.0642 -14.460111,58.94894 -14.679361,59.57234 -0.264295,0.75154 -2.448917,6.89219 -8.89811,5.83562 -7.188866,-1.53385 -6.459303,-9.60062 -5.901978,-9.47455 0.07403,0.0164 3.297467,-13.49343 7.339677,-29.83423 5.771655,-23.33215 7.392523,-29.71712 7.556974,-29.71401 z m 208.939479,17.49584 c 0.26861,0.009 0.79767,0.86897 4.12858,6.31393 2.17437,3.55436 3.95956,6.49385 3.95956,6.53082 0,0.0895 -2.24931,1.43362 -4.63558,2.79547 -14.66383,8.36864 -30.89035,14.28272 -47.5148,17.30273 -2.35548,0.42806 -3.72149,0.65873 -7.24309,1.18079 -0.4553,0.0675 -0.89848,0.13569 -0.9899,0.14479 -0.20655,0.0203 -0.15998,0.41098 -1.23133,-7.49463 -0.49266,-3.63545 -0.9217,-6.82967 -0.96575,-7.10914 -0.0773,-0.4901 -0.0566,-0.50843 0.38632,-0.57837 0.25249,-0.0397 1.76248,-0.27013 3.35596,-0.5061 14.63282,-2.1666 29.69198,-7.13661 42.85504,-14.12199 2.3316,-1.23733 6.67037,-3.69353 7.77427,-4.4101 0.0348,-0.0226 0.0823,-0.0494 0.12072,-0.0482 z m -140.5404,5.95243 c 1.2996,0.0852 3.01916,0.6661 6.8568,2.04841 7.41309,2.6702 15.83145,5.40983 19.62883,6.38623 0.54937,0.14127 1.01325,0.3318 1.01402,0.4097 0.001,0.14074 -3.75566,14.54864 -3.8147,14.628 -0.0362,0.0491 -4.16398,-1.11446 -6.73609,-1.90379 -3.34367,-1.02612 -8.97009,-2.90777 -12.9893,-4.33779 l -3.98373,-1.42183 -14.631058,5.88012 c -11.902923,4.78909 -14.630484,5.85868 -14.703523,5.68719 -0.594444,-1.39562 -5.653196,-13.95979 -5.625485,-13.97721 0.254566,-0.16031 32.237656,-12.94422 32.738866,-13.08573 0.82518,-0.233 1.4656,-0.36438 2.24537,-0.3133 z"
+ style="display:inline;opacity:0.5;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.85941029;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="ccssccssscccccccssssscccsssscccscsssccccccssssssssssccccscssccsscccsscsscsssssccsccsscsscsccscccccssc" />
+ <ellipse
+ cy="334.93869"
+ cx="-242.26097"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047-7"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ <ellipse
+ cy="334.93869"
+ cx="-170.28149"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047-1-89"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ <ellipse
+ cy="334.93869"
+ cx="-98.116379"
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047-1-8-8"
+ rx="16.401163"
+ ry="16.363543"
+ transform="scale(-1,1)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="Dots">
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047"
+ cx="237.68259"
+ cy="165.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047-1"
+ cx="322.01675"
+ cy="165.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ <ellipse
+ style="opacity:0.928;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000"
+ id="path3047-1-8"
+ cx="406.56836"
+ cy="165.68341"
+ rx="19.21628"
+ ry="17.374786" />
+ </g>
+</svg>
diff --git a/art/render.rb b/art/render.rb
index b4f84769..c5dd4487 100755
--- a/art/render.rb
+++ b/art/render.rb
@@ -1,4 +1,4 @@
-#!/bin/env ruby
+#!/usr/bin/env ruby
require 'xml'
@@ -11,8 +11,8 @@ resolutions = {
}
images = {
- 'conversations_baloon.svg' => ['ic_launcher', 48],
- 'conversations_mono.svg' => ['ic_notification', 24],
+ 'conversations_plus_beta_baloons.svg' => ['ic_launcher', 48],
+ 'conversations_plus_beta_baloons_notification.svg' => ['ic_notification', 24],
'ic_received_indicator.svg' => ['ic_received_indicator', 12],
'ic_send_text_offline.svg' => ['ic_send_text_offline', 36],
'ic_send_text_online.svg' => ['ic_send_text_online', 36],
diff --git a/build.gradle b/build.gradle
index 1218e605..7b82e6fd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -21,7 +21,7 @@ repositories {
dirs 'libs/3rdParty/jcenter', 'libs/3rdParty/maven', 'libs/3rdParty'
}
maven {
- url "http://snippets.thedevstack.de/mvn"
+ url "https://mvn.thedevstack.de/mvn"
}
}
@@ -78,8 +78,8 @@ android {
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
- versionCode 9
- versionName "0.0.8"
+ versionCode 191
+ versionName "beta-7"
archivesBaseName += "-$versionName"
apply from: 'configuration.gradle'
}
diff --git a/src/free/java/de/thedevstack/conversationsplus/services/PushManagementService.java b/src/free/java/eu/siacs/conversations/services/PushManagementService.java
index c11b6e98..c6c5d232 100644
--- a/src/free/java/de/thedevstack/conversationsplus/services/PushManagementService.java
+++ b/src/free/java/eu/siacs/conversations/services/PushManagementService.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
-import de.thedevstack.conversationsplus.entities.Account;
+import eu.siacs.conversations.entities.Account;
public class PushManagementService {
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index ca369a5d..544739da 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
- package="de.thedevstack.conversationsplus"
+ package="eu.siacs.conversations"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto">
@@ -176,7 +176,7 @@
</intent-filter>
</service>
<provider
- android:authorities="de.thedevstack.conversationsplus"
+ android:authorities="eu.siacs.conversations"
android:name=".providers.ConversationsPlusFileProvider"
android:exported="false"
android:grantUriPermissions="true">
diff --git a/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java
index d4e3ebc2..fb1e9392 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusApplication.java
@@ -11,14 +11,16 @@ import java.security.SecureRandom;
import de.duenndns.ssl.MemorizingTrustManager;
import de.thedevstack.conversationsplus.http.HttpClient;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
+import de.thedevstack.conversationsplus.utils.ImageUtil;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferManager;
import de.thedevstack.conversationsplus.services.filetransfer.http.upload.HttpUploadFileTransferService;
import de.thedevstack.conversationsplus.services.filetransfer.jingle.JingleFileTransferService;
-import de.thedevstack.conversationsplus.utils.ImageUtil;
-import de.thedevstack.conversationsplus.utils.PRNGFixes;
-import de.thedevstack.conversationsplus.utils.SerialSingleThreadExecutor;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.utils.PRNGFixes;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.utils.SerialSingleThreadExecutor;
import okhttp3.OkHttpClient;
/**
diff --git a/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusColors.java b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusColors.java
index 352e86e3..e0434e8b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusColors.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ConversationsPlusColors.java
@@ -1,5 +1,7 @@
package de.thedevstack.conversationsplus;
+import eu.siacs.conversations.R;
+
/**
* Helper class for accessing colors.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/FileParams.java b/src/main/java/de/thedevstack/conversationsplus/entities/FileParams.java
index bce8e571..3abb37e4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/FileParams.java
+++ b/src/main/java/de/thedevstack/conversationsplus/entities/FileParams.java
@@ -1,13 +1,15 @@
package de.thedevstack.conversationsplus.entities;
import de.thedevstack.conversationsplus.enums.FileStatus;
-import de.thedevstack.conversationsplus.utils.MimeUtils;
+
+import eu.siacs.conversations.utils.MimeUtils;
/**
*
*/
public class FileParams {
private String name;
+ private String originalFilename;
private String path;
private String url;
private String mimeType;
@@ -15,6 +17,8 @@ public class FileParams {
private int width = 0;
private int height = 0;
private FileStatus fileStatus;
+ private byte[] aeskey;
+ private byte[] iv;
public FileParams() {
fileStatus = FileStatus.UNDEFINED;
@@ -88,6 +92,39 @@ public class FileParams {
return path;
}
+ public void setKeyAndIv(byte[] keyIvCombo) {
+ if (null != keyIvCombo) {
+ if (keyIvCombo.length == 48) {
+ this.aeskey = new byte[32];
+ this.iv = new byte[16];
+ System.arraycopy(keyIvCombo, 0, this.iv, 0, 16);
+ System.arraycopy(keyIvCombo, 16, this.aeskey, 0, 32);
+ } else if (keyIvCombo.length >= 32) {
+ this.aeskey = new byte[32];
+ System.arraycopy(keyIvCombo, 0, aeskey, 0, 32);
+ } else if (keyIvCombo.length >= 16) {
+ this.aeskey = new byte[16];
+ System.arraycopy(keyIvCombo, 0, this.aeskey, 0, 16);
+ }
+ }
+ }
+
+ public void setKey(byte[] key) {
+ this.aeskey = key;
+ }
+
+ public void setIv(byte[] iv) {
+ this.iv = iv;
+ }
+
+ public byte[] getKey() {
+ return this.aeskey;
+ }
+
+ public byte[] getIv() {
+ return this.iv;
+ }
+
/**
* Sets the path to the file.
* If no file name is stored yet here - this method tries to extract the file name from the path.
@@ -126,4 +163,12 @@ public class FileParams {
public FileStatus getFileStatus() {
return this.fileStatus;
}
+
+ public void setOriginalFilename(String originalFilename) {
+ this.originalFilename = originalFilename;
+ }
+
+ public String getOriginalFilename() {
+ return this.originalFilename;
+ }
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/http/HttpClient.java b/src/main/java/de/thedevstack/conversationsplus/http/HttpClient.java
index 7e12a890..e1a38067 100644
--- a/src/main/java/de/thedevstack/conversationsplus/http/HttpClient.java
+++ b/src/main/java/de/thedevstack/conversationsplus/http/HttpClient.java
@@ -6,14 +6,15 @@ import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.SSLSocketHelper;
+
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.SSLSocketHelper;
+
import okhttp3.OkHttpClient;
/**
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/db/access/MessageDatabaseAccess.java b/src/main/java/de/thedevstack/conversationsplus/persistance/db/access/MessageDatabaseAccess.java
index 51ad99a4..0fb85fbf 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/db/access/MessageDatabaseAccess.java
+++ b/src/main/java/de/thedevstack/conversationsplus/persistance/db/access/MessageDatabaseAccess.java
@@ -6,10 +6,12 @@ import android.database.sqlite.SQLiteDatabase;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.persistance.db.migrations.FileParamsBodyToDatabaseFieldsMigration;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.utils.CryptoHelper;
+
/**
*
*/
@@ -28,6 +30,9 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
private static final String COLUMN_NAME_MSG_PARAMS_FILE_NAME = "file_name";
private static final String COLUMN_NAME_MSG_PARAMS_FILE_PATH = "file_path";
private static final String COLUMN_NAME_MSG_PARAMS_FILE_URL = "file_url";
+ private static final String COLUMN_NAME_MSG_PARAMS_FILE_IV = "file_iv";
+ private static final String COLUMN_NAME_MSG_PARAMS_FILE_KEY = "file_key";
+ private static final String COLUMN_NAME_MSG_PARAMS_ORIGINAL_FILE_NAME = "original_file_name";
private static final String TABLE_ADDITIONAL_PARAMETERS_CREATE_V1 = "CREATE TABLE " + MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS + " ("
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + " TEXT, "
@@ -45,8 +50,11 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_WIDTH + " INTEGER DEFAULT 0, "
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_STATUS + " TEXT DEFAULT 'UNDEFINED', "
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_NAME + " TEXT DEFAULT NULL, "
+ + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_ORIGINAL_FILE_NAME + " TEXT DEFAULT NULL, "
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_PATH + " TEXT DEFAULT NULL, "
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_URL + " TEXT DEFAULT NULL, "
+ + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_IV + " TEXT DEFAULT NULL, "
+ + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_KEY + " TEXT DEFAULT NULL, "
+ "FOREIGN KEY(" + MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + ") REFERENCES " + Message.TABLENAME + "(" + Message.UUID + ") ON DELETE CASCADE)";
public static void updateMessageParameters(SQLiteDatabase db, Message message, String uuid) {
@@ -65,8 +73,16 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_SIZE, fileParams.getSize());
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_HEIGHT, fileParams.getHeight());
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_WIDTH, fileParams.getWidth());
+ additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_NAME, fileParams.getName());
+ additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_ORIGINAL_FILE_NAME, fileParams.getOriginalFilename());
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_PATH, fileParams.getPath());
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_URL, fileParams.getUrl());
+ if (null != fileParams.getIv()) {
+ additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_IV, CryptoHelper.bytesToHex(fileParams.getIv()));
+ }
+ if (null != fileParams.getKey()) {
+ additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_KEY, CryptoHelper.bytesToHex(fileParams.getKey()));
+ }
if (null != fileParams.getFileStatus()) {
additionalParameters.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_STATUS, fileParams.getFileStatus().name());
}
@@ -95,10 +111,20 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
fileParams.setMimeType(fileType);
String name = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_FILE_NAME);
fileParams.setName(name);
+ String originalFilename = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_ORIGINAL_FILE_NAME);
+ fileParams.setOriginalFilename(originalFilename);
String path = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_FILE_PATH);
fileParams.setPath(path);
String url = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_FILE_URL);
fileParams.setUrl(url);
+ String iv = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_FILE_IV);
+ if (null != iv && !iv.isEmpty()) {
+ fileParams.setIv(CryptoHelper.hexToBytes(iv));
+ }
+ String key = CursorHelper.getString(cursor, COLUMN_NAME_MSG_PARAMS_FILE_KEY);
+ if (null != key && !key.isEmpty()) {
+ fileParams.setKey(CryptoHelper.hexToBytes(key));
+ }
long fileSize = CursorHelper.getLong(cursor, COLUMN_NAME_MSG_PARAMS_FILE_SIZE);
fileParams.setSize(fileSize);
int imageHeight = CursorHelper.getInt(cursor, COLUMN_NAME_MSG_PARAMS_FILE_HEIGHT);
@@ -146,7 +172,11 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_WIDTH + " INTEGER DEFAULT 0",
MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_STATUS + " TEXT DEFAULT 'UNDEFINED'",
MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_NAME + " TEXT DEFAULT NULL",
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_ORIGINAL_FILE_NAME + " TEXT DEFAULT NULL",
MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_PATH + " TEXT DEFAULT NULL",
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_URL + " TEXT DEFAULT NULL",
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_IV + " TEXT DEFAULT NULL",
+ MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_KEY + " TEXT DEFAULT NULL",
};
addNewColumns(db, MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS, columnDefinitions);
@@ -166,6 +196,13 @@ public class MessageDatabaseAccess extends AbstractDatabaseAccess {
parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_SIZE, fileParams.getSize());
parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_HEIGHT, fileParams.getHeight());
parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_WIDTH, fileParams.getWidth());
+ parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_URL, fileParams.getUrl());
+ if (null != fileParams.getIv()) {
+ parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_IV, CryptoHelper.bytesToHex(fileParams.getIv()));
+ }
+ if (null != fileParams.getKey()) {
+ parameterValues.put(MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_FILE_KEY, CryptoHelper.bytesToHex(fileParams.getKey()));
+ }
db.update(MessageDatabaseAccess.TABLE_NAME_ADDITIONAL_PARAMETERS, parameterValues, MessageDatabaseAccess.COLUMN_NAME_MSG_PARAMS_MSGUUID + "=?", new String[] {uuid});
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java b/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
index c0aa63c0..8ad94ca0 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
+++ b/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
@@ -4,6 +4,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import de.thedevstack.conversationsplus.entities.FileParams;
+import de.thedevstack.conversationsplus.utils.UrlUtil;
/**
* Created by steckbrief on 24.08.2016.
@@ -28,6 +29,8 @@ public class FileParamsBodyToDatabaseFieldsMigration {
try {
URL url = new URL(parts[0]);
params.setUrl(url.toString());
+ byte[] ivAndKey = UrlUtil.getIvAndKeyFromURL(url);
+ params.setKeyAndIv(ivAndKey);
} catch (MalformedURLException e1) {
}
}
@@ -37,6 +40,8 @@ public class FileParamsBodyToDatabaseFieldsMigration {
try {
URL url = new URL(parts[0]);
params.setUrl(url.toString());
+ byte[] ivAndKey = UrlUtil.getIvAndKeyFromURL(url);
+ params.setKeyAndIv(ivAndKey);
} catch (MalformedURLException e1) {
}
try {
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/observers/FileDeletionObserver.java b/src/main/java/de/thedevstack/conversationsplus/persistance/observers/FileDeletionObserver.java
index 3534ccd2..a313c8b1 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/observers/FileDeletionObserver.java
+++ b/src/main/java/de/thedevstack/conversationsplus/persistance/observers/FileDeletionObserver.java
@@ -2,14 +2,15 @@ package de.thedevstack.conversationsplus.persistance.observers;
import android.os.FileObserver;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+
/**
* Observer to mark messages containing files which are deleted.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/FileTransferService.java b/src/main/java/de/thedevstack/conversationsplus/services/FileTransferService.java
index 9fc35b2b..300d25e9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/FileTransferService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/FileTransferService.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.services;
-import de.thedevstack.conversationsplus.entities.Message;
+import eu.siacs.conversations.entities.Message;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferStatusListener;
/**
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferEntity.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferEntity.java
index e1b40fa6..7799fe8f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferEntity.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferEntity.java
@@ -5,12 +5,13 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
import de.thedevstack.conversationsplus.utils.StreamUtil;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.persistance.FileBackend;
+
/**
*
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferManager.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferManager.java
index 2f9a819b..112aafd1 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferManager.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferManager.java
@@ -6,12 +6,13 @@ import java.util.SortedSet;
import java.util.TreeSet;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.services.FileTransferService;
import de.thedevstack.conversationsplus.services.filetransfer.http.upload.HttpFileTransferEntity;
import de.thedevstack.conversationsplus.utils.MessageUtil;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Message;
+
/**
*
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferStatusListener.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferStatusListener.java
index 86d6fbfa..638a20cf 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferStatusListener.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/FileTransferStatusListener.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.services.filetransfer;
-import de.thedevstack.conversationsplus.entities.Message;
+import eu.siacs.conversations.entities.Message;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
index 1549388e..95b8450a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFile.java
@@ -2,7 +2,7 @@ package de.thedevstack.conversationsplus.services.filetransfer.http.delete;
import android.support.annotation.NonNull;
-import de.thedevstack.conversationsplus.entities.Message;
+import eu.siacs.conversations.entities.Message;
import de.thedevstack.conversationsplus.dto.RemoteFile;
/**
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
index eb9f1b04..f60efb56 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteRemoteFileService.java
@@ -1,18 +1,16 @@
package de.thedevstack.conversationsplus.services.filetransfer.http.delete;
-import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.FileStatus;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete.FileTransferHttpDeleteSlotRequestPacketGenerator;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
index 186454e4..3151ca30 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/delete/DeleteTokenReceived.java
@@ -6,14 +6,16 @@ import org.json.JSONObject;
import java.io.IOException;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.entities.Account;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.http.HttpClient;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
import de.thedevstack.conversationsplus.xmpp.exceptions.XmppException;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete.DeleteSlotPacketParser;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileTransferEntity.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileTransferEntity.java
index a373d584..a36db4cd 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileTransferEntity.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileTransferEntity.java
@@ -4,17 +4,18 @@ import java.net.MalformedURLException;
import java.net.URL;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferEntity;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferFailureReason;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.HttpUploadSlot;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.utils.CryptoHelper;
+
/**
*
*/
@@ -30,9 +31,9 @@ public class HttpFileTransferEntity extends FileTransferEntity {
FileParams fileParams = this.getMessage().getFileParams();
if (null == fileParams) {
fileParams = new FileParams();
+ this.getMessage().setFileParams(fileParams);
}
fileParams.setFileStatus(FileStatus.NEEDS_UPLOAD);
- this.getMessage().setFileParams(fileParams);
if (Config.ENCRYPT_ON_HTTP_UPLOADED
|| message.getEncryption() == Message.ENCRYPTION_AXOLOTL
|| message.getEncryption() == Message.ENCRYPTION_OTR) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileUploader.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileUploader.java
index 8cae599c..9c949ed9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileUploader.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpFileUploader.java
@@ -14,16 +14,17 @@ import javax.net.ssl.HttpsURLConnection;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferFailureReason;
import de.thedevstack.conversationsplus.utils.StreamUtil;
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.HttpUpload;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.persistance.FileBackend;
+
public class HttpFileUploader implements Runnable {
private static final String HTTP_METHOD = "PUT";
private static final String MIME_REQUEST_PROPERTY_NAME = "Content-Type";
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadFileTransferService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadFileTransferService.java
index 6b19cd5f..7fe12dc6 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadFileTransferService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadFileTransferService.java
@@ -6,19 +6,19 @@ import java.io.FileNotFoundException;
import java.io.InputStream;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.AbstractConnectionManager;
+import eu.siacs.conversations.services.AbstractConnectionManager;
import de.thedevstack.conversationsplus.services.FileTransferService;
import de.thedevstack.conversationsplus.services.filetransfer.AbstractFileTransferService;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.HttpUpload;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.HttpUploadRequestSlotPacketGenerator;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadSlotRequestReceived.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadSlotRequestReceived.java
index 2687878d..5a12a4d4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadSlotRequestReceived.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadSlotRequestReceived.java
@@ -1,13 +1,14 @@
package de.thedevstack.conversationsplus.services.filetransfer.http.upload;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.entities.Account;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferFailureReason;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
import de.thedevstack.conversationsplus.xmpp.exceptions.XmppException;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.HttpUploadSlot;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload.SlotPacketParser;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadedFileEncryptionUiCallback.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadedFileEncryptionUiCallback.java
index f363a675..f084bffa 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadedFileEncryptionUiCallback.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/http/upload/HttpUploadedFileEncryptionUiCallback.java
@@ -2,11 +2,12 @@ package de.thedevstack.conversationsplus.services.filetransfer.http.upload;
import android.app.PendingIntent;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.services.filetransfer.FileTransferFailureReason;
-import de.thedevstack.conversationsplus.ui.UiCallback;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.ui.UiCallback;
+
/**
*
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/jingle/JingleFileTransferService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/jingle/JingleFileTransferService.java
index 5d8ddd4e..e48f30e5 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/jingle/JingleFileTransferService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/jingle/JingleFileTransferService.java
@@ -1,10 +1,11 @@
package de.thedevstack.conversationsplus.services.filetransfer.jingle;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.services.FileTransferService;
import de.thedevstack.conversationsplus.services.filetransfer.AbstractFileTransferService;
-import de.thedevstack.conversationsplus.xmpp.jingle.JingleConnection;
-import de.thedevstack.conversationsplus.xmpp.jingle.JingleConnectionManager;
+
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.jingle.JingleConnection;
+import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/LogCatOutputActivity.java b/src/main/java/de/thedevstack/conversationsplus/ui/LogCatOutputActivity.java
index fe7968cb..a1f99a48 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/LogCatOutputActivity.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/LogCatOutputActivity.java
@@ -11,10 +11,11 @@ import android.widget.ListView;
import de.thedevstack.android.logcat.adapters.LogCatArrayAdapter;
import de.thedevstack.android.logcat.tasks.ReadLogCatAsyncTask;
-import de.thedevstack.conversationsplus.R;
import de.thedevstack.conversationsplus.ui.listeners.LogCatOutputCopyOnClickListener;
import de.thedevstack.conversationsplus.utils.ClipboardUtil;
+import eu.siacs.conversations.R;
+
/**
* Activity to display the logcat output.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/PresencesArrayAdapter.java b/src/main/java/de/thedevstack/conversationsplus/ui/adapter/PresencesArrayAdapter.java
index 2d777897..d1f1e835 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/PresencesArrayAdapter.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/adapter/PresencesArrayAdapter.java
@@ -11,9 +11,9 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.Map;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Presences;
-import de.thedevstack.conversationsplus.utils.UIHelper;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Presences;
+import eu.siacs.conversations.utils.UIHelper;
/**
* Created by tzur on 27.09.2015.
@@ -44,7 +44,7 @@ public class PresencesArrayAdapter extends ArrayAdapter<Presence> {
private static Presence[] getPresenceArray(Presences presences) {
ArrayList<Presence> presenceArrayList = new ArrayList<>();
if (null != presences && null != presences.getPresences() && !presences.getPresences().isEmpty()) {
- for (Map.Entry<String, de.thedevstack.conversationsplus.entities.Presence> entry : presences.getPresences().entrySet()) {
+ for (Map.Entry<String, eu.siacs.conversations.entities.Presence> entry : presences.getPresences().entrySet()) {
Presence p = new Presence();
p.resource = entry.getKey();
p.status = entry.getValue().getStatus();
@@ -58,5 +58,5 @@ public class PresencesArrayAdapter extends ArrayAdapter<Presence> {
class Presence {
String resource;
- de.thedevstack.conversationsplus.entities.Presence.Status status;
+ eu.siacs.conversations.entities.Presence.Status status;
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/AbstractAlertDialog.java b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/AbstractAlertDialog.java
index 10764798..2f394fb3 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/AbstractAlertDialog.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/AbstractAlertDialog.java
@@ -9,7 +9,7 @@ import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
-import de.thedevstack.conversationsplus.R;
+import eu.siacs.conversations.R;
/**
* Created by tzur on 29.09.2015.
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/MessageDetailsDialog.java b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/MessageDetailsDialog.java
index 4ec8e3eb..8a3de18d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/MessageDetailsDialog.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/MessageDetailsDialog.java
@@ -9,13 +9,14 @@ import java.util.Date;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Conversation;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.utils.UIHelper;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.utils.UIHelper;
+
/**
* Fills the contents to the message details dialog.
* The view definition is done in R.layout.dialog_message_details.
@@ -61,8 +62,9 @@ public class MessageDetailsDialog extends AbstractAlertDialog {
view.findViewById(R.id.dlgMsgDetFileTable).setVisibility(View.VISIBLE);
if (null != message.getFileParams()) {
FileParams params = message.getFileParams();
- TextViewUtil.setText(view, R.id.dlgMsgDetFileSize, UIHelper.getHumanReadableFileSize(params.getSize()));
+ TextViewUtil.setText(view, R.id.dlgMsgDetFileSize, UIHelper.getHumanReadableDetailedFileSize(params.getSize()));
TextViewUtil.setText(view, R.id.dlgMsgDetFileMimeType, params.getMimeType());
+ TextViewUtil.setText(view, R.id.dlgMsgDetFileOriginalName, params.getOriginalFilename());
}
TextViewUtil.setText(view, R.id.dlgMsgDetFileHttpUploaded, message.isHttpUploaded() ? R.string.cplus_yes : R.string.cplus_no);
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/SimpleConfirmDialog.java b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/SimpleConfirmDialog.java
index 04e60caa..6bf9c563 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/SimpleConfirmDialog.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/SimpleConfirmDialog.java
@@ -3,9 +3,10 @@ package de.thedevstack.conversationsplus.ui.dialogs;
import android.content.Context;
import android.content.DialogInterface;
-import de.thedevstack.conversationsplus.R;
import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback;
+import eu.siacs.conversations.R;
+
/**
* A dialog to give the user the choice to decide whether to do something or not.
* A UserDecisionListener is used to provide the functionality to be performed by clicking on yes, or no.
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/UserDecisionDialog.java b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/UserDecisionDialog.java
index e0834390..3305e8e1 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/UserDecisionDialog.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/dialogs/UserDecisionDialog.java
@@ -8,7 +8,7 @@ import android.widget.TextView;
import de.thedevstack.conversationsplus.enums.UserDecision;
import de.thedevstack.conversationsplus.ui.listeners.UserDecisionListener;
-import de.thedevstack.conversationsplus.R;
+import eu.siacs.conversations.R;
/**
* A dialog to give the user the choice to decide whether to do something or not.
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
index f855a90d..222e473b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/DeleteFileCallback.java
@@ -1,11 +1,12 @@
package de.thedevstack.conversationsplus.ui.listeners;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.persistance.FileBackend;
+
/**
* Callback for the user decision if a file should be deleted or not.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
index 1574bb85..dec6b885 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ResizePictureUserDecisionListener.java
@@ -13,25 +13,25 @@ import java.io.InputStream;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
import de.thedevstack.conversationsplus.entities.FileParams;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.enums.UserDecision;
import de.thedevstack.conversationsplus.exceptions.UiException;
-import de.thedevstack.conversationsplus.utils.FileUtils;
import de.thedevstack.conversationsplus.utils.ImageUtil;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.UiCallback;
-import de.thedevstack.conversationsplus.ui.XmppActivity;
-import de.thedevstack.conversationsplus.utils.MimeUtils;
import de.thedevstack.conversationsplus.utils.StreamUtil;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.UiCallback;
+import eu.siacs.conversations.ui.XmppActivity;
+import eu.siacs.conversations.utils.FileUtils;
+
/**
* Listener to let the user decide whether to resize a picture before sending or not.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShareWithResizePictureUserDecisionListener.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShareWithResizePictureUserDecisionListener.java
index e2678ef7..7455cf97 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShareWithResizePictureUserDecisionListener.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShareWithResizePictureUserDecisionListener.java
@@ -4,9 +4,9 @@ import android.net.Uri;
import java.util.List;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.XmppActivity;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.XmppActivity;
/**
* Created by tzur on 03.11.2015.
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java
index 791b31a7..1c16095c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java
+++ b/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ShowResourcesListDialogListener.java
@@ -5,8 +5,8 @@ import android.view.View;
import de.thedevstack.conversationsplus.ui.adapter.PresencesArrayAdapter;
import de.thedevstack.conversationsplus.ui.dialogs.AbstractAlertDialog;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Contact;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Contact;
/**
* This listener shows the dialog with the resources of a contact.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/AvatarUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/AvatarUtil.java
index 9f6071bb..b6ffd570 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/AvatarUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/AvatarUtil.java
@@ -19,8 +19,9 @@ import java.security.NoSuchAlgorithmException;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.xmpp.pep.Avatar;
/**
* This util provides access to saved avatars, creating avatars.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ClipboardUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/ClipboardUtil.java
index 1ef7cba9..4d6220e0 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ClipboardUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/ClipboardUtil.java
@@ -6,7 +6,8 @@ import android.content.Context;
import android.widget.Toast;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.R;
+
+import eu.siacs.conversations.R;
/**
* Util class to work with the Clipboard.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java
index 55fd1b8e..25c8b3ba 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/ConversationUtil.java
@@ -3,13 +3,15 @@ package de.thedevstack.conversationsplus.utils;
import android.net.Uri;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.exceptions.FileCopyException;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.ui.UiCallback;
+
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.ui.UiCallback;
+import eu.siacs.conversations.utils.FileUtils;
/**
* Utility class to work with conversations.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ImageUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/ImageUtil.java
index 0b8ace95..0edf6ad0 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ImageUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/ImageUtil.java
@@ -16,10 +16,11 @@ import java.io.InputStream;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.exceptions.ImageResizeException;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.utils.ExifHelper;
/**
* This util provides
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/MessageUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/MessageUtil.java
index dc9607f0..ed144465 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/MessageUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/MessageUtil.java
@@ -3,28 +3,92 @@ package de.thedevstack.conversationsplus.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.enums.FileStatus;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
+
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.persistance.DatabaseBackend;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.utils.MimeUtils;
/**
* Utility class to work with messages.
*/
public final class MessageUtil {
+ public static void extractFileParamsFromBody(Message message) {
+ if (null == message) {
+ return;
+ }
+ String body = message.getBody();
+ /**
+ * there are a few cases where spaces result in an unwanted behavior, e.g.
+ * "http://example.com/image.jpg" text that will not be shown /abc.png"
+ * or more than one image link in one message.
+ */
+ if (null == body || body.isEmpty() || body.contains(" ")) {
+ return;
+ }
+
+ FileParams fileParams = message.getFileParams();
+ if (null == fileParams) {
+ fileParams = new FileParams();
+ message.setFileParams(fileParams);
+ }
+
+ try {
+ URL url = new URL(body);
+ if (!url.getProtocol().equalsIgnoreCase("http") && !url.getProtocol().equalsIgnoreCase("https")) {
+ message.setTreatAsDownloadable(Message.Decision.NEVER);
+ return;
+ }
+ if (message.isHttpUploaded()) {
+ fileParams.setUrl(url.toString());
+ message.setTreatAsDownloadable(Message.Decision.MUST);
+ return;
+ }
+ String extension = FileUtils.getRelevantExtension(url);
+ if (extension == null) {
+ message.setTreatAsDownloadable(Message.Decision.NEVER);
+ return;
+ }
+ byte[] ivAndKey = UrlUtil.getIvAndKeyFromURL(url);
+
+ if (null != ivAndKey) {
+ if (MimeUtils.guessMimeTypeFromExtension(extension) != null) {
+ message.setTreatAsDownloadable(Message.Decision.MUST);
+ fileParams.setKeyAndIv(ivAndKey);
+ fileParams.setUrl(url.toString());
+ } else {
+ message.setTreatAsDownloadable(Message.Decision.NEVER);
+ }
+ } else if (Transferable.VALID_IMAGE_EXTENSIONS.contains(extension)
+ || Transferable.WELL_KNOWN_EXTENSIONS.contains(extension)) {
+ message.setTreatAsDownloadable(Message.Decision.SHOULD);
+ fileParams.setUrl(url.toString());
+ } else {
+ message.setTreatAsDownloadable(Message.Decision.NEVER);
+ }
+
+ } catch (MalformedURLException e) {
+ message.setTreatAsDownloadable(Message.Decision.NEVER);
+ }
+ }
+
public static boolean needsDownload(Message message) {
FileStatus fileStatus = (null != message.getFileParams()) ? message.getFileParams().getFileStatus() : null;
- return (null != fileStatus && (fileStatus == FileStatus.NEEDS_DOWNLOAD
- || fileStatus == FileStatus.UNDEFINED))
+ return (null == fileStatus
+ || (null != fileStatus && (fileStatus == FileStatus.NEEDS_DOWNLOAD || fileStatus == FileStatus.UNDEFINED)))
&& message.treatAsDownloadable() != Message.Decision.NEVER;
}
@@ -121,6 +185,7 @@ public final class MessageUtil {
FileParams fileParams = message.getFileParams();
if (null == fileParams) {
fileParams = new FileParams();
+ message.setFileParams(fileParams);
}
fileParams.setSize(size);
if (null != url) {
@@ -136,7 +201,6 @@ public final class MessageUtil {
if (null != relativeFilePathFromMessage && relativeFilePathFromMessage.startsWith("/")) {
fileParams.setPath(relativeFilePathFromMessage);
}
- message.setFileParams(fileParams);
}
private MessageUtil() {
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/UiUpdateHelper.java b/src/main/java/de/thedevstack/conversationsplus/utils/UiUpdateHelper.java
index 7638caad..84ce200a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/UiUpdateHelper.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/UiUpdateHelper.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.utils;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService;
/**
* Helper class to avoid passing the xmppConnectionService to everywhere just to update the UI.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/UrlUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/UrlUtil.java
new file mode 100644
index 00000000..50c42288
--- /dev/null
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/UrlUtil.java
@@ -0,0 +1,25 @@
+package de.thedevstack.conversationsplus.utils;
+
+import java.net.URL;
+
+import eu.siacs.conversations.utils.CryptoHelper;
+
+/**
+ * This utility class provides helper methods to handle URLs.
+ */
+
+public final class UrlUtil {
+ public static byte[] getIvAndKeyFromURL(URL url) {
+ if (null == url) {
+ return null;
+ }
+ String reference = url.getRef();
+ boolean linkHasIvAndKey = reference != null && reference.matches("([A-Fa-f0-9]{2}){48}");
+
+ return linkHasIvAndKey ? CryptoHelper.hexToBytes(reference) : null;
+ }
+
+ private UrlUtil() {
+ // Helper Class
+ }
+}
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/XmppConnectionServiceAccessor.java b/src/main/java/de/thedevstack/conversationsplus/utils/XmppConnectionServiceAccessor.java
index 1f1d7cf4..20cd7361 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/XmppConnectionServiceAccessor.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/XmppConnectionServiceAccessor.java
@@ -1,7 +1,8 @@
package de.thedevstack.conversationsplus.utils;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
+
+import eu.siacs.conversations.services.XmppConnectionService;
/**
* Accessor utility to access XmppConnectionService without having to pass the XmppConnectionService every time.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/XmppSendUtil.java b/src/main/java/de/thedevstack/conversationsplus/utils/XmppSendUtil.java
index 11d05832..d4a555f2 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/XmppSendUtil.java
+++ b/src/main/java/de/thedevstack/conversationsplus/utils/XmppSendUtil.java
@@ -1,11 +1,11 @@
package de.thedevstack.conversationsplus.utils;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
/**
* Created by tzur on 09.01.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/IqPacketParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/IqPacketParser.java
index 7c198ce9..eee5b0aa 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/IqPacketParser.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/IqPacketParser.java
@@ -1,9 +1,10 @@
package de.thedevstack.conversationsplus.xmpp;
-import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.exceptions.MissingRequiredContentException;
import de.thedevstack.conversationsplus.xmpp.exceptions.MissingRequiredElementException;
+import eu.siacs.conversations.xml.Element;
+
/**
*
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnBindListener.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnBindListener.java
deleted file mode 100644
index 274511e0..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnBindListener.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.entities.Account;
-
-public interface OnBindListener {
- public void onBind(Account account);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnIqPacketReceived.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnIqPacketReceived.java
deleted file mode 100644
index df0178c6..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnIqPacketReceived.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
-
-public interface OnIqPacketReceived extends PacketReceived {
- public void onIqPacketReceived(Account account, IqPacket packet);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnKeyStatusUpdated.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnKeyStatusUpdated.java
deleted file mode 100644
index 47bcff9e..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnKeyStatusUpdated.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-
-public interface OnKeyStatusUpdated {
- public void onKeyStatusUpdated(AxolotlService.FetchStatus report);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessagePacketReceived.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessagePacketReceived.java
deleted file mode 100644
index 47649a18..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessagePacketReceived.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
-
-public interface OnMessagePacketReceived extends PacketReceived {
- public void onMessagePacketReceived(Account account, MessagePacket packet);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnPresencePacketReceived.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnPresencePacketReceived.java
deleted file mode 100644
index 70b0ccd2..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnPresencePacketReceived.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
-
-public interface OnPresencePacketReceived extends PacketReceived {
- public void onPresencePacketReceived(Account account, PresencePacket packet);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnStatusChanged.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/OnStatusChanged.java
deleted file mode 100644
index c8478bbb..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnStatusChanged.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp;
-
-import de.thedevstack.conversationsplus.entities.Account;
-
-public interface OnStatusChanged {
- public void onStatusChanged(Account account);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketGenerator.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketGenerator.java
index 1574604e..46e2e642 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketGenerator.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketGenerator.java
@@ -1,10 +1,10 @@
package de.thedevstack.conversationsplus.xmpp.avatar;
import de.thedevstack.conversationsplus.xmpp.pubsub.PubSubPacketGenerator;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Generates the IQ Packets for handling Avatars
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketParser.java
index 0867524b..48045a3c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketParser.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarPacketParser.java
@@ -1,8 +1,8 @@
package de.thedevstack.conversationsplus.xmpp.avatar;
import de.thedevstack.conversationsplus.xmpp.pubsub.PubSubPacketParser;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Parses the IQ Packets for handling Avatars
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/BadRequestIqErrorException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/BadRequestIqErrorException.java
index 69fb893b..120ef495 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/BadRequestIqErrorException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/BadRequestIqErrorException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Created by steckbrief on 22.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/InternalServerErrorException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/InternalServerErrorException.java
index 7925c423..1a1cded2 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/InternalServerErrorException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/InternalServerErrorException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Created by steckbrief on 22.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/IqPacketErrorException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/IqPacketErrorException.java
index d4d932b7..65e02688 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/IqPacketErrorException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/IqPacketErrorException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Created by steckbrief on 22.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredContentException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredContentException.java
index 8b21cb9c..060bb618 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredContentException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredContentException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredElementException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredElementException.java
index 8c8162ef..de24262f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredElementException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/MissingRequiredElementException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/ServiceUnavailableException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/ServiceUnavailableException.java
index 7e503aa9..88d5389b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/ServiceUnavailableException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/ServiceUnavailableException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Created by steckbrief on 22.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UndefinedConditionException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UndefinedConditionException.java
index 38e1f6d2..de821873 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UndefinedConditionException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UndefinedConditionException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Created by steckbrief on 22.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UnexpectedIqPacketTypeException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UnexpectedIqPacketTypeException.java
index 333f5dca..82f229e8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UnexpectedIqPacketTypeException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/UnexpectedIqPacketTypeException.java
@@ -2,8 +2,8 @@ package de.thedevstack.conversationsplus.xmpp.exceptions;
import java.util.Arrays;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/XmppException.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/XmppException.java
index 8c692f5b..b8c6c89d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/XmppException.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/exceptions/XmppException.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.exceptions;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotPacketParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotPacketParser.java
index 7c011449..a6408e9f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotPacketParser.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotPacketParser.java
@@ -1,13 +1,14 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete;
-import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.IqPacketParser;
import de.thedevstack.conversationsplus.xmpp.exceptions.UnexpectedIqPacketTypeException;
import de.thedevstack.conversationsplus.xmpp.exceptions.XmppException;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
import de.thedevstack.conversationsplus.xmpp.utils.ErrorIqPacketExceptionHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+
/**
* Created by steckbrief on 21.08.2016.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotRequestPacket.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotRequestPacket.java
index e389d851..67deeb6f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotRequestPacket.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/DeleteSlotRequestPacket.java
@@ -1,8 +1,9 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete;
-import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Created by steckbrief on 21.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/FileTransferHttpDeleteSlotRequestPacketGenerator.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/FileTransferHttpDeleteSlotRequestPacketGenerator.java
index ac7de74e..fa0f7a34 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/FileTransferHttpDeleteSlotRequestPacketGenerator.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/delete/FileTransferHttpDeleteSlotRequestPacketGenerator.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.delete;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Created by steckbrief on 21.08.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/HttpUploadRequestSlotPacketGenerator.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/HttpUploadRequestSlotPacketGenerator.java
index eaa90ab0..cdb957c4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/HttpUploadRequestSlotPacketGenerator.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/HttpUploadRequestSlotPacketGenerator.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Generates the IQ Packets for requesting a http upload slot
@@ -33,7 +33,7 @@ public final class HttpUploadRequestSlotPacketGenerator {
public static IqPacket generate(Jid host, String filename, long filesize, String mime) {
SlotRequestPacket packet = new SlotRequestPacket(filename, filesize);
packet.setTo(host);
- packet.setMime((mime == null) ? HttpUpload.DEFAULT_MIME_TYPE : mime);
+ packet.setMime((mime == null || mime.isEmpty()) ? HttpUpload.DEFAULT_MIME_TYPE : mime);
return packet;
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotPacketParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotPacketParser.java
index 85d11b6b..40e7db96 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotPacketParser.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotPacketParser.java
@@ -1,12 +1,13 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload;
-import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.IqPacketParser;
import de.thedevstack.conversationsplus.xmpp.exceptions.UnexpectedIqPacketTypeException;
import de.thedevstack.conversationsplus.xmpp.exceptions.XmppException;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
import de.thedevstack.conversationsplus.xmpp.utils.ErrorIqPacketExceptionHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+
/**
*
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotRequestPacket.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotRequestPacket.java
index d0866508..30c5db79 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotRequestPacket.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/filetransfer/http/upload/SlotRequestPacket.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
*
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/httpuploadim/HttpUploadHint.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/httpuploadim/HttpUploadHint.java
index 13fb5ad1..00bd1158 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/httpuploadim/HttpUploadHint.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/httpuploadim/HttpUploadHint.java
@@ -1,6 +1,6 @@
package de.thedevstack.conversationsplus.xmpp.httpuploadim;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
/**
* Representation of the HttpUploadHint.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnJinglePacketReceived.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnJinglePacketReceived.java
deleted file mode 100644
index c87fd400..00000000
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnJinglePacketReceived.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
-
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xmpp.PacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.JinglePacket;
-
-public interface OnJinglePacketReceived extends PacketReceived {
- void onJinglePacketReceived(Account account, JinglePacket packet);
-}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacket.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacket.java
index fe485de0..31186191 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacket.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacket.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.pubsub;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Representation of a PubSub IQ packet as defined in XEP-0060.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketGenerator.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketGenerator.java
index a93c37aa..f72bf777 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketGenerator.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketGenerator.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.pubsub;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Generates the IQ packets for Pubsub Subscription as defined in XEP-0060.
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketParser.java
index 0f803b56..c8df0d5e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketParser.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/pubsub/PubSubPacketParser.java
@@ -1,7 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.pubsub;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
/**
* Parses the IQ Packets for handling pubsub
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacketGenerator.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacketGenerator.java
index 27e6607f..bdf0f4b0 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacketGenerator.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacketGenerator.java
@@ -1,5 +1,7 @@
package de.thedevstack.conversationsplus.xmpp.stanzas;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+
/**
* Created by tzur on 15.01.2016.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/utils/ErrorIqPacketExceptionHelper.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/utils/ErrorIqPacketExceptionHelper.java
index f02d8d46..15771248 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/utils/ErrorIqPacketExceptionHelper.java
+++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/utils/ErrorIqPacketExceptionHelper.java
@@ -1,6 +1,5 @@
package de.thedevstack.conversationsplus.xmpp.utils;
-import de.thedevstack.conversationsplus.xml.Element;
import de.thedevstack.conversationsplus.xmpp.IqPacketParser;
import de.thedevstack.conversationsplus.xmpp.exceptions.BadRequestIqErrorException;
import de.thedevstack.conversationsplus.xmpp.exceptions.InternalServerErrorException;
@@ -8,6 +7,8 @@ import de.thedevstack.conversationsplus.xmpp.exceptions.IqPacketErrorException;
import de.thedevstack.conversationsplus.xmpp.exceptions.ServiceUnavailableException;
import de.thedevstack.conversationsplus.xmpp.exceptions.UndefinedConditionException;
+import eu.siacs.conversations.xml.Element;
+
/**
* Created by steckbrief on 22.08.2016.
*/
diff --git a/src/main/java/de/thedevstack/conversationsplus/Config.java b/src/main/java/eu/siacs/conversations/Config.java
index a6825246..a9297c81 100644
--- a/src/main/java/de/thedevstack/conversationsplus/Config.java
+++ b/src/main/java/eu/siacs/conversations/Config.java
@@ -1,8 +1,9 @@
-package de.thedevstack.conversationsplus;
+package eu.siacs.conversations;
import android.graphics.Bitmap;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
+import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
public final class Config {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/OtrService.java b/src/main/java/eu/siacs/conversations/crypto/OtrService.java
index 34023d9f..4ddf51fb 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/OtrService.java
+++ b/src/main/java/eu/siacs/conversations/crypto/OtrService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto;
+package eu.siacs.conversations.crypto;
import net.java.otr4j.OtrEngineHost;
import net.java.otr4j.OtrException;
@@ -26,15 +26,15 @@ import java.security.spec.InvalidKeySpecException;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.generator.MessageGenerator;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.generator.MessageGenerator;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
public class OtrService extends OtrCryptoEngineImpl implements OtrEngineHost {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/PgpDecryptionService.java b/src/main/java/eu/siacs/conversations/crypto/PgpDecryptionService.java
index b833f6e4..5afbe5c4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/PgpDecryptionService.java
+++ b/src/main/java/eu/siacs/conversations/crypto/PgpDecryptionService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto;
+package eu.siacs.conversations.crypto;
import android.app.PendingIntent;
@@ -7,9 +7,9 @@ import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.UiCallback;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.UiCallback;
public class PgpDecryptionService {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/PgpEngine.java b/src/main/java/eu/siacs/conversations/crypto/PgpEngine.java
index c97b8395..4ad01089 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/PgpEngine.java
+++ b/src/main/java/eu/siacs/conversations/crypto/PgpEngine.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto;
+package eu.siacs.conversations.crypto;
import android.app.PendingIntent;
import android.content.Intent;
@@ -17,16 +17,16 @@ import java.io.OutputStream;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.UiCallback;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.UiCallback;
public class PgpEngine {
private OpenPgpApi api;
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/XmppDomainVerifier.java b/src/main/java/eu/siacs/conversations/crypto/XmppDomainVerifier.java
index c9f65a97..1fca865e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/XmppDomainVerifier.java
+++ b/src/main/java/eu/siacs/conversations/crypto/XmppDomainVerifier.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto;
+package eu.siacs.conversations.crypto;
import android.util.Log;
import android.util.Pair;
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlService.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java
index 52418553..a066faad 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlService.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -12,12 +12,12 @@ import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Set;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.xmpp.OnAdvancedStreamFeaturesLoaded;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.OnAdvancedStreamFeaturesLoaded;
+import eu.siacs.conversations.xmpp.jid.Jid;
/**
* Created by tzur on 02.03.2016.
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceImpl.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceImpl.java
index 215e0995..f91dc066 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceImpl.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceImpl.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.os.Bundle;
import android.security.KeyChain;
@@ -33,23 +33,24 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.parser.IqParser;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.utils.SerialSingleThreadExecutor;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnAdvancedStreamFeaturesLoaded;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.parser.IqParser;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.SerialSingleThreadExecutor;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnAdvancedStreamFeaturesLoaded;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class AxolotlServiceImpl implements OnAdvancedStreamFeaturesLoaded, AxolotlService {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceStub.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceStub.java
index 7db99b75..0152d02a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/AxolotlServiceStub.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlServiceStub.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -13,11 +13,11 @@ import java.util.Collections;
import java.util.List;
import java.util.Set;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.jid.Jid;
/**
* Axolotl Service Stub implementation to avoid axolotl usage.
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/CryptoFailedException.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/CryptoFailedException.java
index df281248..5796ef30 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/CryptoFailedException.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/CryptoFailedException.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
public class CryptoFailedException extends Exception {
public CryptoFailedException(Exception e){
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/NoSessionsCreatedException.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/NoSessionsCreatedException.java
index bcb1c6a8..663b42b5 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/NoSessionsCreatedException.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/NoSessionsCreatedException.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
public class NoSessionsCreatedException extends Throwable{
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/OnMessageCreatedCallback.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/OnMessageCreatedCallback.java
index 082b514b..3d40a408 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/OnMessageCreatedCallback.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/OnMessageCreatedCallback.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
public interface OnMessageCreatedCallback {
void run(XmppAxolotlMessage message);
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/SQLiteAxolotlStore.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/SQLiteAxolotlStore.java
index 35f630bb..c634d877 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/SQLiteAxolotlStore.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/SQLiteAxolotlStore.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.util.Log;
import android.util.LruCache;
@@ -19,9 +19,9 @@ import java.security.cert.X509Certificate;
import java.util.List;
import java.util.Set;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.XmppConnectionService;
public class SQLiteAxolotlStore implements AxolotlStore {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlMessage.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlMessage.java
index 837b601c..cf950d6d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlMessage.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlMessage.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.util.Base64;
import android.util.Log;
@@ -21,9 +21,9 @@ import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class XmppAxolotlMessage {
public static final String CONTAINERTAG = "encrypted";
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlSession.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlSession.java
index 47b2133a..93ed32a2 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/axolotl/XmppAxolotlSession.java
+++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/XmppAxolotlSession.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.axolotl;
+package eu.siacs.conversations.crypto.axolotl;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -22,8 +22,8 @@ import org.whispersystems.libaxolotl.protocol.WhisperMessage;
import java.util.HashMap;
import java.util.Map;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Account;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
public class XmppAxolotlSession {
private final SessionCipher cipher;
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/DigestMd5.java b/src/main/java/eu/siacs/conversations/crypto/sasl/DigestMd5.java
index f4c3f28e..8b16215b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/DigestMd5.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/DigestMd5.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import android.util.Base64;
@@ -8,9 +8,9 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.xml.TagWriter;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.xml.TagWriter;
public class DigestMd5 extends SaslMechanism {
public DigestMd5(final TagWriter tagWriter, final Account account, final SecureRandom rng) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/External.java b/src/main/java/eu/siacs/conversations/crypto/sasl/External.java
index dc50cbbe..8fd91cf4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/External.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/External.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import android.util.Base64;
import java.security.SecureRandom;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xml.TagWriter;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xml.TagWriter;
public class External extends SaslMechanism {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Plain.java b/src/main/java/eu/siacs/conversations/crypto/sasl/Plain.java
index 179c12de..40a55151 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Plain.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/Plain.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import android.util.Base64;
import java.nio.charset.Charset;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xml.TagWriter;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xml.TagWriter;
public class Plain extends SaslMechanism {
public Plain(final TagWriter tagWriter, final Account account) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/SaslMechanism.java b/src/main/java/eu/siacs/conversations/crypto/sasl/SaslMechanism.java
index 1f6d2bde..5b4b99ef 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/SaslMechanism.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/SaslMechanism.java
@@ -1,9 +1,9 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import java.security.SecureRandom;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xml.TagWriter;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xml.TagWriter;
public abstract class SaslMechanism {
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/ScramSha1.java b/src/main/java/eu/siacs/conversations/crypto/sasl/ScramSha1.java
index 3540d2cf..3a05446c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/ScramSha1.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/ScramSha1.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import android.util.Base64;
import android.util.LruCache;
@@ -13,9 +13,9 @@ import java.nio.charset.Charset;
import java.security.InvalidKeyException;
import java.security.SecureRandom;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.xml.TagWriter;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.xml.TagWriter;
public class ScramSha1 extends SaslMechanism {
// TODO: When channel binding (SCRAM-SHA1-PLUS) is supported in future, generalize this to indicate support and/or usage.
diff --git a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Tokenizer.java b/src/main/java/eu/siacs/conversations/crypto/sasl/Tokenizer.java
index cc2805de..e37e0fa7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/crypto/sasl/Tokenizer.java
+++ b/src/main/java/eu/siacs/conversations/crypto/sasl/Tokenizer.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.crypto.sasl;
+package eu.siacs.conversations.crypto.sasl;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/AbstractEntity.java b/src/main/java/eu/siacs/conversations/entities/AbstractEntity.java
index ebc0a8d5..957b0a14 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/AbstractEntity.java
+++ b/src/main/java/eu/siacs/conversations/entities/AbstractEntity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java
index 2ee76504..9b4198c8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Account.java
+++ b/src/main/java/eu/siacs/conversations/entities/Account.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
import android.database.Cursor;
@@ -20,18 +20,19 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.OtrService;
-import de.thedevstack.conversationsplus.crypto.PgpDecryptionService;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlServiceImpl;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlServiceStub;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
import de.thedevstack.conversationsplus.utils.SimpleCryptoUtil;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.OtrService;
+import eu.siacs.conversations.crypto.PgpDecryptionService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlServiceImpl;
+import eu.siacs.conversations.crypto.axolotl.AxolotlServiceStub;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Account extends AbstractEntity {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Blockable.java b/src/main/java/eu/siacs/conversations/entities/Blockable.java
index beff901d..dbcd55c4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Blockable.java
+++ b/src/main/java/eu/siacs/conversations/entities/Blockable.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jid.Jid;
public interface Blockable {
public boolean isBlocked();
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Bookmark.java b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
index 07a77eae..fa30443d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Bookmark.java
+++ b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.graphics.Color;
@@ -6,10 +6,10 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.utils.UIHelper;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Bookmark extends Element implements ListItem {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Contact.java b/src/main/java/eu/siacs/conversations/entities/Contact.java
index 8f73be1d..9b4be366 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Contact.java
+++ b/src/main/java/eu/siacs/conversations/entities/Contact.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
import android.database.Cursor;
@@ -12,12 +12,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.utils.UIHelper;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
public class Contact implements ListItem, Blockable {
public static final String TABLENAME = "contacts";
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java
index c0ae56fd..299c5f7d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Conversation.java
+++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
import android.database.Cursor;
@@ -21,12 +21,13 @@ import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
+import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Conversation extends AbstractEntity implements Blockable {
public static final String TABLENAME = "conversations";
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/DownloadableFile.java b/src/main/java/eu/siacs/conversations/entities/DownloadableFile.java
index 101475c3..4e63a66a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/DownloadableFile.java
+++ b/src/main/java/eu/siacs/conversations/entities/DownloadableFile.java
@@ -1,8 +1,8 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.io.File;
-import de.thedevstack.conversationsplus.utils.MimeUtils;
+import eu.siacs.conversations.utils.MimeUtils;
public class DownloadableFile extends File {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/ListItem.java b/src/main/java/eu/siacs/conversations/entities/ListItem.java
index 24dc7e94..56804fbf 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/ListItem.java
+++ b/src/main/java/eu/siacs/conversations/entities/ListItem.java
@@ -1,8 +1,8 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.util.List;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jid.Jid;
public interface ListItem extends Comparable<ListItem> {
String getDisplayName();
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Message.java b/src/main/java/eu/siacs/conversations/entities/Message.java
index a81ba404..f524fc58 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Message.java
+++ b/src/main/java/eu/siacs/conversations/entities/Message.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
import android.database.Cursor;
@@ -6,12 +6,15 @@ import android.database.Cursor;
import java.net.MalformedURLException;
import java.net.URL;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
+import de.thedevstack.conversationsplus.entities.FileParams;
import de.thedevstack.conversationsplus.enums.FileStatus;
-import de.thedevstack.conversationsplus.utils.FileUtils;
-import de.thedevstack.conversationsplus.utils.MimeUtils;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import de.thedevstack.conversationsplus.utils.MessageUtil;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.utils.MimeUtils;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Message extends AbstractEntity {
@@ -64,7 +67,7 @@ public class Message extends AbstractEntity {
protected String conversationUuid;
protected Jid counterpart;
protected Jid trueCounterpart;
- protected String body;
+ private String body;
protected String encryptedBody;
protected long timeSent;
protected int encryption;
@@ -337,7 +340,7 @@ public class Message extends AbstractEntity {
public void setType(int type) {
this.type = type;
- if (null != this.fileParams && (type == Message.TYPE_FILE || type == Message.TYPE_IMAGE)) {
+ if (null == this.fileParams && (type == Message.TYPE_FILE || type == Message.TYPE_IMAGE)) {
this.setFileParams(new FileParams());
}
}
@@ -480,18 +483,6 @@ public class Message extends AbstractEntity {
NOT_DECIDED,
}
- private String extractRelevantExtension(URL url) {
- if (url == null) {
- return null;
- }
- String path = url.getPath();
- return extractRelevantExtension(path);
- }
-
- private String extractRelevantExtension(String path) {
- return FileUtils.getRelevantExtension(path);
- }
-
public String getMimeType() { // TODO: Move to fileparams
if (relativeFilePath != null) {
int start = relativeFilePath.lastIndexOf('.') + 1;
@@ -502,7 +493,7 @@ public class Message extends AbstractEntity {
}
} else {
try {
- return MimeUtils.guessMimeTypeFromExtension(extractRelevantExtension(new URL(this.getBody())));
+ return MimeUtils.guessMimeTypeFromExtension(FileUtils.getRelevantExtension(new URL(this.getBody())));
} catch (MalformedURLException e) {
return null;
}
@@ -525,50 +516,9 @@ public class Message extends AbstractEntity {
if (mTreatAsDownloadAble != Decision.NOT_DECIDED) {
return mTreatAsDownloadAble;
}
- /**
- * there are a few cases where spaces result in an unwanted behavior, e.g.
- * "http://example.com/image.jpg" text that will not be shown /abc.png"
- * or more than one image link in one message.
- */
- if (getBody().contains(" ")) {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
- try {
- URL url = new URL(body);
- if (!url.getProtocol().equalsIgnoreCase("http") && !url.getProtocol().equalsIgnoreCase("https")) {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
- String extension = extractRelevantExtension(url);
- if (extension == null) {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
- String ref = url.getRef();
- boolean encrypted = ref != null && ref.matches("([A-Fa-f0-9]{2}){48}");
- if (encrypted) {
- if (MimeUtils.guessMimeTypeFromExtension(extension) != null) {
- mTreatAsDownloadAble = Decision.MUST;
- return mTreatAsDownloadAble;
- } else {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
- } else if (Transferable.VALID_IMAGE_EXTENSIONS.contains(extension)
- || Transferable.WELL_KNOWN_EXTENSIONS.contains(extension)) {
- mTreatAsDownloadAble = Decision.SHOULD;
- return mTreatAsDownloadAble;
- } else {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
-
- } catch (MalformedURLException e) {
- mTreatAsDownloadAble = Decision.NEVER;
- return mTreatAsDownloadAble;
- }
+ MessageUtil.extractFileParamsFromBody(this);
+ return this.mTreatAsDownloadAble;
}
public void untie() {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
index 1af538ec..7681a3d4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/MucOptions.java
+++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.annotation.SuppressLint;
@@ -10,12 +10,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
@SuppressLint("DefaultLocale")
public class MucOptions {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Presence.java b/src/main/java/eu/siacs/conversations/entities/Presence.java
index d4f2871d..442f1bca 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Presence.java
+++ b/src/main/java/eu/siacs/conversations/entities/Presence.java
@@ -1,9 +1,9 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.lang.Comparable;
import java.util.Locale;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public class Presence implements Comparable {
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java
index d32e931c..813eda7a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Presences.java
+++ b/src/main/java/eu/siacs/conversations/entities/Presences.java
@@ -1,7 +1,10 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.util.Collections;
import java.util.Hashtable;
+import java.util.Iterator;
+
+import eu.siacs.conversations.xml.Element;
public class Presences {
private final Hashtable<String, Presence> presences = new Hashtable<>();
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Roster.java b/src/main/java/eu/siacs/conversations/entities/Roster.java
index ec1a9426..d3ad9181 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Roster.java
+++ b/src/main/java/eu/siacs/conversations/entities/Roster.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Roster {
final Account account;
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/ServiceDiscoveryResult.java b/src/main/java/eu/siacs/conversations/entities/ServiceDiscoveryResult.java
index 562d95b7..a8f60e39 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/ServiceDiscoveryResult.java
+++ b/src/main/java/eu/siacs/conversations/entities/ServiceDiscoveryResult.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import android.content.ContentValues;
import android.database.Cursor;
@@ -15,10 +15,10 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class ServiceDiscoveryResult {
public static final String TABLENAME = "discovery_results";
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/Transferable.java b/src/main/java/eu/siacs/conversations/entities/Transferable.java
index 8e2ca20e..5a47c451 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/Transferable.java
+++ b/src/main/java/eu/siacs/conversations/entities/Transferable.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/de/thedevstack/conversationsplus/entities/TransferablePlaceholder.java b/src/main/java/eu/siacs/conversations/entities/TransferablePlaceholder.java
index c51320d1..e065953e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/entities/TransferablePlaceholder.java
+++ b/src/main/java/eu/siacs/conversations/entities/TransferablePlaceholder.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.entities;
+package eu.siacs.conversations.entities;
public class TransferablePlaceholder implements Transferable {
diff --git a/src/main/java/de/thedevstack/conversationsplus/generator/AbstractGenerator.java b/src/main/java/eu/siacs/conversations/generator/AbstractGenerator.java
index 2d825f2c..649f767d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/generator/AbstractGenerator.java
+++ b/src/main/java/eu/siacs/conversations/generator/AbstractGenerator.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.generator;
+package eu.siacs.conversations.generator;
import android.util.Base64;
@@ -14,7 +14,7 @@ import java.util.TimeZone;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
public abstract class AbstractGenerator {
private final String[] FEATURES = {
diff --git a/src/main/java/de/thedevstack/conversationsplus/generator/IqGenerator.java b/src/main/java/eu/siacs/conversations/generator/IqGenerator.java
index 2d4c8f6a..012a5943 100644
--- a/src/main/java/de/thedevstack/conversationsplus/generator/IqGenerator.java
+++ b/src/main/java/eu/siacs/conversations/generator/IqGenerator.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.generator;
+package eu.siacs.conversations.generator;
import android.util.Base64;
@@ -16,17 +16,18 @@ import java.util.List;
import java.util.Set;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.services.MessageArchiveService;
-import de.thedevstack.conversationsplus.utils.Xmlns;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.services.MessageArchiveService;
+import eu.siacs.conversations.utils.Xmlns;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class IqGenerator extends AbstractGenerator {
diff --git a/src/main/java/de/thedevstack/conversationsplus/generator/MessageGenerator.java b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java
index 678f2c75..582d64e6 100644
--- a/src/main/java/de/thedevstack/conversationsplus/generator/MessageGenerator.java
+++ b/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.generator;
+package eu.siacs.conversations.generator;
import net.java.otr4j.OtrException;
import net.java.otr4j.session.Session;
@@ -10,16 +10,17 @@ import java.util.Locale;
import java.util.TimeZone;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlMessage;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
import de.thedevstack.conversationsplus.xmpp.httpuploadim.HttpUploadHint;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
+
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlMessage;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
public class MessageGenerator extends AbstractGenerator {
diff --git a/src/main/java/de/thedevstack/conversationsplus/generator/PresenceGenerator.java b/src/main/java/eu/siacs/conversations/generator/PresenceGenerator.java
index f370c6e0..9ac7d318 100644
--- a/src/main/java/de/thedevstack/conversationsplus/generator/PresenceGenerator.java
+++ b/src/main/java/eu/siacs/conversations/generator/PresenceGenerator.java
@@ -1,10 +1,10 @@
-package de.thedevstack.conversationsplus.generator;
+package eu.siacs.conversations.generator;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
public class PresenceGenerator extends AbstractGenerator {
diff --git a/src/main/java/de/thedevstack/conversationsplus/http/HttpConnectionManager.java b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java
index 686587c7..e3398f93 100644
--- a/src/main/java/de/thedevstack/conversationsplus/http/HttpConnectionManager.java
+++ b/src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.http;
+package eu.siacs.conversations.http;
import org.apache.http.conn.ssl.StrictHostnameVerifier;
@@ -18,11 +18,13 @@ import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.AbstractConnectionManager;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.SSLSocketHelper;
+
+import de.thedevstack.conversationsplus.utils.MessageUtil;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.AbstractConnectionManager;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.SSLSocketHelper;
public class HttpConnectionManager extends AbstractConnectionManager {
private static HttpConnectionManager INSTANCE;
@@ -38,11 +40,14 @@ public class HttpConnectionManager extends AbstractConnectionManager {
}
public static HttpDownloadConnection createNewDownloadConnection(Message message, boolean interactive) {
+ if (MessageUtil.needsDownload(message)) {
HttpDownloadConnection connection = new HttpDownloadConnection(INSTANCE);
connection.init(message, interactive);
INSTANCE.downloadConnections.add(connection);
return connection;
}
+ return null;
+ }
public void finishConnection(HttpDownloadConnection connection) {
this.downloadConnections.remove(connection);
diff --git a/src/main/java/de/thedevstack/conversationsplus/http/HttpDownloadConnection.java b/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java
index d9fc9584..77b8e333 100644
--- a/src/main/java/de/thedevstack/conversationsplus/http/HttpDownloadConnection.java
+++ b/src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.http;
+package eu.siacs.conversations.http;
import android.os.PowerManager;
import android.util.Log;
@@ -18,23 +18,25 @@ import javax.net.ssl.SSLHandshakeException;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
+import de.thedevstack.conversationsplus.entities.FileParams;
import de.thedevstack.conversationsplus.enums.FileStatus;
import de.thedevstack.conversationsplus.exceptions.RemoteFileNotFoundException;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.AbstractConnectionManager;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.FileUtils;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.AbstractConnectionManager;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.FileUtils;
+
public class HttpDownloadConnection implements Transferable {
private HttpConnectionManager mHttpConnectionManager;
@@ -75,8 +77,22 @@ public class HttpDownloadConnection implements Transferable {
this.message = message;
this.message.setTransferable(this);
try {
- mUrl = new URL(message.getFileParams().getUrl());
- final String sUrlFilename = mUrl.getPath().substring(mUrl.getPath().lastIndexOf('/')).toLowerCase();
+ String url = (null != message && null != message.getFileParams()) ? message.getFileParams().getUrl() : null;
+ if (null == url) {
+ /*
+ * If this code is reached and the URL is null something went wrong.
+ * Try again to extract the file parameters from the message.
+ */
+ MessageUtil.extractFileParamsFromBody(message);
+ url = (null != message.getFileParams()) ? message.getFileParams().getUrl() : null;
+ if (null == url) {
+ message.setTreatAsDownloadable(Message.Decision.NEVER); // TODO find sth better
+ this.cancel();
+ return;
+ }
+ }
+ mUrl = new URL(url);
+ final String sUrlFilename = mUrl.getPath().substring(mUrl.getPath().lastIndexOf('/') + 1).toLowerCase();
final String lastPart = FileUtils.getLastExtension(sUrlFilename);
if (!lastPart.isEmpty() && ("pgp".equals(lastPart) || "gpg".equals(lastPart))) {
@@ -85,18 +101,25 @@ public class HttpDownloadConnection implements Transferable {
&& message.getEncryption() != Message.ENCRYPTION_AXOLOTL) {
this.message.setEncryption(Message.ENCRYPTION_NONE);
}
+
String extension;
+ String originalFilename;
if (!lastPart.isEmpty() && VALID_CRYPTO_EXTENSIONS.contains(lastPart)) {
extension = FileUtils.getSecondToLastExtension(sUrlFilename);
+ originalFilename = sUrlFilename.replace("." + lastPart, "");
} else {
extension = lastPart;
+ originalFilename = sUrlFilename;
}
message.setRelativeFilePath(message.getUuid() + "." + extension);
this.file = FileBackend.getFile(message, false);
- String reference = mUrl.getRef();
- if (reference != null && reference.length() == 96) {
- this.file.setKeyAndIv(CryptoHelper.hexToBytes(reference));
+
+ FileParams fileParams = message.getFileParams();
+ if (null == fileParams) {
+ fileParams = new FileParams();
+ message.setFileParams(fileParams);
}
+ fileParams.setOriginalFilename(originalFilename);
if ((this.message.getEncryption() == Message.ENCRYPTION_OTR
|| this.message.getEncryption() == Message.ENCRYPTION_AXOLOTL)
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
index bebe41d0..ad368f11 100644
--- a/src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
@@ -1,16 +1,16 @@
-package de.thedevstack.conversationsplus.parser;
+package eu.siacs.conversations.parser;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public abstract class AbstractParser {
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/IqParser.java b/src/main/java/eu/siacs/conversations/parser/IqParser.java
index e13936c5..c03ed42f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/parser/IqParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/IqParser.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.parser;
+package eu.siacs.conversations.parser;
import android.support.annotation.NonNull;
import android.util.Base64;
@@ -23,18 +23,18 @@ import java.util.Map;
import java.util.Set;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.Xmlns;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.Xmlns;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class IqParser extends AbstractParser implements OnIqPacketReceived {
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index b02677a8..b68e7014 100644
--- a/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.parser;
+package eu.siacs.conversations.parser;
import android.util.Log;
import android.util.Pair;
@@ -18,28 +18,28 @@ import java.util.Set;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.AvatarUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.OtrService;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlServiceImpl;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlMessage;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Bookmark;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.MessageArchiveService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnMessagePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.OtrService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlServiceImpl;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlMessage;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Bookmark;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.MessageArchiveService;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnMessagePacketReceived;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
public class MessageParser extends AbstractParser implements
OnMessagePacketReceived {
@@ -469,14 +469,17 @@ public class MessageParser extends AbstractParser implements
if (message.getEncryption() == Message.ENCRYPTION_NONE || !ConversationsPlusPreferences.dontSaveEncrypted()) {
mXmppConnectionService.databaseBackend.createMessage(message);
}
+ MessageUtil.extractFileParamsFromBody(message);
+ FileParams fileParams = message.getFileParams();
+ if (message.treatAsDownloadable() != Message.Decision.NEVER && message.treatAsDownloadable() != Message.Decision.NOT_DECIDED) {
+ if (null != fileParams) {
+ fileParams.setFileStatus(FileStatus.NEEDS_DOWNLOAD);
+ }
+ }
if (message.trusted()
&& message.treatAsDownloadable() != Message.Decision.NEVER
&& ConversationsPlusPreferences.autoAcceptFileSize() > 0
&& (message.isHttpUploaded() || ConversationsPlusPreferences.autoDownloadFileLink())) {
- FileParams fileParams = new FileParams();
- fileParams.setFileStatus(FileStatus.NEEDS_DOWNLOAD);
- fileParams.setUrl(message.getBody());
- message.setFileParams(fileParams);
HttpConnectionManager.createNewDownloadConnection(message);
} else {
if (query == null) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
index e86e657e..3d933364 100644
--- a/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.parser;
+package eu.siacs.conversations.parser;
import android.util.Log;
@@ -6,26 +6,26 @@ import java.util.ArrayList;
import java.util.List;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
import de.thedevstack.conversationsplus.utils.AvatarUtil;
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.generator.PresenceGenerator;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnPresencePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.generator.PresenceGenerator;
+import eu.siacs.conversations.persistance.DatabaseBackend;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnPresencePacketReceived;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
public class PresenceParser extends AbstractParser implements
OnPresencePacketReceived {
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
index e721afbb..793b050f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/DatabaseBackend.java
+++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.persistance;
+package eu.siacs.conversations.persistance;
import android.content.ContentValues;
import android.content.Context;
@@ -34,22 +34,24 @@ import java.util.concurrent.CopyOnWriteArrayList;
import org.json.JSONException;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
+
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlServiceImpl;
-import de.thedevstack.conversationsplus.crypto.axolotl.SQLiteAxolotlStore;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Roster;
-import de.thedevstack.conversationsplus.entities.ServiceDiscoveryResult;
import de.thedevstack.conversationsplus.persistance.db.access.CursorHelper;
import de.thedevstack.conversationsplus.persistance.db.access.MessageDatabaseAccess;
import de.thedevstack.conversationsplus.utils.SimpleCryptoUtil;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlServiceImpl;
+import eu.siacs.conversations.crypto.axolotl.SQLiteAxolotlStore;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Roster;
+import eu.siacs.conversations.entities.ServiceDiscoveryResult;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class DatabaseBackend extends SQLiteOpenHelper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java
index a35ed043..c7cf722d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/FileBackend.java
+++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.persistance;
+package eu.siacs.conversations.persistance;
import android.content.Intent;
import android.graphics.Bitmap;
@@ -24,13 +24,14 @@ import de.thedevstack.conversationsplus.entities.FileParams;
import de.thedevstack.conversationsplus.exceptions.FileCopyException;
import de.thedevstack.conversationsplus.persistance.observers.FileDeletionObserver;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.XmppConnectionService;
+
public class FileBackend {
private static final SimpleDateFormat imageDateFormat = new SimpleDateFormat("yyyyMMdd_HHmmssSSS", Locale.US);
private static FileBackend INSTANCE;
@@ -107,7 +108,18 @@ public class FileBackend {
}
public static DownloadableFile getFile(Message message, boolean decrypted) {
- return new DownloadableFile(getFilePath(message, decrypted));
+ DownloadableFile downloadableFile = new DownloadableFile(getFilePath(message, decrypted));
+ FileParams fileParams = message.getFileParams();
+ if (null != fileParams) {
+ if (null != fileParams.getKey()) {
+ downloadableFile.setKey(fileParams.getKey());
+ }
+ if (null != fileParams.getIv()) {
+ downloadableFile.setIv(fileParams.getIv());
+ }
+ }
+
+ return downloadableFile;
}
protected static String getFilePath(Message message, String extension) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/OnPhoneContactsMerged.java b/src/main/java/eu/siacs/conversations/persistance/OnPhoneContactsMerged.java
index cfbb6ef1..6a457b17 100644
--- a/src/main/java/de/thedevstack/conversationsplus/persistance/OnPhoneContactsMerged.java
+++ b/src/main/java/eu/siacs/conversations/persistance/OnPhoneContactsMerged.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.persistance;
+package eu.siacs.conversations.persistance;
public interface OnPhoneContactsMerged {
public void phoneContactsMerged();
diff --git a/src/main/java/de/thedevstack/conversationsplus/providers/ConversationsPlusFileProvider.java b/src/main/java/eu/siacs/conversations/providers/ConversationsPlusFileProvider.java
index a718b161..2146ea53 100644
--- a/src/main/java/de/thedevstack/conversationsplus/providers/ConversationsPlusFileProvider.java
+++ b/src/main/java/eu/siacs/conversations/providers/ConversationsPlusFileProvider.java
@@ -1,10 +1,10 @@
-package de.thedevstack.conversationsplus.providers;
+package eu.siacs.conversations.providers;
import android.net.Uri;
import android.support.v4.content.FileProvider;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
+import eu.siacs.conversations.entities.DownloadableFile;
/**
* Created by lookshe on 27.03.16.
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/AbstractConnectionManager.java b/src/main/java/eu/siacs/conversations/services/AbstractConnectionManager.java
index 5456430a..dbee8720 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/AbstractConnectionManager.java
+++ b/src/main/java/eu/siacs/conversations/services/AbstractConnectionManager.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.Manifest;
import android.content.Context;
@@ -30,9 +30,10 @@ import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.DownloadableFile;
public class AbstractConnectionManager {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/AvatarService.java b/src/main/java/eu/siacs/conversations/services/AvatarService.java
index ed9c259f..16d9539a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/AvatarService.java
+++ b/src/main/java/eu/siacs/conversations/services/AvatarService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -20,26 +20,26 @@ import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.thedevstack.conversationsplus.xmpp.avatar.AvatarPacketGenerator;
import de.thedevstack.conversationsplus.xmpp.avatar.AvatarPacketParser;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Bookmark;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.generator.IqGenerator;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.ui.UiCallback;
-import de.thedevstack.conversationsplus.utils.UIHelper;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnAdvancedStreamFeaturesLoaded;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Bookmark;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.generator.IqGenerator;
+import eu.siacs.conversations.persistance.DatabaseBackend;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.ui.UiCallback;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnAdvancedStreamFeaturesLoaded;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.pep.Avatar;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class AvatarService implements OnAdvancedStreamFeaturesLoaded {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/ContactChooserTargetService.java b/src/main/java/eu/siacs/conversations/services/ContactChooserTargetService.java
index 6256609c..e59c03d9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/ContactChooserTargetService.java
+++ b/src/main/java/eu/siacs/conversations/services/ContactChooserTargetService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.annotation.TargetApi;
import android.content.ComponentName;
@@ -16,8 +16,8 @@ import android.service.chooser.ChooserTargetService;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.ui.ShareWithActivity;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.ui.ShareWithActivity;
@TargetApi(Build.VERSION_CODES.M)
public class ContactChooserTargetService extends ChooserTargetService implements ServiceConnection {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/EventReceiver.java b/src/main/java/eu/siacs/conversations/services/EventReceiver.java
index 85e92552..ceab1592 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/EventReceiver.java
+++ b/src/main/java/eu/siacs/conversations/services/EventReceiver.java
@@ -1,10 +1,10 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
+import eu.siacs.conversations.persistance.DatabaseBackend;
public class EventReceiver extends BroadcastReceiver {
@Override
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/ExportLogsService.java b/src/main/java/eu/siacs/conversations/services/ExportLogsService.java
index 0dcfa05e..38c8e1d4 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/ExportLogsService.java
+++ b/src/main/java/eu/siacs/conversations/services/ExportLogsService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.app.NotificationManager;
import android.app.Service;
@@ -16,13 +16,13 @@ import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.persistance.DatabaseBackend;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ExportLogsService extends Service {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/MessageArchiveService.java b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
index 6402f4ed..e76eb16b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/MessageArchiveService.java
+++ b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.util.Pair;
@@ -9,17 +9,18 @@ import java.util.Iterator;
import java.util.List;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.generator.AbstractGenerator;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnAdvancedStreamFeaturesLoaded;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.generator.AbstractGenerator;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnAdvancedStreamFeaturesLoaded;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java b/src/main/java/eu/siacs/conversations/services/NotificationService.java
index f4388b21..d11661fa 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/NotificationService.java
+++ b/src/main/java/eu/siacs/conversations/services/NotificationService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.app.Notification;
import android.app.NotificationManager;
@@ -32,15 +32,15 @@ import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.ImageUtil;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.ui.ManageAccountActivity;
-import de.thedevstack.conversationsplus.utils.GeoHelper;
-import de.thedevstack.conversationsplus.utils.UIHelper;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.ui.ManageAccountActivity;
+import eu.siacs.conversations.utils.GeoHelper;
+import eu.siacs.conversations.utils.UIHelper;
public class NotificationService {
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
index 83cefc80..90f9027a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/XmppConnectionService.java
+++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.services;
+package eu.siacs.conversations.services;
import android.annotation.SuppressLint;
import android.app.AlarmManager;
@@ -64,61 +64,64 @@ import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
import de.thedevstack.conversationsplus.utils.XmppSendUtil;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlMessage;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Blockable;
-import de.thedevstack.conversationsplus.entities.Bookmark;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.entities.MucOptions.OnRenameListener;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.entities.Roster;
-import de.thedevstack.conversationsplus.entities.ServiceDiscoveryResult;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
-import de.thedevstack.conversationsplus.generator.IqGenerator;
-import de.thedevstack.conversationsplus.generator.MessageGenerator;
-import de.thedevstack.conversationsplus.generator.PresenceGenerator;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.parser.IqParser;
-import de.thedevstack.conversationsplus.parser.MessageParser;
-import de.thedevstack.conversationsplus.parser.PresenceParser;
-import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.ui.UiCallback;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.ExceptionHelper;
-import de.thedevstack.conversationsplus.utils.OnPhoneContactsLoadedListener;
-import de.thedevstack.conversationsplus.utils.PhoneHelper;
-import de.thedevstack.conversationsplus.utils.Xmlns;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnBindListener;
-import de.thedevstack.conversationsplus.xmpp.OnContactStatusChanged;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.OnKeyStatusUpdated;
-import de.thedevstack.conversationsplus.xmpp.OnMessageAcknowledged;
-import de.thedevstack.conversationsplus.xmpp.OnMessagePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.OnPresencePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.OnStatusChanged;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.jingle.JingleConnectionManager;
-import de.thedevstack.conversationsplus.xmpp.jingle.OnJinglePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.JinglePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlMessage;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Blockable;
+import eu.siacs.conversations.entities.Bookmark;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.entities.MucOptions.OnRenameListener;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.entities.Roster;
+import eu.siacs.conversations.entities.ServiceDiscoveryResult;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.generator.IqGenerator;
+import eu.siacs.conversations.generator.MessageGenerator;
+import eu.siacs.conversations.generator.PresenceGenerator;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.parser.IqParser;
+import eu.siacs.conversations.parser.MessageParser;
+import eu.siacs.conversations.parser.PresenceParser;
+import eu.siacs.conversations.persistance.DatabaseBackend;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.ui.UiCallback;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.ExceptionHelper;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.utils.OnPhoneContactsLoadedListener;
+import eu.siacs.conversations.utils.PhoneHelper;
+import eu.siacs.conversations.utils.Xmlns;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnBindListener;
+import eu.siacs.conversations.xmpp.OnContactStatusChanged;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
+import eu.siacs.conversations.xmpp.OnMessageAcknowledged;
+import eu.siacs.conversations.xmpp.OnMessagePacketReceived;
+import eu.siacs.conversations.xmpp.OnPresencePacketReceived;
+import eu.siacs.conversations.xmpp.OnStatusChanged;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jingle.JingleConnectionManager;
+import eu.siacs.conversations.xmpp.jingle.OnJinglePacketReceived;
+import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
+
import me.leolin.shortcutbadger.ShortcutBadger;
public class XmppConnectionService extends Service implements OnPhoneContactsLoadedListener {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/AboutActivity.java b/src/main/java/eu/siacs/conversations/ui/AboutActivity.java
index fd8a187a..a61b872a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/AboutActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/AboutActivity.java
@@ -1,9 +1,9 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.Activity;
import android.os.Bundle;
-import de.thedevstack.conversationsplus.R;
+import eu.siacs.conversations.R;
public class AboutActivity extends Activity {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/AboutPreference.java b/src/main/java/eu/siacs/conversations/ui/AboutPreference.java
index 8a02b680..b9e5c367 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/AboutPreference.java
+++ b/src/main/java/eu/siacs/conversations/ui/AboutPreference.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Context;
import android.content.Intent;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/AbstractSearchableListItemActivity.java b/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java
index b8e57f47..1a9fc95c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/AbstractSearchableListItemActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/AbstractSearchableListItemActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Context;
import android.os.Bundle;
@@ -15,9 +15,9 @@ import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.ui.adapter.ListItemAdapter;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.ui.adapter.ListItemAdapter;
public abstract class AbstractSearchableListItemActivity extends XmppActivity {
private ListView mListView;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/BlockContactDialog.java b/src/main/java/eu/siacs/conversations/ui/BlockContactDialog.java
index 589f565c..9cf7e9f8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/BlockContactDialog.java
+++ b/src/main/java/eu/siacs/conversations/ui/BlockContactDialog.java
@@ -1,12 +1,12 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Blockable;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Blockable;
+import eu.siacs.conversations.services.XmppConnectionService;
public final class BlockContactDialog {
public static void show(final Context context,
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/BlocklistActivity.java b/src/main/java/eu/siacs/conversations/ui/BlocklistActivity.java
index 377d0e02..5a85c17b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/BlocklistActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/BlocklistActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.os.Bundle;
import android.text.Editable;
@@ -7,10 +7,10 @@ import android.widget.AdapterView;
import java.util.Collections;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class BlocklistActivity extends AbstractSearchableListItemActivity implements OnUpdateBlocklist {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ChangePasswordActivity.java b/src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java
index 2e063757..9f4a4bc3 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ChangePasswordActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ChangePasswordActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.os.Bundle;
import android.view.View;
@@ -7,11 +7,12 @@ import android.widget.EditText;
import android.widget.Toast;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.XmppConnectionService;
+
public class ChangePasswordActivity extends XmppActivity implements XmppConnectionService.OnAccountPasswordChanged {
private Button mChangePasswordButton;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ChooseContactActivity.java b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java
index 29860434..c5357a5e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ChooseContactActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Context;
import android.content.Intent;
@@ -19,12 +19,12 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ChooseContactActivity extends AbstractSearchableListItemActivity {
private List<String> mActivatedAccounts = new ArrayList<String>();
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConferenceDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java
index 2a3cd7fe..eac2c1b8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ConferenceDetailsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.annotation.TargetApi;
import android.app.AlertDialog;
@@ -31,21 +31,22 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.concurrent.atomic.AtomicInteger;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Bookmark;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.entities.MucOptions.User;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnConversationUpdate;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnMucRosterUpdate;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Bookmark;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.entities.MucOptions.User;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService.OnConversationUpdate;
+import eu.siacs.conversations.services.XmppConnectionService.OnMucRosterUpdate;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ConferenceDetailsActivity extends XmppActivity implements OnConversationUpdate, OnMucRosterUpdate, XmppConnectionService.OnAffiliationChanged, XmppConnectionService.OnRoleChanged, XmppConnectionService.OnConferenceOptionsPushed {
public static final String ACTION_VIEW_MUC = "view_muc";
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ContactDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
index 3ca9fce7..b11564a9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ContactDetailsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.AlertDialog;
import android.app.PendingIntent;
@@ -34,24 +34,24 @@ import java.util.List;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.ui.listeners.ShowResourcesListDialogListener;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.PgpEngine;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnAccountUpdate;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnRosterUpdate;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.UIHelper;
-import de.thedevstack.conversationsplus.xmpp.OnKeyStatusUpdated;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.PgpEngine;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
+import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ContactDetailsActivity extends XmppActivity implements OnAccountUpdate, OnRosterUpdate, OnUpdateBlocklist, OnKeyStatusUpdated {
public static final String ACTION_VIEW_CONTACT = "view_contact";
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index 99d26b64..4466dd22 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.annotation.SuppressLint;
import android.app.ActionBar;
@@ -45,33 +45,35 @@ import java.util.concurrent.atomic.AtomicBoolean;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
import de.thedevstack.conversationsplus.ui.dialogs.UserDecisionDialog;
import de.thedevstack.conversationsplus.ui.listeners.ResizePictureUserDecisionListener;
import de.thedevstack.conversationsplus.utils.ConversationUtil;
import de.timroes.android.listview.EnhancedListView;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlServiceImpl;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Blockable;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnAccountUpdate;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnConversationUpdate;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnRosterUpdate;
-import de.thedevstack.conversationsplus.ui.adapter.ConversationAdapter;
-import de.thedevstack.conversationsplus.utils.ExceptionHelper;
-import de.thedevstack.conversationsplus.utils.FileUtils;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.AxolotlServiceImpl;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Blockable;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.http.HttpDownloadConnection;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
+import eu.siacs.conversations.services.XmppConnectionService.OnConversationUpdate;
+import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate;
+import eu.siacs.conversations.ui.adapter.ConversationAdapter;
+import eu.siacs.conversations.utils.ExceptionHelper;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ConversationActivity extends XmppActivity
implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast {
@@ -621,7 +623,10 @@ public class ConversationActivity extends XmppActivity
Toast.makeText(this, R.string.not_connected_try_again, Toast.LENGTH_SHORT).show();
}
} else if (message.treatAsDownloadable() != Message.Decision.NEVER) {
- HttpConnectionManager.createNewDownloadConnection(message, true);
+ HttpDownloadConnection downloadConnection = HttpConnectionManager.createNewDownloadConnection(message, true);
+ if (null == downloadConnection) {
+ Toast.makeText(this, R.string.file_not_on_remote_host, Toast.LENGTH_LONG).show();
+ }
}
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index 0c2f2960..08f49551 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.Activity;
import android.app.AlertDialog;
@@ -41,41 +41,46 @@ import net.java.otr4j.session.SessionStatus;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.UUID;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.http.HttpConnectionManager;
-import de.thedevstack.conversationsplus.http.HttpDownloadConnection;
import de.thedevstack.conversationsplus.services.filetransfer.http.delete.DeleteRemoteFileService;
import de.thedevstack.conversationsplus.ui.dialogs.SimpleConfirmDialog;
import de.thedevstack.conversationsplus.ui.dialogs.MessageDetailsDialog;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.XmppActivity.OnPresenceSelected;
-import de.thedevstack.conversationsplus.ui.XmppActivity.OnValueEdited;
-import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter;
-import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter.OnContactPictureClicked;
-import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
-import de.thedevstack.conversationsplus.ui.listeners.ConversationSwipeRefreshListener;
import de.thedevstack.conversationsplus.ui.listeners.DeleteFileCallback;
import de.thedevstack.conversationsplus.ui.listeners.SimpleUserDecisionCallback;
import de.thedevstack.conversationsplus.ui.listeners.UserDecisionListener;
-import de.thedevstack.conversationsplus.utils.GeoHelper;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.utils.UIHelper;
-import de.thedevstack.conversationsplus.xmpp.chatstate.ChatState;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.http.HttpDownloadConnection;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.XmppActivity.OnPresenceSelected;
+import eu.siacs.conversations.ui.XmppActivity.OnValueEdited;
+import eu.siacs.conversations.ui.adapter.MessageAdapter;
+import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked;
+import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
+import eu.siacs.conversations.ui.listeners.ConversationSwipeRefreshListener;
+import eu.siacs.conversations.utils.GeoHelper;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xmpp.chatstate.ChatState;
+import eu.siacs.conversations.xmpp.jid.Jid;
+
import github.ankushsachdeva.emojicon.EmojiconGridView;
import github.ankushsachdeva.emojicon.EmojiconsPopup;
import github.ankushsachdeva.emojicon.emoji.Emojicon;
@@ -688,7 +693,10 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
}
private void downloadFile(Message message) {
- HttpConnectionManager.createNewDownloadConnection(message,true);
+ HttpDownloadConnection downloadConnection = HttpConnectionManager.createNewDownloadConnection(message, true);
+ if (null == downloadConnection) {
+ Toast.makeText(activity, R.string.file_not_on_remote_host, Toast.LENGTH_LONG).show();
+ }
}
private void cancelTransmission(Message message) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
index 1a868949..d63516bc 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/EditAccountActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
@@ -41,26 +41,27 @@ import java.util.concurrent.atomic.AtomicInteger;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.ui.listeners.ShowResourcesListDialogListener;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnAccountUpdate;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnCaptchaRequested;
-import de.thedevstack.conversationsplus.ui.adapter.KnownHostsAdapter;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.UIHelper;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnKeyStatusUpdated;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection.Features;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
+import eu.siacs.conversations.services.XmppConnectionService.OnCaptchaRequested;
+import eu.siacs.conversations.ui.adapter.KnownHostsAdapter;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.XmppConnection.Features;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.pep.Avatar;
public class EditAccountActivity extends XmppActivity implements OnAccountUpdate,
OnKeyStatusUpdated, OnCaptchaRequested, KeyChainAliasCallback, XmppConnectionService.OnShowErrorToast, XmppConnectionService.OnMamPreferencesFetched {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/EditMessage.java b/src/main/java/eu/siacs/conversations/ui/EditMessage.java
index 5664434f..06868a98 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/EditMessage.java
+++ b/src/main/java/eu/siacs/conversations/ui/EditMessage.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.KeyEvent;
-import de.thedevstack.conversationsplus.Config;
+import eu.siacs.conversations.Config;
import github.ankushsachdeva.emojicon.EmojiconEditText;
public class EditMessage extends EmojiconEditText {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/EnterJidDialog.java b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java
index 9e52d390..a6b3c73c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/EnterJidDialog.java
+++ b/src/main/java/eu/siacs/conversations/ui/EnterJidDialog.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.AlertDialog;
import android.content.Context;
@@ -11,11 +11,11 @@ import android.widget.TextView;
import java.util.List;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.ui.adapter.KnownHostsAdapter;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.ui.adapter.KnownHostsAdapter;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class EnterJidDialog {
public interface OnEnterJidDialogPositiveListener {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ExportLogsPreference.java b/src/main/java/eu/siacs/conversations/ui/ExportLogsPreference.java
index 54fe3910..bedb4172 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ExportLogsPreference.java
+++ b/src/main/java/eu/siacs/conversations/ui/ExportLogsPreference.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.Manifest;
import android.content.Context;
@@ -8,7 +8,7 @@ import android.os.Build;
import android.preference.Preference;
import android.util.AttributeSet;
-import de.thedevstack.conversationsplus.services.ExportLogsService;
+import eu.siacs.conversations.services.ExportLogsService;
public class ExportLogsPreference extends Preference {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ManageAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java
index e376b6b3..c83a0275 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ManageAccountActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.ActionBar;
import android.app.AlertDialog;
@@ -27,14 +27,14 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnAccountUpdate;
-import de.thedevstack.conversationsplus.ui.adapter.AccountAdapter;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate;
+import eu.siacs.conversations.ui.adapter.AccountAdapter;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ManageAccountActivity extends XmppActivity implements OnAccountUpdate, KeyChainAliasCallback, XmppConnectionService.OnAccountCreated {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/PublishProfilePictureActivity.java b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
index 6793d882..1916947b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/PublishProfilePictureActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.PendingIntent;
import android.content.Intent;
@@ -24,15 +24,16 @@ import java.io.FileNotFoundException;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
import de.thedevstack.conversationsplus.utils.ImageUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.utils.ExifHelper;
-import de.thedevstack.conversationsplus.utils.FileUtils;
-import de.thedevstack.conversationsplus.utils.PhoneHelper;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
-import de.thedevstack.conversationsplus.xmpp.pep.Avatar;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.utils.ExifHelper;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.utils.PhoneHelper;
+import eu.siacs.conversations.xmpp.pep.Avatar;
public class PublishProfilePictureActivity extends XmppActivity {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
index 296f8f4f..6dd8a84f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/SettingsActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.AlertDialog;
import android.app.FragmentManager;
@@ -24,12 +24,14 @@ import java.util.Locale;
import de.duenndns.ssl.MemorizingTrustManager;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.services.ExportLogsService;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.ExportLogsService;
+import eu.siacs.conversations.xmpp.XmppConnection;
+
import github.ankushsachdeva.emojicon.EmojiconHandler;
public class SettingsActivity extends XmppActivity implements
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/SettingsFragment.java b/src/main/java/eu/siacs/conversations/ui/SettingsFragment.java
index a549ff94..e4185abc 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/SettingsFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/SettingsFragment.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.Dialog;
import android.os.Bundle;
@@ -11,7 +11,7 @@ import android.view.ViewParent;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
-import de.thedevstack.conversationsplus.R;
+import eu.siacs.conversations.R;
public class SettingsFragment extends PreferenceFragment {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/ShareWithActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
index 28e8beb8..7fcd6b33 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/ShareWithActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.PendingIntent;
import android.content.Intent;
@@ -23,18 +23,19 @@ import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.ui.dialogs.UserDecisionDialog;
import de.thedevstack.conversationsplus.ui.listeners.ResizePictureUserDecisionListener;
import de.thedevstack.conversationsplus.ui.listeners.ShareWithResizePictureUserDecisionListener;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.adapter.ConversationAdapter;
import de.thedevstack.conversationsplus.utils.ConversationUtil;
-import de.thedevstack.conversationsplus.utils.FileUtils;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.adapter.ConversationAdapter;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ShareWithActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java
index 2dc8d1a5..188cd3fe 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/StartConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.Manifest;
import android.annotation.SuppressLint;
@@ -57,23 +57,23 @@ import java.util.concurrent.atomic.AtomicBoolean;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Blockable;
-import de.thedevstack.conversationsplus.entities.Bookmark;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.OnRosterUpdate;
-import de.thedevstack.conversationsplus.ui.adapter.KnownHostsAdapter;
-import de.thedevstack.conversationsplus.ui.adapter.ListItemAdapter;
-import de.thedevstack.conversationsplus.utils.XmppUri;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.XmppConnection;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Blockable;
+import eu.siacs.conversations.entities.Bookmark;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.services.XmppConnectionService.OnRosterUpdate;
+import eu.siacs.conversations.ui.adapter.KnownHostsAdapter;
+import eu.siacs.conversations.ui.adapter.ListItemAdapter;
+import eu.siacs.conversations.utils.XmppUri;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.XmppConnection;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class StartConversationActivity extends XmppActivity implements OnRosterUpdate, OnUpdateBlocklist {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/TimePreference.java b/src/main/java/eu/siacs/conversations/ui/TimePreference.java
index bfe7c8f4..e32b068c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/TimePreference.java
+++ b/src/main/java/eu/siacs/conversations/ui/TimePreference.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Context;
import android.content.res.TypedArray;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/TrustKeysActivity.java b/src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java
index dfddbb78..02a9823d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/TrustKeysActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/TrustKeysActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.content.Intent;
import android.os.Bundle;
@@ -19,15 +19,16 @@ import java.util.Map;
import java.util.Set;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
-import de.thedevstack.conversationsplus.xmpp.OnKeyStatusUpdated;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class TrustKeysActivity extends XmppActivity implements OnKeyStatusUpdated {
private List<Jid> contactJids;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/UiCallback.java b/src/main/java/eu/siacs/conversations/ui/UiCallback.java
index d5291b80..d056d628 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/UiCallback.java
+++ b/src/main/java/eu/siacs/conversations/ui/UiCallback.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.PendingIntent;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/VerifyOTRActivity.java b/src/main/java/eu/siacs/conversations/ui/VerifyOTRActivity.java
index 4f1c9fc7..a310b6ce 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/VerifyOTRActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/VerifyOTRActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.app.ActionBar;
import android.app.AlertDialog;
@@ -20,16 +20,17 @@ import net.java.otr4j.OtrException;
import net.java.otr4j.session.Session;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.XmppUri;
import de.thedevstack.conversationsplus.utils.ui.TextViewUtil;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.XmppUri;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class VerifyOTRActivity extends XmppActivity implements XmppConnectionService.OnConversationUpdate {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
index 726facac..26b7909b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/XmppActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui;
+package eu.siacs.conversations.ui;
import android.Manifest;
import android.annotation.SuppressLint;
@@ -73,23 +73,24 @@ import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.ImageUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.MucOptions;
-import de.thedevstack.conversationsplus.entities.Presences;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.services.XmppConnectionService.XmppConnectionBinder;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.ExceptionHelper;
-import de.thedevstack.conversationsplus.xmpp.OnKeyStatusUpdated;
-import de.thedevstack.conversationsplus.xmpp.OnUpdateBlocklist;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.MucOptions;
+import eu.siacs.conversations.entities.Presences;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.services.XmppConnectionService.XmppConnectionBinder;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.ExceptionHelper;
+import eu.siacs.conversations.xmpp.OnKeyStatusUpdated;
+import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public abstract class XmppActivity extends Activity {
@@ -932,7 +933,7 @@ public abstract class XmppActivity extends Activity {
public NdefMessage createNdefMessage(NfcEvent nfcEvent) {
return new NdefMessage(new NdefRecord[]{
NdefRecord.createUri(getShareableUri()),
- NdefRecord.createApplicationRecord("de.thedevstack.conversationsplus")
+ NdefRecord.createApplicationRecord("eu.siacs.conversations")
});
}
}, this);
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/AccountAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java
index ee209576..55d3f5a7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/AccountAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.adapter;
+package eu.siacs.conversations.ui.adapter;
import android.content.Context;
import android.view.LayoutInflater;
@@ -12,13 +12,14 @@ import android.widget.TextView;
import java.util.List;
-import de.thedevstack.conversationsplus.Config;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.ui.ManageAccountActivity;
-import de.thedevstack.conversationsplus.ui.XmppActivity;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.ui.ManageAccountActivity;
+import eu.siacs.conversations.ui.XmppActivity;
public class AccountAdapter extends ArrayAdapter<Account> {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/ConversationAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java
index e0e672e3..317dcc78 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/ConversationAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.adapter;
+package eu.siacs.conversations.ui.adapter;
import android.content.Context;
import android.content.res.Resources;
@@ -24,15 +24,16 @@ import de.thedevstack.conversationsplus.ConversationsPlusColors;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.ui.listeners.ShowResourcesListDialogListener;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.ui.XmppActivity;
-import de.thedevstack.conversationsplus.utils.UIHelper;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Presences;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.ui.XmppActivity;
+import eu.siacs.conversations.utils.UIHelper;
public class ConversationAdapter extends ArrayAdapter<Conversation> {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/KnownHostsAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/KnownHostsAdapter.java
index 41973089..39bfc082 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/KnownHostsAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/KnownHostsAdapter.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.adapter;
+package eu.siacs.conversations.ui.adapter;
import android.content.Context;
import android.widget.ArrayAdapter;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/ListItemAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java
index a67f5bcd..29d706c7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/ListItemAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.adapter;
+package eu.siacs.conversations.ui.adapter;
import android.content.Context;
import android.content.res.Resources;
@@ -20,11 +20,12 @@ import java.util.concurrent.RejectedExecutionException;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.tzur.conversations.Settings;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.ListItem;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.ui.XmppActivity;
-import de.thedevstack.conversationsplus.utils.UIHelper;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.ListItem;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.ui.XmppActivity;
+import eu.siacs.conversations.utils.UIHelper;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ListItemAdapter extends ArrayAdapter<ListItem> {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index dd190576..0e0e086f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.adapter;
+package eu.siacs.conversations.ui.adapter;
import android.content.ActivityNotFoundException;
import android.content.Intent;
@@ -18,9 +18,7 @@ import android.text.style.ForegroundColorSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.StyleSpan;
import android.text.util.Linkify;
-import android.util.DisplayMetrics;
import android.util.Patterns;
-import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
@@ -33,7 +31,6 @@ import android.widget.TextView;
import android.widget.Toast;
import java.lang.ref.WeakReference;
-import java.net.URL;
import java.util.List;
import java.util.concurrent.RejectedExecutionException;
import java.util.regex.Matcher;
@@ -42,23 +39,25 @@ import java.util.regex.Pattern;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlSession;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
import de.thedevstack.conversationsplus.entities.FileParams;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
import de.thedevstack.conversationsplus.enums.FileStatus;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.providers.ConversationsPlusFileProvider;
-import de.thedevstack.conversationsplus.services.AvatarService;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.GeoHelper;
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.utils.UIHelper;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlSession;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.http.HttpConnectionManager;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.providers.ConversationsPlusFileProvider;
+import eu.siacs.conversations.services.AvatarService;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.GeoHelper;
+import eu.siacs.conversations.utils.UIHelper;
public class MessageAdapter extends ArrayAdapter<Message> {
@@ -74,15 +73,12 @@ public class MessageAdapter extends ArrayAdapter<Message> {
private ConversationActivity activity;
- private DisplayMetrics metrics;
-
private OnContactPictureClicked mOnContactPictureClickedListener;
private OnContactPictureLongClicked mOnContactPictureLongClickedListener;
public MessageAdapter(ConversationActivity activity, List<Message> messages) {
super(activity, 0, messages);
this.activity = activity;
- metrics = getContext().getResources().getDisplayMetrics();
}
public void setOnContactPictureClicked(OnContactPictureClicked listener) {
@@ -135,12 +131,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
if (message.hasFileAttached() || message.getTransferable() != null) {
FileParams params = message.getFileParams();
if (null != params) {
- long size = params.getSize();
- if (size > (1.5 * 1024 * 1024)) {
- filesize = size / (1024 * 1024)+ " MiB";
- } else if (size > 0) {
- filesize = size / 1024 + " KiB";
- }
+ filesize = UIHelper.getHumanReadableFileSize(params.getSize());
}
if (message.getTransferable() != null && message.getTransferable().getStatus() == Transferable.STATUS_FAILED) {
@@ -221,15 +212,11 @@ public class MessageAdapter extends ArrayAdapter<Message> {
String formatedTime = UIHelper.readableTimeDifferenceFull(getContext(),
message.getTimeSent());
if (message.getStatus() <= Message.STATUS_RECEIVED) {
- if ((filesize != null) && (info != null)) {
- viewHolder.time.setText(formatedTime + " \u00B7 " + filesize +" \u00B7 " + info);
- } else if ((filesize == null) && (info != null)) {
- viewHolder.time.setText(formatedTime + " \u00B7 " + info);
- } else if ((filesize != null) && (info == null)) {
- viewHolder.time.setText(formatedTime + " \u00B7 " + filesize);
- } else {
- viewHolder.time.setText(formatedTime);
- }
+ StringBuilder timeText = new StringBuilder();
+ timeText.append((null != formatedTime) ? formatedTime + ((null != info || null != filesize) ? " \u00B7 " : "") : "");
+ timeText.append((null != filesize) ? filesize + ((null != info) ? " \u00B7 " : "") : "");
+ timeText.append((null != info) ? info : "");
+ viewHolder.time.setText(timeText);
} else {
if ((filesize != null) && (info != null)) {
viewHolder.time.setText(filesize + " \u00B7 " + info);
@@ -397,13 +384,38 @@ public class MessageAdapter extends ArrayAdapter<Message> {
return count;
}
- private void displayDownloadableMessage(ViewHolder viewHolder,
- final Message message, String text) {
+ private void displayDownloadButton(ViewHolder viewHolder, String btnText, OnClickListener onClickListener) {
+ viewHolder.download_button.setVisibility(View.VISIBLE);
+ viewHolder.download_button.setText(btnText);
+ viewHolder.download_button.setOnClickListener(onClickListener);
+ viewHolder.download_button.setOnLongClickListener(openContextMenu);
+ }
+
+ private void displayFileInfoForFileMessage(final Message message, ViewHolder viewHolder) {
+ viewHolder.messageBody.setVisibility(View.VISIBLE);
+ StringBuilder fileInfos = new StringBuilder();
+ String filename = UIHelper.getDisplayFilename(message);
+ fileInfos.append((null != filename && !filename.isEmpty()) ? (filename) : "");
+
+ int oldAutoLinkMask = viewHolder.messageBody.getAutoLinkMask();
+ viewHolder.messageBody.setAutoLinkMask(0);
+ viewHolder.messageBody.setText(fileInfos);
+ viewHolder.messageBody.setAutoLinkMask(oldAutoLinkMask);
+ }
+
+ private void displayDownloadableMessage(ViewHolder viewHolder, final Message message, int resId) {
viewHolder.image.setVisibility(View.GONE);
+ FileParams fileParams = message.getFileParams();
+ String btnText;
+ if (null != fileParams) {
+ this.displayFileInfoForFileMessage(message, viewHolder);
+ btnText = activity.getString(resId, "");
+ } else {
viewHolder.messageBody.setVisibility(View.GONE);
- viewHolder.download_button.setVisibility(View.VISIBLE);
- viewHolder.download_button.setText(text);
- viewHolder.download_button.setOnClickListener(new OnClickListener() {
+ btnText = activity.getString(resId, UIHelper.getFileDescriptionString(activity, message));
+ }
+
+ this.displayDownloadButton(viewHolder, btnText, new OnClickListener() {
@Override
public void onClick(View v) {
@@ -414,10 +426,18 @@ public class MessageAdapter extends ArrayAdapter<Message> {
private void displayOpenableMessage(ViewHolder viewHolder,final Message message) {
viewHolder.image.setVisibility(View.GONE);
+
+ FileParams fileParams = message.getFileParams();
+ String btnText;
+ if (null != fileParams) {
+ this.displayFileInfoForFileMessage(message, viewHolder);
+ btnText = activity.getString(R.string.cplus_open);
+ } else {
viewHolder.messageBody.setVisibility(View.GONE);
- viewHolder.download_button.setVisibility(View.VISIBLE);
- viewHolder.download_button.setText(activity.getString(R.string.open_x_file, UIHelper.getFileDescriptionString(activity, message)));
- viewHolder.download_button.setOnClickListener(new OnClickListener() {
+ btnText = activity.getString(R.string.open_x_file, UIHelper.getFileDescriptionString(activity, message));
+ }
+
+ this.displayDownloadButton(viewHolder, btnText, new OnClickListener() {
@Override
public void onClick(View v) {
@@ -474,79 +494,10 @@ public class MessageAdapter extends ArrayAdapter<Message> {
});
}
- @Override
- public View getView(int position, View view, ViewGroup parent) {
- final Message message = getItem(position);
- final boolean isInValidSession = message.isValidInSession();
+ private View displayStatusMessage(final Message message, ViewHolder viewHolder) {
+ if (null != viewHolder) {
final Conversation conversation = message.getConversation();
- final Account account = conversation.getAccount();
- final int type = getItemViewType(position);
- ViewHolder viewHolder;
- if (view == null) {
- viewHolder = new ViewHolder();
- switch (type) {
- case SENT:
- view = activity.getLayoutInflater().inflate(
- R.layout.message_sent, parent, false);
- viewHolder.message_box = (LinearLayout) view
- .findViewById(R.id.message_box);
- viewHolder.contact_picture = (ImageView) view
- .findViewById(R.id.message_photo);
- viewHolder.download_button = (Button) view
- .findViewById(R.id.download_button);
- viewHolder.indicator = (ImageView) view
- .findViewById(R.id.security_indicator);
- viewHolder.image = (ImageView) view
- .findViewById(R.id.message_image);
- viewHolder.messageBody = (TextView) view
- .findViewById(R.id.message_body);
- viewHolder.time = (TextView) view
- .findViewById(R.id.message_time);
- viewHolder.indicatorReceived = (ImageView) view
- .findViewById(R.id.indicator_received);
- viewHolder.remoteFileStatus = (TextView) view.findViewById(R.id.remote_file_status);
- break;
- case RECEIVED:
- view = activity.getLayoutInflater().inflate(
- R.layout.message_received, parent, false);
- viewHolder.message_box = (LinearLayout) view
- .findViewById(R.id.message_box);
- viewHolder.contact_picture = (ImageView) view
- .findViewById(R.id.message_photo);
- viewHolder.download_button = (Button) view
- .findViewById(R.id.download_button);
- viewHolder.indicator = (ImageView) view
- .findViewById(R.id.security_indicator);
- viewHolder.image = (ImageView) view
- .findViewById(R.id.message_image);
- viewHolder.messageBody = (TextView) view
- .findViewById(R.id.message_body);
- viewHolder.time = (TextView) view
- .findViewById(R.id.message_time);
- viewHolder.indicatorReceived = (ImageView) view
- .findViewById(R.id.indicator_received);
- viewHolder.encryption = (TextView) view.findViewById(R.id.message_encryption);
- break;
- case STATUS:
- view = activity.getLayoutInflater().inflate(R.layout.message_status, parent, false);
- viewHolder.contact_picture = (ImageView) view.findViewById(R.id.message_photo);
- viewHolder.status_message = (TextView) view.findViewById(R.id.status_message);
- break;
- default:
- viewHolder = null;
- break;
- }
- view.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) view.getTag();
- if (viewHolder == null) {
- return view;
- }
- }
- boolean darkBackground = (type == RECEIVED && !isInValidSession);
-
- if (type == STATUS) {
viewHolder.status_message.setVisibility(View.VISIBLE);
viewHolder.contact_picture.setVisibility(View.VISIBLE);
if (conversation.getMode() == Conversation.MODE_SINGLE) {
@@ -555,13 +506,55 @@ public class MessageAdapter extends ArrayAdapter<Message> {
viewHolder.contact_picture.setAlpha(0.5f);
}
viewHolder.status_message.setText(message.getBody());
- return view;
+ }
+ return viewHolder.view;
+ }
+
+ private void displayFileMessage(final Message message, ViewHolder viewHolder) {
+ final FileParams fileParams = message.getFileParams();
+ String mimeType = (null != fileParams) ? fileParams.getMimeType() : null;
+ if ((message.getType() == Message.TYPE_IMAGE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED)
+ || (fileParams != null && fileParams.getWidth() > 0)
+ || (null != mimeType && mimeType.startsWith("image/"))) {
+ displayImageMessage(viewHolder, message);
+ } else if ((message.getType() == Message.TYPE_FILE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED)
+ && null != fileParams && (FileStatus.NEEDS_DOWNLOAD != fileParams.getFileStatus() || 0 == fileParams.getWidth())) {
+ displayOpenableMessage(viewHolder, message);
+ } else if (Message.Decision.NEVER == message.treatAsDownloadable()) {
+ displayTextMessage(viewHolder, message, getItemViewType(message) == RECEIVED && !message.isValidInSession());
} else {
- loadAvatar(message, viewHolder.contact_picture);
+ displayDownloadableMessage(viewHolder, message, R.string.download_x_file);
+ }
}
- viewHolder.contact_picture
- .setOnClickListener(new OnClickListener() {
+
+ private void loadAvatar(Message message, ImageView imageView) {
+ if (cancelPotentialWork(message, imageView)) {
+ int avatarPixel = imageView.getResources().getDimensionPixelOffset(R.dimen.msg_avatar_size);
+ final Bitmap bm = AvatarService.getInstance().get(message, avatarPixel, true);
+ if (bm != null) {
+ imageView.setImageBitmap(bm);
+ imageView.setBackgroundColor(0x00000000);
+ } else {
+ imageView.setBackgroundColor(UIHelper.getColorForName(UIHelper.getMessageDisplayName(message)));
+ imageView.setImageDrawable(null);
+ final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
+ final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
+ imageView.setImageDrawable(asyncDrawable);
+ try {
+ task.execute(message);
+ } catch (final RejectedExecutionException ignored) {
+ }
+ }
+ }
+ }
+
+ private void displayAvatar(final Message message, int type, ViewHolder viewHolder) {
+ if (type == RECEIVED) {
+ ImageView imageView = viewHolder.contact_picture;
+ if (null != imageView) {
+ this.loadAvatar(message, imageView);
+ imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -572,8 +565,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
});
- viewHolder.contact_picture
- .setOnLongClickListener(new OnLongClickListener() {
+ if (message.getConversation().getMode() == Conversation.MODE_MULTI) {
+ imageView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
@@ -586,24 +579,121 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
}
});
+ }
+ }
+ }
+ }
- final Transferable transferable = message.getTransferable();
- if (transferable != null && transferable.getStatus() != Transferable.STATUS_UPLOADING) {
- if (transferable.getStatus() == Transferable.STATUS_OFFER) {
- displayDownloadableMessage(viewHolder,message,activity.getString(R.string.download_x_file, UIHelper.getFileDescriptionString(activity, message)));
- } else if (transferable.getStatus() == Transferable.STATUS_OFFER_CHECK_FILESIZE) {
- displayDownloadableMessage(viewHolder, message, activity.getString(R.string.check_x_filesize, UIHelper.getFileDescriptionString(activity, message)));
+ private View initializeView(int type, ViewGroup parent) {
+ Integer viewResId = null;
+
+ switch (type) {
+ case SENT:
+ viewResId = R.layout.message_sent;
+ break;
+ case RECEIVED:
+ viewResId = R.layout.message_received;
+ break;
+ case STATUS:
+ viewResId = R.layout.message_status;
+ break;
+ }
+
+ return activity.getLayoutInflater().inflate(viewResId, parent, false);
+ }
+
+ private ViewHolder initializeViewHolderAndView(Message message, int type, ViewGroup parent) {
+ View view = initializeView(type, parent);
+ ViewHolder viewHolder = new ViewHolder(view);
+ if (SENT == type
+ || RECEIVED == type) {
+ viewHolder.message_box = (LinearLayout) view.findViewById(R.id.message_box);
+ viewHolder.message_box.setVisibility(View.VISIBLE);
+ viewHolder.indicator = (ImageView) view.findViewById(R.id.security_indicator);
+ viewHolder.messageBody = (TextView) view.findViewById(R.id.message_body);
+ viewHolder.time = (TextView) view.findViewById(R.id.message_time);
+ viewHolder.indicatorReceived = (ImageView) view.findViewById(R.id.indicator_received);
+ }
+ if ((SENT == type
+ || RECEIVED == type)) {
+ viewHolder.download_button = (Button) view.findViewById(R.id.download_button);
+ viewHolder.image = (ImageView) view.findViewById(R.id.message_image);
+ }
+ if (RECEIVED == type) { // Extra block as preparation for new /me representation
+ viewHolder.contact_picture = (ImageView) view.findViewById(R.id.message_photo);
+ viewHolder.contact_picture.setVisibility(View.VISIBLE);
+ }
+ if (RECEIVED == type) {
+ viewHolder.encryption = (TextView) view.findViewById(R.id.message_encryption);
+ }
+ if (STATUS == type) {
+ viewHolder.contact_picture = (ImageView) view.findViewById(R.id.message_photo);
+ viewHolder.contact_picture.setVisibility(View.VISIBLE);
+ viewHolder.status_message = (TextView) view.findViewById(R.id.status_message);
+ viewHolder.status_message.setVisibility(View.VISIBLE);
+ }
+ view.setTag(viewHolder);
+
+ return viewHolder;
+ }
+
+ @Override
+ public View getView(int position, View view, ViewGroup parent) {
+ final Message message = getItem(position);
+ final boolean isInValidSession = message.isValidInSession();
+ final Conversation conversation = message.getConversation();
+ final Account account = conversation.getAccount();
+ final int type = getItemViewType(position);
+ ViewHolder viewHolder;
+ if (null == view) {
+ viewHolder = initializeViewHolderAndView(message, type, parent);
+ view = viewHolder.view;
} else {
+ viewHolder = (ViewHolder) view.getTag();
+ if (null == viewHolder) {
+ return view;
+ }
+ }
+
+ if (type == STATUS) {
+ return displayStatusMessage(message, viewHolder);
+ }
+
+ this.displayAvatar(message, type, viewHolder);
+
+ boolean darkBackground = (type == RECEIVED && !isInValidSession);
+ this.displayStatus(viewHolder, message, type, darkBackground);
+
+ final Transferable transferable = message.getTransferable();
+ if (null != transferable) {
+ switch (transferable.getStatus()) {
+ case Transferable.STATUS_OFFER:
+ displayDownloadableMessage(viewHolder, message, R.string.download_x_file);
+ break;
+ case Transferable.STATUS_OFFER_CHECK_FILESIZE:
+ displayDownloadableMessage(viewHolder, message, R.string.check_x_filesize);
+ break;
+ case Transferable.STATUS_UPLOADING:
+ displayFileMessage(message, viewHolder);
+ break;
+ case Transferable.STATUS_DELETED:
+ case Transferable.STATUS_CHECKING:
+ case Transferable.STATUS_FAILED:
+ case Transferable.STATUS_UNKNOWN:
displayInfoMessage(viewHolder, UIHelper.getMessagePreview(activity, message).first,darkBackground);
+ break;
}
- } else if (message.getType() == Message.TYPE_IMAGE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
- displayImageMessage(viewHolder, message);
- } else if (message.getType() == Message.TYPE_FILE && message.getEncryption() != Message.ENCRYPTION_PGP && message.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
- if (message.getFileParams() != null && message.getFileParams().getWidth() > 0) { // TODO Use FileParams.getMimeType()
- displayImageMessage(viewHolder,message);
+ } else if (message.hasFileAttached()) {
+ if (message.trusted()
+ && MessageUtil.needsDownload(message)
+ && ConversationsPlusPreferences.autoAcceptFileSize() > 0
+ && (message.isHttpUploaded() || ConversationsPlusPreferences.autoDownloadFileLink())) {
+ HttpConnectionManager.createNewDownloadConnection(message);
} else {
- displayOpenableMessage(viewHolder, message);
+ displayFileMessage(message, viewHolder);
}
+ } else if (GeoHelper.isGeoUri(message.getBody())) {
+ displayLocationMessage(viewHolder, message);
} else if (message.getEncryption() == Message.ENCRYPTION_PGP) {
if (activity.hasPgp()) {
if (account.getPgpDecryptionService().isRunning()) {
@@ -626,35 +716,9 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
} else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) {
displayDecryptionFailed(viewHolder,darkBackground);
- } else if (message.hasFileAttached()) { // TODO: Move to a single block with Message.TYPE_FILE OR Message.TYPE_IMAGE
- FileParams fileParams = message.getFileParams();
- String mimeType = (null != fileParams) ? fileParams.getMimeType() : null;
- if (null != mimeType && mimeType.startsWith("image/")) {
- displayImageMessage(viewHolder, message);
- } else {
- displayOpenableMessage(viewHolder, message);
- }
- } else {
- if (GeoHelper.isGeoUri(message.getBody())) {
- displayLocationMessage(viewHolder,message);
- } else if (MessageUtil.needsDownload(message)) {
- try {
- URL url = new URL(message.getFileParams().getUrl());
- displayDownloadableMessage(viewHolder,
- message,
- activity.getString(R.string.check_x_filesize_on_host,
- UIHelper.getFileDescriptionString(activity, message),
- url.getHost()));
- } catch (Exception e) {
- displayDownloadableMessage(viewHolder,
- message,
- activity.getString(R.string.check_x_filesize,
- UIHelper.getFileDescriptionString(activity, message)));
- }
} else {
displayTextMessage(viewHolder, message, darkBackground);
}
- }
if (type == RECEIVED) {
if(isInValidSession) {
@@ -666,8 +730,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
}
- displayStatus(viewHolder, message, type, darkBackground);
-
return view;
}
@@ -735,6 +797,10 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
private static class ViewHolder {
+ protected ViewHolder(View view) {
+ this.view = view;
+ }
+ protected View view;
protected LinearLayout message_box;
protected Button download_button;
@@ -759,7 +825,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
@Override
protected Bitmap doInBackground(Message... params) {
- return AvatarService.getInstance().get(params[0], activity.getPixel(48), isCancelled());
+ int avatarPixel = activity.getResources().getDimensionPixelOffset(R.dimen.msg_avatar_size);
+ return AvatarService.getInstance().get(params[0], avatarPixel, isCancelled());
}
@Override
@@ -774,26 +841,6 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
}
- public void loadAvatar(Message message, ImageView imageView) {
- if (cancelPotentialWork(message, imageView)) {
- final Bitmap bm = AvatarService.getInstance().get(message, activity.getPixel(48), true);
- if (bm != null) {
- imageView.setImageBitmap(bm);
- imageView.setBackgroundColor(0x00000000);
- } else {
- imageView.setBackgroundColor(UIHelper.getColorForName(UIHelper.getMessageDisplayName(message)));
- imageView.setImageDrawable(null);
- final BitmapWorkerTask task = new BitmapWorkerTask(imageView);
- final AsyncDrawable asyncDrawable = new AsyncDrawable(activity.getResources(), null, task);
- imageView.setImageDrawable(asyncDrawable);
- try {
- task.execute(message);
- } catch (final RejectedExecutionException ignored) {
- }
- }
- }
- }
-
public static boolean cancelPotentialWork(Message message, ImageView imageView) {
final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView);
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormBooleanFieldWrapper.java b/src/main/java/eu/siacs/conversations/ui/forms/FormBooleanFieldWrapper.java
index 04c3fe20..6cb357a9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormBooleanFieldWrapper.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormBooleanFieldWrapper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import android.widget.CheckBox;
@@ -7,8 +7,8 @@ import android.widget.CompoundButton;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.xmpp.forms.Field;
public class FormBooleanFieldWrapper extends FormFieldWrapper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldFactory.java b/src/main/java/eu/siacs/conversations/ui/forms/FormFieldFactory.java
index e726b6cc..ee306472 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldFactory.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormFieldFactory.java
@@ -1,10 +1,10 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import java.util.Hashtable;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.forms.Field;
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java b/src/main/java/eu/siacs/conversations/ui/forms/FormFieldWrapper.java
index 662d5bb5..cb504576 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormFieldWrapper.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormFieldWrapper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import android.text.SpannableString;
@@ -10,8 +10,9 @@ import android.view.View;
import java.util.List;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
+
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.xmpp.forms.Field;
public abstract class FormFieldWrapper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormJidSingleFieldWrapper.java b/src/main/java/eu/siacs/conversations/ui/forms/FormJidSingleFieldWrapper.java
index c86653bf..553e8f21 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormJidSingleFieldWrapper.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormJidSingleFieldWrapper.java
@@ -1,14 +1,14 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import android.text.InputType;
import java.util.List;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class FormJidSingleFieldWrapper extends FormTextFieldWrapper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormTextFieldWrapper.java b/src/main/java/eu/siacs/conversations/ui/forms/FormTextFieldWrapper.java
index f825809c..b7dac951 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormTextFieldWrapper.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormTextFieldWrapper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import android.text.Editable;
@@ -10,8 +10,8 @@ import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.xmpp.forms.Field;
public class FormTextFieldWrapper extends FormFieldWrapper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormWrapper.java b/src/main/java/eu/siacs/conversations/ui/forms/FormWrapper.java
index 8ff9efae..eafe95cc 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/forms/FormWrapper.java
+++ b/src/main/java/eu/siacs/conversations/ui/forms/FormWrapper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.forms;
+package eu.siacs.conversations.ui.forms;
import android.content.Context;
import android.widget.LinearLayout;
@@ -6,8 +6,8 @@ import android.widget.LinearLayout;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.forms.Field;
public class FormWrapper {
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationMoreMessagesLoadedListener.java b/src/main/java/eu/siacs/conversations/ui/listeners/ConversationMoreMessagesLoadedListener.java
index 8e2909ad..08916206 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationMoreMessagesLoadedListener.java
+++ b/src/main/java/eu/siacs/conversations/ui/listeners/ConversationMoreMessagesLoadedListener.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.listeners;
+package eu.siacs.conversations.ui.listeners;
import android.view.View;
import android.widget.ListView;
@@ -8,12 +8,12 @@ import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout;
import java.util.List;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.ui.ConversationFragment;
-import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.ui.ConversationFragment;
+import eu.siacs.conversations.ui.adapter.MessageAdapter;
/**
* This listener updates the UI when messages are loaded from the server.
diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationSwipeRefreshListener.java b/src/main/java/eu/siacs/conversations/ui/listeners/ConversationSwipeRefreshListener.java
index 6dc9f4a4..0cbde814 100644
--- a/src/main/java/de/thedevstack/conversationsplus/ui/listeners/ConversationSwipeRefreshListener.java
+++ b/src/main/java/eu/siacs/conversations/ui/listeners/ConversationSwipeRefreshListener.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.ui.listeners;
+package eu.siacs.conversations.ui.listeners;
import android.widget.ListView;
@@ -8,15 +8,15 @@ import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutD
import java.util.List;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.MessageArchiveService;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.ui.ConversationFragment;
-import de.thedevstack.conversationsplus.ui.adapter.MessageAdapter;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.MessageArchiveService;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.ui.ConversationFragment;
+import eu.siacs.conversations.ui.adapter.MessageAdapter;
/**
* This listener starts loading messages from the server.
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/CryptoHelper.java b/src/main/java/eu/siacs/conversations/utils/CryptoHelper.java
index 7e4a4fc5..1ef5fb3f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/CryptoHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/CryptoHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.os.Bundle;
import android.util.Pair;
@@ -21,11 +21,11 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public final class CryptoHelper {
public static final String FILETRANSFER = "?FILETRANSFERv1:";
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/DNSHelper.java b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java
index a0fd9995..9caa53f7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/DNSHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.annotation.TargetApi;
import android.content.Context;
@@ -27,8 +27,8 @@ import de.measite.minidns.util.NameUtil;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.dto.SrvRecord;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class DNSHelper {
private static final String CLIENT_SRV_PREFIX = "_xmpp-client._tcp.";
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHandler.java b/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
index a810b089..4e3ec236 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHandler.java
+++ b/src/main/java/eu/siacs/conversations/utils/ExceptionHandler.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.content.Context;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHelper.java b/src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java
index 913f2ab5..9c8db210 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ExceptionHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.app.AlertDialog;
import android.content.Context;
@@ -17,15 +17,15 @@ import java.util.List;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.ui.ConversationActivity;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.ui.ConversationActivity;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class ExceptionHelper {
public static void init(Context context) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/ExifHelper.java b/src/main/java/eu/siacs/conversations/utils/ExifHelper.java
index 031bdfa5..5e465e94 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/ExifHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/ExifHelper.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import java.io.IOException;
import java.io.InputStream;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/FileUtils.java b/src/main/java/eu/siacs/conversations/utils/FileUtils.java
index ce289968..3633025f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/FileUtils.java
+++ b/src/main/java/eu/siacs/conversations/utils/FileUtils.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.annotation.SuppressLint;
import android.content.ContentResolver;
@@ -13,10 +13,12 @@ import android.provider.MediaStore;
import android.provider.OpenableColumns;
import java.io.File;
+import java.net.URL;
import java.util.List;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
-import de.thedevstack.conversationsplus.entities.Transferable;
+
+import eu.siacs.conversations.entities.Transferable;
public final class FileUtils {
@@ -161,6 +163,14 @@ public final class FileUtils {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
+ public static String getRelevantExtension(URL url) {
+ if (url == null) {
+ return null;
+ }
+ String path = url.getPath();
+ return getRelevantExtension(path);
+ }
+
public static String getRelevantExtension(String path) {
if (path == null || path.isEmpty()) {
return null;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/GeoHelper.java b/src/main/java/eu/siacs/conversations/utils/GeoHelper.java
index 662f797a..74f91a98 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/GeoHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/GeoHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.content.Intent;
import android.net.Uri;
@@ -9,8 +9,8 @@ import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
public class GeoHelper {
private static Pattern GEO_URI = Pattern.compile("geo:([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?(.*))?", Pattern.CASE_INSENSITIVE);
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/MimeUtils.java b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java
index fdf55d2d..d4544424 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/MimeUtils.java
+++ b/src/main/java/eu/siacs/conversations/utils/MimeUtils.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/OnPhoneContactsLoadedListener.java b/src/main/java/eu/siacs/conversations/utils/OnPhoneContactsLoadedListener.java
index eecee159..f18a4ed8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/OnPhoneContactsLoadedListener.java
+++ b/src/main/java/eu/siacs/conversations/utils/OnPhoneContactsLoadedListener.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.os.Bundle;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/PRNGFixes.java b/src/main/java/eu/siacs/conversations/utils/PRNGFixes.java
index 0751809c..5faa1fa7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/PRNGFixes.java
+++ b/src/main/java/eu/siacs/conversations/utils/PRNGFixes.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.os.Build;
import android.os.Process;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/PhoneHelper.java b/src/main/java/eu/siacs/conversations/utils/PhoneHelper.java
index 86a67661..6c1b4bef 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/PhoneHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/PhoneHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.Manifest;
import android.content.Context;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/SSLSocketHelper.java b/src/main/java/eu/siacs/conversations/utils/SSLSocketHelper.java
index 1842e897..3a8c1c0a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/SSLSocketHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/SSLSocketHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.os.Build;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/SerialSingleThreadExecutor.java b/src/main/java/eu/siacs/conversations/utils/SerialSingleThreadExecutor.java
index 4871af43..bfb4668d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/SerialSingleThreadExecutor.java
+++ b/src/main/java/eu/siacs/conversations/utils/SerialSingleThreadExecutor.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import java.util.ArrayDeque;
import java.util.Queue;
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/SocksSocketFactory.java b/src/main/java/eu/siacs/conversations/utils/SocksSocketFactory.java
index 940399c3..04cfa2eb 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/SocksSocketFactory.java
+++ b/src/main/java/eu/siacs/conversations/utils/SocksSocketFactory.java
@@ -1,13 +1,14 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.ByteBuffer;
-import de.thedevstack.conversationsplus.Config;
+import eu.siacs.conversations.Config;
public class SocksSocketFactory {
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java b/src/main/java/eu/siacs/conversations/utils/UIHelper.java
index f27aabb6..d9cdd34c 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/UIHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/UIHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.content.Context;
import android.text.format.DateFormat;
@@ -13,13 +13,15 @@ import java.util.Date;
import java.util.Locale;
import de.thedevstack.conversationsplus.ConversationsPlusColors;
-import de.thedevstack.conversationsplus.R;
-import de.thedevstack.conversationsplus.entities.Contact;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Presence;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+
+import de.thedevstack.conversationsplus.entities.FileParams;
+import eu.siacs.conversations.R;
+import eu.siacs.conversations.entities.Contact;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Presence;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class UIHelper {
@@ -216,9 +218,19 @@ public class UIHelper {
} else if (mime.contains("vcard")) {
return context.getString(R.string.vcard);
} else {
- return message.getRelativeFilePath();
+ String filename = getDisplayFilename(message);
+ if (null == filename) {
+ return context.getString(R.string.file);
+ } else {
+ return filename;
}
}
+ }
+
+ public static String getDisplayFilename(final Message message) {
+ String originalFilename = (null != message.getFileParams()) ? message.getFileParams().getOriginalFilename() : null;
+ return (null != originalFilename) ? originalFilename : message.getRelativeFilePath();
+ }
public static String getMessageDisplayName(final Message message) {
final Conversation conversation = message.getConversation();
@@ -280,7 +292,20 @@ public class UIHelper {
return LOCATION_QUESTIONS.contains(body);
}
- public static String getHumanReadableFileSize(long filesize) {
+ public static String getHumanReadableFileSize(long size) {
+ String filesize;
+ if (size > (1.5 * 1024 * 1024)) {
+ filesize = size / (1024 * 1024)+ " MiB";
+ } else if (size > 0) {
+ filesize = size / 1024 + " KiB";
+ } else {
+ filesize = null;
+ }
+
+ return filesize;
+ }
+
+ public static String getHumanReadableDetailedFileSize(long filesize) {
if (0 > filesize) {
return "?";
}
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/XmlHelper.java b/src/main/java/eu/siacs/conversations/utils/XmlHelper.java
index 1287f73f..4dee07cf 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/XmlHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/XmlHelper.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
public class XmlHelper {
public static String encodeEntities(String content) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java b/src/main/java/eu/siacs/conversations/utils/Xmlns.java
index 35adf6ec..ad30b3e6 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/Xmlns.java
+++ b/src/main/java/eu/siacs/conversations/utils/Xmlns.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
-import de.thedevstack.conversationsplus.Config;
+import eu.siacs.conversations.Config;
public final class Xmlns {
public static final String BLOCKING = "urn:xmpp:blocking";
diff --git a/src/main/java/de/thedevstack/conversationsplus/utils/XmppUri.java b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
index 5d3a2694..92c0241e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/utils/XmppUri.java
+++ b/src/main/java/eu/siacs/conversations/utils/XmppUri.java
@@ -1,12 +1,12 @@
-package de.thedevstack.conversationsplus.utils;
+package eu.siacs.conversations.utils;
import android.net.Uri;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class XmppUri {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xml/Element.java b/src/main/java/eu/siacs/conversations/xml/Element.java
index 429f98db..9152c679 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xml/Element.java
+++ b/src/main/java/eu/siacs/conversations/xml/Element.java
@@ -1,14 +1,14 @@
-package de.thedevstack.conversationsplus.xml;
+package eu.siacs.conversations.xml;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.utils.XmlHelper;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.utils.XmlHelper;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Element {
private final String name;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xml/Tag.java b/src/main/java/eu/siacs/conversations/xml/Tag.java
index 84e37363..b9ef979f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xml/Tag.java
+++ b/src/main/java/eu/siacs/conversations/xml/Tag.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.xml;
+package eu.siacs.conversations.xml;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
-import de.thedevstack.conversationsplus.utils.XmlHelper;
+import eu.siacs.conversations.utils.XmlHelper;
public class Tag {
public static final int NO = -1;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xml/TagWriter.java b/src/main/java/eu/siacs/conversations/xml/TagWriter.java
index c0f028af..f11c1846 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xml/TagWriter.java
+++ b/src/main/java/eu/siacs/conversations/xml/TagWriter.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.xml;
+package eu.siacs.conversations.xml;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.concurrent.LinkedBlockingQueue;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class TagWriter {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xml/XmlReader.java b/src/main/java/eu/siacs/conversations/xml/XmlReader.java
index e02f4fc0..74e65fcd 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xml/XmlReader.java
+++ b/src/main/java/eu/siacs/conversations/xml/XmlReader.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xml;
+package eu.siacs.conversations.xml;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
@@ -12,7 +12,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
+import eu.siacs.conversations.Config;
public class XmlReader {
private XmlPullParser parser;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnAdvancedStreamFeaturesLoaded.java b/src/main/java/eu/siacs/conversations/xmpp/OnAdvancedStreamFeaturesLoaded.java
index 0692232c..e45eba73 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnAdvancedStreamFeaturesLoaded.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnAdvancedStreamFeaturesLoaded.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
-import de.thedevstack.conversationsplus.entities.Account;
+import eu.siacs.conversations.entities.Account;
public interface OnAdvancedStreamFeaturesLoaded {
public void onAdvancedStreamFeaturesAvailable(final Account account);
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnBindListener.java b/src/main/java/eu/siacs/conversations/xmpp/OnBindListener.java
new file mode 100644
index 00000000..f09cf33d
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnBindListener.java
@@ -0,0 +1,7 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.entities.Account;
+
+public interface OnBindListener {
+ public void onBind(Account account);
+}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnContactStatusChanged.java b/src/main/java/eu/siacs/conversations/xmpp/OnContactStatusChanged.java
index 009b33df..20b17f02 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnContactStatusChanged.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnContactStatusChanged.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
-import de.thedevstack.conversationsplus.entities.Contact;
+import eu.siacs.conversations.entities.Contact;
public interface OnContactStatusChanged {
public void onContactStatusChanged(final Contact contact, final boolean online);
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnIqPacketReceived.java b/src/main/java/eu/siacs/conversations/xmpp/OnIqPacketReceived.java
new file mode 100644
index 00000000..a4cff986
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnIqPacketReceived.java
@@ -0,0 +1,8 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+
+public interface OnIqPacketReceived extends PacketReceived {
+ public void onIqPacketReceived(Account account, IqPacket packet);
+}
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnKeyStatusUpdated.java b/src/main/java/eu/siacs/conversations/xmpp/OnKeyStatusUpdated.java
new file mode 100644
index 00000000..e7fc582e
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnKeyStatusUpdated.java
@@ -0,0 +1,7 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+
+public interface OnKeyStatusUpdated {
+ public void onKeyStatusUpdated(AxolotlService.FetchStatus report);
+}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessageAcknowledged.java b/src/main/java/eu/siacs/conversations/xmpp/OnMessageAcknowledged.java
index 7cfa557d..5f670d93 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnMessageAcknowledged.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnMessageAcknowledged.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
-import de.thedevstack.conversationsplus.entities.Account;
+import eu.siacs.conversations.entities.Account;
public interface OnMessageAcknowledged {
public void onMessageAcknowledged(Account account, String id);
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnMessagePacketReceived.java b/src/main/java/eu/siacs/conversations/xmpp/OnMessagePacketReceived.java
new file mode 100644
index 00000000..325e945f
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnMessagePacketReceived.java
@@ -0,0 +1,8 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
+
+public interface OnMessagePacketReceived extends PacketReceived {
+ public void onMessagePacketReceived(Account account, MessagePacket packet);
+}
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnPresencePacketReceived.java b/src/main/java/eu/siacs/conversations/xmpp/OnPresencePacketReceived.java
new file mode 100644
index 00000000..95c1acfc
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnPresencePacketReceived.java
@@ -0,0 +1,8 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
+
+public interface OnPresencePacketReceived extends PacketReceived {
+ public void onPresencePacketReceived(Account account, PresencePacket packet);
+}
diff --git a/src/main/java/eu/siacs/conversations/xmpp/OnStatusChanged.java b/src/main/java/eu/siacs/conversations/xmpp/OnStatusChanged.java
new file mode 100644
index 00000000..ad1d98cb
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnStatusChanged.java
@@ -0,0 +1,7 @@
+package eu.siacs.conversations.xmpp;
+
+import eu.siacs.conversations.entities.Account;
+
+public interface OnStatusChanged {
+ public void onStatusChanged(Account account);
+}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnUpdateBlocklist.java b/src/main/java/eu/siacs/conversations/xmpp/OnUpdateBlocklist.java
index ea7b8c62..92e72cfa 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/OnUpdateBlocklist.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/OnUpdateBlocklist.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
public interface OnUpdateBlocklist {
// Use an enum instead of a boolean to make sure we don't run into the boolean trap
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/PacketReceived.java b/src/main/java/eu/siacs/conversations/xmpp/PacketReceived.java
index 6274aaa2..d4502d73 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/PacketReceived.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/PacketReceived.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
public abstract interface PacketReceived {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
index c5a8fe3b..a5d0321d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/XmppConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp;
+package eu.siacs.conversations.xmpp;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -19,6 +19,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.net.ConnectException;
+import java.net.IDN;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
@@ -52,42 +53,43 @@ import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.dto.SrvRecord;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.XmppDomainVerifier;
-import de.thedevstack.conversationsplus.crypto.sasl.DigestMd5;
-import de.thedevstack.conversationsplus.crypto.sasl.External;
-import de.thedevstack.conversationsplus.crypto.sasl.Plain;
-import de.thedevstack.conversationsplus.crypto.sasl.SaslMechanism;
-import de.thedevstack.conversationsplus.crypto.sasl.ScramSha1;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.ServiceDiscoveryResult;
-import de.thedevstack.conversationsplus.generator.IqGenerator;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.DNSHelper;
-import de.thedevstack.conversationsplus.utils.SSLSocketHelper;
-import de.thedevstack.conversationsplus.utils.Xmlns;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xml.Tag;
-import de.thedevstack.conversationsplus.xml.TagWriter;
-import de.thedevstack.conversationsplus.xml.XmlReader;
-import de.thedevstack.conversationsplus.xmpp.forms.Data;
-import de.thedevstack.conversationsplus.xmpp.forms.Field;
-import de.thedevstack.conversationsplus.xmpp.jid.InvalidJidException;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.jingle.OnJinglePacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.JinglePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractAcknowledgeableStanza;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.csi.ActivePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.csi.InactivePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt.AckPacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt.EnablePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt.RequestPacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt.ResumePacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.XmppDomainVerifier;
+import eu.siacs.conversations.crypto.sasl.DigestMd5;
+import eu.siacs.conversations.crypto.sasl.External;
+import eu.siacs.conversations.crypto.sasl.Plain;
+import eu.siacs.conversations.crypto.sasl.SaslMechanism;
+import eu.siacs.conversations.crypto.sasl.ScramSha1;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.ServiceDiscoveryResult;
+import eu.siacs.conversations.generator.IqGenerator;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.DNSHelper;
+import eu.siacs.conversations.utils.SSLSocketHelper;
+import eu.siacs.conversations.utils.SocksSocketFactory;
+import eu.siacs.conversations.utils.Xmlns;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xml.Tag;
+import eu.siacs.conversations.xml.TagWriter;
+import eu.siacs.conversations.xml.XmlReader;
+import eu.siacs.conversations.xmpp.forms.Data;
+import eu.siacs.conversations.xmpp.forms.Field;
+import eu.siacs.conversations.xmpp.jid.InvalidJidException;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jingle.OnJinglePacketReceived;
+import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
+import eu.siacs.conversations.xmpp.stanzas.AbstractAcknowledgeableStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xmpp.stanzas.MessagePacket;
+import eu.siacs.conversations.xmpp.stanzas.PresencePacket;
+import eu.siacs.conversations.xmpp.stanzas.csi.ActivePacket;
+import eu.siacs.conversations.xmpp.stanzas.csi.InactivePacket;
+import eu.siacs.conversations.xmpp.stanzas.streammgmt.AckPacket;
+import eu.siacs.conversations.xmpp.stanzas.streammgmt.EnablePacket;
+import eu.siacs.conversations.xmpp.stanzas.streammgmt.RequestPacket;
+import eu.siacs.conversations.xmpp.stanzas.streammgmt.ResumePacket;
public class XmppConnection implements Runnable {
private static final int DEFAULT_PORT = 5222;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/chatstate/ChatState.java b/src/main/java/eu/siacs/conversations/xmpp/chatstate/ChatState.java
index 323d99c2..3e371562 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/chatstate/ChatState.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/chatstate/ChatState.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.chatstate;
+package eu.siacs.conversations.xmpp.chatstate;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public enum ChatState {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Data.java b/src/main/java/eu/siacs/conversations/xmpp/forms/Data.java
index caa1890e..8dabcb5b 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Data.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/forms/Data.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.xmpp.forms;
+package eu.siacs.conversations.xmpp.forms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public class Data extends Element {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Field.java b/src/main/java/eu/siacs/conversations/xmpp/forms/Field.java
index 88b3155c..020b34b9 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/forms/Field.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/forms/Field.java
@@ -1,11 +1,11 @@
-package de.thedevstack.conversationsplus.xmpp.forms;
+package eu.siacs.conversations.xmpp.forms;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public class Field extends Element {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jid/InvalidJidException.java b/src/main/java/eu/siacs/conversations/xmpp/jid/InvalidJidException.java
index 3c8dd717..164e8849 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jid/InvalidJidException.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jid/InvalidJidException.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jid;
+package eu.siacs.conversations.xmpp.jid;
public class InvalidJidException extends Exception {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jid/Jid.java b/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java
index bb32e821..a15abe14 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jid/Jid.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jid/Jid.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jid;
+package eu.siacs.conversations.xmpp.jid;
import android.util.LruCache;
@@ -6,7 +6,7 @@ import net.java.otr4j.session.SessionID;
import java.net.IDN;
-import de.thedevstack.conversationsplus.Config;
+import eu.siacs.conversations.Config;
import gnu.inet.encoding.Stringprep;
import gnu.inet.encoding.StringprepException;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleCandidate.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java
index bf282293..dcadb92f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleCandidate.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleCandidate.java
@@ -1,10 +1,10 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
import java.util.ArrayList;
import java.util.List;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class JingleCandidate {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
index ca823926..fca0597f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
@@ -1,14 +1,11 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
-import android.content.Intent;
-import android.net.Uri;
import android.util.Pair;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -19,28 +16,29 @@ import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusPreferences;
import de.thedevstack.conversationsplus.utils.MessageUtil;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.crypto.axolotl.AxolotlService;
-import de.thedevstack.conversationsplus.crypto.axolotl.OnMessageCreatedCallback;
-import de.thedevstack.conversationsplus.crypto.axolotl.XmppAxolotlMessage;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Conversation;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.entities.TransferablePlaceholder;
-import de.thedevstack.conversationsplus.persistance.FileBackend;
-import de.thedevstack.conversationsplus.services.AbstractConnectionManager;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
-import de.thedevstack.conversationsplus.utils.FileUtils;
import de.thedevstack.conversationsplus.utils.XmppConnectionServiceAccessor;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.Content;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.JinglePacket;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.Reason;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.crypto.axolotl.AxolotlService;
+import eu.siacs.conversations.crypto.axolotl.OnMessageCreatedCallback;
+import eu.siacs.conversations.crypto.axolotl.XmppAxolotlMessage;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Conversation;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.entities.TransferablePlaceholder;
+import eu.siacs.conversations.persistance.FileBackend;
+import eu.siacs.conversations.services.AbstractConnectionManager;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.FileUtils;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jingle.stanzas.Content;
+import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
+import eu.siacs.conversations.xmpp.jingle.stanzas.Reason;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class JingleConnection implements Transferable {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnectionManager.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
index 30ed9024..19ac354d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleConnectionManager.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
import android.annotation.SuppressLint;
@@ -9,19 +9,21 @@ import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import de.thedevstack.android.logcat.Logging;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.Message;
-import de.thedevstack.conversationsplus.entities.Transferable;
-import de.thedevstack.conversationsplus.services.AbstractConnectionManager;
-import de.thedevstack.conversationsplus.services.XmppConnectionService;
+
import de.thedevstack.conversationsplus.utils.MessageUtil;
-import de.thedevstack.conversationsplus.utils.Xmlns;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.jingle.stanzas.JinglePacket;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.Message;
+import eu.siacs.conversations.entities.Transferable;
+import eu.siacs.conversations.services.AbstractConnectionManager;
+import eu.siacs.conversations.services.XmppConnectionService;
+import eu.siacs.conversations.utils.Xmlns;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class JingleConnectionManager extends AbstractConnectionManager {
private List<JingleConnection> connections = new CopyOnWriteArrayList<>();
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleInbandTransport.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
index 7c830d0b..3800b94f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleInbandTransport.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
import android.util.Base64;
@@ -11,14 +11,14 @@ import java.util.Arrays;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.OnIqPacketReceived;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.OnIqPacketReceived;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class JingleInbandTransport extends JingleTransport {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleSocks5Transport.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
index 6480251f..318a35f7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleSocks5Transport.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
import android.os.PowerManager;
@@ -16,10 +16,10 @@ import java.security.NoSuchAlgorithmException;
import de.thedevstack.android.logcat.Logging;
import de.thedevstack.conversationsplus.ConversationsPlusApplication;
import de.thedevstack.conversationsplus.utils.StreamUtil;
-import de.thedevstack.conversationsplus.Config;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.utils.CryptoHelper;
-import de.thedevstack.conversationsplus.utils.SocksSocketFactory;
+import eu.siacs.conversations.Config;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.utils.CryptoHelper;
+import eu.siacs.conversations.utils.SocksSocketFactory;
public class JingleSocks5Transport extends JingleTransport {
private JingleCandidate candidate;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleTransport.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleTransport.java
index ee0fefff..e832d3f5 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/JingleTransport.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleTransport.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
+import eu.siacs.conversations.entities.DownloadableFile;
public abstract class JingleTransport {
public abstract void connect(final OnTransportConnected callback);
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnFileTransmissionStatusChanged.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnFileTransmissionStatusChanged.java
index 762b4551..91cba39f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnFileTransmissionStatusChanged.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnFileTransmissionStatusChanged.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
+import eu.siacs.conversations.entities.DownloadableFile;
public interface OnFileTransmissionStatusChanged {
void onFileTransmitted(DownloadableFile file);
diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/OnJinglePacketReceived.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnJinglePacketReceived.java
new file mode 100644
index 00000000..9a60b392
--- /dev/null
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnJinglePacketReceived.java
@@ -0,0 +1,9 @@
+package eu.siacs.conversations.xmpp.jingle;
+
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xmpp.PacketReceived;
+import eu.siacs.conversations.xmpp.jingle.stanzas.JinglePacket;
+
+public interface OnJinglePacketReceived extends PacketReceived {
+ void onJinglePacketReceived(Account account, JinglePacket packet);
+}
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnPrimaryCandidateFound.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnPrimaryCandidateFound.java
index 4fe31d3b..76e33717 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnPrimaryCandidateFound.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnPrimaryCandidateFound.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
public interface OnPrimaryCandidateFound {
void onPrimaryCandidateFound(boolean success, JingleCandidate canditate);
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnTransportConnected.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnTransportConnected.java
index 91a79a83..38f03c5d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/OnTransportConnected.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/OnTransportConnected.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.jingle;
+package eu.siacs.conversations.xmpp.jingle;
public interface OnTransportConnected {
public void failed();
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Content.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java
index 336a8c14..f752cc5d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Content.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Content.java
@@ -1,7 +1,7 @@
-package de.thedevstack.conversationsplus.xmpp.jingle.stanzas;
+package eu.siacs.conversations.xmpp.jingle.stanzas;
-import de.thedevstack.conversationsplus.entities.DownloadableFile;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.entities.DownloadableFile;
+import eu.siacs.conversations.xml.Element;
public class Content extends Element {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/JinglePacket.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/JinglePacket.java
index db771a0a..4f73a83a 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/JinglePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/JinglePacket.java
@@ -1,8 +1,8 @@
-package de.thedevstack.conversationsplus.xmpp.jingle.stanzas;
+package eu.siacs.conversations.xmpp.jingle.stanzas;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
-import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.IqPacket;
public class JinglePacket extends IqPacket {
Content content = null;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Reason.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Reason.java
index a442d8d3..610d5e76 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/jingle/stanzas/Reason.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/stanzas/Reason.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.jingle.stanzas;
+package eu.siacs.conversations.xmpp.jingle.stanzas;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public class Reason extends Element {
private Reason(String name) {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/pep/Avatar.java b/src/main/java/eu/siacs/conversations/xmpp/pep/Avatar.java
index 9c1c8b9c..38bb5c8f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/pep/Avatar.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/pep/Avatar.java
@@ -1,9 +1,9 @@
-package de.thedevstack.conversationsplus.xmpp.pep;
+package eu.siacs.conversations.xmpp.pep;
import android.util.Base64;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class Avatar {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractAcknowledgeableStanza.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractAcknowledgeableStanza.java
index 49d9f799..fa5e6fbd 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractAcknowledgeableStanza.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractAcknowledgeableStanza.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas;
+package eu.siacs.conversations.xmpp.stanzas;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
abstract public class AbstractAcknowledgeableStanza extends AbstractStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractStanza.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java
index 78c71541..a6144df2 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/AbstractStanza.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java
@@ -1,8 +1,8 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas;
+package eu.siacs.conversations.xmpp.stanzas;
-import de.thedevstack.conversationsplus.entities.Account;
-import de.thedevstack.conversationsplus.xml.Element;
-import de.thedevstack.conversationsplus.xmpp.jid.Jid;
+import eu.siacs.conversations.entities.Account;
+import eu.siacs.conversations.xml.Element;
+import eu.siacs.conversations.xmpp.jid.Jid;
public class AbstractStanza extends Element {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/IqPacket.java
index d86831e0..302dc78e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/IqPacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/IqPacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas;
+package eu.siacs.conversations.xmpp.stanzas;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.xml.Element;
public class IqPacket extends AbstractAcknowledgeableStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/MessagePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/MessagePacket.java
index e14cdacd..941b4b5f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/MessagePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/MessagePacket.java
@@ -1,9 +1,9 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas;
+package eu.siacs.conversations.xmpp.stanzas;
import android.util.Pair;
-import de.thedevstack.conversationsplus.parser.AbstractParser;
-import de.thedevstack.conversationsplus.xml.Element;
+import eu.siacs.conversations.parser.AbstractParser;
+import eu.siacs.conversations.xml.Element;
public class MessagePacket extends AbstractAcknowledgeableStanza {
public static final int TYPE_CHAT = 0;
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/PresencePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/PresencePacket.java
index 5fd21b3b..c321498d 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/PresencePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/PresencePacket.java
@@ -1,4 +1,4 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas;
+package eu.siacs.conversations.xmpp.stanzas;
public class PresencePacket extends AbstractAcknowledgeableStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/ActivePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/ActivePacket.java
index 47538a64..78ab66d8 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/ActivePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/ActivePacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.csi;
+package eu.siacs.conversations.xmpp.stanzas.csi;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class ActivePacket extends AbstractStanza {
public ActivePacket() {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/InactivePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/InactivePacket.java
index ca5904a5..f109280f 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/csi/InactivePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/csi/InactivePacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.csi;
+package eu.siacs.conversations.xmpp.stanzas.csi;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class InactivePacket extends AbstractStanza {
public InactivePacket() {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/AckPacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java
index fe1740da..f93b5d87 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/AckPacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/AckPacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt;
+package eu.siacs.conversations.xmpp.stanzas.streammgmt;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class AckPacket extends AbstractStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/EnablePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/EnablePacket.java
index ce416f27..78cd81ed 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/EnablePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/EnablePacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt;
+package eu.siacs.conversations.xmpp.stanzas.streammgmt;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class EnablePacket extends AbstractStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/RequestPacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/RequestPacket.java
index eb6217ae..98cfc748 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/RequestPacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/RequestPacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt;
+package eu.siacs.conversations.xmpp.stanzas.streammgmt;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class RequestPacket extends AbstractStanza {
diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/ResumePacket.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java
index 90bf566e..9cdcfa5e 100644
--- a/src/main/java/de/thedevstack/conversationsplus/xmpp/stanzas/streammgmt/ResumePacket.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/streammgmt/ResumePacket.java
@@ -1,6 +1,6 @@
-package de.thedevstack.conversationsplus.xmpp.stanzas.streammgmt;
+package eu.siacs.conversations.xmpp.stanzas.streammgmt;
-import de.thedevstack.conversationsplus.xmpp.stanzas.AbstractStanza;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public class ResumePacket extends AbstractStanza {
diff --git a/src/main/res/drawable-hdpi/ic_launcher.png b/src/main/res/drawable-hdpi/ic_launcher.png
index 1bea2f74..16c7a7ce 100644
--- a/src/main/res/drawable-hdpi/ic_launcher.png
+++ b/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/ic_notification.png b/src/main/res/drawable-hdpi/ic_notification.png
index fd5d1d8b..854d299e 100644
--- a/src/main/res/drawable-hdpi/ic_notification.png
+++ b/src/main/res/drawable-hdpi/ic_notification.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/message_bubble_received.9.png b/src/main/res/drawable-hdpi/message_bubble_received.9.png
index dfd857cb..384d7e9c 100644
--- a/src/main/res/drawable-hdpi/message_bubble_received.9.png
+++ b/src/main/res/drawable-hdpi/message_bubble_received.9.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png
index fd07bc20..449a3252 100644
--- a/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png
+++ b/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/message_bubble_received_white.9.png b/src/main/res/drawable-hdpi/message_bubble_received_white.9.png
index bec20798..64bfed2c 100644
--- a/src/main/res/drawable-hdpi/message_bubble_received_white.9.png
+++ b/src/main/res/drawable-hdpi/message_bubble_received_white.9.png
Binary files differ
diff --git a/src/main/res/drawable-hdpi/message_bubble_sent.9.png b/src/main/res/drawable-hdpi/message_bubble_sent.9.png
index 10dc2e29..1a43d347 100644
--- a/src/main/res/drawable-hdpi/message_bubble_sent.9.png
+++ b/src/main/res/drawable-hdpi/message_bubble_sent.9.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/ic_launcher.png b/src/main/res/drawable-mdpi/ic_launcher.png
index f2df046e..3a59b17e 100644
--- a/src/main/res/drawable-mdpi/ic_launcher.png
+++ b/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/ic_notification.png b/src/main/res/drawable-mdpi/ic_notification.png
index 5cf7593b..9dd4a9c8 100644
--- a/src/main/res/drawable-mdpi/ic_notification.png
+++ b/src/main/res/drawable-mdpi/ic_notification.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/message_bubble_received.9.png b/src/main/res/drawable-mdpi/message_bubble_received.9.png
index 9835a736..6f6b0e00 100644
--- a/src/main/res/drawable-mdpi/message_bubble_received.9.png
+++ b/src/main/res/drawable-mdpi/message_bubble_received.9.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png
index ff8f80b6..c5eddbe0 100644
--- a/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png
+++ b/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/message_bubble_received_white.9.png b/src/main/res/drawable-mdpi/message_bubble_received_white.9.png
index d7a3bb5d..86543da3 100644
--- a/src/main/res/drawable-mdpi/message_bubble_received_white.9.png
+++ b/src/main/res/drawable-mdpi/message_bubble_received_white.9.png
Binary files differ
diff --git a/src/main/res/drawable-mdpi/message_bubble_sent.9.png b/src/main/res/drawable-mdpi/message_bubble_sent.9.png
index 596699bb..97415d6a 100644
--- a/src/main/res/drawable-mdpi/message_bubble_sent.9.png
+++ b/src/main/res/drawable-mdpi/message_bubble_sent.9.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/ic_launcher.png b/src/main/res/drawable-xhdpi/ic_launcher.png
index 2c0f1647..9afafb85 100644
--- a/src/main/res/drawable-xhdpi/ic_launcher.png
+++ b/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/ic_notification.png b/src/main/res/drawable-xhdpi/ic_notification.png
index 76a9414a..70aa9574 100644
--- a/src/main/res/drawable-xhdpi/ic_notification.png
+++ b/src/main/res/drawable-xhdpi/ic_notification.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/message_bubble_received.9.png b/src/main/res/drawable-xhdpi/message_bubble_received.9.png
index c0eb47eb..233d7364 100644
--- a/src/main/res/drawable-xhdpi/message_bubble_received.9.png
+++ b/src/main/res/drawable-xhdpi/message_bubble_received.9.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png
index fe0324ce..2e4421bd 100644
--- a/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png
+++ b/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png
index fdb6be0d..65640b08 100644
--- a/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png
+++ b/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png
Binary files differ
diff --git a/src/main/res/drawable-xhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xhdpi/message_bubble_sent.9.png
index cb5654b7..4e1be845 100644
--- a/src/main/res/drawable-xhdpi/message_bubble_sent.9.png
+++ b/src/main/res/drawable-xhdpi/message_bubble_sent.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/ic_launcher.png b/src/main/res/drawable-xxhdpi/ic_launcher.png
index f8edda90..b12d83bb 100644
--- a/src/main/res/drawable-xxhdpi/ic_launcher.png
+++ b/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/ic_notification.png b/src/main/res/drawable-xxhdpi/ic_notification.png
index 68f051b3..2ab9bc95 100644
--- a/src/main/res/drawable-xxhdpi/ic_notification.png
+++ b/src/main/res/drawable-xxhdpi/ic_notification.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received.9.png
index 10e78408..212ac617 100644
--- a/src/main/res/drawable-xxhdpi/message_bubble_received.9.png
+++ b/src/main/res/drawable-xxhdpi/message_bubble_received.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png
index 53ecbecf..912b1722 100644
--- a/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png
+++ b/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png
index 436a1bd3..4e4d4216 100644
--- a/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png
+++ b/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png
index f78425d2..bbd02a31 100644
--- a/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png
+++ b/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_launcher.png b/src/main/res/drawable-xxxhdpi/ic_launcher.png
index d9aa6c0e..d0654a90 100644
--- a/src/main/res/drawable-xxxhdpi/ic_launcher.png
+++ b/src/main/res/drawable-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_notification.png b/src/main/res/drawable-xxxhdpi/ic_notification.png
index ba656860..d25ed7b3 100644
--- a/src/main/res/drawable-xxxhdpi/ic_notification.png
+++ b/src/main/res/drawable-xxxhdpi/ic_notification.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png
index c474359e..043fa7ce 100644
--- a/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png
+++ b/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png
index 1421768c..a6095aa4 100644
--- a/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png
+++ b/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png
index ee89b670..474781bc 100644
--- a/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png
+++ b/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png
Binary files differ
diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png
index d34038d0..6431e5c8 100644
--- a/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png
+++ b/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png
Binary files differ
diff --git a/src/main/res/layout/activity_about.xml b/src/main/res/layout/activity_about.xml
index 142087c0..8f1113ad 100644
--- a/src/main/res/layout/activity_about.xml
+++ b/src/main/res/layout/activity_about.xml
@@ -1,6 +1,6 @@
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- tools:context="de.thedevstack.conversationsplus.ui.AboutActivity"
+ tools:context="eu.siacs.conversations.ui.AboutActivity"
android:background="@color/grey50"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
diff --git a/src/main/res/layout/contact_key.xml b/src/main/res/layout/contact_key.xml
index bf818001..03246ccb 100644
--- a/src/main/res/layout/contact_key.xml
+++ b/src/main/res/layout/contact_key.xml
@@ -55,7 +55,6 @@
android:src="?attr/icon_remove"
android:visibility="gone" />
-
<Switch
android:id="@+id/tgl_trust"
android:visibility="invisible"
diff --git a/src/main/res/layout/dialog_message_details.xml b/src/main/res/layout/dialog_message_details.xml
index 7c5d92cb..f2d7af07 100644
--- a/src/main/res/layout/dialog_message_details.xml
+++ b/src/main/res/layout/dialog_message_details.xml
@@ -150,6 +150,28 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:text="@string/dlg_msg_details_original_filename" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text=""
+ android:textAlignment="textEnd"
+ android:gravity="end"
+ android:id="@+id/dlgMsgDetFileOriginalName" />
+ </TableRow>
+
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/white"
+ android:layout_marginTop="0.3dp"
+ android:layout_marginLeft="0.3dp"
+ android:layout_marginRight="0.3dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
android:text="@string/dlg_msg_details_file_mime" />
<TextView
diff --git a/src/main/res/layout/fragment_conversation.xml b/src/main/res/layout/fragment_conversation.xml
index b0bf17c8..4145afb8 100644
--- a/src/main/res/layout/fragment_conversation.xml
+++ b/src/main/res/layout/fragment_conversation.xml
@@ -39,7 +39,7 @@
android:layout_alignParentLeft="true"
android:background="@color/grey50" >
- <de.thedevstack.conversationsplus.ui.EditMessage
+ <eu.siacs.conversations.ui.EditMessage
android:id="@+id/textinput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -59,7 +59,7 @@
app:emojiconSize="?attr/EmojiconSizeInput" >
<requestFocus />
- </de.thedevstack.conversationsplus.ui.EditMessage>
+ </eu.siacs.conversations.ui.EditMessage>
<ImageButton
android:id="@+id/textSendButton"
diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml
index eefb2c4f..2c59fd2f 100644
--- a/src/main/res/values-ar/strings.xml
+++ b/src/main/res/values-ar/strings.xml
@@ -79,15 +79,15 @@
<string name="send_unencrypted">إرسال بدون تشفير</string>
<string name="decryption_failed">فشل فك التشفير. ربما لم يكن لديك المفتاح الخاص الصحيح.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ :: يستخدم تطبيق آخر يسمى <b> OpenKeychain </b> لتشفير وفك تشفير الرسائل وإدارة المفاتيح العامة الخاصة بك \n\nOpenKeychain تحت الرخصة GPLv3 و لتحميل التطبيق من جوجل بلاي \n\n <small>(وأعد تشغيل التطبيق مرة أخرى)</small></string>
+ <string name="openkeychain_required_long">Conversations :: يستخدم تطبيق آخر يسمى <b> OpenKeychain </b> لتشفير وفك تشفير الرسائل وإدارة المفاتيح العامة الخاصة بك \n\nOpenKeychain تحت الرخصة GPLv3 و لتحميل التطبيق من جوجل بلاي \n\n <small>(وأعد تشغيل التطبيق مرة أخرى)</small></string>
<string name="restart">اعادة تشغيل</string>
<string name="install">تثبيت</string>
<string name="offering">عرض ..</string>
<string name="waiting">انتظار ..</string>
<string name="no_pgp_key">OpenPGP-لايوجد مفتاح</string>
- <string name="contact_has_no_pgp_key">Conversations+::لا يستطيع تشفير الرساله\n\n<small>من فضلك أخبر صديقك بتنصيب تطبيق OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations::لا يستطيع تشفير الرساله\n\n<small>من فضلك أخبر صديقك بتنصيب تطبيق OpenPGP.</small></string>
<string name="no_pgp_keys">OpenPGP-لايوجد مفاتيح</string>
- <string name="contacts_have_no_pgp_keys">Conversations+::لا يستطيع تشفير الرساله\n\n<small>من فضلك أخبر صديقك بتنصيب تطبيق OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations::لا يستطيع تشفير الرساله\n\n<small>من فضلك أخبر صديقك بتنصيب تطبيق OpenPGP.</small></string>
<string name="pref_general">عام</string>
<string name="pref_xmpp_resource">الريسورس</string>
<string name="pref_accept_files">ضبط استقبال الملفات</string>
@@ -209,7 +209,7 @@
<string name="try_again">حاول مرة أخرى</string>
<string name="finish">انهاء</string>
<string name="verified">تأكيد!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">احتفظ بالتطبيق يعمل في المقدمة</string>
<string name="pref_keep_foreground_service_summary">منع نظام التشغيل من انهاء اتصالك</string>
<string name="choose_file">اختيار ملف</string>
diff --git a/src/main/res/values-bg/strings.xml b/src/main/res/values-bg/strings.xml
index 28e21c52..efb29356 100644
--- a/src/main/res/values-bg/strings.xml
+++ b/src/main/res/values-bg/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Деблокиране</string>
<string name="save">Запазване</string>
<string name="ok">Добре</string>
- <string name="crash_report_title">Conversations+ се срина</string>
- <string name="crash_report_message">Изпращайки ни проследявания на стека, Вие помагате за непрекъснатото развитие на Conversations+\n<b>Внимание:</b> Това ще използва Вашия XMPP профил, за да изпраща проследяването на стека до разработчика.</string>
+ <string name="crash_report_title">Conversations се срина</string>
+ <string name="crash_report_message">Изпращайки ни проследявания на стека, Вие помагате за непрекъснатото развитие на Conversations\n<b>Внимание:</b> Това ще използва Вашия XMPP профил, за да изпраща проследяването на стека до разработчика.</string>
<string name="send_now">Изпращане сега</string>
<string name="send_never">Не ме питайте повече</string>
<string name="problem_connecting_to_account">Неуспешно свързване с профила</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Изпращане нешифровано</string>
<string name="decryption_failed">Неуспешно дешифроване. Възможно е да нямате правилния частен ключ.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ използва външно приложение с име <b>OpenKeychain</b>, за да шифрова и дешифрова съобщенията и да управлява публичните Ви ключове.\n\nOpenKeychain е лицензирано под условията на GPLv3 и е налично в F-Droid и Google Play.\n\n<small>(Моля, рестартирайте Conversations+ след това.)</small></string>
+ <string name="openkeychain_required_long">Conversations използва външно приложение с име <b>OpenKeychain</b>, за да шифрова и дешифрова съобщенията и да управлява публичните Ви ключове.\n\nOpenKeychain е лицензирано под условията на GPLv3 и е налично в F-Droid и Google Play.\n\n<small>(Моля, рестартирайте Conversations след това.)</small></string>
<string name="restart">Рестартиране</string>
<string name="install">Инсталиране</string>
<string name="openkeychain_not_installed">Моля, инсталирайте OpenKeychain</string>
<string name="offering">предлагане…</string>
<string name="waiting">изчакване…</string>
<string name="no_pgp_key">Не е открит OpenPGP ключ</string>
- <string name="contact_has_no_pgp_key">Conversations+ не може да шифрова съобщенията Ви, тъй като Вашият контакт не обявява публичния си ключ.\n\n<small>Моля, помолете го/я да инсталира и настрои OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations не може да шифрова съобщенията Ви, тъй като Вашият контакт не обявява публичния си ключ.\n\n<small>Моля, помолете го/я да инсталира и настрои OpenPGP.</small></string>
<string name="no_pgp_keys">Не са открити OpenPGP ключове</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ не може да шифрова съобщенията Ви, тъй като Вашите контакти не обявяват публичните си ключове.\n\n<small>Моля, помолете го да инсталират и настроят OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations не може да шифрова съобщенията Ви, тъй като Вашите контакти не обявяват публичните си ключове.\n\n<small>Моля, помолете го да инсталират и настроят OpenPGP.</small></string>
<string name="pref_general">Общи</string>
<string name="pref_xmpp_resource">XMPP ресурс</string>
<string name="pref_xmpp_resource_summary">Името, с което се определя този клиент</string>
@@ -117,7 +117,7 @@
<string name="pref_notification_grace_period_summary">Изключва известията за кратко, след като бъде получено копие на съобщение</string>
<string name="pref_advanced_options">Разширени</string>
<string name="pref_never_send_crash">Никога да не се изпращат доклади за сривове</string>
- <string name="pref_never_send_crash_summary">Изпращайки проследявания на стека, Вие помагате за непрекъснатото развитие на Conversations+</string>
+ <string name="pref_never_send_crash_summary">Изпращайки проследявания на стека, Вие помагате за непрекъснатото развитие на Conversations</string>
<string name="pref_confirm_messages">Потвърждаване на съобщенията</string>
<string name="pref_confirm_messages_summary">Уведомява контакта Ви, че сте приели и прочели съобщението му</string>
<string name="pref_ui_options">Потр. интерфейс</string>
@@ -288,7 +288,7 @@
<string name="pref_dont_save_encrypted_summary">Внимание: Това може да доведе до загуба на съобщения</string>
<string name="pref_expert_options">Експертни настройки</string>
<string name="pref_expert_options_summary">Моля, бъдете внимателни с тези</string>
- <string name="title_activity_about">Относно Conversations+</string>
+ <string name="title_activity_about">Относно Conversations</string>
<string name="pref_about_conversations_summary">Информация за версията и лицензите</string>
<string name="title_pref_quiet_hours">Тихи часове</string>
<string name="title_pref_quiet_hours_start_time">Начало</string>
@@ -347,7 +347,7 @@
<string name="verified">Проверено!</string>
<string name="smp_requested">Контактът изиска SMP проверка</string>
<string name="no_otr_session_found">Няма открита OTR сесия!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Услугата да е на преден план</string>
<string name="pref_keep_foreground_service_summary">Предотвратява прекъсването на връзката Ви от операционната система</string>
<string name="pref_export_logs">Изнасяне на журналите</string>
@@ -453,7 +453,7 @@
<string name="vcard">Контакт</string>
<string name="received_x_file">Получи %s</string>
<string name="disable_foreground_service">Изключване на услугата на преден план</string>
- <string name="touch_to_open_conversations">Докоснете, за да отворите Conversations+</string>
+ <string name="touch_to_open_conversations">Докоснете, за да отворите Conversations</string>
<string name="avatar_has_been_published">Аватарът беше публикуван!</string>
<string name="sending_x_file">Изпращане на %s</string>
<string name="offering_x_file">Предлагане на %s</string>
@@ -545,9 +545,9 @@
<string name="shared_file_with_x">Файлът е споделен с %s</string>
<string name="shared_image_with_x">Изображението е споделено с %s</string>
<string name="shared_images_with_x">Изображения, споделени с %s</string>
- <string name="no_storage_permission">Conversations+ се нуждае от достъп до външно място за съхранение</string>
+ <string name="no_storage_permission">Conversations се нуждае от достъп до външно място за съхранение</string>
<string name="sync_with_contacts">Синхронизиране с контактите</string>
- <string name="sync_with_contacts_long">Conversations+ иска да съчетае Вашия списък в XMPP с контактите Ви, за да показва пълните им имена и снимки..\n\nConversations+ единствено ще чете контактите Ви и ще ги използва вътрешно, без да ги качва на сървъра Ви.\n\nЩе бъдете помолен/а за позволение за достъп до контактите Ви.</string>
+ <string name="sync_with_contacts_long">Conversations иска да съчетае Вашия списък в XMPP с контактите Ви, за да показва пълните им имена и снимки..\n\nConversations единствено ще чете контактите Ви и ще ги използва вътрешно, без да ги качва на сървъра Ви.\n\nЩе бъдете помолен/а за позволение за достъп до контактите Ви.</string>
<string name="certificate_information">Информация за сертификата</string>
<string name="certificate_subject">Обект</string>
<string name="certificate_issuer">Издател</string>
@@ -563,8 +563,8 @@
<string name="always">Винаги</string>
<string name="automatically">Автоматично</string>
<string name="battery_optimizations_enabled">Оптимизациите за използв. на батерията са вкл.</string>
- <string name="battery_optimizations_enabled_explained">Устройството Ви прилага сериозни оптимизации за използването на батерията върху Conversations+, а те може да доведат до забавени известия и дори пропуснати съобщения.\nПрепоръчително е до ги изключите.</string>
- <string name="battery_optimizations_enabled_dialog">Устройството Ви прилага сериозни оптимизации за използването на батерията върху Conversations+, а те може да доведат до забавени известия и дори пропуснати съобщения.\n\nСега ще Ви бъде предложено да ги изключите.</string>
+ <string name="battery_optimizations_enabled_explained">Устройството Ви прилага сериозни оптимизации за използването на батерията върху Conversations, а те може да доведат до забавени известия и дори пропуснати съобщения.\nПрепоръчително е до ги изключите.</string>
+ <string name="battery_optimizations_enabled_dialog">Устройството Ви прилага сериозни оптимизации за използването на батерията върху Conversations, а те може да доведат до забавени известия и дори пропуснати съобщения.\n\nСега ще Ви бъде предложено да ги изключите.</string>
<string name="disable">Изключване</string>
<string name="selection_too_large">Избраната област е твърде голяма</string>
<string name="no_accounts">(Няма активирани профили)</string>
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index 401bf2df..045dc101 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -55,8 +55,8 @@
<string name="unblock">Desbloquejar</string>
<string name="save">Salvar</string>
<string name="ok">D\'acord</string>
- <string name="crash_report_title">Conversations+ s\'ha aturat.</string>
- <string name="crash_report_message">Enviant bolcats de piles ajudes al desenvolupament de Conversations+\n<b>Avís:</b> Això usarà el teu compte XMPP per enviar el bolcat de pila al desenvolupador.</string>
+ <string name="crash_report_title">Conversations s\'ha aturat.</string>
+ <string name="crash_report_message">Enviant bolcats de piles ajudes al desenvolupament de Conversations\n<b>Avís:</b> Això usarà el teu compte XMPP per enviar el bolcat de pila al desenvolupador.</string>
<string name="send_now">Enviar ara</string>
<string name="send_never">No preguntar de nou</string>
<string name="problem_connecting_to_account">No s\'ha pogut connectar al compte</string>
@@ -79,13 +79,13 @@
<string name="send_unencrypted">Enviar sense xifrar</string>
<string name="decryption_failed">Ha fallat el desxiframent. Potser no tinguis la clau privada apropiada.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ utilitza una aplicació de tercers anomenada <b>OpenKeychain</b> per xifrar i desxifrar missatges i gestionar les teves claus públiques..\n\nOpenKeychain està publicat sota llicència GPLv3 i disponible a la F-Droid i Google Play.\n\n<small>(Si us plau, reinicieu Conversations+ després.)</small></string>
+ <string name="openkeychain_required_long">Conversations utilitza una aplicació de tercers anomenada <b>OpenKeychain</b> per xifrar i desxifrar missatges i gestionar les teves claus públiques..\n\nOpenKeychain està publicat sota llicència GPLv3 i disponible a la F-Droid i Google Play.\n\n<small>(Si us plau, reinicieu Conversations després.)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instal·lar</string>
<string name="offering">oferint…</string>
<string name="waiting">Esperant...</string>
<string name="no_pgp_key">Clau OpenPGP no trobada</string>
- <string name="contact_has_no_pgp_key">Conversations+ no ha pogut xifrar els teus missatges perquè el teu contacte no està anunciant la seva clau pública.\n\n<small>Si us plau, demana al teu contacte que configuri OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations no ha pogut xifrar els teus missatges perquè el teu contacte no està anunciant la seva clau pública.\n\n<small>Si us plau, demana al teu contacte que configuri OpenPGP.</small></string>
<string name="no_pgp_keys">No hi ha claus OPENPGP trobades</string>
<string name="contacts_have_no_pgp_keys">Coversations no és possible xifrar les teves converses perquè els teus contactes no han mostrat la seva clau pública.\n\n<small> Si us plau, pregunti als seus contactes per configurar OpenPGP .</small></string>
<string name="pref_general">General</string>
@@ -100,7 +100,7 @@
<string name="pref_notification_grace_period">Notificació del període d\'espera</string>
<string name="pref_notification_grace_period_summary">Desactiva les notificacions durant un breu termini després de rebre una còpia de missatges carbon</string>
<string name="pref_never_send_crash">Mai enviïs informes d\'errors</string>
- <string name="pref_never_send_crash_summary">Enviant traces d\'execució d\'ajudes al futur desenvolupament del Conversations+.</string>
+ <string name="pref_never_send_crash_summary">Enviant traces d\'execució d\'ajudes al futur desenvolupament del Conversations.</string>
<string name="pref_confirm_messages">Confirmant missatges</string>
<string name="pref_confirm_messages_summary">Deixeu que el seu contacte sàpiga quan heu rebut i llegit un missatge</string>
<string name="openpgp_error">OpenKeychain ha reportat un error</string>
@@ -248,7 +248,7 @@
<string name="pref_dont_save_encrypted">No guardar els misstages xifrats</string>
<string name="pref_dont_save_encrypted_summary">Perill: Podria portar a la pèrdua dels missatges</string>
<string name="pref_expert_options_summary">Aneu amb cura amb aixó</string>
- <string name="title_activity_about">Sobre Conversations+</string>
+ <string name="title_activity_about">Sobre Conversations</string>
<string name="pref_about_conversations_summary">Informació sobre la construció i la seva llicència</string>
<string name="title_pref_quiet_hours">Hores de silenci</string>
<string name="title_pref_quiet_hours_start_time">Hora d\'inici</string>
diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml
index ab5395f6..6094ad87 100644
--- a/src/main/res/values-cs/strings.xml
+++ b/src/main/res/values-cs/strings.xml
@@ -103,14 +103,10 @@
<string name="pref_xmpp_resource_summary">Jméno se kterým se tento klient identifikuje</string>
<string name="pref_accept_files">Přijímat soubory</string>
<string name="pref_accept_files_summary">Automaticky přijímat soubory menší než…</string>
- <string name="pref_accept_files_size_summary">Automaticky přijímat soubory menší než…</string>
<string name="pref_notification_settings">Upozornění</string>
<string name="pref_notifications">Upozornění</string>
<string name="pref_notifications_summary">Upozornit při přijetí nové zprávy</string>
<string name="pref_vibrate">Vibrovat</string>
- <string name="pref_vibrate_summary">Vibrovat při přijetí nové zprávy</string>
- <string name="pref_sound">Zvuk</string>
- <string name="pref_sound_summary">Přehrát zvuk společně s upozorněním</string>
<string name="pref_notification_grace_period">Četnost upozornění</string>
<string name="pref_notification_grace_period_summary">Neupozorňovat krátce poté co byla obdržena kopie zprávy</string>
<string name="pref_advanced_options">Rozšířené</string>
@@ -286,7 +282,7 @@
<string name="pref_dont_save_encrypted_summary">Varování: Toto může vést ke ztrátě zpráv</string>
<string name="pref_expert_options">Expertní nastavení</string>
<string name="pref_expert_options_summary">S tímto zacházejte velmi opatrně</string>
- <string name="title_activity_about">O aplikaci Conversations+</string>
+ <string name="title_activity_about">O aplikaci Conversations</string>
<string name="pref_about_conversations_summary">Informace o sestavení a licenci</string>
<string name="title_pref_quiet_hours">Tichý režim</string>
<string name="title_pref_quiet_hours_start_time">Odkdy</string>
@@ -345,7 +341,7 @@
<string name="verified">Ověřeno!</string>
<string name="smp_requested">Kontakt zažádal o ověření SMP</string>
<string name="no_otr_session_found">Nebylo nalezeno platné OTR sezení!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Ponechat službu v popředí</string>
<string name="pref_keep_foreground_service_summary">Zamezit operačnímu systému v ukončení připojení</string>
<string name="pref_export_logs">Exportovat logy</string>
@@ -492,8 +488,6 @@
<string name="recently_used">Naposledy použitá</string>
<string name="choose_quick_action">Vybrat rychlou akci</string>
<string name="search_for_contacts_or_groups">Hledat kontakty či skupiny</string>
- <!--%s = bare jid, %d = count of online resources-->
- <string name="dlg_msg_details_msg_status_failed">Selhalo</string>
<string name="send_private_message">Poslat soukromou zprávu</string>
<string name="user_has_left_conference">%s opustil(a) konferenci!</string>
<string name="username">Uživatelské jméno</string>
@@ -546,9 +540,9 @@
<string name="shared_file_with_x">Soubor sdílen s %s</string>
<string name="shared_image_with_x">Obrázek sdílen s %s</string>
<string name="shared_images_with_x">Obrázky sdíleny s %s</string>
- <string name="no_storage_permission">Conversations+ vyžaduje přístup k externímu úložišti</string>
+ <string name="no_storage_permission">Conversations vyžaduje přístup k externímu úložišti</string>
<string name="sync_with_contacts">Synchronizovat s kontakty</string>
- <string name="sync_with_contacts_long">Aplikace Conversations+ by ráda porovnala váš XMPP seznam s vašimi kontakty, aby mohla zobrazit plná jména a avatary.\n\nConversations+ načte a porovná kontakty pouze lokálně, bez jejich nahrávání na server.\n\nNyní budete dotázáni na udělení práv pro přístup k seznamu kontaktů.</string>
+ <string name="sync_with_contacts_long">Aplikace Conversations by ráda porovnala váš XMPP seznam s vašimi kontakty, aby mohla zobrazit plná jména a avatary.\n\nConversations načte a porovná kontakty pouze lokálně, bez jejich nahrávání na server.\n\nNyní budete dotázáni na udělení práv pro přístup k seznamu kontaktů.</string>
<string name="certificate_information">Informace certifikátu</string>
<string name="certificate_subject">Předmět</string>
<string name="certificate_issuer">Vydavatel</string>
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 4cfbd67a..02a9c9ee 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -9,7 +9,7 @@
<string name="action_secure">Verschlüsselte Unterhaltung</string>
<string name="action_add_account">Konto hinzufügen</string>
<string name="action_edit_contact">Namen bearbeiten</string>
- <string name="action_add_phone_book">Zum Telefonbuch hinzufügen</string>
+ <string name="action_add_phone_book">Zu Telefonbuch hinzufügen</string>
<string name="action_delete_contact">Aus Kontaktliste entfernen</string>
<string name="action_block_contact">Kontakt sperren</string>
<string name="action_unblock_contact">Kontakt entsperren</string>
@@ -58,8 +58,8 @@
<string name="unblock">Entsperren</string>
<string name="save">Speichern</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ ist abgestürzt</string>
- <string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Conversations+.\n<b>Achtung:</b> Dies wird eines deiner XMPP-Konten benutzen, um den Entwickler zu kontaktieren.</string>
+ <string name="crash_report_title">Conversations ist abgestürzt</string>
+ <string name="crash_report_message">Durch das Einsenden von Fehlerberichten hilfst du bei der stetigen Verbesserung von Conversations.\n<b>Achtung:</b> Dies wird eines deiner XMPP-Konten benutzen, um den Entwickler zu kontaktieren.</string>
<string name="send_now">Jetzt abschicken</string>
<string name="send_never">Nie mehr nachfragen</string>
<string name="problem_connecting_to_account">Es gibt Probleme beim Verbindungsaufbau mit einem Konto</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Unverschlüsselt senden</string>
<string name="decryption_failed">Entschlüsselung fehlgeschlagen. Vielleicht hast du nicht den richtigen privaten Schlüssel.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte Conversations+ danach neu.)</small></string>
+ <string name="openkeychain_required_long">Conversations benutzt eine Drittanwendung namens <b>OpenKeychain</b>, um Nachrichten zu ver- und entschlüsseln und um deine Schlüssel zu verwalten.\n\nOpenKeychain ist GPLv3-lizenziert und kann über F-Droid oder Google Play bezogen werden.\n\n<small>(Bitte starte Conversations danach neu.)</small></string>
<string name="restart">Neu starten</string>
<string name="install">Installieren</string>
<string name="openkeychain_not_installed">Bitte OpenKeychain installieren</string>
<string name="offering">angeboten…</string>
<string name="waiting">warten…</string>
<string name="no_pgp_key">Kein OpenPGP-Schlüssel gefunden</string>
- <string name="contact_has_no_pgp_key">Conversations+ ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen oder ihren Schlüssel nicht preisgibt.\n\n<small>Bitte sag deinem Kontakt, er oder sie möge OpenPGP einrichten.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen oder ihren Schlüssel nicht preisgibt.\n\n<small>Bitte sag deinem Kontakt, er oder sie möge OpenPGP einrichten.</small></string>
<string name="no_pgp_keys">Keine OpenPGP-Schlüssel gefunden</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihre Schlüssel nicht preisgeben.\n\n<small>Bitte sage deinen Kontakten, sie mögen OpenPGP einrichten.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil deine Kontakte ihre Schlüssel nicht preisgeben.\n\n<small>Bitte sage deinen Kontakten, sie mögen OpenPGP einrichten.</small></string>
<string name="pref_general">Allgemeines</string>
<string name="pref_xmpp_resource">XMPP-Ressource</string>
<string name="pref_xmpp_resource_summary">Der Name, mit dem sich der Client selbst identifiziert</string>
@@ -122,7 +122,7 @@
<string name="pref_notification_grace_period_summary">Deaktiviere Benachrichtigungen für eine kurze Zeit nach Erhalt einer Nachricht, die von einem anderen deiner Clients kommt.</string>
<string name="pref_advanced_options">Erweitert</string>
<string name="pref_never_send_crash">Niemals Absturzberichte senden</string>
- <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du Conversations+ stetig zu verbessern</string>
+ <string name="pref_never_send_crash_summary">Wenn du Absturzberichte einschickst, hilfst du Conversations stetig zu verbessern</string>
<string name="pref_confirm_messages">Lese- und Empfangsbestätigung senden</string>
<string name="pref_confirm_messages_summary">Informiere deine Kontakte, wenn du eine Nachricht empfangen und gelesen hast</string>
<string name="pref_confirm_messages_none">Keine Bestätigungen</string>
@@ -298,13 +298,13 @@
<string name="pref_dont_save_encrypted_summary">Achtung: kann zu Nachrichtenverlust führen</string>
<string name="pref_expert_options">Experteneinstellungen</string>
<string name="pref_expert_options_summary">Hier bitte vorsichtig sein</string>
- <string name="title_activity_about">Über Conversations+</string>
+ <string name="title_activity_about">Über Conversations</string>
<string name="pref_about_conversations_summary">Versions- und Lizenzinformationen</string>
<string name="title_pref_quiet_hours">Ruhige Stunden</string>
<string name="title_pref_quiet_hours_start_time">Beginn</string>
<string name="title_pref_quiet_hours_end_time">Ende</string>
<string name="title_pref_enable_quiet_hours">Ruhige Stunden aktivieren</string>
- <string name="pref_quiet_hours_summary">Stummschalten der Benachrichtigungen während der ruhigen Stunden.</string>
+ <string name="pref_quiet_hours_summary">Benachrichtigungen sind während der ruhigen Stunden stumm.</string>
<string name="pref_use_larger_font">Schrift vergrößern</string>
<string name="pref_use_larger_font_summary">Größere Schriften für die gesamte App verwenden</string>
<string name="pref_use_send_button_to_indicate_status">\"Senden\"-Schaltfläche zeigt Online-Status an</string>
@@ -319,8 +319,8 @@
<string name="toast_message_otr_fingerprint">OTR-Fingerabdruck in die Zwischenablage kopiert!</string>
<string name="toast_message_omemo_fingerprint">OMEMO-Fingerabdruck in die Zwischenablage kopiert!</string>
<string name="conference_banned">Du wurdest von der Konferenz ausgeschlossen</string>
- <string name="conference_members_only">Diese Konferenz ist nur für Mitglieder</string>
- <string name="conference_kicked">Du wurdest aus dieser Konferenz geworfen</string>
+ <string name="conference_members_only">Die Konferenz ist nur für Mitglieder</string>
+ <string name="conference_kicked">Du wurdest aus der Konferenz geworfen</string>
<string name="conference_shutdown">Konferenz wurde geschlossen</string>
<string name="conference_unknown_error">Du bist nicht länger in dieser Konferenz</string>
<string name="using_account">Verwendetes Konto: %s</string>
@@ -357,9 +357,9 @@
<string name="verified">Überprüft!</string>
<string name="smp_requested">Kontakt fordert eine Überprüfung an</string>
<string name="no_otr_session_found">Keine gültige OTR-Sitzung gefunden!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Dienst im Vordergrund ausführen</string>
- <string name="pref_keep_foreground_service_summary">Verhindert, dass Android Conversations+ beendet und die Verbindung unterbricht</string>
+ <string name="pref_keep_foreground_service_summary">Verhindert, dass Android Conversations beendet und die Verbindung unterbricht</string>
<string name="pref_export_logs">Chats exportieren</string>
<string name="pref_export_logs_summary">Chats auf SD-Karte schreiben</string>
<string name="notification_export_logs_title">Chats werden auf SD-Karte geschrieben</string>
@@ -399,7 +399,7 @@
<string name="purge_key_desc_part1">Soll dieser Schlüssel gelöscht werden?</string>
<string name="purge_key_desc_part2">Dieser Vorgang kann nicht rückgängig gemacht werden und es kann nie wieder eine Verbindung mit diesem Schlüssel hergestellt werden.</string>
<string name="error_no_keys_to_trust_server_error">Für diesen Kontakt sind keine benutzbaren Schlüssel verfügbar.\nNeue Schlüssel vom Server herunterzuladen war nicht erfolgreich. Vielleicht stimmt etwas mit dem Server deines Kontakts nicht.</string>
- <string name="error_no_keys_to_trust">Es sind keine Schlüssel für diesen Kontakt verfügbar. Falls diese gelöscht wurden, müssen sie neu erstellt werden.</string>
+ <string name="error_no_keys_to_trust">Es sind keine Schlüssel für diesen Kontakt verfügbar. Falls sie gelöscht wurden, müssen diese neu erstellt werden.</string>
<string name="error_trustkeys_title">Fehler</string>
<string name="fetching_history_from_server">Lade Chatverlauf…</string>
<string name="no_more_history_on_server">Keine weiteren Nachrichten vorhanden</string>
@@ -440,7 +440,7 @@
<string name="private_conference">Private Konferenz nur für Mitglieder</string>
<string name="conference_options">Konferenz-Optionen</string>
<string name="members_only">Privat, nur Mitglieder</string>
- <string name="non_anonymous">Nicht mehr anonymisiert</string>
+ <string name="non_anonymous">De-anonymisiert</string>
<string name="moderated">Moderiert</string>
<string name="you_are_not_participating">Du bist kein Mitglied</string>
<string name="modified_conference_options">Konferenz-Optionen wurden modifiziert!</string>
@@ -464,7 +464,7 @@
<string name="vcard">Kontakt</string>
<string name="received_x_file">%s empfangen</string>
<string name="disable_foreground_service">Vordergrund-Dienst deaktivieren</string>
- <string name="touch_to_open_conversations">Antippen, um Conversations+ zu öffnen</string>
+ <string name="touch_to_open_conversations">Antippen, um Conversations zu öffnen</string>
<string name="avatar_has_been_published">Avatar wurde gespeichert</string>
<string name="sending_x_file">%s wird gesendet</string>
<string name="offering_x_file">%s wird angeboten</string>
@@ -472,8 +472,8 @@
<string name="disable_account">Konto abschalten</string>
<string name="contact_is_typing">%s schreibt…</string>
<string name="contact_has_stopped_typing">%s schreibt nicht mehr</string>
- <string name="pref_chat_states">Tippbenachrichtigung</string>
- <string name="pref_chat_states_summary">Informiere deine Kontakte, wenn du eine Nachricht schreibst.</string>
+ <string name="pref_chat_states">Tipp-Benachrichtigung</string>
+ <string name="pref_chat_states_summary">Informiere deine Kontakte, wenn du eine Nachricht eintippst.</string>
<string name="send_location">Standort senden</string>
<string name="show_location">Standort anzeigen</string>
<string name="no_application_found_to_display_location">Keine App für die Standort-Anzeige gefunden</string>
@@ -503,7 +503,7 @@
<string name="recently_used">zuletzt verwendet</string>
<string name="choose_quick_action">wähle Schnell-Taste</string>
<string name="search_for_contacts_or_groups">Nach Kontakten oder Konferenzen suchen</string>
- <string name="pref_led_notification_color">Farbe der Benachrichtigungs-LED</string>
+ <string name="pref_led_notification_color">LED-Benachrichtigung Farbe</string>
<string name="pref_led_notification_color_summary">Setze die Farbe der LED-Benachrichtigung</string>
<string name="msg_ctx_mnu_details">Nachrichtendetails</string>
<string name="dlg_msg_details_title">Nachrichtendetails</string>
@@ -534,7 +534,7 @@
<string name="pref_resize_picture_ask">nachfragen</string>
<string name="pref_resize_picture_always">immer</string>
<string name="pref_resize_picture_never">nie</string>
- <string name="pref_resize_picture_summary">Bilder vor dem Senden verkleinern?</string>
+ <string name="pref_resize_picture_summary">Sollen Bilder vor dem Senden verkleinert werden oder nicht?</string>
<string name="pref_resize_picture">Bilder verkleinern</string>
<string name="cplus_yes">Ja</string>
<string name="cplus_no">Nein</string>
@@ -543,12 +543,12 @@
<string name="title_activity_loginformation">Logausgaben</string>
<string name="cplus_copy_to_clipboard">Kopieren</string>
<string name="cplus_copied_to_clipboard">In Zwischenablage kopiert</string>
- <string name="pref_show_logcat_title">Zeige logcat-Ausgabe</string>
+ <string name="pref_show_logcat_title">Zeige logcat Ausgabe</string>
<string name="pref_show_logcat_summary">Zeigt die Ausgabe von logcat an. Hilfreich für die Fehlersuche.</string>
<string name="cplus_bugreport_jabberid">c+bugs@conference.thedevstack.de</string>
- <string name="pref_file_transfer">Ordnername für eingehende Dateien</string>
+ <string name="pref_file_transfer">Ordnername, um eingehnde Datein zu speichern</string>
<string name="pref_file_transfer_folder_summary">Unterordner des globalen Dateiordners, um eingehende Dateien zu speichern.</string>
- <string name="pref_img_file_transfer">Ordnername für eingehende Bilder</string>
+ <string name="pref_img_file_transfer">Ordnername, um eingehende Bilder zu speichern</string>
<string name="pref_img_file_transfer_summary">Unterordner des globalen Bilderordners, um eingehende Bilder zu speichern.</string>
<string name="pref_file_transfer_category">Dateiübertragung</string>
<string name="cplus_not_copied_to_clipboard_empty">Nichts zu kopieren.</string>
@@ -557,7 +557,7 @@
<string name="user_has_left_conference">%s hat die Konferenz verlassen!</string>
<string name="username">Benutzername</string>
<string name="username_hint">Benutzername</string>
- <string name="invalid_username">Das ist ein ungültiger Benutzername</string>
+ <string name="invalid_username">Ungültiger Benutzername</string>
<string name="conference_name">Konferenz-Name</string>
<string name="invalid_conference_name">Dies ist kein gültiger Konferenz-Name</string>
<string name="download_failed_server_not_found">Download fehlgeschlagen: Server nicht gefunden</string>
@@ -582,9 +582,9 @@
<string name="server_side_mam_prefs">Archivierungseinstellungen des Servers</string>
<string name="fetching_mam_prefs">Archivierungseinstellungen werden abgerufen. Bitte warten …</string>
<string name="unable_to_fetch_mam_prefs">Archivierungseinstellungen konnten nicht abgerufen werden</string>
- <string name="captcha_ocr">Captcha-Text</string>
+ <string name="captcha_ocr">Captcha Text</string>
<string name="captcha_required">Captcha erforderlich</string>
- <string name="captcha_hint">Text aus Captcha-Grafik eintragen</string>
+ <string name="captcha_hint">Text aus Captcha eintragen</string>
<string name="certificate_chain_is_not_trusted">Zertifikat wird nicht vertraut</string>
<string name="jid_does_not_match_certificate">Jabber-ID stimmt nicht dem Zertifikat überein</string>
<string name="action_renew_certificate">Zertifikat erneuern</string>
@@ -604,9 +604,9 @@
<string name="shared_file_with_x">Datei mit %s geteilt</string>
<string name="shared_image_with_x">Bild mit %s geteilt</string>
<string name="shared_images_with_x">Bilder mit %s geteilt</string>
- <string name="no_storage_permission">Conversations+ benötigt Zugriff auf externen Speicher</string>
+ <string name="no_storage_permission">Conversations benötigt Zugriff auf externen Speicher</string>
<string name="sync_with_contacts">Mit Kontakten synchronisieren</string>
- <string name="sync_with_contacts_long">Conversations+ möchte deine XMPP-Kontaktliste mit deinen Kontakten abgleichen, um deren vollständige Namen und Avatare anzuzeigen.\n\nConversations+ wird deine Kontakte nur lokal lesen und abgleichen und überträgt diese nicht auf den Server.\n\nDu wirst nun gefragt, ob du den Zugriff auf deine Kontakte erlauben möchtest.</string>
+ <string name="sync_with_contacts_long">Conversations möchte deine XMPP-Kontaktliste mit deinen Kontakten abgleichen, um deren vollständige Namen und Avatare anzuzeigen.\n\nConversations wird deine Kontakte nur lokal lesen und abgleichen und überträgt diese nicht auf den Server.\n\nDu wirst nun gefragt, ob du den Zugriff auf deine Kontakte erlauben möchtest.</string>
<string name="certificate_information">Zertifikatinformationen</string>
<string name="certificate_subject">Betreff</string>
<string name="certificate_issuer">Aussteller</string>
@@ -622,8 +622,8 @@
<string name="always">Immer</string>
<string name="automatically">Automatisch</string>
<string name="battery_optimizations_enabled">Batterieoptimierung aktiv</string>
- <string name="battery_optimizations_enabled_explained">Dein Telefon wendet Batterioptimierungen bei Conversations+ an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können.\nEs ist empfehlenswert diese zu deaktivieren.</string>
- <string name="battery_optimizations_enabled_dialog">Dein Telefon wendet Batterioptimierungen bei Conversations+ an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können. Es ist empfehlenswert dies zu deaktivieren.</string>
+ <string name="battery_optimizations_enabled_explained">Dein Telefon wendet Batterioptimierungen bei Conversations an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können.\nEs ist empfehlenswert diese zu deaktivieren.</string>
+ <string name="battery_optimizations_enabled_dialog">Dein Telefon wendet Batterioptimierungen bei Conversations an, welche verspätete Benachrichtigungen oder Nachrichtenverlust verursachen können. Es ist empfehlenswert dies zu deaktivieren.</string>
<string name="disable">Deaktivieren</string>
<string name="selection_too_large">Der ausgewählte Bereich ist zu groß</string>
<string name="no_accounts">(Keine aktivierten Konten)</string>
diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml
index 9e2667a1..43dc9ef1 100644
--- a/src/main/res/values-el/strings.xml
+++ b/src/main/res/values-el/strings.xml
@@ -55,8 +55,8 @@
<string name="unblock">Άρση αποκλεισμού</string>
<string name="save">Αποθήκευση</string>
<string name="ok">Εντάξει</string>
- <string name="crash_report_title">Το Conversations+ έκλεισε απροσδόκητα</string>
- <string name="crash_report_message">Στέλνοντας ίχνη στοίβας προωθείτε την συνεχή ανάπτυξη του Conversations+\n<b>Προειδοποίηση:</b> Για την αποστολή του ίχνους στοίβας θα χρησιμοποιηθεί ο XMPP λογαριασμός σας.</string>
+ <string name="crash_report_title">Το Conversations έκλεισε απροσδόκητα</string>
+ <string name="crash_report_message">Στέλνοντας ίχνη στοίβας προωθείτε την συνεχή ανάπτυξη του Conversations\n<b>Προειδοποίηση:</b> Για την αποστολή του ίχνους στοίβας θα χρησιμοποιηθεί ο XMPP λογαριασμός σας.</string>
<string name="send_now">Αποστολή τώρα</string>
<string name="send_never">Χωρίς ερώτηση την επόμενη φορά</string>
<string name="problem_connecting_to_account">Αδύνατη η σύνδεση στον λογαριασμό</string>
@@ -79,15 +79,15 @@
<string name="send_unencrypted">Αποστολή χωρίς κρυπτογράφηση</string>
<string name="decryption_failed">Η αποκρυπτογράφηση απέτυχε. Ίσως δεν κατέχετε το σωστό ιδιωτικό κλειδί.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Το Conversations+ χρησιμοποιεί μια τρίτη εφαρμογή που ονομάζεται <b>OpenKeychain</b> για να κρυπτογραφεί και να αποκρυπτογραφεί μηνύματα και να διαχειρίζεται τα δημόσια κλειδιά σας.\n\nΤο OpenKeychain δημοσιεύεται με την άδεια GPLv3 και είναι διαθέσιμο στο F-Droid και το Google Play.\n\n<small>(Παρακαλώ επανεκκινήστε το Conversations+ αμέσως μετά.)</small></string>
+ <string name="openkeychain_required_long">Το Conversations χρησιμοποιεί μια τρίτη εφαρμογή που ονομάζεται <b>OpenKeychain</b> για να κρυπτογραφεί και να αποκρυπτογραφεί μηνύματα και να διαχειρίζεται τα δημόσια κλειδιά σας.\n\nΤο OpenKeychain δημοσιεύεται με την άδεια GPLv3 και είναι διαθέσιμο στο F-Droid και το Google Play.\n\n<small>(Παρακαλώ επανεκκινήστε το Conversations αμέσως μετά.)</small></string>
<string name="restart">Επανεκκίνηση</string>
<string name="install">Εγκατάσταση</string>
<string name="offering">προσφορά...</string>
<string name="waiting">αναμονή...</string>
<string name="no_pgp_key">Δεν βρέθηκε κλειδί OpenPGP</string>
- <string name="contact_has_no_pgp_key">Το Conversations+ αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί η επαφή σας δεν ανακοινώνει το δημόσιο κλειδί της.\n\n<small>Παρακαλώ ζητήστε από την επαφή σας να εγκαταστήσει το OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Το Conversations αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί η επαφή σας δεν ανακοινώνει το δημόσιο κλειδί της.\n\n<small>Παρακαλώ ζητήστε από την επαφή σας να εγκαταστήσει το OpenPGP.</small></string>
<string name="no_pgp_keys">Δεν βρέθηκαν κλειδιά OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Το Conversations+ αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί οι επαφές σας δεν ανακοινώνουν το δημόσιο κλειδί τους.\n\n<small>Παρακαλώ ζητήστε από τις επαφές σας να εγκαταστήσουν το OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Το Conversations αδυνατεί να κρυπτογραφήσει τα μηνύματά σας γιατί οι επαφές σας δεν ανακοινώνουν το δημόσιο κλειδί τους.\n\n<small>Παρακαλώ ζητήστε από τις επαφές σας να εγκαταστήσουν το OpenPGP.</small></string>
<string name="pref_general">Γενικά</string>
<string name="pref_xmpp_resource">πόρος XMPP</string>
<string name="pref_xmpp_resource_summary">Το όνομα με το οποίο ταυτοποιείται αυτό το πρόγραμμα-πελάτης</string>
@@ -100,7 +100,7 @@
<string name="pref_notification_grace_period">Περίοδος χάριτος ειδοποιήσεων</string>
<string name="pref_notification_grace_period_summary">Απενεργοποίηση ειδοποιήσεων για λίγο χρόνο μετά από τη λήψη ακριβούς αντιγράφου</string>
<string name="pref_never_send_crash">Να μην αποστέλλονται αναφορές λαθών</string>
- <string name="pref_never_send_crash_summary">Στέλνοντας ίχνη στοίβας βοηθάτε την συνεχόμενη ανάπτυξη του Conversations+</string>
+ <string name="pref_never_send_crash_summary">Στέλνοντας ίχνη στοίβας βοηθάτε την συνεχόμενη ανάπτυξη του Conversations</string>
<string name="pref_confirm_messages">Επιβεβαίωση μηνυμάτων</string>
<string name="pref_confirm_messages_summary">Επιτρέψτε στην επαφή σας να ειδοποιείται όταν έχετε λάβει και διαβάσει ένα μήνυμα</string>
<string name="openpgp_error">Το OpenKeychain ανέφερε κάποιο σφάλμα</string>
@@ -248,7 +248,7 @@
<string name="pref_dont_save_encrypted">Χωρίς αποθήκευση κρυπτογραφημένων μηνυμάτων</string>
<string name="pref_dont_save_encrypted_summary">Προειδοποίηση: Αυτό μπορεί να οδηγήσει σε απώλεια μηνυμάτων</string>
<string name="pref_expert_options_summary">Παρακαλώ να είστε προσεκτικοί με αυτά</string>
- <string name="title_activity_about">Σχετικά με το Conversations+</string>
+ <string name="title_activity_about">Σχετικά με το Conversations</string>
<string name="pref_about_conversations_summary">Πληροφορίες δημιουργίας και αδειών</string>
<string name="title_pref_quiet_hours">Ώρες ησυχίας</string>
<string name="title_pref_quiet_hours_start_time">Ώρα έναρξης</string>
@@ -385,7 +385,7 @@
<string name="vcard">Επαφή</string>
<string name="received_x_file">Λήψη του %s</string>
<string name="disable_foreground_service">Απενεργοποίηση της υπηρεσίας στο προσκήνιο</string>
- <string name="touch_to_open_conversations">Επιλέξτε για να ανοίξετε το Conversations+</string>
+ <string name="touch_to_open_conversations">Επιλέξτε για να ανοίξετε το Conversations</string>
<string name="avatar_has_been_published">Η εικόνα προφίλ έχει δημοσιευτεί!</string>
<string name="sending_x_file">Αποστολή του %s</string>
<string name="offering_x_file">Προσφορά του %s</string>
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index c9aee945..49add502 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Desbloquear</string>
<string name="save">Guardar</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ se ha caído</string>
- <string name="crash_report_message">Si envía informes de fallos ayuda al desarrollo de Conversations+\n<b>Advertencia:</b> Esto usará su cuenta XMPP para enviar los registros de error al desarrollador.</string>
+ <string name="crash_report_title">Conversations se ha caído</string>
+ <string name="crash_report_message">Si envía informes de fallos ayuda al desarrollo de Conversations\n<b>Advertencia:</b> Esto usará su cuenta XMPP para enviar los registros de error al desarrollador.</string>
<string name="send_now">Enviar ahora</string>
<string name="send_never">No preguntar de nuevo</string>
<string name="problem_connecting_to_account">No se ha podido conectar a la cuenta</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Enviar sin cifrar</string>
<string name="decryption_failed">Falló al descifrar. Tal vez no tenga la clave privada apropiada.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ utiliza una aplicación de terceros llamada <b>OpenKeychain</b> para cifrar y descifrar mensajes, y gestionar sus claves públicas.\n\nOpenKeychain está publicado bajo licencia GPLv3 y disponible en F-Droid y Google Play.\n\n<small>(Por favor, reinicie Conversations+ a continuación.)</small></string>
+ <string name="openkeychain_required_long">Conversations utiliza una aplicación de terceros llamada <b>OpenKeychain</b> para cifrar y descifrar mensajes, y gestionar sus claves públicas.\n\nOpenKeychain está publicado bajo licencia GPLv3 y disponible en F-Droid y Google Play.\n\n<small>(Por favor, reinicie Conversations a continuación.)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
<string name="openkeychain_not_installed">Por favor, instale OpenKeychain</string>
<string name="offering">ofreciendo…</string>
<string name="waiting">esperando…</string>
<string name="no_pgp_key">No se encontró clave OpenPGP</string>
- <string name="contact_has_no_pgp_key">Conversations+ no ha podido cifrar sus mensajes porque su contacto no está anunciando su clave publica.\n\n<small>Por favor, pida a su contacto que configure OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations no ha podido cifrar sus mensajes porque su contacto no está anunciando su clave publica.\n\n<small>Por favor, pida a su contacto que configure OpenPGP.</small></string>
<string name="no_pgp_keys">No se encontraron claves OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ no ha podido cifrar tus mensajes porque sus contactos no están anunciando sus claves publicas.\n\n<small>Por favor, pida a sus contactos que configuren OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations no ha podido cifrar tus mensajes porque sus contactos no están anunciando sus claves publicas.\n\n<small>Por favor, pida a sus contactos que configuren OpenPGP.</small></string>
<string name="pref_general">General</string>
<string name="pref_xmpp_resource">Recurso XMPP</string>
<string name="pref_xmpp_resource_summary">El nombre que identifica el cliente que está utilizando</string>
@@ -120,7 +120,7 @@
<string name="pref_notification_grace_period_summary">Deshabilita las notificaciones durante un corto periodo de tiempo tras recibir la copia de un mensaje</string>
<string name="pref_advanced_options">Avanzados</string>
<string name="pref_never_send_crash">Nunca enviar informes de error</string>
- <string name="pref_never_send_crash_summary">Si envías registros de error ayudas al desarrollo de Conversations+</string>
+ <string name="pref_never_send_crash_summary">Si envías registros de error ayudas al desarrollo de Conversations</string>
<string name="pref_confirm_messages">Confirmar mensajes</string>
<string name="pref_confirm_messages_summary">Permitir que mi contacto sepa cuando recibo y leo un mensaje</string>
<string name="pref_confirm_messages_none">Sin confirmación</string>
@@ -296,7 +296,7 @@
<string name="pref_dont_save_encrypted_summary">Advertencia: Esto podría llevar a la pérdida de mensajes</string>
<string name="pref_expert_options">Opciones para expertos</string>
<string name="pref_expert_options_summary">Por favor, tenga cuidado con estas opciones</string>
- <string name="title_activity_about">Acerca de Conversations+</string>
+ <string name="title_activity_about">Acerca de Conversations</string>
<string name="pref_about_conversations_summary">Información de compilación y licencia</string>
<string name="title_pref_quiet_hours">Horario de silencio</string>
<string name="title_pref_quiet_hours_start_time">Hora de iniciación</string>
@@ -355,7 +355,7 @@
<string name="verified">¡Verificado!</string>
<string name="smp_requested">El contacto solicita verificación SMP</string>
<string name="no_otr_session_found">¡No se ha encontrado una sesión OTR válida!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Servicio en primer plano</string>
<string name="pref_keep_foreground_service_summary">Mantener el servicio en primer plano evita que el sistema cierre la conexión</string>
<string name="pref_export_logs">Exportar registros (logs)</string>
@@ -462,7 +462,7 @@
<string name="vcard">Contacto</string>
<string name="received_x_file">Recibido %s</string>
<string name="disable_foreground_service">Deshabilitar servicio en primer plano</string>
- <string name="touch_to_open_conversations">Pulse para abrir Conversations+</string>
+ <string name="touch_to_open_conversations">Pulse para abrir Conversations</string>
<string name="avatar_has_been_published">¡Se ha publicado el avatar!</string>
<string name="sending_x_file">Enviando %s</string>
<string name="offering_x_file">Ofreciendo %s</string>
@@ -602,9 +602,9 @@
<string name="shared_file_with_x">Archivo compartido con %s</string>
<string name="shared_image_with_x">Imagen compartida con %s</string>
<string name="shared_images_with_x">Imágenes compartidas con %s</string>
- <string name="no_storage_permission">Conversations+ necesita acceder al almacenamiento externo</string>
+ <string name="no_storage_permission">Conversations necesita acceder al almacenamiento externo</string>
<string name="sync_with_contacts">Sincronizar contactos</string>
- <string name="sync_with_contacts_long">Conversations+ quiere cruzar su lista de contactos XMPP con sus contactos del móvil para mostrar sus nombres completos y fotos del perfil.\n\nConversations+ sólo leerá y cruzará sus contactos localmente sin subirlos a su servidor.\n\nEl sistema le pedirá ahora que conceda permiso para acceder a sus contactos del móvil.</string>
+ <string name="sync_with_contacts_long">Conversations quiere cruzar su lista de contactos XMPP con sus contactos del móvil para mostrar sus nombres completos y fotos del perfil.\n\nConversations sólo leerá y cruzará sus contactos localmente sin subirlos a su servidor.\n\nEl sistema le pedirá ahora que conceda permiso para acceder a sus contactos del móvil.</string>
<string name="certificate_information">Información de certificado</string>
<string name="certificate_subject">Asunto</string>
<string name="certificate_issuer">Emisor</string>
@@ -622,8 +622,8 @@
<string name="always">Siempre</string>
<string name="automatically">Automáticamente</string>
<string name="battery_optimizations_enabled">Optimizaciones de uso de batería habilitadas</string>
- <string name="battery_optimizations_enabled_explained">Su dispositivo está realizando extensas optimizaciones de uso de batería en Conversations+ que pueden hacer que los mensajes se retrasen o que incluso se pierdan.\nEs recomendable deshabilitarlas.</string>
- <string name="battery_optimizations_enabled_dialog">Su dispositivo está realizando optimizaciones de uso de batería en Conversations+ que pueden hacer que los mensajes se retrasen o que incluso se pierdan.\n\nEl sistema le pedirá ahora que las deshabilite.</string>
+ <string name="battery_optimizations_enabled_explained">Su dispositivo está realizando extensas optimizaciones de uso de batería en Conversations que pueden hacer que los mensajes se retrasen o que incluso se pierdan.\nEs recomendable deshabilitarlas.</string>
+ <string name="battery_optimizations_enabled_dialog">Su dispositivo está realizando optimizaciones de uso de batería en Conversations que pueden hacer que los mensajes se retrasen o que incluso se pierdan.\n\nEl sistema le pedirá ahora que las deshabilite.</string>
<string name="disable">Deshabilitar</string>
<string name="selection_too_large">El área seleccionada es demasiado grande</string>
<string name="no_accounts">(No hay cuentas activadas)</string>
diff --git a/src/main/res/values-eu/strings.xml b/src/main/res/values-eu/strings.xml
index 1a7f2084..c18e6d8d 100644
--- a/src/main/res/values-eu/strings.xml
+++ b/src/main/res/values-eu/strings.xml
@@ -58,7 +58,7 @@
<string name="unblock">Desblokeatu</string>
<string name="save">Gorde</string>
<string name="ok">Ados</string>
- <string name="crash_report_title">Conversations+ gelditu da</string>
+ <string name="crash_report_title">Conversations gelditu da</string>
<string name="crash_report_message">Akats harraskak bidaliz Conversationsen garapenean laguntzen duzu\n<b>Abisua:</b> Honek zure XMPP kontua erabiliko du garatzaileari akats harraska bidaltzeko.</string>
<string name="send_now">Bidali orain</string>
<string name="send_never">Ez galdetu berriz</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Enkriptatu gabe bidali</string>
<string name="decryption_failed">Desenkriptazioak huts egin du. Agian ez duzu gako pribatu egokia.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversationsek <b>OpenKeychain</b> izeneko hirugarren app bat erabiltzen du mezuak enkriptatu eta desenkriptatzeko eta zure gako publikoak kudeatzeko.\n\nOpenKeychain GPLv3 lizentziapean dago eta F-Droid eta Google Playn eskura daiteke.\n\n<small>(Mesedez ondoren Conversations+ berrabiarazi)</small></string>
+ <string name="openkeychain_required_long">Conversationsek <b>OpenKeychain</b> izeneko hirugarren app bat erabiltzen du mezuak enkriptatu eta desenkriptatzeko eta zure gako publikoak kudeatzeko.\n\nOpenKeychain GPLv3 lizentziapean dago eta F-Droid eta Google Playn eskura daiteke.\n\n<small>(Mesedez ondoren Conversations berrabiarazi)</small></string>
<string name="restart">Berrabiarazi</string>
<string name="install">Instalatu</string>
<string name="openkeychain_not_installed">Mesedez instalatu ezazu OpenKeychain</string>
<string name="offering">eskeintzen…</string>
<string name="waiting">itxaroten…</string>
<string name="no_pgp_key">Ez da OpenPGP gakorik aurkitu</string>
- <string name="contact_has_no_pgp_key">Conversations+ ez da zure mezuak enkriptatzeko gai zure kontaktua bere gako publikoa jakinarazten ez dagoelako.\n\n<small>Mesedez eskatu ezaiozu zure kontaktuari openPGP konfigura dezan.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations ez da zure mezuak enkriptatzeko gai zure kontaktua bere gako publikoa jakinarazten ez dagoelako.\n\n<small>Mesedez eskatu ezaiozu zure kontaktuari openPGP konfigura dezan.</small></string>
<string name="no_pgp_keys">Ez da OpenPGP gakorik aurkitu</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ ez da zure mezuak enkriptatzeko gai zure kontaktuak haien gako publikoa jakinarazten ez daudelako.\n\n<small>Mesedez eskatu ezaiezu zure kontakuei OpenPGP konfigura dezaten.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations ez da zure mezuak enkriptatzeko gai zure kontaktuak haien gako publikoa jakinarazten ez daudelako.\n\n<small>Mesedez eskatu ezaiezu zure kontakuei OpenPGP konfigura dezaten.</small></string>
<string name="pref_general">Orokorrak</string>
<string name="pref_xmpp_resource">XMPP baliabidea</string>
<string name="pref_xmpp_resource_summary">Bezero honek bere burua aurkezteko erabiltzen duen izena</string>
@@ -342,7 +342,7 @@
<string name="verified">Egiaztatuta!</string>
<string name="smp_requested">Kontaktuak SMP egiaztapena eskatu du</string>
<string name="no_otr_session_found">Ez da OTR saio baliodunik aurkitu!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Zerbitzua atzeko planoan mantendu</string>
<string name="pref_keep_foreground_service_summary">Sistema eragileak zure konexioa hiltzea galarazten du</string>
<string name="pref_export_logs">Erregistroak esportatu</string>
@@ -448,7 +448,7 @@
<string name="vcard">Kontaktua</string>
<string name="received_x_file">%s jaso da</string>
<string name="disable_foreground_service">Atzeko planoko zerbiztua ezgaitu</string>
- <string name="touch_to_open_conversations">Ikutu Conversations+ irekitzeko</string>
+ <string name="touch_to_open_conversations">Ikutu Conversations irekitzeko</string>
<string name="avatar_has_been_published">Profileko argazkia argitaratu da</string>
<string name="sending_x_file">%s bidaltzen</string>
<string name="offering_x_file">%s eskeintzen...</string>
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index 4fd2b160..03ab3e9b 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -26,7 +26,7 @@
<string name="just_now">À l\'instant</string>
<string name="minute_ago">Il y a 1 minute</string>
<string name="minutes_ago">Il y a %d minutes</string>
- <string name="unread_conversations">Conversations+ non lues</string>
+ <string name="unread_conversations">Conversations non lues</string>
<string name="sending">Envoi…</string>
<string name="message_decrypting">Déchiffrement du message. Veuillez patienter...</string>
<string name="pgp_message">Message chiffré avec OpenPGP</string>
@@ -58,8 +58,8 @@
<string name="unblock">Débloquer</string>
<string name="save">Enregistrer</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ a planté</string>
- <string name="crash_report_message">En envoyant des logs, vous aidez le développement de Conversations+.\n\n<b>Attention :</b> Votre compte XMPP sera utilisé pour envoyer les logs aux développeurs.</string>
+ <string name="crash_report_title">Conversations a planté</string>
+ <string name="crash_report_message">En envoyant des logs, vous aidez le développement de Conversations.\n\n<b>Attention :</b> Votre compte XMPP sera utilisé pour envoyer les logs aux développeurs.</string>
<string name="send_now">Envoyer</string>
<string name="send_never">Ne plus me demander</string>
<string name="problem_connecting_to_account">Impossible de se connecter au compte.</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Envoyer en clair</string>
<string name="decryption_failed">Echec du déchiffrement. Avez-vous la bonne clef privée ?</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ requiert une application tierce nommée <b>OpenKeychain</b> pour chiffrer et déchiffrer les messages.\n\nOpenKeychain est sous licence GPLv3 et est disponible sur F-Droid et Google Play.\n\n<small>(Veuillez redémarrer Conversations+ après l\'installation de l\'app)</small></string>
+ <string name="openkeychain_required_long">Conversations requiert une application tierce nommée <b>OpenKeychain</b> pour chiffrer et déchiffrer les messages.\n\nOpenKeychain est sous licence GPLv3 et est disponible sur F-Droid et Google Play.\n\n<small>(Veuillez redémarrer Conversations après l\'installation de l\'app)</small></string>
<string name="restart">Redémarrer</string>
<string name="install">Installer</string>
<string name="openkeychain_not_installed">Veuillez installer OpenKeychain</string>
<string name="offering">Proposition…</string>
<string name="waiting">Patientez…</string>
<string name="no_pgp_key">Aucune clef OpenPGP trouvée.</string>
- <string name="contact_has_no_pgp_key">Conversations+ ne peut pas chiffrer vos messages car votre contact n\'a pas communiqué sa clef publique.\n\n<small>Demandez-lui de configurer OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations ne peut pas chiffrer vos messages car votre contact n\'a pas communiqué sa clef publique.\n\n<small>Demandez-lui de configurer OpenPGP.</small></string>
<string name="no_pgp_keys">Aucune clef OpenPGP n\'a été trouvée.</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ ne peut pas chiffrer votre message car vos contacts ne communiquent pas leur clef publique.\n\n<small>Demandez-leur de configurer OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations ne peut pas chiffrer votre message car vos contacts ne communiquent pas leur clef publique.\n\n<small>Demandez-leur de configurer OpenPGP.</small></string>
<string name="pref_general">Général</string>
<string name="pref_xmpp_resource">Ressource XMPP</string>
<string name="pref_xmpp_resource_summary">Nom utilisé par ce client pour s\'identifier</string>
@@ -113,7 +113,7 @@
<string name="pref_notification_grace_period_summary">Désactiver momentanément les notifications après l\'arrivée d\'une copie carbone.</string>
<string name="pref_advanced_options">Avancé</string>
<string name="pref_never_send_crash">Ne pas envoyer de rapports d\'erreurs</string>
- <string name="pref_never_send_crash_summary">En envoyant des logs vous aidez le développement de Conversations+.</string>
+ <string name="pref_never_send_crash_summary">En envoyant des logs vous aidez le développement de Conversations.</string>
<string name="pref_confirm_messages">Confirmation de lecture</string>
<string name="pref_confirm_messages_summary">Informer le contact lorsque vous avez reçu et lu un message.</string>
<string name="pref_ui_options">Interface</string>
@@ -343,7 +343,7 @@
<string name="verified">Vérifié !</string>
<string name="smp_requested">Le contact requiert la vérification du SMP</string>
<string name="no_otr_session_found">Aucune session OTR valide n\'a été trouvée !</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Garder le service au 1er plan</string>
<string name="pref_keep_foreground_service_summary">Évite que le système ne ferme votre connexion.</string>
<string name="pref_export_logs">Exporter les historiques</string>
@@ -448,7 +448,7 @@
<string name="vcard">Contact</string>
<string name="received_x_file">%s reçu(e)</string>
<string name="disable_foreground_service">Ne plus garder le service au 1er plan</string>
- <string name="touch_to_open_conversations">Cliquez pour ouvrir Conversations+</string>
+ <string name="touch_to_open_conversations">Cliquez pour ouvrir Conversations</string>
<string name="avatar_has_been_published">L\'avatar a été publié !</string>
<string name="sending_x_file">%s en cours d\'envoi</string>
<string name="offering_x_file">En train de proposer un(e) %s</string>
@@ -487,8 +487,6 @@
<string name="recently_used">Dernière utilisée</string>
<string name="choose_quick_action">Sélectionner l\'action rapide</string>
<string name="search_for_contacts_or_groups">Rechercher des contacts ou des groupes</string>
- <!--%s = bare jid, %d = count of online resources-->
- <string name="dlg_msg_details_msg_status_failed">Échec</string>
<string name="send_private_message">Envoyer un message privé</string>
<string name="user_has_left_conference">%s a quitté la conférence !</string>
<string name="username">Identifiant</string>
@@ -539,9 +537,9 @@
</plurals>
<string name="shared_file_with_x">Fichier partagé avec %s</string>
<string name="shared_image_with_x">Image partagée avec %s</string>
- <string name="no_storage_permission">Conversations+ a besoin d\'accéder au stockage externe</string>
+ <string name="no_storage_permission">Conversations a besoin d\'accéder au stockage externe</string>
<string name="sync_with_contacts">Synchroniser avec contacts</string>
- <string name="sync_with_contacts_long">Conversations+ souhaite associer vos contacts XMPP avec les contacts de votre appareil, pour utiliser leur nom complet et leur avatar.\n\nConversations+ va uniquement lire vos contacts et les associer localement, sans les envoyer sur le serveur XMPP.\n\nVotre appareil va maintenant vous demander la permission d\'accéder à vos contacts.</string>
+ <string name="sync_with_contacts_long">Conversations souhaite associer vos contacts XMPP avec les contacts de votre appareil, pour utiliser leur nom complet et leur avatar.\n\nConversations va uniquement lire vos contacts et les associer localement, sans les envoyer sur le serveur XMPP.\n\nVotre appareil va maintenant vous demander la permission d\'accéder à vos contacts.</string>
<string name="certificate_information">Informations du certificat</string>
<string name="certificate_subject">Sujet</string>
<string name="certificate_issuer">Émetteur</string>
@@ -557,8 +555,8 @@
<string name="always">Toujours</string>
<string name="automatically">Automatiquement</string>
<string name="battery_optimizations_enabled">Optimisations de batterie activées</string>
- <string name="battery_optimizations_enabled_explained">Votre appareil applique sur Conversations+ des optimisations de batterie très strictes qui pourraient provoquer des retards dans les notifications, voire des pertes de messages.\nNous vous recommandons de les désactiver.</string>
- <string name="battery_optimizations_enabled_dialog">Votre appareil applique sur Conversations+ des optimisations de batterie très strictes qui pourraient provoquer des retards dans les notifications, voire des pertes de messages.\nVous allez maintenant avoir la possibilité de les désactiver.</string>
+ <string name="battery_optimizations_enabled_explained">Votre appareil applique sur Conversations des optimisations de batterie très strictes qui pourraient provoquer des retards dans les notifications, voire des pertes de messages.\nNous vous recommandons de les désactiver.</string>
+ <string name="battery_optimizations_enabled_dialog">Votre appareil applique sur Conversations des optimisations de batterie très strictes qui pourraient provoquer des retards dans les notifications, voire des pertes de messages.\nVous allez maintenant avoir la possibilité de les désactiver.</string>
<string name="disable">Désactiver</string>
<string name="selection_too_large">La zone sélectionnée est trop grande</string>
<string name="no_accounts">(Aucun compte activé)</string>
diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml
index ab3d4329..630807df 100644
--- a/src/main/res/values-gl/strings.xml
+++ b/src/main/res/values-gl/strings.xml
@@ -26,8 +26,8 @@
<string name="start_conversation">Comeza conversa</string>
<string name="cancel">Cancelar</string>
<string name="save">Gardar</string>
- <string name="crash_report_title">Conversations+ deteuse.</string>
- <string name="crash_report_message">Enviando volcados de pilas axudas ao desenrolo de Conversations+\n<b>Aviso:</b> Isto empregará a túa conta XMPP para enviar o volcado de pila ao desenrolador.</string>
+ <string name="crash_report_title">Conversations deteuse.</string>
+ <string name="crash_report_message">Enviando volcados de pilas axudas ao desenrolo de Conversations\n<b>Aviso:</b> Isto empregará a túa conta XMPP para enviar o volcado de pila ao desenrolador.</string>
<string name="send_now">Enviar agora</string>
<string name="send_never">Non preguntar de novo</string>
<string name="problem_connecting_to_account">Erro na conexión á conta</string>
@@ -50,12 +50,12 @@
<string name="send_unencrypted">Enviar sen cifrar</string>
<string name="decryption_failed">Fallou o descifrado. Quizábeis non teñas a clave privada apropiada.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ emprega unha aplicación de terceiros chamada <b>OpenKeychain</b> para cifrar e descifrar mensaxes e xestionar as túas claves públicas.\n\nOpenKeychain está publicado baixo licencia GPLv3 e disponible en F-Droid e Google Play.\n\n<small>(Por favor, reinicie Conversations+ despois.)</small></string>
+ <string name="openkeychain_required_long">Conversations emprega unha aplicación de terceiros chamada <b>OpenKeychain</b> para cifrar e descifrar mensaxes e xestionar as túas claves públicas.\n\nOpenKeychain está publicado baixo licencia GPLv3 e disponible en F-Droid e Google Play.\n\n<small>(Por favor, reinicie Conversations despois.)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
<string name="offering">ofrecendo…</string>
<string name="no_pgp_key">Clave OpenPGP non atopada</string>
- <string name="contact_has_no_pgp_key">Conversations+ non foi quen de cifrar as túas mensaxes porque o teu contactos non está anunciando a súa clave pública.\n\n<small>Por favor, pídelle ao teu contacto que configure OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations non foi quen de cifrar as túas mensaxes porque o teu contactos non está anunciando a súa clave pública.\n\n<small>Por favor, pídelle ao teu contacto que configure OpenPGP.</small></string>
<string name="pref_xmpp_resource">Recurso</string>
<string name="pref_xmpp_resource_summary">O nome que identifica o cliente que estás a empregar</string>
<string name="pref_accept_files">Aceptar arquivos</string>
@@ -68,7 +68,7 @@
<string name="pref_notification_grace_period">Notificacións Carbons</string>
<string name="pref_notification_grace_period_summary">Deshabilita as notificacións durante un corto periodo de tiempo despois de recibir a copia da mensaxe carbón</string>
<string name="pref_never_send_crash">Nunca enviar informe de erros</string>
- <string name="pref_never_send_crash_summary">Enviando volcados de pilas axudas al desenrolo de Conversations+</string>
+ <string name="pref_never_send_crash_summary">Enviando volcados de pilas axudas al desenrolo de Conversations</string>
<string name="openpgp_error">OpenKeychain reportou un erro</string>
<string name="error_decrypting_file">I/O Erro descifrando arquivo</string>
<string name="accept">Aceptar</string>
diff --git a/src/main/res/values-id/strings.xml b/src/main/res/values-id/strings.xml
index 87cffa6f..1dfca822 100644
--- a/src/main/res/values-id/strings.xml
+++ b/src/main/res/values-id/strings.xml
@@ -58,7 +58,7 @@
<string name="save">Simpan</string>
<string name="ok">YA</string>
<string name="crash_report_title">Percakapan terhenti</string>
- <string name="crash_report_message">Dengan mengirimkan laporan kesalahan Anda membantu pengembangan Conversations+\n&lt;b&gt;Perhatian:&lt;/&gt;Conversations+ akan menggunakan akun XMPP Anda untuk mengirim laporan kesalahan untuk pengembang.</string>
+ <string name="crash_report_message">Dengan mengirimkan laporan kesalahan Anda membantu pengembangan Conversations\n&lt;b&gt;Perhatian:&lt;/&gt;Conversations akan menggunakan akun XMPP Anda untuk mengirim laporan kesalahan untuk pengembang.</string>
<string name="send_now">Kirim sekarang</string>
<string name="send_never">Jangan tanya lagi</string>
<string name="problem_connecting_to_account">Tidak terhubung ke akun</string>
@@ -82,14 +82,14 @@
<string name="send_unencrypted">Kirim tidak terenkripsi</string>
<string name="decryption_failed">Dekripsi gagal. Mungkin Anda tidak memiliki kunci pribadi yang tepat.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ menggunakan app pihak ke-3 bernama <b>OpenKeychain</b> untuk mengenkripsi dan menerjemahkan pesan dan mengorganisir kunci anda.\n\nOpenKeychain berlisensi GPLv3 dan tersedia fi F-Droid dan Google play.\n\n<small>(Silahkan mulai ulang Conversations+ setelah menginstall.)</small></string>
+ <string name="openkeychain_required_long">Conversations menggunakan app pihak ke-3 bernama <b>OpenKeychain</b> untuk mengenkripsi dan menerjemahkan pesan dan mengorganisir kunci anda.\n\nOpenKeychain berlisensi GPLv3 dan tersedia fi F-Droid dan Google play.\n\n<small>(Silahkan mulai ulang Conversations setelah menginstall.)</small></string>
<string name="restart">Mulai ulang</string>
<string name="install">Pasang</string>
<string name="openkeychain_not_installed">Harap install OpenKeychain</string>
<string name="offering">menawarkan...</string>
<string name="waiting">menunggu...</string>
<string name="no_pgp_key">Tidak ada kunci OpenPGP ditemukan</string>
- <string name="contact_has_no_pgp_key">Conversations+ tidak dapat mengenkripsi pesan Anda karena kontak tidak mengumumkan kunci publiknya.\n\n<small>Silakan meminta kontak Anda untuk menyetel OpenPGP</small></string>
+ <string name="contact_has_no_pgp_key">Conversations tidak dapat mengenkripsi pesan Anda karena kontak tidak mengumumkan kunci publiknya.\n\n<small>Silakan meminta kontak Anda untuk menyetel OpenPGP</small></string>
<string name="no_pgp_keys">Tidak ada kunci OpenPGP ditemukan</string>
<string name="contacts_have_no_pgp_keys">Percakapan tidak dapat mengenkripsi pesan Anda karena kontak tidak mengumumkan kunci publik mereka.\n\n<small>Silakan meminta kontak Anda untuk setup OpenPGP.</small></string>
<string name="pref_general">Umum</string>
@@ -106,7 +106,7 @@
<string name="pref_notification_grace_period_summary">Nonaktifkan pemberitahuan untuk waktu yang singkat setelah salinan diterima</string>
<string name="pref_advanced_options">Lanjutan</string>
<string name="pref_never_send_crash">Jangan kirim laporan kerusakan</string>
- <string name="pref_never_send_crash_summary">Dengan mengirimkan kesalahan Anda membantu pengembangan Aplikasi Conversations+</string>
+ <string name="pref_never_send_crash_summary">Dengan mengirimkan kesalahan Anda membantu pengembangan Aplikasi Conversations</string>
<string name="pref_confirm_messages">Konfirmasi Pesan</string>
<string name="pref_confirm_messages_summary">Biarkan kontak Anda tahu kapan Anda telah menerima dan membaca pesan</string>
<string name="pref_ui_options">UI</string>
@@ -258,7 +258,7 @@
<string name="pref_dont_save_encrypted">jangan simpan pesan terenskripsi</string>
<string name="pref_dont_save_encrypted_summary">Peringatan: Hal ini bisa mengakibatkan hilangnya pesan</string>
<string name="pref_expert_options_summary">Harap berhati-hati dengan ini</string>
- <string name="title_activity_about">Tentang Conversations+</string>
+ <string name="title_activity_about">Tentang Conversations</string>
<string name="pref_about_conversations_summary">Build dan informasi lisensi</string>
<string name="title_pref_quiet_hours">Waktu sunyi</string>
<string name="title_pref_quiet_hours_start_time">Waktu mulai</string>
@@ -398,7 +398,7 @@
<string name="vcard">Kontak</string>
<string name="received_x_file">Diterima %s</string>
<string name="disable_foreground_service">Nonaktifkan layanan latar belakang</string>
- <string name="touch_to_open_conversations">Sentuh untuk membuka Conversations+</string>
+ <string name="touch_to_open_conversations">Sentuh untuk membuka Conversations</string>
<string name="avatar_has_been_published">Avatar telah diterbitkan!</string>
<string name="sending_x_file">Mengirim %s</string>
<string name="offering_x_file">Menawarkan %s</string>
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 7f5cd784..f1a12a77 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Sblocca</string>
<string name="save">Salva</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Errore di Conversations+</string>
- <string name="crash_report_message">Se scegli di inviare una segnalazione dell’errore aiuterai lo sviluppo di Conversations+\n<b>Attenzione:</b> Questo utilizzerà il tuo account XMPP per inviare la segnalazione agli sviluppatori.</string>
+ <string name="crash_report_title">Errore di Conversations</string>
+ <string name="crash_report_message">Se scegli di inviare una segnalazione dell’errore aiuterai lo sviluppo di Conversations\n<b>Attenzione:</b> Questo utilizzerà il tuo account XMPP per inviare la segnalazione agli sviluppatori.</string>
<string name="send_now">Invia adesso</string>
<string name="send_never">Non chiedere più</string>
<string name="problem_connecting_to_account">Impossibile collegarsi tramite questo utente</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Invia non cifrato</string>
<string name="decryption_failed">Decifrazione fallita. Forse non disponi della chiave privata corretta.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ usa una app di terze parti chiamata <b>OpenKeychain</b> per cifrare e decifrare i messaggi per gestire le tue chiavi pubbliche.\n\nOpenKeychain è rilasciato secondo i termini della GPLv3 ed è disponibile sia su F-Droid, che su Google Play.\n\n<small>(Riavvia Conversations+ in seguito.)</small></string>
+ <string name="openkeychain_required_long">Conversations usa una app di terze parti chiamata <b>OpenKeychain</b> per cifrare e decifrare i messaggi per gestire le tue chiavi pubbliche.\n\nOpenKeychain è rilasciato secondo i termini della GPLv3 ed è disponibile sia su F-Droid, che su Google Play.\n\n<small>(Riavvia Conversations in seguito.)</small></string>
<string name="restart">Riavvia</string>
<string name="install">Installa</string>
<string name="openkeychain_not_installed">Per favore installa OpenKeychain</string>
<string name="offering">offrendo…</string>
<string name="waiting">in attesa…</string>
<string name="no_pgp_key">Nessuna chiave OpenPGP trovata</string>
- <string name="contact_has_no_pgp_key">Conversations+ non è in grado di cifrare i tuoi messaggi perché il contatto non sta annunciando la sua chiave pubblica.\n\n<small>Per favore chiedi al tuo contatto di configurare OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations non è in grado di cifrare i tuoi messaggi perché il contatto non sta annunciando la sua chiave pubblica.\n\n<small>Per favore chiedi al tuo contatto di configurare OpenPGP.</small></string>
<string name="no_pgp_keys">Nessuna chiave OpenPGP trovata</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ non è in grado di cifrare i tuoi messaggi perché i contatti non stanno annunciando la propria chiave pubblica.\n\n<small>Per favore chiedi ai tuoi contatti di configurare OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations non è in grado di cifrare i tuoi messaggi perché i contatti non stanno annunciando la propria chiave pubblica.\n\n<small>Per favore chiedi ai tuoi contatti di configurare OpenPGP.</small></string>
<string name="pref_general">Generale</string>
<string name="pref_xmpp_resource">Risorsa XMPP</string>
<string name="pref_xmpp_resource_summary">Il nome con il quale questo client si identifica</string>
@@ -113,7 +113,7 @@
<string name="pref_notification_grace_period_summary">Disabilita le notifiche per un breve lasso di tempo dopo che un messaggio è stato ricevuto</string>
<string name="pref_advanced_options">Avanzate</string>
<string name="pref_never_send_crash">Non inviare mai segnalazioni di errore</string>
- <string name="pref_never_send_crash_summary">Se scegli di inviare una segnalazione dell’errore aiuterai lo sviluppo di Conversations+</string>
+ <string name="pref_never_send_crash_summary">Se scegli di inviare una segnalazione dell’errore aiuterai lo sviluppo di Conversations</string>
<string name="pref_confirm_messages">Conferma Messaggi</string>
<string name="pref_confirm_messages_summary">Fai sapere ai tuoi contatti quando hai ricevuto il messaggio e l’hai letto</string>
<string name="pref_ui_options">Interfaccia Utente</string>
@@ -282,7 +282,7 @@
<string name="pref_dont_save_encrypted_summary">Attenzione: Questo potrebbe comportare la perdita di messaggi</string>
<string name="pref_expert_options">Impostazioni esperto</string>
<string name="pref_expert_options_summary">Fai attenzione con queste impostazioni</string>
- <string name="title_activity_about">Info su Conversations+</string>
+ <string name="title_activity_about">Info su Conversations</string>
<string name="pref_about_conversations_summary">Informazioni sulla licenza</string>
<string name="title_pref_quiet_hours">Ore di Quiete</string>
<string name="title_pref_quiet_hours_start_time">Orario inizio</string>
@@ -340,7 +340,7 @@
<string name="verified">Verificato!</string>
<string name="smp_requested">Il contatto ha richiesto la verifica SMP</string>
<string name="no_otr_session_found">Non è stata trovata nessuna sessione OTR valida!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Mantieni il servizio in primo piano</string>
<string name="pref_keep_foreground_service_summary">Evita che il sistema operativo chiuda la connessione</string>
<string name="pref_export_logs">Esporta Log</string>
@@ -445,7 +445,7 @@
<string name="vcard">Contatto</string>
<string name="received_x_file">Ricevuto %s</string>
<string name="disable_foreground_service">Disabilita i servizi in background</string>
- <string name="touch_to_open_conversations">Tocca per avviare Conversations+</string>
+ <string name="touch_to_open_conversations">Tocca per avviare Conversations</string>
<string name="avatar_has_been_published">Il tuo avatar è stato pubblicato!</string>
<string name="sending_x_file">Invio %s</string>
<string name="offering_x_file">Inviando %s</string>
@@ -534,9 +534,9 @@
</plurals>
<string name="shared_file_with_x">Condividi file con %s</string>
<string name="shared_image_with_x">Immagine condivisa con %s</string>
- <string name="no_storage_permission">Conversations+ necessita di accesso alla memoria esterna</string>
+ <string name="no_storage_permission">Conversations necessita di accesso alla memoria esterna</string>
<string name="sync_with_contacts">Sincronizza con i contatti</string>
- <string name="sync_with_contacts_long">Conversations+ vuole confrontare il tuo roster XMPP con i tuoi contatti per mostrare i loro nomi ed avatar.\n\nConversations+ leggerà solamente i contatti e li confronterà localmente senza caricarli sul server.\n\nTi verrà ora chiesto il permesso di accedere ai tuoi contatti.</string>
+ <string name="sync_with_contacts_long">Conversations vuole confrontare il tuo roster XMPP con i tuoi contatti per mostrare i loro nomi ed avatar.\n\nConversations leggerà solamente i contatti e li confronterà localmente senza caricarli sul server.\n\nTi verrà ora chiesto il permesso di accedere ai tuoi contatti.</string>
<string name="certificate_information">Informazioni del certificato</string>
<string name="certificate_subject">Soggetto</string>
<string name="certificate_issuer">Emittente</string>
@@ -552,8 +552,8 @@
<string name="always">Sempre</string>
<string name="automatically">Automaticamente</string>
<string name="battery_optimizations_enabled">Ottimizzazioni batteria abilitate</string>
- <string name="battery_optimizations_enabled_explained">Il tuo dispositivo sta facendo delle ingenti ottimizzazioni della batteria per Conversations+ che potrebbero portare ritardi alle notifiche o anche perdita di messaggi.\nSi consiglia di disabilitarle.</string>
- <string name="battery_optimizations_enabled_dialog">Il tuo dispositivo sta facendo delle ingenti ottimizzazioni della batteria per Conversations+ che potrebbero portare ritardi alle notifiche o anche perdita di messaggi.\n\nTi verrà ora chiesto di disabilitarle.</string>
+ <string name="battery_optimizations_enabled_explained">Il tuo dispositivo sta facendo delle ingenti ottimizzazioni della batteria per Conversations che potrebbero portare ritardi alle notifiche o anche perdita di messaggi.\nSi consiglia di disabilitarle.</string>
+ <string name="battery_optimizations_enabled_dialog">Il tuo dispositivo sta facendo delle ingenti ottimizzazioni della batteria per Conversations che potrebbero portare ritardi alle notifiche o anche perdita di messaggi.\n\nTi verrà ora chiesto di disabilitarle.</string>
<string name="disable">Disabilita</string>
<string name="selection_too_large">L\'area selezionata è troppo grande</string>
<string name="no_accounts">(Nessun account attivo)</string>
diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml
index 21c3371f..92dbb73d 100644
--- a/src/main/res/values-iw/strings.xml
+++ b/src/main/res/values-iw/strings.xml
@@ -18,7 +18,7 @@
<string name="title_activity_settings">הגדרות</string>
<string name="title_activity_conference_details">פרטי ועידה</string>
<string name="title_activity_contact_details">פרטי איש קשר</string>
- <string name="title_activity_sharewith">שתף בעזרת Conversations+</string>
+ <string name="title_activity_sharewith">שתף בעזרת Conversations</string>
<string name="title_activity_start_conversation">התחל דיון</string>
<string name="title_activity_choose_contact">בחר איש קשר</string>
<string name="title_activity_block_list">רשימת חסימה</string>
@@ -57,8 +57,8 @@
<string name="unblock">בטל חסימה</string>
<string name="save">שמור</string>
<string name="ok">אישור</string>
- <string name="crash_report_title">Conversations+ קרסה</string>
- <string name="crash_report_message">על ידי שליחת Stacktraces אתה עוזר להתקדמות הפיתוח של Conversations+\n<b>אזהרה:</b> פעולה זו תעשה שימוש בחשבון XMPP שלך כדי לשלוח עקבות מחסנית אל המפתח.</string>
+ <string name="crash_report_title">Conversations קרסה</string>
+ <string name="crash_report_message">על ידי שליחת Stacktraces אתה עוזר להתקדמות הפיתוח של Conversations\n<b>אזהרה:</b> פעולה זו תעשה שימוש בחשבון XMPP שלך כדי לשלוח עקבות מחסנית אל המפתח.</string>
<string name="send_now">שלח עכשיו</string>
<string name="send_never">לעולם אל תשאל שוב</string>
<string name="problem_connecting_to_account">התחברות לחשבון נכשלה</string>
@@ -84,16 +84,16 @@
<string name="send_unencrypted">שלח ללא הצפנה</string>
<string name="decryption_failed">פענוח נכשל. אולי אין לך את המפתח הפרטי המתאים.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ מסתמכת על אפליקציית צד-שלישי הקרויה <b>OpenKeychain</b> כדי להצפין ולפענח הודעות וגם כדי לנהל את המפתחות הפומביים שלך.\n\nOpenKeychain הינה רשויה תחת GPLv3 וזמינה ב F-Droid וגם ב Google Play.\n\n<small>(אנא התחל מחדש את Conversations+ לאחר מכן.)</small></string>
+ <string name="openkeychain_required_long">Conversations מסתמכת על אפליקציית צד-שלישי הקרויה <b>OpenKeychain</b> כדי להצפין ולפענח הודעות וגם כדי לנהל את המפתחות הפומביים שלך.\n\nOpenKeychain הינה רשויה תחת GPLv3 וזמינה ב F-Droid וגם ב Google Play.\n\n<small>(אנא התחל מחדש את Conversations לאחר מכן.)</small></string>
<string name="restart">התחל מחדש</string>
<string name="install">התקן</string>
<string name="openkeychain_not_installed">אנא התקן OpenKeychain</string>
<string name="offering">מציע…</string>
<string name="waiting">ממתין…</string>
<string name="no_pgp_key">לא נמצא מפתח OpenPGP</string>
- <string name="contact_has_no_pgp_key">Conversations+ אינה מסוגלת להצפין את הודעותיך משום שאיש הקשר שלך אינו מכריז על המפתח הפומבי שלו או שלה.\n\n<small>אנא בקש מאיש הקשר שלך להגדיר את OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations אינה מסוגלת להצפין את הודעותיך משום שאיש הקשר שלך אינו מכריז על המפתח הפומבי שלו או שלה.\n\n<small>אנא בקש מאיש הקשר שלך להגדיר את OpenPGP.</small></string>
<string name="no_pgp_keys">לא נמצאו מפתחות OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ אינה מסוגלת להצפין את הודעותיך משום שאנשי הקשר שלך אינם מכריזים על המפתח הפומבי שלהם.\n\n<small>אנא בקש מאנשי הקשר שלך לארגן OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations אינה מסוגלת להצפין את הודעותיך משום שאנשי הקשר שלך אינם מכריזים על המפתח הפומבי שלהם.\n\n<small>אנא בקש מאנשי הקשר שלך לארגן OpenPGP.</small></string>
<string name="pref_general">כללי</string>
<string name="pref_xmpp_resource">משאב XMPP</string>
<string name="pref_xmpp_resource_summary">השם שבעזרתו לקוח זה מזהה את עצמו</string>
@@ -106,7 +106,7 @@
<string name="pref_notification_grace_period">משך תקופת ארכה</string>
<string name="pref_notification_grace_period_summary">נטרל התראות לזמן קצר לאחר שהודעת Carbon Copy מתקבלת</string>
<string name="pref_never_send_crash">לעולם אל תשלח דיווחי קריסה</string>
- <string name="pref_never_send_crash_summary">על ידי שליחת עקבות מחסנית אתה עוזר להתקדמות הפיתוח של Conversations+</string>
+ <string name="pref_never_send_crash_summary">על ידי שליחת עקבות מחסנית אתה עוזר להתקדמות הפיתוח של Conversations</string>
<string name="pref_confirm_messages">אשר הודעות</string>
<string name="pref_confirm_messages_summary">אפשר לאיש קשר שלך לדעת מתי קיבלת וקראת הודעה</string>
<string name="openpgp_error">אפליקציית OpenKeychain דיווחה על שגיאה</string>
@@ -263,7 +263,7 @@
<string name="pref_dont_save_encrypted">אל תשמור הודעות מוצפנות</string>
<string name="pref_dont_save_encrypted_summary">אזהרה: פעולה זו עלולה לגרום לאיבוד הודעות</string>
<string name="pref_expert_options_summary">נא להיזהר!</string>
- <string name="title_activity_about">אודות Conversations+</string>
+ <string name="title_activity_about">אודות Conversations</string>
<string name="pref_about_conversations_summary">אודות גרסה ורישיון </string>
<string name="title_pref_quiet_hours">שעות שקטות</string>
<string name="title_pref_quiet_hours_start_time">זמן התחלה</string>
@@ -417,7 +417,7 @@
<string name="vcard">איש קשר</string>
<string name="received_x_file">התקבל %s</string>
<string name="disable_foreground_service">בטל שירות Foreground</string>
- <string name="touch_to_open_conversations">לחץ כדי לפתוח את Conversations+</string>
+ <string name="touch_to_open_conversations">לחץ כדי לפתוח את Conversations</string>
<string name="avatar_has_been_published">תמונת הפרופיל פורסמה!</string>
<string name="sending_x_file">שולח %s</string>
<string name="offering_x_file">מציע %s</string>
@@ -492,7 +492,7 @@
</plurals>
<string name="shared_file_with_x">שתף קובץ בעזרת %s</string>
<string name="shared_image_with_x">שתף תמונה בעזרת %s</string>
- <string name="no_storage_permission">‏Conversations+ זקוקה לגישה לאחסון חיצוני</string>
+ <string name="no_storage_permission">‏Conversations זקוקה לגישה לאחסון חיצוני</string>
<string name="sync_with_contacts">סנכרן עם אנשי קשר</string>
- <string name="sync_with_contacts_long">‏Conversations+ מבקשת להתאים את רשימת XMPP שלך עם אנשי הקשר שלך כדי להציג את השמות המלאים שלהם כולל אווטארים.\n\nConversations+ רק תקרא את אנשי הקשר שלך ותתאים אותם באופן מקומי מבלי להעלות אותם לשרת שלך.\n\nכעת אתה תתבקש להעניק הרשאה כדי לגשת להתקן שלך.</string>
+ <string name="sync_with_contacts_long">‏Conversations מבקשת להתאים את רשימת XMPP שלך עם אנשי הקשר שלך כדי להציג את השמות המלאים שלהם כולל אווטארים.\n\nConversations רק תקרא את אנשי הקשר שלך ותתאים אותם באופן מקומי מבלי להעלות אותם לשרת שלך.\n\nכעת אתה תתבקש להעניק הרשאה כדי לגשת להתקן שלך.</string>
</resources>
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index 6e931508..fecef223 100644
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">ブロックを解除</string>
<string name="save">保存</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ がクラッシュしました</string>
- <string name="crash_report_message">Conversations+ の継続的な開発を支援するために、スタックトレースをお送りください。\n<b>警告:</b> あなたのXMPPアカウントを使用して、開発者にスタックトレースを送信します。</string>
+ <string name="crash_report_title">Conversations がクラッシュしました</string>
+ <string name="crash_report_message">Conversations の継続的な開発を支援するために、スタックトレースをお送りください。\n<b>警告:</b> あなたのXMPPアカウントを使用して、開発者にスタックトレースを送信します。</string>
<string name="send_now">今すぐ送信</string>
<string name="send_never">今後表示しない</string>
<string name="problem_connecting_to_account">アカウントに接続できません</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">暗号化されていない送信</string>
<string name="decryption_failed">復号化に失敗しました。おそらく秘密鍵が正しくないようです。</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ は <b>OpenKeychain</b> と呼ばれるサードパーティのアプリを利用して、メッセージの暗号化および復号化、そしてあなたの公開鍵を管理します。\n\nOpenKeychain は GPLv3 ライセンスの下で、F-Droid および Google Play から利用可能です。\n\n<small>(後で Conversations+ を再起動してください。)</small></string>
+ <string name="openkeychain_required_long">Conversations は <b>OpenKeychain</b> と呼ばれるサードパーティのアプリを利用して、メッセージの暗号化および復号化、そしてあなたの公開鍵を管理します。\n\nOpenKeychain は GPLv3 ライセンスの下で、F-Droid および Google Play から利用可能です。\n\n<small>(後で Conversations を再起動してください。)</small></string>
<string name="restart">再起動</string>
<string name="install">インストール</string>
<string name="openkeychain_not_installed">OpenKeychain をインストールしてください</string>
<string name="offering">依頼中…</string>
<string name="waiting">待機中…</string>
<string name="no_pgp_key">OpenPGP の鍵はありません</string>
- <string name="contact_has_no_pgp_key">連絡先が公開鍵を通知しないため、Conversations+ はあなたのメッセージを暗号化することができません。\n\n<small>連絡先に OpenPGP をセットアップするように依頼してください。</small></string>
+ <string name="contact_has_no_pgp_key">連絡先が公開鍵を通知しないため、Conversations はあなたのメッセージを暗号化することができません。\n\n<small>連絡先に OpenPGP をセットアップするように依頼してください。</small></string>
<string name="no_pgp_keys">OpenPGP の鍵はありません</string>
- <string name="contacts_have_no_pgp_keys">連絡先が公開鍵を通知しないため、Conversations+ はあなたのメッセージを暗号化することができません。\n\n<small>連絡先に OpenPGP をセットアップするように依頼してください。</small></string>
+ <string name="contacts_have_no_pgp_keys">連絡先が公開鍵を通知しないため、Conversations はあなたのメッセージを暗号化することができません。\n\n<small>連絡先に OpenPGP をセットアップするように依頼してください。</small></string>
<string name="pref_general">全般</string>
<string name="pref_xmpp_resource">XMPP リソース</string>
<string name="pref_xmpp_resource_summary">自分自身を識別するこのクライアントの名前</string>
@@ -108,14 +108,11 @@
<string name="pref_notifications">通知</string>
<string name="pref_notifications_summary">新しいメッセージが到着したときに通知します</string>
<string name="pref_vibrate">振動</string>
- <string name="pref_vibrate_summary">新しいメッセージが到着したときに振動もします</string>
- <string name="pref_sound">サウンド</string>
- <string name="pref_sound_summary">通知で着信音を再生します</string>
<string name="pref_notification_grace_period">通知猶予期間</string>
<string name="pref_notification_grace_period_summary">カーボンコピーを受信した後、短時間、通知を無効にします</string>
<string name="pref_advanced_options">詳細</string>
<string name="pref_never_send_crash">クラッシュレポートを送信しない</string>
- <string name="pref_never_send_crash_summary">スタックトレースを送信することで、あなたは Conversations+ の継続的な開発を支援しています</string>
+ <string name="pref_never_send_crash_summary">スタックトレースを送信することで、あなたは Conversations の継続的な開発を支援しています</string>
<string name="pref_confirm_messages">メッセージの確認</string>
<string name="pref_confirm_messages_summary">あなたがメッセージを受け取って読んだことを、連絡先に知らせます</string>
<string name="pref_ui_options">UI</string>
@@ -286,7 +283,7 @@
<string name="pref_dont_save_encrypted_summary">警告: これはメッセージの損失につながる可能性があります</string>
<string name="pref_expert_options">エキスパート設定</string>
<string name="pref_expert_options_summary">ご利用は注意してください</string>
- <string name="title_activity_about">Conversations+ について</string>
+ <string name="title_activity_about">Conversations について</string>
<string name="pref_about_conversations_summary">ビルドおよびライセンス情報</string>
<string name="title_pref_quiet_hours">消音時間</string>
<string name="title_pref_quiet_hours_start_time">開始時間</string>
@@ -345,7 +342,7 @@
<string name="verified">検証しました!</string>
<string name="smp_requested">連絡先が SMP 検証を要求しました</string>
<string name="no_otr_session_found">有効な OTR セッションが見つかりません!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">サービスをフォアグラウンドに保持</string>
<string name="pref_keep_foreground_service_summary">オペレーティングシステムが接続を切断するのを防止します</string>
<string name="pref_export_logs">ログをエクスポート</string>
@@ -451,7 +448,7 @@
<string name="vcard">連絡先</string>
<string name="received_x_file">%s を受信しました</string>
<string name="disable_foreground_service">フォアグラウンド サービスを無効にする</string>
- <string name="touch_to_open_conversations">タッチして Conversations+ を開く</string>
+ <string name="touch_to_open_conversations">タッチして Conversations を開く</string>
<string name="avatar_has_been_published">アバターを公開しました!</string>
<string name="sending_x_file">%s の送信中</string>
<string name="offering_x_file">%s の依頼中</string>
@@ -540,9 +537,9 @@
<string name="shared_file_with_x">%s でファイルを共有</string>
<string name="shared_image_with_x">%s で画像を共有</string>
<string name="shared_images_with_x">%s で画像を共有</string>
- <string name="no_storage_permission">Conversations+ は外部ストレージにアクセスが必要です</string>
+ <string name="no_storage_permission">Conversations は外部ストレージにアクセスが必要です</string>
<string name="sync_with_contacts">連絡先と同期</string>
- <string name="sync_with_contacts_long">Conversations+ はフルネームやアバターを表示するために、連絡先と XMPP 名簿と一致するようにしたいです。\n\nConversations+ は、サーバーにアップロードすることはなく、ローカルで連絡先を読んで一致させるだけです。\n\n今、連絡先へのアクセス許可を付与するように求められます。</string>
+ <string name="sync_with_contacts_long">Conversations はフルネームやアバターを表示するために、連絡先と XMPP 名簿と一致するようにしたいです。\n\nConversations は、サーバーにアップロードすることはなく、ローカルで連絡先を読んで一致させるだけです。\n\n今、連絡先へのアクセス許可を付与するように求められます。</string>
<string name="certificate_information">証明書情報</string>
<string name="certificate_subject">表題</string>
<string name="certificate_issuer">発行者</string>
@@ -558,8 +555,8 @@
<string name="always">常に</string>
<string name="automatically">自動</string>
<string name="battery_optimizations_enabled">バッテリー最適化が有効</string>
- <string name="battery_optimizations_enabled_explained">お使いのデバイスは、Conversations+ で、通知の遅延やメッセージの損失につながる可能性のある、いくつかの重いバッテリーの最適化を行っています。\nそれらを無効にすることをお勧めします。</string>
- <string name="battery_optimizations_enabled_dialog">お使いのデバイスは、Conversations+ で通知の遅延やメッセージの損失につながる可能性のある、いくつかの重いバッテリーの最適化を行っています。\n\n今、それらを無効にするように求められます。</string>
+ <string name="battery_optimizations_enabled_explained">お使いのデバイスは、Conversations で、通知の遅延やメッセージの損失につながる可能性のある、いくつかの重いバッテリーの最適化を行っています。\nそれらを無効にすることをお勧めします。</string>
+ <string name="battery_optimizations_enabled_dialog">お使いのデバイスは、Conversations で通知の遅延やメッセージの損失につながる可能性のある、いくつかの重いバッテリーの最適化を行っています。\n\n今、それらを無効にするように求められます。</string>
<string name="disable">無効</string>
<string name="selection_too_large">選択した範囲が大きすぎます</string>
<string name="no_accounts">(アクティベートしたアカウントはありません)</string>
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index 0e8e8715..47cf4f5c 100644
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">차단 해제 </string>
<string name="save">저장 </string>
<string name="ok">확인 </string>
- <string name="crash_report_title">Conversations+가 작동 중지되었습니다 </string>
- <string name="crash_report_message">Stack trace 정보를 보냄으로서 Conversations+의 개발에 기여할 수 있습니다. 경고: 이것은 Stack trace 정보를 개발자에게 보내기 위해 당신의 XMPP 계정을 사용할 것입니다. </string>
+ <string name="crash_report_title">Conversations가 작동 중지되었습니다 </string>
+ <string name="crash_report_message">Stack trace 정보를 보냄으로서 Conversations의 개발에 기여할 수 있습니다. 경고: 이것은 Stack trace 정보를 개발자에게 보내기 위해 당신의 XMPP 계정을 사용할 것입니다. </string>
<string name="send_now">지금 보내기 </string>
<string name="send_never">더이상 묻지 않기 </string>
<string name="problem_connecting_to_account">계정에 접속할 수 없습니다 </string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">암호화하지 않고 전송 </string>
<string name="decryption_failed">복호화 실패. 올바른 개인 키를 가지고 있지 않은 것 같습니다. </string>
<string name="openkeychain_required">OpenKeychain </string>
- <string name="openkeychain_required_long">Conversations+는 메세지를 암호화 및 복호화하고 공개 키를 관리하기 위해 OpenKeychain이라는 제 3자 앱을 활용합니다. OpenKeychain은 GPLv3 라이센스를 사용하며 F-Droid와 Google Play에서 구하실 수 있습니다. (이후 Conversations+를 재시작하세요) </string>
+ <string name="openkeychain_required_long">Conversations는 메세지를 암호화 및 복호화하고 공개 키를 관리하기 위해 OpenKeychain이라는 제 3자 앱을 활용합니다. OpenKeychain은 GPLv3 라이센스를 사용하며 F-Droid와 Google Play에서 구하실 수 있습니다. (이후 Conversations를 재시작하세요) </string>
<string name="restart">재시작 </string>
<string name="install">설치 </string>
<string name="openkeychain_not_installed">OpenKeychain을 설치하세요</string>
<string name="offering">제공중... </string>
<string name="waiting">대기중... </string>
<string name="no_pgp_key">OpenPGP 키가 발견되지 않음 </string>
- <string name="contact_has_no_pgp_key">당신의 연락처가 그들의 공개 키를 선언하지 않고 있기 때문에 Conversations+는 당신의 메세지를 암호화할 수 없습니다. OpenPGP를 설정하도록 당신의 연락처에게 물어보세요. </string>
+ <string name="contact_has_no_pgp_key">당신의 연락처가 그들의 공개 키를 선언하지 않고 있기 때문에 Conversations는 당신의 메세지를 암호화할 수 없습니다. OpenPGP를 설정하도록 당신의 연락처에게 물어보세요. </string>
<string name="no_pgp_keys">OpenPGP 키가 발견되지 않음 </string>
- <string name="contacts_have_no_pgp_keys">당신의 연락처가 그들의 공개 키를 선언하지 않고 있기 때문에 Conversations+는 당신의 메세지를 암호화할 수 없습니다. OpenPGP를 설정하도록 당신의 연락처에게 물어보세요. </string>
+ <string name="contacts_have_no_pgp_keys">당신의 연락처가 그들의 공개 키를 선언하지 않고 있기 때문에 Conversations는 당신의 메세지를 암호화할 수 없습니다. OpenPGP를 설정하도록 당신의 연락처에게 물어보세요. </string>
<string name="pref_general">일반 </string>
<string name="pref_xmpp_resource">XMPP 자원 </string>
<string name="pref_xmpp_resource_summary">이 클라이언트가 자신을 알아보는 이름</string>
@@ -108,7 +108,7 @@
<string name="pref_notification_grace_period">알림 유예 </string>
<string name="pref_notification_grace_period_summary">Carbon Copy 수신 후에 잠시동안 알림 해제</string>
<string name="pref_never_send_crash">충돌 보고서 보내지 않음 </string>
- <string name="pref_never_send_crash_summary">Stack trace 정보를 보냄으로서 Conversations+의 개발에 기여할 수 있습니다 </string>
+ <string name="pref_never_send_crash_summary">Stack trace 정보를 보냄으로서 Conversations의 개발에 기여할 수 있습니다 </string>
<string name="pref_confirm_messages">메세지 확인 </string>
<string name="pref_confirm_messages_summary">메세지를 수신하고 읽었는지를 연락처에게 알려줌 </string>
<string name="openpgp_error">OpenKeychain이 오류를 보고합니다 </string>
@@ -272,7 +272,7 @@
<string name="pref_dont_save_encrypted">암호화된 메세지 저장하지 않음 </string>
<string name="pref_dont_save_encrypted_summary">경고: 메세지가 손실될 수 있습니다 </string>
<string name="pref_expert_options_summary">설정시 주의하시기 바랍니다</string>
- <string name="title_activity_about">Conversations+에 대해서 </string>
+ <string name="title_activity_about">Conversations에 대해서 </string>
<string name="pref_about_conversations_summary">빌드 및 라이센스 정보 </string>
<string name="title_pref_quiet_hours">무음 시간대 </string>
<string name="title_pref_quiet_hours_start_time">시작 시간 </string>
@@ -326,7 +326,7 @@
<string name="verified">검증 완료 </string>
<string name="smp_requested">연락처가 SMP 검증을 요구했습니다 </string>
<string name="no_otr_session_found">올바른 OTR 세션이 발견되지 않았습니다 </string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">포어그라운드에서 서비스 유지 </string>
<string name="pref_keep_foreground_service_summary">운영체제가 접속을 해제하지 못하도록 예방합니다 </string>
<string name="pref_export_logs">내보내기 기록</string>
@@ -430,7 +430,7 @@
<string name="vcard">연락처 </string>
<string name="received_x_file">%s 수신 </string>
<string name="disable_foreground_service">포어그라운드 서비스 해제 </string>
- <string name="touch_to_open_conversations">터치해서 Conversations+ 열기 </string>
+ <string name="touch_to_open_conversations">터치해서 Conversations 열기 </string>
<string name="avatar_has_been_published">아바타가 공개되었습니다 </string>
<string name="sending_x_file">%s 전송중 </string>
<string name="offering_x_file">%s 제공중 </string>
@@ -505,9 +505,9 @@
</plurals>
<string name="shared_file_with_x">파일을 %s와 공유함</string>
<string name="shared_image_with_x">이미지를 %s와 공유함</string>
- <string name="no_storage_permission">Conversations+는 외부 저장소로의 접근을 필요로 합니다</string>
+ <string name="no_storage_permission">Conversations는 외부 저장소로의 접근을 필요로 합니다</string>
<string name="sync_with_contacts">연락처와 동기화</string>
- <string name="sync_with_contacts_long">Conversations+는 XMPP 명단과 연락처 명단을 대조시켜서 이름과 아바타를 표시하고자 합니다.\n\nConversations+는 당신의 서버에 업로드하지 않고 기기 내부적으로만 연락처를 읽고 대조를 할 것입니다.\n\n이제 연락처에 접근할 권한을 당신에게 물어볼 것입니다.</string>
+ <string name="sync_with_contacts_long">Conversations는 XMPP 명단과 연락처 명단을 대조시켜서 이름과 아바타를 표시하고자 합니다.\n\nConversations는 당신의 서버에 업로드하지 않고 기기 내부적으로만 연락처를 읽고 대조를 할 것입니다.\n\n이제 연락처에 접근할 권한을 당신에게 물어볼 것입니다.</string>
<string name="certificate_information">인증서 정보</string>
<string name="certificate_subject">제목</string>
<string name="certificate_issuer">발행자</string>
@@ -522,8 +522,8 @@
<string name="always">항상</string>
<string name="automatically">자동</string>
<string name="battery_optimizations_enabled">배터리 최적화 사용됨</string>
- <string name="battery_optimizations_enabled_explained">당신의 기기는 메세지를 받지 못하게 되거나 알림을 지연시킬 수도 있는 고강도의 배터리 최적화를 Conversations+에 하고 있습니다.\n배터리 최적화를 해제하는 것을 추천합니다.</string>
- <string name="battery_optimizations_enabled_dialog">당신의 기기는 메세지를 받지 못하게 되거나 알림을 지연시킬 수도 있는 고강도의 배터리 최적화를 Conversations+에 하고 있습니다.\n이것을 해제할 것인지 물어볼 것입니다.</string>
+ <string name="battery_optimizations_enabled_explained">당신의 기기는 메세지를 받지 못하게 되거나 알림을 지연시킬 수도 있는 고강도의 배터리 최적화를 Conversations에 하고 있습니다.\n배터리 최적화를 해제하는 것을 추천합니다.</string>
+ <string name="battery_optimizations_enabled_dialog">당신의 기기는 메세지를 받지 못하게 되거나 알림을 지연시킬 수도 있는 고강도의 배터리 최적화를 Conversations에 하고 있습니다.\n이것을 해제할 것인지 물어볼 것입니다.</string>
<string name="disable">해제</string>
<string name="selection_too_large">선택된 영역이 너무 큽니다</string>
</resources>
diff --git a/src/main/res/values-nb-rNO/strings.xml b/src/main/res/values-nb-rNO/strings.xml
index bcb85490..e762f534 100644
--- a/src/main/res/values-nb-rNO/strings.xml
+++ b/src/main/res/values-nb-rNO/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Avblokker</string>
<string name="save">Lagre</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ har kræsjet</string>
- <string name="crash_report_message">Ved å sende inn stabelsporinger hjelper du den pågående utviklingen av Conversations+\n<b>Advarsel:</b> Dette bruker din XMPP-konto til å sende stabelsporinger til utvikleren.</string>
+ <string name="crash_report_title">Conversations har kræsjet</string>
+ <string name="crash_report_message">Ved å sende inn stabelsporinger hjelper du den pågående utviklingen av Conversations\n<b>Advarsel:</b> Dette bruker din XMPP-konto til å sende stabelsporinger til utvikleren.</string>
<string name="send_now">Send nå</string>
<string name="send_never">Aldri spør igjen</string>
<string name="problem_connecting_to_account">Kunne ikke koble til konto</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Send ukryptert</string>
<string name="decryption_failed">Dekryptering feilet. Kanskje du ikke lenger har den rette private nøkkelen.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ nyttegjør seg av et tredjepartsprogram kalt <b>OpenKeychain</b> for å kryptere og dekryptere meldinger og behandle offentlige nøkler. \n\nOpenKeychain er lisensiert GPLv3 og er tilgjengelig på F-Droid og Google Play.\n\n<small>(Husk å gjøre en omstart av Conversations+ etterpå.)</small></string>
+ <string name="openkeychain_required_long">Conversations nyttegjør seg av et tredjepartsprogram kalt <b>OpenKeychain</b> for å kryptere og dekryptere meldinger og behandle offentlige nøkler. \n\nOpenKeychain er lisensiert GPLv3 og er tilgjengelig på F-Droid og Google Play.\n\n<small>(Husk å gjøre en omstart av Conversations etterpå.)</small></string>
<string name="restart">Omstart</string>
<string name="install">Installer</string>
<string name="openkeychain_not_installed">Installer OpenKeychain</string>
<string name="offering">tilbyr...</string>
<string name="waiting">venter...</string>
<string name="no_pgp_key">Ingen OpenPGP-nøkkel funnet</string>
- <string name="contact_has_no_pgp_key">Conversations+ kan ikke kryptere din melding fordi din kontakt ikke annonserer sin offentlige nøkkel.\n\n<small>Spør din kontakt om å sette opp OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations kan ikke kryptere din melding fordi din kontakt ikke annonserer sin offentlige nøkkel.\n\n<small>Spør din kontakt om å sette opp OpenPGP.</small></string>
<string name="no_pgp_keys">Ingen OpenPGP-nøkler funnet</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ kan ikke kryptere din melding fordi dine kontakter ikke annonserer sine offentlige nøkkler.\n\n<small>Spør din kontakt om å sette opp OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations kan ikke kryptere din melding fordi dine kontakter ikke annonserer sine offentlige nøkkler.\n\n<small>Spør din kontakt om å sette opp OpenPGP.</small></string>
<string name="pref_general">Generelt</string>
<string name="pref_xmpp_resource">XMPP-ressurs</string>
<string name="pref_xmpp_resource_summary">Navnet denne klienten identifiserer seg med</string>
@@ -110,7 +110,7 @@
<string name="pref_notification_grace_period_summary">Deaktiver varslinger for en kort periode etter at en kopi er mottatt</string>
<string name="pref_advanced_options">Avanserte valg</string>
<string name="pref_never_send_crash">Aldri send feilrettingsrapporter</string>
- <string name="pref_never_send_crash_summary">Ved å sende inn stabelsporinger hjelper du den pågående utviklingen av Conversations+</string>
+ <string name="pref_never_send_crash_summary">Ved å sende inn stabelsporinger hjelper du den pågående utviklingen av Conversations</string>
<string name="pref_confirm_messages">Bekreft meldinger</string>
<string name="pref_confirm_messages_summary">La din kontakt få vite når du har mottatt og lest en melding</string>
<string name="pref_ui_options">Valg for grensesnitt</string>
@@ -276,7 +276,7 @@
<string name="pref_dont_save_encrypted_summary">Advarsel: Dette kan føre til at meldinger går tapt</string>
<string name="pref_expert_options">Ekspertinnstillinger</string>
<string name="pref_expert_options_summary">Vær forsiktig med disse</string>
- <string name="title_activity_about">Om Conversations+</string>
+ <string name="title_activity_about">Om Conversations</string>
<string name="pref_about_conversations_summary">Utgave og lisensinformasjon</string>
<string name="title_pref_quiet_hours">Stille tidsavgrensning</string>
<string name="title_pref_quiet_hours_start_time">Oppstart</string>
@@ -330,7 +330,7 @@
<string name="verified">Tiltrodd!</string>
<string name="smp_requested">Kontakt forespurte SMP-verifisering</string>
<string name="no_otr_session_found">Ingen gyldig OTR-økt funnet!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Behold tjenesten i forgrunnen</string>
<string name="pref_keep_foreground_service_summary">Forhindrer operativsystemet fra å drepe tilkoblingen din</string>
<string name="pref_export_logs">Eksporter loggføringer</string>
@@ -435,7 +435,7 @@
<string name="vcard">Kontakt</string>
<string name="received_x_file">Mottatt %s</string>
<string name="disable_foreground_service">Skru av forgrunns-tjeneste</string>
- <string name="touch_to_open_conversations">Trykk for å åpne Conversations+</string>
+ <string name="touch_to_open_conversations">Trykk for å åpne Conversations</string>
<string name="avatar_has_been_published">Avatar publisert!</string>
<string name="sending_x_file">Sender %s</string>
<string name="offering_x_file">Tilbyr %s</string>
@@ -516,9 +516,9 @@
</plurals>
<string name="shared_file_with_x">Fil delt med %s</string>
<string name="shared_image_with_x">Bilde delt med %s</string>
- <string name="no_storage_permission">Conversations+ trenger tilgang til eksternt lagringsmedie</string>
+ <string name="no_storage_permission">Conversations trenger tilgang til eksternt lagringsmedie</string>
<string name="sync_with_contacts">Synkroniser med kontakter</string>
- <string name="sync_with_contacts_long">Conversations+ vil jamføre din XMPP-kontaktliste med dine kontakter for å vise dem med navn og profilbilde.\n\nConversations+ leser bare dine kontakter for å jamføre dem lokalt, uten å laste dem opp til tjeneren din.\n\nDu kommer nå til å bli spurt om tilgangstillatelse til dine kontakter.</string>
+ <string name="sync_with_contacts_long">Conversations vil jamføre din XMPP-kontaktliste med dine kontakter for å vise dem med navn og profilbilde.\n\nConversations leser bare dine kontakter for å jamføre dem lokalt, uten å laste dem opp til tjeneren din.\n\nDu kommer nå til å bli spurt om tilgangstillatelse til dine kontakter.</string>
<string name="certificate_information">Sertifikatsinformasjon</string>
<string name="certificate_subject">Emne</string>
<string name="certificate_issuer">Utsteder</string>
@@ -534,8 +534,8 @@
<string name="always">Alltid</string>
<string name="automatically">Automatisk</string>
<string name="battery_optimizations_enabled">Batterioptimaliseringer aktivert</string>
- <string name="battery_optimizations_enabled_explained">Enheten din gjør noen tunge batterioptimaliseringer på Conversations+ som kan føre til forsinkede varslinger eller tap av meldinger.\nDet anbefales at du deaktiverer disse.</string>
- <string name="battery_optimizations_enabled_dialog">Enheten din gjør noen tunge batterioptimaliseringer på Conversations+ som kan føre til forsinkede varslinger eller tap av meldinger.\n\nDu vil nå bli bedt om å deaktivere disse.</string>
+ <string name="battery_optimizations_enabled_explained">Enheten din gjør noen tunge batterioptimaliseringer på Conversations som kan føre til forsinkede varslinger eller tap av meldinger.\nDet anbefales at du deaktiverer disse.</string>
+ <string name="battery_optimizations_enabled_dialog">Enheten din gjør noen tunge batterioptimaliseringer på Conversations som kan føre til forsinkede varslinger eller tap av meldinger.\n\nDu vil nå bli bedt om å deaktivere disse.</string>
<string name="disable">Deaktiver</string>
<string name="selection_too_large">Det valgte området er for stort</string>
</resources>
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index 0b8265ae..68203cf4 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Deblokkeren</string>
<string name="save">Opslaan</string>
<string name="ok">Oké</string>
- <string name="crash_report_title">Conversations+ is gecrasht</string>
- <string name="crash_report_message">Door het versturen van crashrapportages help je de ontwikkeling van Conversations+.\n\n<b>Waarschuwing:</b> Deze app zal je XMPP-account gebruiken om de crashrapportages te versturen naar de ontwikkelaars.</string>
+ <string name="crash_report_title">Conversations is gecrasht</string>
+ <string name="crash_report_message">Door het versturen van crashrapportages help je de ontwikkeling van Conversations.\n\n<b>Waarschuwing:</b> Deze app zal je XMPP-account gebruiken om de crashrapportages te versturen naar de ontwikkelaars.</string>
<string name="send_now">Nu versturen</string>
<string name="send_never">Niet opnieuw vragen</string>
<string name="problem_connecting_to_account">Account verbinden mislukt</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Verstuur onversleuteld</string>
<string name="decryption_failed">Ontsleutelen mislukt. Misschien heb je niet de juiste private sleutel.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ gebruikt een derde partij app genaamd <b>OpenKeychain</b> om berichten te versleutelen en ontsleutelen, en om publieke sleutels te beheren.\n\nOpenKeychain is beschikbaar onder de GPLv3 en beschikbaar op F-Droid en Google Play.\n\n<small>(Herstart Conversations+ na installatie.)</small></string>
+ <string name="openkeychain_required_long">Conversations gebruikt een derde partij app genaamd <b>OpenKeychain</b> om berichten te versleutelen en ontsleutelen, en om publieke sleutels te beheren.\n\nOpenKeychain is beschikbaar onder de GPLv3 en beschikbaar op F-Droid en Google Play.\n\n<small>(Herstart Conversations na installatie.)</small></string>
<string name="restart">Herstarten</string>
<string name="install">Installeren</string>
<string name="openkeychain_not_installed">Gelieve OpenKeychain te installeren</string>
<string name="offering">bezig met aanbieden…</string>
<string name="waiting">wachten…</string>
<string name="no_pgp_key">Geen OpenPGP-sleutel gevonden</string>
- <string name="contact_has_no_pgp_key">Conversations+ kan je berichten niet versleutelen omdat je contact geen publieke sleutel heeft ingesteld.\n\n<small>Vraag je contact om OpenPGP te configureren.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations kan je berichten niet versleutelen omdat je contact geen publieke sleutel heeft ingesteld.\n\n<small>Vraag je contact om OpenPGP te configureren.</small></string>
<string name="no_pgp_keys">Geen OpenPGP-sleutels gevonden</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ kan je berichten niet versleutelen omdat je contacten geen publieke sleutel hebben ingesteld.\n\n<small>Vraag je contacten om OpenPGP te configureren.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations kan je berichten niet versleutelen omdat je contacten geen publieke sleutel hebben ingesteld.\n\n<small>Vraag je contacten om OpenPGP te configureren.</small></string>
<string name="pref_general">Algemeen</string>
<string name="pref_xmpp_resource">XMPP-bron</string>
<string name="pref_xmpp_resource_summary">De naam waarmee deze cliënt zich identificeert</string>
@@ -108,14 +108,11 @@
<string name="pref_notifications">Meldingen</string>
<string name="pref_notifications_summary">Melding als een nieuw bericht arriveert</string>
<string name="pref_vibrate">Trillen</string>
- <string name="pref_vibrate_summary">Tril ook wanneer een nieuw bericht arriveert</string>
- <string name="pref_sound">Geluid</string>
- <string name="pref_sound_summary">Speel beltoon af bij melding</string>
<string name="pref_notification_grace_period">Uitstelperiode voor meldingen</string>
<string name="pref_notification_grace_period_summary">Schakel meldingen voor korte tijd uit als er een carbon copy wordt ontvangen</string>
<string name="pref_advanced_options">Geavanceerd</string>
<string name="pref_never_send_crash">Verstuur nooit crashrapportages</string>
- <string name="pref_never_send_crash_summary">Door crashrapportages te versturen help je de ontwikkeling van Conversations+</string>
+ <string name="pref_never_send_crash_summary">Door crashrapportages te versturen help je de ontwikkeling van Conversations</string>
<string name="pref_confirm_messages">Bevestig berichten</string>
<string name="pref_confirm_messages_summary">Laat je contacten weten wanneer je berichten hebt ontvangen en gelezen</string>
<string name="pref_ui_options">Gebruikersomgeving</string>
@@ -286,7 +283,7 @@
<string name="pref_dont_save_encrypted_summary">Waarschuwing: dit kan leiden tot verlies van berichten</string>
<string name="pref_expert_options">Instellingen voor experts</string>
<string name="pref_expert_options_summary">Wees voorzichtig met deze instellingen</string>
- <string name="title_activity_about">Over Conversations+</string>
+ <string name="title_activity_about">Over Conversations</string>
<string name="pref_about_conversations_summary">Build en licentie-informatie</string>
<string name="title_pref_quiet_hours">Stille uren</string>
<string name="title_pref_quiet_hours_start_time">Begintijd</string>
@@ -345,7 +342,7 @@
<string name="verified">Bevestigd!</string>
<string name="smp_requested">Contact vraagt SMP-bevestiging</string>
<string name="no_otr_session_found">Geen geldige OTR-sessie gevonden!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Dienst in voorgrond houden</string>
<string name="pref_keep_foreground_service_summary">Belet het besturingssysteem van je verbinding te onderbreken</string>
<string name="pref_export_logs">Exporteer logs</string>
@@ -451,7 +448,7 @@
<string name="vcard">Contact</string>
<string name="received_x_file">%s ontvangen</string>
<string name="disable_foreground_service">Voorgronddienst uitschakelen</string>
- <string name="touch_to_open_conversations">Raak aan om Conversations+ te openen</string>
+ <string name="touch_to_open_conversations">Raak aan om Conversations te openen</string>
<string name="avatar_has_been_published">Avatar is gepubliceerd!</string>
<string name="sending_x_file">Bezig met versturen van %s</string>
<string name="offering_x_file">Bezig met aanbieden van %s</string>
@@ -543,9 +540,9 @@
<string name="shared_file_with_x">Bestand gedeeld met %s</string>
<string name="shared_image_with_x">Afbeelding gedeeld met %s</string>
<string name="shared_images_with_x">Afbeeldingen gedeeld met %s</string>
- <string name="no_storage_permission">Conversations+ heeft toegang nodig tot de externe opslag</string>
+ <string name="no_storage_permission">Conversations heeft toegang nodig tot de externe opslag</string>
<string name="sync_with_contacts">Synchroniseer met contacten</string>
- <string name="sync_with_contacts_long">Conversations+ wil je XMPP-rooster met je contacten vergelijken om hun volledige namen en profielfoto\'s te tonen.\n\nConversations+ zal je contacten enkel lokaal lezen en vergelijken zonder ze te uploaden naar je server.\n\nJe zal nu gevraagd worden Conversations+ toegang te verlenen tot je contacten.</string>
+ <string name="sync_with_contacts_long">Conversations wil je XMPP-rooster met je contacten vergelijken om hun volledige namen en profielfoto\'s te tonen.\n\nConversations zal je contacten enkel lokaal lezen en vergelijken zonder ze te uploaden naar je server.\n\nJe zal nu gevraagd worden Conversations toegang te verlenen tot je contacten.</string>
<string name="certificate_information">Certificaatinformatie</string>
<string name="certificate_subject">Onderwerp</string>
<string name="certificate_issuer">Uitgever</string>
@@ -561,8 +558,8 @@
<string name="always">Altijd</string>
<string name="automatically">Automatisch</string>
<string name="battery_optimizations_enabled">Batterij-optimalisaties ingeschakeld</string>
- <string name="battery_optimizations_enabled_explained">Je apparaat voert sterke batterij-optimalisaties uit op Conversations+, die kunnen leiden tot vertraagde meldingen of zelfs verlies van berichten.\nHet is aangeraden deze optimalisaties uit te schakelen.</string>
- <string name="battery_optimizations_enabled_dialog">Je apparaat voert sterke batterij-optimalisaties uit op Conversations+, die kunnen leiden tot vertraagde meldingen of zelfs verlies van berichten.\nJe zal nu gevraagd worden deze optimalisaties uit te schakelen.</string>
+ <string name="battery_optimizations_enabled_explained">Je apparaat voert sterke batterij-optimalisaties uit op Conversations, die kunnen leiden tot vertraagde meldingen of zelfs verlies van berichten.\nHet is aangeraden deze optimalisaties uit te schakelen.</string>
+ <string name="battery_optimizations_enabled_dialog">Je apparaat voert sterke batterij-optimalisaties uit op Conversations, die kunnen leiden tot vertraagde meldingen of zelfs verlies van berichten.\nJe zal nu gevraagd worden deze optimalisaties uit te schakelen.</string>
<string name="disable">Uitschakelen</string>
<string name="selection_too_large">Het gekozen vlak is te groot</string>
<string name="no_accounts">(Geen actieve accounts)</string>
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index 6fc748d3..964f7551 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Odblokuj</string>
<string name="save">Zapisz</string>
<string name="ok">Ok</string>
- <string name="crash_report_title">Conversations+ uległo awarii</string>
- <string name="crash_report_message">Wysyłając ślady stosu pomagasz rozwijać Conversations+\n<b>Uwaga:</b> Ślad stosu zostanie przesłany deweloperowi przy użyciu twojego konta XMPP.</string>
+ <string name="crash_report_title">Conversations uległo awarii</string>
+ <string name="crash_report_message">Wysyłając ślady stosu pomagasz rozwijać Conversations\n<b>Uwaga:</b> Ślad stosu zostanie przesłany deweloperowi przy użyciu twojego konta XMPP.</string>
<string name="send_now">Wyślij teraz</string>
<string name="send_never">Nie pytaj ponownie</string>
<string name="problem_connecting_to_account">Nie można połączyć się z kontem</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Wyślij bez szyfrowania</string>
<string name="decryption_failed">Nie można odszyfrować. Sprawdź poprawność klucza prywatnego.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ używa zewnętrznej aplikacji <b>OpenKeychain</b> do szyfrowania wiadomości i zarządzania kluczami publicznymi.\n\nOpenKeychain rozpowszechniany jest na licencji GPLv3 przez F-Droid lub Google Play.\n\n<small>(Zrestartuj Conversations+ po instalacji).</small></string>
+ <string name="openkeychain_required_long">Conversations używa zewnętrznej aplikacji <b>OpenKeychain</b> do szyfrowania wiadomości i zarządzania kluczami publicznymi.\n\nOpenKeychain rozpowszechniany jest na licencji GPLv3 przez F-Droid lub Google Play.\n\n<small>(Zrestartuj Conversations po instalacji).</small></string>
<string name="restart">Zrestartuj</string>
<string name="install">Zainstaluj</string>
<string name="openkeychain_not_installed">Proszę zainstalować OpenKeychain</string>
<string name="offering">oferowanie...</string>
<string name="waiting">oczekiwanie...</string>
<string name="no_pgp_key">Nie znaleziono klucza OpenPGP</string>
- <string name="contact_has_no_pgp_key">Conversations+ nie może zaszyfrować wiadomości, ponieważ kontakt nie udostępnia klucza publicznego.\n\n<small>Zasugeruj rozmówcy instalację OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations nie może zaszyfrować wiadomości, ponieważ kontakt nie udostępnia klucza publicznego.\n\n<small>Zasugeruj rozmówcy instalację OpenPGP.</small></string>
<string name="no_pgp_keys">Nie znaleziono kluczy OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ nie może zaszyfrować wiadomości, ponieważ kontakty nie udostępniają kluczy publicznych.\n\n<small>Zasugeruj rozmówcom instalację OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations nie może zaszyfrować wiadomości, ponieważ kontakty nie udostępniają kluczy publicznych.\n\n<small>Zasugeruj rozmówcom instalację OpenPGP.</small></string>
<string name="pref_general">Główne</string>
<string name="pref_xmpp_resource">Zasób XMPP</string>
<string name="pref_xmpp_resource_summary">Nazwa identyfikująca urządzenie</string>
@@ -110,7 +110,7 @@
<string name="pref_notification_grace_period_summary">Wyłącz powiadomienia przez krótki czas po otrzymaniu kopii wiadomości</string>
<string name="pref_advanced_options">Zaawansowane</string>
<string name="pref_never_send_crash">Nie wysyłaj raportów awarii</string>
- <string name="pref_never_send_crash_summary">Wysyłając ślady stosu pomagasz rozwijać Conversations+</string>
+ <string name="pref_never_send_crash_summary">Wysyłając ślady stosu pomagasz rozwijać Conversations</string>
<string name="pref_confirm_messages">Potwierdzenia wiadomości</string>
<string name="pref_confirm_messages_summary">Powiadamiaj kontakty o otrzymaniu lub przeczytaniu wiadomości</string>
<string name="pref_ui_options">UI</string>
@@ -279,7 +279,7 @@
<string name="pref_dont_save_encrypted_summary">Uwaga: Może powodować utratę wiadomości</string>
<string name="pref_expert_options">Ustawienia zaawansowane</string>
<string name="pref_expert_options_summary">Modyfikuj ustawienia ostrożnie</string>
- <string name="title_activity_about">O Conversations+</string>
+ <string name="title_activity_about">O Conversations</string>
<string name="pref_about_conversations_summary">Informacje o kompilacji i licencji</string>
<string name="title_pref_quiet_hours">Godziny ciszy</string>
<string name="title_pref_quiet_hours_start_time">Początek</string>
@@ -337,7 +337,7 @@
<string name="verified">Weryfikacja udana!</string>
<string name="smp_requested">Kontakt zażądał weryfikacji SMP</string>
<string name="no_otr_session_found">Brak ważnej sesji OTR!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Usługa na pierwszym planie</string>
<string name="pref_keep_foreground_service_summary">Uniemożliwia systemowi przerwanie połączenia</string>
<string name="pref_export_logs">Wyeksportuj historię rozmów</string>
@@ -441,7 +441,7 @@
<string name="vcard">Kontakt</string>
<string name="received_x_file">Odebrano %s</string>
<string name="disable_foreground_service">Wyłącz podtrzymanie pierszego planu usługi</string>
- <string name="touch_to_open_conversations">Dotknij, aby otworzyć Conversations+</string>
+ <string name="touch_to_open_conversations">Dotknij, aby otworzyć Conversations</string>
<string name="avatar_has_been_published">Avatar został pomyślnie opublikowany!</string>
<string name="sending_x_file">Wysyłanie %s</string>
<string name="offering_x_file">Oferowanie %s</string>
@@ -533,9 +533,9 @@
</plurals>
<string name="shared_file_with_x">Dzielony plik z %s</string>
<string name="shared_image_with_x">Dzielony obraz z %s</string>
- <string name="no_storage_permission">Conversations+ potrzebuje dostęp do zewnętrznego magazynu</string>
+ <string name="no_storage_permission">Conversations potrzebuje dostęp do zewnętrznego magazynu</string>
<string name="sync_with_contacts">Synchronizuj z kontaktami</string>
- <string name="sync_with_contacts_long">Conversations+ chce dopasować Twoje kontakty XMPP z listą kontaktów w telefonie, by uzupełnić ich pełne imiona oraz awatary.\nConversations+ jedynie przeczyta Twoje kontakty i dopasuje je lokalnie, bez wysyłania na Twój serwer.\n\nZostaniesz teraz poproszony o przydzielenie pozwolenia na odczyt Twoich kontaktów.</string>
+ <string name="sync_with_contacts_long">Conversations chce dopasować Twoje kontakty XMPP z listą kontaktów w telefonie, by uzupełnić ich pełne imiona oraz awatary.\nConversations jedynie przeczyta Twoje kontakty i dopasuje je lokalnie, bez wysyłania na Twój serwer.\n\nZostaniesz teraz poproszony o przydzielenie pozwolenia na odczyt Twoich kontaktów.</string>
<string name="certificate_information">Informacja o certyfikacie</string>
<string name="certificate_subject">Temat</string>
<string name="certificate_issuer">Wystawca</string>
@@ -551,8 +551,8 @@
<string name="always">Zawsze</string>
<string name="automatically">Automatycznie</string>
<string name="battery_optimizations_enabled">Optymalizacje zużycia baterii włączone</string>
- <string name="battery_optimizations_enabled_explained">Twoje urządzenie wykonuje poważnie optymalizacje zużycia baterii przez Conversations+, które mogą powodować opóźnienie powiadomień lub nawet utratę wiadomości.\nZaleca się ich wyłączenie.</string>
- <string name="battery_optimizations_enabled_dialog">Twoje urządzenie wykonuje poważnie optymalizacje zużycia baterii przez Conversations+, które mogą powodować opóźnienie powiadomień lub nawet utratę wiadomości.\nZostaniesz teraz poproszony o ich wyłączenie</string>
+ <string name="battery_optimizations_enabled_explained">Twoje urządzenie wykonuje poważnie optymalizacje zużycia baterii przez Conversations, które mogą powodować opóźnienie powiadomień lub nawet utratę wiadomości.\nZaleca się ich wyłączenie.</string>
+ <string name="battery_optimizations_enabled_dialog">Twoje urządzenie wykonuje poważnie optymalizacje zużycia baterii przez Conversations, które mogą powodować opóźnienie powiadomień lub nawet utratę wiadomości.\nZostaniesz teraz poproszony o ich wyłączenie</string>
<string name="disable">Wyłącz</string>
<string name="selection_too_large">Zaznaczony obszar jest zbyt duży</string>
<string name="no_accounts">(Brak aktywynych kont)</string>
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index c5e95b09..52f40439 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Desbloquear</string>
<string name="save">Salvar</string>
<string name="ok">Ok</string>
- <string name="crash_report_title">Ocorreu um erro no Conversations+</string>
- <string name="crash_report_message">Ao enviar os stack traces você está colaborando com o desenvolvimento do Conversations+\n<b>Atenção:</b> Isso usará a sua conta XMPP para enviar o stack trace para o desenvolvedor.</string>
+ <string name="crash_report_title">Ocorreu um erro no Conversations</string>
+ <string name="crash_report_message">Ao enviar os stack traces você está colaborando com o desenvolvimento do Conversations\n<b>Atenção:</b> Isso usará a sua conta XMPP para enviar o stack trace para o desenvolvedor.</string>
<string name="send_now">Enviar agora</string>
<string name="send_never">Não pergunte novamente</string>
<string name="problem_connecting_to_account">Não foi possível se conectar à conta</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Enviar descriptografada</string>
<string name="decryption_failed">Não foi possível descriptografar. Talvez você não tenha a chave privada apropriada.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">O Conversations+ utiliza um aplicativo de terceiros chamado <b>OpenKeychain</b> para criptografar e descriptografar as mensagens e gerenciar suas chaves públicas.\n\nO OpenKeychain é licenciado sob a GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie o Conversations+ em seguida)</small></string>
+ <string name="openkeychain_required_long">O Conversations utiliza um aplicativo de terceiros chamado <b>OpenKeychain</b> para criptografar e descriptografar as mensagens e gerenciar suas chaves públicas.\n\nO OpenKeychain é licenciado sob a GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie o Conversations em seguida)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
<string name="openkeychain_not_installed">Por favor, instale o OpenKeychain</string>
<string name="offering">oferecendo...</string>
<string name="waiting">aguardando...</string>
<string name="no_pgp_key">Não foi encontrada nenhuma chave OpenPGP</string>
- <string name="contact_has_no_pgp_key">O Conversations+ não conseguiu criptografar suas mensagens porque o seu contato não está anunciando a chave pública dele(a).\n\n<small>Por favor, solicite ao seu contato para configurar o OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">O Conversations não conseguiu criptografar suas mensagens porque o seu contato não está anunciando a chave pública dele(a).\n\n<small>Por favor, solicite ao seu contato para configurar o OpenPGP.</small></string>
<string name="no_pgp_keys">Não foi encontrada nenhuma chave OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">O Conversations+ não conseguiu criptografar suas mensagens porque os seus contatos não estão anunciando a chave pública deles(as).\n\n<small>Por favor, solicite aos seus contatos que configurem o OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">O Conversations não conseguiu criptografar suas mensagens porque os seus contatos não estão anunciando a chave pública deles(as).\n\n<small>Por favor, solicite aos seus contatos que configurem o OpenPGP.</small></string>
<string name="pref_general">Geral</string>
<string name="pref_xmpp_resource">Identificação XMPP</string>
<string name="pref_xmpp_resource_summary">O nome pelo qual esse cliente se identifica</string>
@@ -117,7 +117,7 @@
<string name="pref_notification_grace_period_summary">Desativar notificações por um curto período após uma copia ser recebida</string>
<string name="pref_advanced_options">Avançado</string>
<string name="pref_never_send_crash">Nunca enviar relatórios de erros</string>
- <string name="pref_never_send_crash_summary">Ao enviar os stack traces você está colaborando com o desenvolvimento do Conversations+</string>
+ <string name="pref_never_send_crash_summary">Ao enviar os stack traces você está colaborando com o desenvolvimento do Conversations</string>
<string name="pref_confirm_messages">Confirmação de mensangens</string>
<string name="pref_confirm_messages_summary">Permitir que um contato saiba quando você recebeu e leu uma mensagem</string>
<string name="pref_ui_options">IU</string>
@@ -288,7 +288,7 @@
<string name="pref_dont_save_encrypted_summary">Atenção: Isso pode levar a perda de mensagens</string>
<string name="pref_expert_options">Configurações avançadas</string>
<string name="pref_expert_options_summary">Por favor, use com cuidado</string>
- <string name="title_activity_about">Sobre o Conversations+</string>
+ <string name="title_activity_about">Sobre o Conversations</string>
<string name="pref_about_conversations_summary">Informações de licenciamento e construção</string>
<string name="title_pref_quiet_hours">Horário de sossego</string>
<string name="title_pref_quiet_hours_start_time">Início</string>
@@ -347,7 +347,7 @@
<string name="verified">Verificado!</string>
<string name="smp_requested">O contato solicitou uma verificação SMP</string>
<string name="no_otr_session_found">Não foi encontrada nenhuma sessão OTR válida!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Manter o serviço em segundo plano</string>
<string name="pref_keep_foreground_service_summary">Impede que o sistema operacional encerre sua conexão</string>
<string name="pref_export_logs">Exportar registros</string>
@@ -453,7 +453,7 @@
<string name="vcard">Contato</string>
<string name="received_x_file">%s recebido</string>
<string name="disable_foreground_service">Desabilitar o serviço em segundo plano</string>
- <string name="touch_to_open_conversations">Toque para abrir o Conversations+</string>
+ <string name="touch_to_open_conversations">Toque para abrir o Conversations</string>
<string name="avatar_has_been_published">O avatar foi publicado.</string>
<string name="sending_x_file">Enviando %s</string>
<string name="offering_x_file">Oferecendo %s</string>
@@ -542,9 +542,9 @@
</plurals>
<string name="shared_file_with_x">Arquivo compartilhado com %s</string>
<string name="shared_image_with_x">Imagem compartilhada com %s</string>
- <string name="no_storage_permission">O Conversations+ necessita de acesso ao armazenamento externo</string>
+ <string name="no_storage_permission">O Conversations necessita de acesso ao armazenamento externo</string>
<string name="sync_with_contacts">Sincronizar com os contatos</string>
- <string name="sync_with_contacts_long">O Conversations+ quer procurar por correspondências entre contatos da sua conta Jabber e do seu telefone, para complementar as informações de nome completo e avatares\n\nO Conversations+ fará a verificação localmente, sem enviar nenhuma informação sua para o servidor\n\nVocê será solicitado a fornecer permissão de acesso aos seus contatos agora.</string>
+ <string name="sync_with_contacts_long">O Conversations quer procurar por correspondências entre contatos da sua conta Jabber e do seu telefone, para complementar as informações de nome completo e avatares\n\nO Conversations fará a verificação localmente, sem enviar nenhuma informação sua para o servidor\n\nVocê será solicitado a fornecer permissão de acesso aos seus contatos agora.</string>
<string name="certificate_information">Informação do certificado</string>
<string name="certificate_subject">Assunto</string>
<string name="certificate_issuer">Emitente</string>
@@ -560,8 +560,8 @@
<string name="always">Sempre</string>
<string name="automatically">Automaticamente</string>
<string name="battery_optimizations_enabled">Otimizações de bateria habilitadas</string>
- <string name="battery_optimizations_enabled_explained">O seu dispositivo está aplicando uma otimização de bateria intensa no Conversations+, que pode levar a atraso nas notificações ou até mesmo perda de mensagens.\nÉ recomendado desabilitar isso.</string>
- <string name="battery_optimizations_enabled_dialog">O seu dispositivo está aplicando uma otimização de bateria intensa no Conversations+, que pode levar a atraso nas notificações ou até mesmo perda de mensagens.\nAgora você será solicitado a desabilitá-la.</string>
+ <string name="battery_optimizations_enabled_explained">O seu dispositivo está aplicando uma otimização de bateria intensa no Conversations, que pode levar a atraso nas notificações ou até mesmo perda de mensagens.\nÉ recomendado desabilitar isso.</string>
+ <string name="battery_optimizations_enabled_dialog">O seu dispositivo está aplicando uma otimização de bateria intensa no Conversations, que pode levar a atraso nas notificações ou até mesmo perda de mensagens.\nAgora você será solicitado a desabilitá-la.</string>
<string name="disable">Desabilitar</string>
<string name="selection_too_large">A área selecionada é muito grande</string>
<string name="no_accounts">(Nenhuma conta ativa)</string>
diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml
index 9f130e12..ba262d9c 100644
--- a/src/main/res/values-pt/strings.xml
+++ b/src/main/res/values-pt/strings.xml
@@ -58,7 +58,7 @@
<string name="unblock">Desbloquear</string>
<string name="save">Guardar</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ teve um problema e deixou de funcionar</string>
+ <string name="crash_report_title">Conversations teve um problema e deixou de funcionar</string>
<string name="crash_report_message">Ao enviar os stack traces você ajudará o desenvolvimento do aplicativo\n<b>Atenção:</b> Isso usará a sua conta XMPP para enviar o stack trace para o desenvolvedor.</string>
<string name="send_now">Enviar agora</string>
<string name="send_never">Não perguntar novamente</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Enviar não cifrada</string>
<string name="decryption_failed">A decifragem falhou. Talvez não tenha a chave privada correta.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ utiliza uma aplicação de terceiros chamada <b>OpenKeychain</b> para cifrar e decifrar mensagens e gerir as suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie Conversations+ em seguida)</small></string>
+ <string name="openkeychain_required_long">Conversations utiliza uma aplicação de terceiros chamada <b>OpenKeychain</b> para cifrar e decifrar mensagens e gerir as suas chaves públicas.\n\nOpenKeychain é licenciado sob a licença GPLv3 e está disponível no F-Droid e Google Play.\n\n<small>(Por favor reinicie Conversations em seguida)</small></string>
<string name="restart">Reiniciar</string>
<string name="install">Instalar</string>
<string name="openkeychain_not_installed">Por favor instale o OpenKeychain</string>
<string name="offering">oferecendo...</string>
<string name="waiting">aguardando...</string>
<string name="no_pgp_key">Nenhuma chave OpenPGP encontrada</string>
- <string name="contact_has_no_pgp_key">Conversations+ não é capaz de cifrar as suas mensagens porque o seu contacto não está a anunciar a sua chave pública.\n\n<small>Por favor peça ao seu contacto para configurar o OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations não é capaz de cifrar as suas mensagens porque o seu contacto não está a anunciar a sua chave pública.\n\n<small>Por favor peça ao seu contacto para configurar o OpenPGP.</small></string>
<string name="no_pgp_keys">Não foram encontradas chaves OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ não é capaz de cifrar as suas mensagens porque os seus contactos não estão a anunciar as suas chaves públicas.\n\n<small>Por favor peça aos seus contactos para configurarem o OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations não é capaz de cifrar as suas mensagens porque os seus contactos não estão a anunciar as suas chaves públicas.\n\n<small>Por favor peça aos seus contactos para configurarem o OpenPGP.</small></string>
<string name="pref_general">Geral</string>
<string name="pref_xmpp_resource">Recurso XMPP</string>
<string name="pref_xmpp_resource_summary">O nome pelo qual este cliente se identifica</string>
@@ -108,14 +108,11 @@
<string name="pref_notifications">Notificações</string>
<string name="pref_notifications_summary">Notificar quando uma nova mensagem for recebida</string>
<string name="pref_vibrate">Vibrar</string>
- <string name="pref_vibrate_summary">Vibrar também quando uma nova mensagem for recebida</string>
- <string name="pref_sound">Som</string>
- <string name="pref_sound_summary">Tocar um som com a notificação</string>
<string name="pref_notification_grace_period">Período de carência da notificação</string>
<string name="pref_notification_grace_period_summary">Desativar notificações por um curto período após a copia oculta ser recebida</string>
<string name="pref_advanced_options">Avançadas</string>
<string name="pref_never_send_crash">Nunca enviar relatórios de falhas</string>
- <string name="pref_never_send_crash_summary">Ao enviar os stack traces você está a ajudar ao desenvolvimento contínuo de Conversations+</string>
+ <string name="pref_never_send_crash_summary">Ao enviar os stack traces você está a ajudar ao desenvolvimento contínuo de Conversations</string>
<string name="pref_confirm_messages">Confirmar mensagens</string>
<string name="pref_confirm_messages_summary">Permitir que um contacto saiba quando você recebeu e leu uma mensagem</string>
<string name="pref_ui_options">Interface do Utilizador</string>
@@ -286,7 +283,7 @@
<string name="pref_dont_save_encrypted_summary">Atenção: Isto pode levar à perda de mensagens</string>
<string name="pref_expert_options">Definições avançadas</string>
<string name="pref_expert_options_summary">Por favor tenha cuidado com estas</string>
- <string name="title_activity_about">Sobre Conversations+</string>
+ <string name="title_activity_about">Sobre Conversations</string>
<string name="pref_about_conversations_summary">Informação de licença e construção</string>
<string name="title_pref_quiet_hours">Horas de tranquilidade</string>
<string name="title_pref_quiet_hours_start_time">Hora de início</string>
@@ -345,7 +342,7 @@
<string name="verified">Verificado!</string>
<string name="smp_requested">O contacto pediu uma verificação SMP</string>
<string name="no_otr_session_found">Não foi encontrada nenhuma sessão OTR válida!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Manter o serviço em primeiro plano</string>
<string name="pref_keep_foreground_service_summary">Previne o sistema operativo de terminar a sua conexão</string>
<string name="pref_export_logs">Exportar os Logs</string>
@@ -451,7 +448,7 @@
<string name="vcard">Contacto</string>
<string name="received_x_file">Recebeu %s</string>
<string name="disable_foreground_service">Desativar serviço em primeiro plano</string>
- <string name="touch_to_open_conversations">Toque para abrir Conversations+</string>
+ <string name="touch_to_open_conversations">Toque para abrir Conversations</string>
<string name="avatar_has_been_published">O avatar foi publicado!</string>
<string name="sending_x_file">Enviando %s</string>
<string name="offering_x_file">Oferecendo %s</string>
@@ -543,9 +540,9 @@
<string name="shared_file_with_x">Ficheiro partilhado com %s</string>
<string name="shared_image_with_x">Imagem partilhada com %s</string>
<string name="shared_images_with_x">Imagens partilhadas com %s</string>
- <string name="no_storage_permission">Conversations+ necessita de acesso ao armazenamento externo</string>
+ <string name="no_storage_permission">Conversations necessita de acesso ao armazenamento externo</string>
<string name="sync_with_contacts">Sincronizar com contactos</string>
- <string name="sync_with_contacts_long">A aplicação Conversations+ deseja fazer a correspondência entre a sua lista de contactos XMPP e os seus contactos para mostrar os seus nomes completos e os seus avatares.\n\nA aplicação Conversations+ irá apenas ler os seus contactos e fazer a correspondência localmente sem enviar os dados para o seu servidor.\n\nIrá agora ser-lhe pedido para dar permissão para aceder aos seus contactos.</string>
+ <string name="sync_with_contacts_long">A aplicação Conversations deseja fazer a correspondência entre a sua lista de contactos XMPP e os seus contactos para mostrar os seus nomes completos e os seus avatares.\n\nA aplicação Conversations irá apenas ler os seus contactos e fazer a correspondência localmente sem enviar os dados para o seu servidor.\n\nIrá agora ser-lhe pedido para dar permissão para aceder aos seus contactos.</string>
<string name="certificate_information">Informação do Certificado</string>
<string name="certificate_subject">Assunto</string>
<string name="certificate_issuer">Emissor</string>
@@ -561,8 +558,8 @@
<string name="always">Sempre</string>
<string name="automatically">Automaticamente</string>
<string name="battery_optimizations_enabled">Otimizações da bateria ativadas</string>
- <string name="battery_optimizations_enabled_explained">O seu dispositivo está a fazer otimizações de bateria bastante agressivas na aplicação Conversations+ que poderão levar a notificações atrasadas ou até mesmo a perda de mensagens.\nÉ recomendado que as desative.</string>
- <string name="battery_optimizations_enabled_dialog">O seu dispositivo está a fazer otimizações de bateria bastantes agressivas na aplicação Conversations+ que poderão levar a notificações atrasadas ou até mesmo perda de mensagens.\n\nIrá-lhe agora ser pedido para desativá-las.</string>
+ <string name="battery_optimizations_enabled_explained">O seu dispositivo está a fazer otimizações de bateria bastante agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo a perda de mensagens.\nÉ recomendado que as desative.</string>
+ <string name="battery_optimizations_enabled_dialog">O seu dispositivo está a fazer otimizações de bateria bastantes agressivas na aplicação Conversations que poderão levar a notificações atrasadas ou até mesmo perda de mensagens.\n\nIrá-lhe agora ser pedido para desativá-las.</string>
<string name="disable">Desativar</string>
<string name="selection_too_large">A área selecionada é demasiado grande</string>
<string name="no_accounts">(Nenhuma conta ativada)</string>
diff --git a/src/main/res/values-ro-rRO/strings.xml b/src/main/res/values-ro-rRO/strings.xml
index e05ffc83..d799e1c2 100644
--- a/src/main/res/values-ro-rRO/strings.xml
+++ b/src/main/res/values-ro-rRO/strings.xml
@@ -19,7 +19,7 @@
<string name="title_activity_settings">Configuratie</string>
<string name="title_activity_conference_details">Detalii conferinta</string>
<string name="title_activity_contact_details">Detalii contact</string>
- <string name="title_activity_sharewith">Distribuie catre Conversations+</string>
+ <string name="title_activity_sharewith">Distribuie catre Conversations</string>
<string name="title_activity_start_conversation">Porneste conversatie</string>
<string name="title_activity_choose_contact">Alege contact</string>
<string name="title_activity_block_list">Blocheaza lista</string>
@@ -58,8 +58,8 @@
<string name="unblock">Deblocheaza</string>
<string name="save">Salveaza</string>
<string name="ok">DA</string>
- <string name="crash_report_title">Conversations+ s-a oprit neasteptat</string>
- <string name="crash_report_message">Trimitand jurnalele de eroare ajuti la buna dezvoltarea a aplicatiei Conversations+\n<b>Atentie:</b> Se va utiliza contul XMPP pentru a trimite informatiile din jurnal catre programatori.</string>
+ <string name="crash_report_title">Conversations s-a oprit neasteptat</string>
+ <string name="crash_report_message">Trimitand jurnalele de eroare ajuti la buna dezvoltarea a aplicatiei Conversations\n<b>Atentie:</b> Se va utiliza contul XMPP pentru a trimite informatiile din jurnal catre programatori.</string>
<string name="send_now">Trimite acum</string>
<string name="send_never">Nu ma mai intreba</string>
<string name="problem_connecting_to_account">Nu ma pot conecta la cont</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Trimite necriptat</string>
<string name="decryption_failed">Decriptia a esuat. Poate nu ai cheia privata corecta.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ utilizeaza o aplicatia externa <b>OpenKeychain</b> pentru a cripta si decripta mesaje si a administra cheile publice.\n\nOpenKeychain este licentiat sub GPLv3 si se gaseste pentru copiere pe F-Droid si Google Play.\n\n<small>(Te rog sa repornesti Conversations+ dupa)</small></string>
+ <string name="openkeychain_required_long">Conversations utilizeaza o aplicatia externa <b>OpenKeychain</b> pentru a cripta si decripta mesaje si a administra cheile publice.\n\nOpenKeychain este licentiat sub GPLv3 si se gaseste pentru copiere pe F-Droid si Google Play.\n\n<small>(Te rog sa repornesti Conversations dupa)</small></string>
<string name="restart">Reporneste</string>
<string name="install">Instaleaza</string>
<string name="openkeychain_not_installed">Te rog instaleaza OpenKeychain</string>
<string name="offering">transmit...</string>
<string name="waiting">in asteptare...</string>
<string name="no_pgp_key">Nu am gasit cheie OpenPGP</string>
- <string name="contact_has_no_pgp_key">Conversations+ nu a putut sa cripteze mesajele tale din cauza contactului care nu isi anunta cheia publica.\n\n<small>Roaga contactul sa isi configureze OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations nu a putut sa cripteze mesajele tale din cauza contactului care nu isi anunta cheia publica.\n\n<small>Roaga contactul sa isi configureze OpenPGP.</small></string>
<string name="no_pgp_keys">Nu am gasit chei OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ nu poate cripta mesajele tale pentru contactele tale care nu isi anunta cheia publica.\n\n<small>Te rog cere contactelor sa configureze OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations nu poate cripta mesajele tale pentru contactele tale care nu isi anunta cheia publica.\n\n<small>Te rog cere contactelor sa configureze OpenPGP.</small></string>
<string name="pref_general">General</string>
<string name="pref_xmpp_resource">Nume client XMPP</string>
<string name="pref_xmpp_resource_summary">Numele cu care acest client se identifica</string>
@@ -108,14 +108,11 @@
<string name="pref_notifications">Notificari</string>
<string name="pref_notifications_summary">Notifica cand un nou mesaj este primit</string>
<string name="pref_vibrate">Vibreaza</string>
- <string name="pref_vibrate_summary">Vibreaza cand un nou mesaj este primit</string>
- <string name="pref_sound">Sunet</string>
- <string name="pref_sound_summary">Ton de apel pentru notificare</string>
<string name="pref_notification_grace_period">Perioada de gratie notificari </string>
<string name="pref_notification_grace_period_summary">Opreste notificari pentru o scurta perioada dupa ce o copie a mesajului a fost primita</string>
<string name="pref_advanced_options">Optiuni avansate</string>
<string name="pref_never_send_crash">Nu trimite rapoarte de erori</string>
- <string name="pref_never_send_crash_summary">Trimitand date ajuti la dezvoltarea aplicatiei Conversations+\n<b>Atentie:</b> Se va utiliza contul XMPP pentru a trimite informatii catre programatori.</string>
+ <string name="pref_never_send_crash_summary">Trimitand date ajuti la dezvoltarea aplicatiei Conversations\n<b>Atentie:</b> Se va utiliza contul XMPP pentru a trimite informatii catre programatori.</string>
<string name="pref_confirm_messages">Confirma mesaje</string>
<string name="pref_confirm_messages_summary">Notifica contactul cand ai primit un mesaj si l-ai citit</string>
<string name="pref_ui_options">Optiuni interfata</string>
@@ -286,7 +283,7 @@
<string name="pref_dont_save_encrypted_summary">Atentie: Asta poate duce la pierderea de mesaje</string>
<string name="pref_expert_options">Optiuni expert</string>
<string name="pref_expert_options_summary">Te rog sa fi atent cu astea</string>
- <string name="title_activity_about">Despre Conversations+</string>
+ <string name="title_activity_about">Despre Conversations</string>
<string name="pref_about_conversations_summary">Informatii despre versiune si licenta</string>
<string name="title_pref_quiet_hours">Ore de liniste</string>
<string name="title_pref_quiet_hours_start_time">Ora de pornire</string>
@@ -345,7 +342,7 @@
<string name="verified">Verificat!</string>
<string name="smp_requested">Contactul a cerut verificare SMP</string>
<string name="no_otr_session_found">Nu s-a gasit nici o sesiune OTR valida</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Pastreaza serviciul activ in prim plan</string>
<string name="pref_keep_foreground_service_summary">Previne inchiderea conexiunii de catre sistemul de operare.</string>
<string name="pref_export_logs">Exporta jurnale</string>
@@ -451,7 +448,7 @@
<string name="vcard">Contact</string>
<string name="received_x_file">Primit %s</string>
<string name="disable_foreground_service">Dezactiveaza serviciul in prim plan</string>
- <string name="touch_to_open_conversations">Atinge pentru a deschide Conversations+</string>
+ <string name="touch_to_open_conversations">Atinge pentru a deschide Conversations</string>
<string name="avatar_has_been_published">Avatarul a fost publicat!</string>
<string name="sending_x_file">Trimit %s</string>
<string name="offering_x_file">Ofer %s</string>
@@ -546,9 +543,9 @@
<string name="shared_file_with_x">Partajeaza fisierul cu %s...</string>
<string name="shared_image_with_x">Partajeaza imaginea cu %s.</string>
<string name="shared_images_with_x">Partajeaza imaginile cu %s.</string>
- <string name="no_storage_permission">Conversations+ are nevoie de acces la stocarea externa</string>
+ <string name="no_storage_permission">Conversations are nevoie de acces la stocarea externa</string>
<string name="sync_with_contacts">Sincronizeaza cu contactele</string>
- <string name="sync_with_contacts_long">Conversations+ doreste sa potriveasta lista de contacte XMPP cu cea din dispozitiv pentru a putea afisa numule lor complete si avatarele.\n\nConversations+ doar v-a citi si potrivi local fara sa le incarce catre vreun server.\n\nUrmeaza sa fii intrebat daca doresti sa permiti accesul la contacte.</string>
+ <string name="sync_with_contacts_long">Conversations doreste sa potriveasta lista de contacte XMPP cu cea din dispozitiv pentru a putea afisa numule lor complete si avatarele.\n\nConversations doar v-a citi si potrivi local fara sa le incarce catre vreun server.\n\nUrmeaza sa fii intrebat daca doresti sa permiti accesul la contacte.</string>
<string name="certificate_information">Informatii despre certificat</string>
<string name="certificate_subject">Subiect</string>
<string name="certificate_issuer">
@@ -565,8 +562,8 @@ Emitent</string>
<string name="always">Mereu</string>
<string name="automatically">Automat</string>
<string name="battery_optimizations_enabled">Optimizare baterie activata</string>
- <string name="battery_optimizations_enabled_explained">Dispozitivul dumneavoastra incearca sa optimizeze agresiv consumul bateriei pentru Conversations+, asta poate duce la notificari intarziate sau chiar pierderi de mesaje.\nEste recomandat sa dezactivati aceste optimizari.</string>
- <string name="battery_optimizations_enabled_dialog">Dispozitivul dumneavoastra incearca sa optimizeze agresiv consumul bateriei pentru Conversations+, asta poate duce la notificari intarziate sau chiar pierderi de mesaje.\nIn continuare veti fi rugat sa dezactivati aceste optimizari.</string>
+ <string name="battery_optimizations_enabled_explained">Dispozitivul dumneavoastra incearca sa optimizeze agresiv consumul bateriei pentru Conversations, asta poate duce la notificari intarziate sau chiar pierderi de mesaje.\nEste recomandat sa dezactivati aceste optimizari.</string>
+ <string name="battery_optimizations_enabled_dialog">Dispozitivul dumneavoastra incearca sa optimizeze agresiv consumul bateriei pentru Conversations, asta poate duce la notificari intarziate sau chiar pierderi de mesaje.\nIn continuare veti fi rugat sa dezactivati aceste optimizari.</string>
<string name="disable">Dezactivat</string>
<string name="selection_too_large">Zona selectata este prea mare</string>
<string name="no_accounts">(Nici un cont activat)</string>
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index 98e54769..258cd4dd 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -58,7 +58,7 @@
<string name="unblock">Разблокировать</string>
<string name="save">Сохранить</string>
<string name="ok">ОК</string>
- <string name="crash_report_title">Conversations+ был неожиданно остановлен</string>
+ <string name="crash_report_title">Conversations был неожиданно остановлен</string>
<string name="crash_report_message">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить программу, поддерживая дальнейшее развитие программы\n<b>Предупреждение:</b>Отчет об ошибке будет отправлен разработчику, используя ваш аккаунт XMPP.</string>
<string name="send_now">Отправить сейчас</string>
<string name="send_never">Больше не спрашивать</string>
@@ -86,19 +86,19 @@
<string name="send_unencrypted">Отправить в незашифрованном виде</string>
<string name="decryption_failed">Расшифровка не удалась. Вероятно, что у вас нет надлежащего ключа.</string>
<string name="openkeychain_required">Установите OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ использует стороннее приложение под названием <b>OpenKeychain</b> для шифрования и расшифрования сообщений и управления открытыми ключами.\nПрограмма OpenKeychain распространяется под лицензией GPLv3 и доступна для загрузки через F-Droid или Google Play.\n\n<small>(Потребуется перезапуск Conversations+ после установки.)</small></string>
+ <string name="openkeychain_required_long">Conversations использует стороннее приложение под названием <b>OpenKeychain</b> для шифрования и расшифрования сообщений и управления открытыми ключами.\nПрограмма OpenKeychain распространяется под лицензией GPLv3 и доступна для загрузки через F-Droid или Google Play.\n\n<small>(Потребуется перезапуск Conversations после установки.)</small></string>
<string name="restart">Перезапуск</string>
<string name="install">Установка</string>
<string name="openkeychain_not_installed">Установите OpenKeychain пожалуйста</string>
<string name="offering">предложение…</string>
<string name="waiting">ожидание…</string>
<string name="no_pgp_key">Нет OpenPGP ключа</string>
- <string name="contact_has_no_pgp_key">Conversations+ не может зашифровать сообщение, потому что удаленный пользователь не анонсирует свой открытый ключ.\n\n<small>Пожалуйста, попросите удаленного пользователя тоже установить OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations не может зашифровать сообщение, потому что удаленный пользователь не анонсирует свой открытый ключ.\n\n<small>Пожалуйста, попросите удаленного пользователя тоже установить OpenPGP.</small></string>
<string name="no_pgp_keys">Нет OpenPGP ключей</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ не может зашифровать сообщения, потому что удаленные пользователи не анонсируют свои открытые ключи.\n\n<small>Пожалуйста, попросите удаленных пользователей тоже установить OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations не может зашифровать сообщения, потому что удаленные пользователи не анонсируют свои открытые ключи.\n\n<small>Пожалуйста, попросите удаленных пользователей тоже установить OpenPGP.</small></string>
<string name="pref_general">Общие</string>
<string name="pref_xmpp_resource">Название ресурса</string>
- <string name="pref_xmpp_resource_summary">Имя которым Conversations+ идентифицирует себя</string>
+ <string name="pref_xmpp_resource_summary">Имя которым Conversations идентифицирует себя</string>
<string name="pref_accept_files">Принимать файлы</string>
<string name="pref_accept_files_summary">Автоматический прием файлов…</string>
<string name="pref_accept_files_size_summary">Автоматический прием файлов…</string>
@@ -110,7 +110,7 @@
<string name="pref_notification_grace_period_summary">Не использовать уведомления, если вы прочитали сообщение на другом устройстве</string>
<string name="pref_advanced_options">Дополнительно</string>
<string name="pref_never_send_crash">Отчеты об ошибках</string>
- <string name="pref_never_send_crash_summary">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить Conversations+, поддерживая дальнейшее развитие программы</string>
+ <string name="pref_never_send_crash_summary">Отправляя отчеты об ошибках, вы помогаете исправить и улучшить Conversations, поддерживая дальнейшее развитие программы</string>
<string name="pref_confirm_messages">Отчеты о получении</string>
<string name="pref_confirm_messages_summary">Разрешить уведомлять отправителя, когда вы получили и прочитали сообщение</string>
<string name="pref_ui_options">Интерфейс</string>
@@ -280,7 +280,7 @@
<string name="pref_dont_save_encrypted_summary">Внимание: Это может привести к потере сообщений</string>
<string name="pref_expert_options">Расширенные настройки</string>
<string name="pref_expert_options_summary">Пожалуйста, будьте осторожны с данными настройками</string>
- <string name="title_activity_about">О Conversations+</string>
+ <string name="title_activity_about">О Conversations</string>
<string name="pref_about_conversations_summary">Информация о билде и лицензировании</string>
<string name="title_pref_quiet_hours">Тихие Часы</string>
<string name="title_pref_quiet_hours_start_time">Начало</string>
@@ -440,7 +440,7 @@
<string name="vcard">Контакт</string>
<string name="received_x_file">Получено %s</string>
<string name="disable_foreground_service">Отключить фоновую службу</string>
- <string name="touch_to_open_conversations">Коснитесь, чтобы открыть Conversations+</string>
+ <string name="touch_to_open_conversations">Коснитесь, чтобы открыть Conversations</string>
<string name="avatar_has_been_published">Аватар загружен!</string>
<string name="sending_x_file">Отправляется %s</string>
<string name="offering_x_file">Предложен %s</string>
@@ -526,9 +526,9 @@
<string name="connected_accounts">%1$d из %2$d аккаунтов соединены</string>
<string name="shared_file_with_x">Общий файл с %s</string>
<string name="shared_image_with_x">Общее изображение с %s</string>
- <string name="no_storage_permission">Conversations+ требуется доступ к внешнему хранилищу</string>
+ <string name="no_storage_permission">Conversations требуется доступ к внешнему хранилищу</string>
<string name="sync_with_contacts">Синхронизировать с контактами</string>
- <string name="sync_with_contacts_long">Conversations+ ожидает совпадения вашего XMPP ростера с вашими контактами для отображения их полных имен и аватаров.\n\nConversations+ только считает ваши контакты и сопоставит их локально без отправки их на ваш сервер.\n\nСейчас вы получите запрос на разрешение доступа к вашим контактам.</string>
+ <string name="sync_with_contacts_long">Conversations ожидает совпадения вашего XMPP ростера с вашими контактами для отображения их полных имен и аватаров.\n\nConversations только считает ваши контакты и сопоставит их локально без отправки их на ваш сервер.\n\nСейчас вы получите запрос на разрешение доступа к вашим контактам.</string>
<string name="certificate_information">Информация о сертификате</string>
<string name="certificate_subject">Subject</string>
<string name="certificate_issuer">Выпустил</string>
diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml
index c05749a6..d8852d30 100644
--- a/src/main/res/values-sk/strings.xml
+++ b/src/main/res/values-sk/strings.xml
@@ -55,8 +55,8 @@
<string name="unblock">Odblokovať</string>
<string name="save">Uložiť</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Aplikácia Conversations+ prestala reagovať</string>
- <string name="crash_report_message">Zaslaním detailov o dôvode zlyhania pomáhate ďalšiemu vývoju aplikácie Conversations+\n<b>Varovanie:</b> Toto použije nastavený XMPP účet na zaslanie detailov vývojárom.</string>
+ <string name="crash_report_title">Aplikácia Conversations prestala reagovať</string>
+ <string name="crash_report_message">Zaslaním detailov o dôvode zlyhania pomáhate ďalšiemu vývoju aplikácie Conversations\n<b>Varovanie:</b> Toto použije nastavený XMPP účet na zaslanie detailov vývojárom.</string>
<string name="send_now">Poslať teraz</string>
<string name="send_never">Nepýtať sa znova</string>
<string name="problem_connecting_to_account">Pripojenie k účtu zlyhalo</string>
@@ -82,15 +82,15 @@
<string name="send_unencrypted">Poslať nešifrované</string>
<string name="decryption_failed">Zašifrovanie zlyhalo. Možno nemáte správny privátny kľúč.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ využíva aplikáciu tretej strany, <b>OpenKeychain</b>, k šifrovaniu a dešifrovaniu správ a k správe verejných kľúčov.\n\nOpenKeychain má licenciu pod GPLv3 a je dostupný na F-Droid a Google Play.\n\n<small>(Po inštalácii, prosím, reštartujte aplikáciu Conversations+.)</small></string>
+ <string name="openkeychain_required_long">Conversations využíva aplikáciu tretej strany, <b>OpenKeychain</b>, k šifrovaniu a dešifrovaniu správ a k správe verejných kľúčov.\n\nOpenKeychain má licenciu pod GPLv3 a je dostupný na F-Droid a Google Play.\n\n<small>(Po inštalácii, prosím, reštartujte aplikáciu Conversations.)</small></string>
<string name="restart">Reštartovať</string>
<string name="install">Inštalovať</string>
<string name="offering">ponúka…</string>
<string name="waiting">čakám…</string>
<string name="no_pgp_key">Nenašiel sa žiadny OpenPGP kľúč</string>
- <string name="contact_has_no_pgp_key">Nie je možné zašifrovať správu v aplikácii Conversations+, pretože druhá strana neoznamuje svoj verejný kľúč.\n\n<small>Požiadajte svoj kontakt o nastavenie OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Nie je možné zašifrovať správu v aplikácii Conversations, pretože druhá strana neoznamuje svoj verejný kľúč.\n\n<small>Požiadajte svoj kontakt o nastavenie OpenPGP.</small></string>
<string name="no_pgp_keys">Nenašli sa žiadne OpenPGP kľúče</string>
- <string name="contacts_have_no_pgp_keys">Nie je možné zašifrovať správy v aplikácii Conversations+, pretože kontakty neoznamujú svoj verejný kľúč.\n\n<small>Požiadajte svoje kontakty o nastavenie OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Nie je možné zašifrovať správy v aplikácii Conversations, pretože kontakty neoznamujú svoj verejný kľúč.\n\n<small>Požiadajte svoje kontakty o nastavenie OpenPGP.</small></string>
<string name="pref_general">Všeobecné</string>
<string name="pref_xmpp_resource">XMPP zdroj</string>
<string name="pref_xmpp_resource_summary">Meno, ktorým sa tento klient identifikuje</string>
@@ -103,7 +103,7 @@
<string name="pref_notification_grace_period">Doba na prečítanie upozornenia</string>
<string name="pref_notification_grace_period_summary">Neupozorňovať krátko po obdržaní kópie správy</string>
<string name="pref_never_send_crash">Neodosielať detaily o zlyhaní aplikácie</string>
- <string name="pref_never_send_crash_summary">Zaslaním detailov o dôvode zlyhania pomáhate ďalšiemu vývoju aplikácie Conversations+</string>
+ <string name="pref_never_send_crash_summary">Zaslaním detailov o dôvode zlyhania pomáhate ďalšiemu vývoju aplikácie Conversations</string>
<string name="pref_confirm_messages">Potvrdzovať správy</string>
<string name="pref_confirm_messages_summary">Oznámi kontaktom, že správa bola prijatá a prečítaná</string>
<string name="openpgp_error">OpenKeychain nahlásil chybu</string>
@@ -261,7 +261,7 @@
<string name="pref_dont_save_encrypted">Neukladať šifrované správy</string>
<string name="pref_dont_save_encrypted_summary">Varovanie: Toto môže viesť k strate správ</string>
<string name="pref_expert_options_summary">S týmto narábajte veľmi opatrne, prosím</string>
- <string name="title_activity_about">O Conversations+</string>
+ <string name="title_activity_about">O Conversations</string>
<string name="pref_about_conversations_summary">Informácie o tvorbe a licencii</string>
<string name="title_pref_quiet_hours">Tichý režim</string>
<string name="title_pref_quiet_hours_start_time">Čas začiatku</string>
@@ -404,7 +404,7 @@
<string name="vcard">Kontakt</string>
<string name="received_x_file">Prijatý %s</string>
<string name="disable_foreground_service">Vypnúť prvoplánovú službu</string>
- <string name="touch_to_open_conversations">Kliknite na spustenie Conversations+</string>
+ <string name="touch_to_open_conversations">Kliknite na spustenie Conversations</string>
<string name="avatar_has_been_published">Avatar sa publikoval!</string>
<string name="sending_x_file">Posielam %s</string>
<string name="offering_x_file">Ponúkam %s</string>
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index 1a2d4d38..0468180a 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Avblockera</string>
<string name="save">Spara</string>
<string name="ok">Ok</string>
- <string name="crash_report_title">Conversations+ har kraschat</string>
- <string name="crash_report_message">Genom att skicka in stack traces hjälper du utvecklarna av Conversations+\n<b>Varning:</b> Detta använder ditt XMPP-konto för att skicka informationen till utvecklarna.</string>
+ <string name="crash_report_title">Conversations har kraschat</string>
+ <string name="crash_report_message">Genom att skicka in stack traces hjälper du utvecklarna av Conversations\n<b>Varning:</b> Detta använder ditt XMPP-konto för att skicka informationen till utvecklarna.</string>
<string name="send_now">Skicka nu</string>
<string name="send_never">Fråga aldrig igen</string>
<string name="problem_connecting_to_account">Kan inte ansluta till konto</string>
@@ -88,16 +88,16 @@
<string name="send_unencrypted">Skicka okrypterat</string>
<string name="decryption_failed">Avkryptering misslyckades. Du har kanske kanske inte rätt privat nyckel.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ använder en tredjeparts-applikation som heter <b>OpenKeychain</b> för att kryptera och avkryptera meddelanden och hantera dina publika nycklar.\n\nOpenKeychain är licensierad under GPLv3 och tillgänglig på F-Droid och Google Play.\n\n<small>(Starta om Conversations+ efter installation.)</small></string>
+ <string name="openkeychain_required_long">Conversations använder en tredjeparts-applikation som heter <b>OpenKeychain</b> för att kryptera och avkryptera meddelanden och hantera dina publika nycklar.\n\nOpenKeychain är licensierad under GPLv3 och tillgänglig på F-Droid och Google Play.\n\n<small>(Starta om Conversations efter installation.)</small></string>
<string name="restart">Starta om</string>
<string name="install">Installera</string>
<string name="openkeychain_not_installed">Installera OpenKeychain</string>
<string name="offering">erbjuder…</string>
<string name="waiting">väntar…</string>
<string name="no_pgp_key">Ingen OpenPGP-nyckel funnen</string>
- <string name="contact_has_no_pgp_key">Conversations+ kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
<string name="no_pgp_keys">Inga OpenPGP-nycklar funna</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations kan inte kryptera ditt meddelande eftersom din kontakt inte annonserar sin publika nyckel.\n\n<small>Be din kontakt att sätta upp OpenPGP.</small></string>
<string name="pref_general">Generellt</string>
<string name="pref_xmpp_resource">XMPP-resurs</string>
<string name="pref_xmpp_resource_summary">Namnet klienten identifierar sig med</string>
@@ -108,14 +108,11 @@
<string name="pref_notifications">Notifieringar</string>
<string name="pref_notifications_summary">Notifiera när meddelande tagits emot</string>
<string name="pref_vibrate">Vibrera</string>
- <string name="pref_vibrate_summary">Vibrera när meddelande tagits emot</string>
- <string name="pref_sound">Ljud</string>
- <string name="pref_sound_summary">Spela ljud med notifiering</string>
<string name="pref_notification_grace_period">Notifieringsfrist</string>
<string name="pref_notification_grace_period_summary">Inaktivera notifieringar en kort stund efter att en carbon copy tagits emot</string>
<string name="pref_advanced_options">Avancerat</string>
<string name="pref_never_send_crash">Skicka aldrig krasch-rapporter</string>
- <string name="pref_never_send_crash_summary">Genom att skicka in stack traces hjälper du utvecklarna av Conversations+</string>
+ <string name="pref_never_send_crash_summary">Genom att skicka in stack traces hjälper du utvecklarna av Conversations</string>
<string name="pref_confirm_messages">Bekräfta meddelanden</string>
<string name="pref_confirm_messages_summary">Låter dina kontakter veta när du har tagit emot och läst ett meddelande</string>
<string name="pref_ui_options">Gränssnitt</string>
@@ -286,7 +283,7 @@
<string name="pref_dont_save_encrypted_summary">Varning: Detta kan leda till att meddelanden förloras</string>
<string name="pref_expert_options">Expertinställningar</string>
<string name="pref_expert_options_summary">Var försiktig med dem</string>
- <string name="title_activity_about">Om Conversations+</string>
+ <string name="title_activity_about">Om Conversations</string>
<string name="pref_about_conversations_summary">Bygg- och licensinformation</string>
<string name="title_pref_quiet_hours">Tysta timmar</string>
<string name="title_pref_quiet_hours_start_time">Starttid</string>
@@ -345,7 +342,7 @@
<string name="verified">Verifierad</string>
<string name="smp_requested">Kontakt begärde SMP-verifikation</string>
<string name="no_otr_session_found">Ingen giltig OTR-session kunde hittas!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Håll tjänst i förgrunden</string>
<string name="pref_keep_foreground_service_summary">Förehindrar operativsystemet att ta ner uppkopplingen</string>
<string name="pref_export_logs">Exportera loggar</string>
@@ -451,7 +448,7 @@
<string name="vcard">Kontakt</string>
<string name="received_x_file">Tagit emot %s</string>
<string name="disable_foreground_service">Deaktivera förgrundstjänst</string>
- <string name="touch_to_open_conversations">Tryck för att öppna Conversations+</string>
+ <string name="touch_to_open_conversations">Tryck för att öppna Conversations</string>
<string name="avatar_has_been_published">Avatarbild har publicerats!</string>
<string name="sending_x_file">Skickar %s</string>
<string name="offering_x_file">Erbjuder %s</string>
@@ -543,9 +540,9 @@
<string name="shared_file_with_x">Delade fil med %s</string>
<string name="shared_image_with_x">Delade bild med %s</string>
<string name="shared_images_with_x">Delade bilder med %s</string>
- <string name="no_storage_permission">Conversations+ behöver access till extern lagring</string>
+ <string name="no_storage_permission">Conversations behöver access till extern lagring</string>
<string name="sync_with_contacts">Synkronisera med kontakter</string>
- <string name="sync_with_contacts_long">Conversations+ vill matcha din XMPP-kontaktlista med dina kontakter för att visa deras namn och profilbild.\n\nConversations+ läser endast dina kontakter för att matcha dem lokalt utan att ladda upp dem till din server.\n\nDu kommer nu få frågan om tillåtelse för att använda kontakterna.</string>
+ <string name="sync_with_contacts_long">Conversations vill matcha din XMPP-kontaktlista med dina kontakter för att visa deras namn och profilbild.\n\nConversations läser endast dina kontakter för att matcha dem lokalt utan att ladda upp dem till din server.\n\nDu kommer nu få frågan om tillåtelse för att använda kontakterna.</string>
<string name="certificate_information">Certifikatinformation</string>
<string name="certificate_subject">Ämne</string>
<string name="certificate_issuer">Utfärdare</string>
@@ -561,8 +558,8 @@
<string name="always">Alltid</string>
<string name="automatically">Automatiskt</string>
<string name="battery_optimizations_enabled">Batterioptimeringar aktiverade</string>
- <string name="battery_optimizations_enabled_explained">Din enhet har kraftiga batterioptimeringar som påverkar Conversations+ på så sätt att inkommande meddelanden kan försenas eller kan till och med gå förlorade.\nDet är rekommenderat att deaktivera batterioptimeringarna.</string>
- <string name="battery_optimizations_enabled_dialog">Din enhet har kraftiga batterioptimeringar som påverkar Conversations+ på så sätt att inkommande meddelanden kan försenas eller kan till och med gå förlorade.\nDu kommer nu att bli ombedd att stänga av batterioptimeringarna för Conversations+.</string>
+ <string name="battery_optimizations_enabled_explained">Din enhet har kraftiga batterioptimeringar som påverkar Conversations på så sätt att inkommande meddelanden kan försenas eller kan till och med gå förlorade.\nDet är rekommenderat att deaktivera batterioptimeringarna.</string>
+ <string name="battery_optimizations_enabled_dialog">Din enhet har kraftiga batterioptimeringar som påverkar Conversations på så sätt att inkommande meddelanden kan försenas eller kan till och med gå förlorade.\nDu kommer nu att bli ombedd att stänga av batterioptimeringarna för Conversations.</string>
<string name="disable">Deaktivera</string>
<string name="selection_too_large">The valda området är för stort</string>
<string name="no_accounts">(Inget konto aktiverat)</string>
diff --git a/src/main/res/values-tr-rTR/strings.xml b/src/main/res/values-tr-rTR/strings.xml
index b1e6dd9b..2063bdbf 100644
--- a/src/main/res/values-tr-rTR/strings.xml
+++ b/src/main/res/values-tr-rTR/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Engellemeyi kaldır</string>
<string name="save">Kaydet</string>
<string name="ok">Tamam</string>
- <string name="crash_report_title">Conversations+ çöktü</string>
- <string name="crash_report_message">Çöküş raporu göndermeniz Conversations+\n’ın geliştirilmesine katkıda bulunacaktır.<b>Uyarı:</b>Bu rapor yazılım geliştiriciye XMPP hesabınız üzerinden gönderilecektir.</string>
+ <string name="crash_report_title">Conversations çöktü</string>
+ <string name="crash_report_message">Çöküş raporu göndermeniz Conversations\n’ın geliştirilmesine katkıda bulunacaktır.<b>Uyarı:</b>Bu rapor yazılım geliştiriciye XMPP hesabınız üzerinden gönderilecektir.</string>
<string name="send_now">Şimdi gönder</string>
<string name="send_never">Bir daha sorma</string>
<string name="problem_connecting_to_account">Hesaba bağlanılamıyor</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Şifrelenmemiş gönder</string>
<string name="decryption_failed">Deşifre edilemedi. Uygun bir özel anahtarınız olmayabilir.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ iletileri şifreleyip deşifre etmek ve ortak anahtarlarınızı yönetmek için bir üçüncü parti uygulaması olan <b>OpenKeychain’i</b> kullanmaktadır. \n\nOpenKeychain GPLv3 altında lisanslı olup F-Droid ve Google Play’den indirilebilir.\n\n<small>(Lütfen daha sonra Conversations+’ı yeniden başlatın.)</small></string>
+ <string name="openkeychain_required_long">Conversations iletileri şifreleyip deşifre etmek ve ortak anahtarlarınızı yönetmek için bir üçüncü parti uygulaması olan <b>OpenKeychain’i</b> kullanmaktadır. \n\nOpenKeychain GPLv3 altında lisanslı olup F-Droid ve Google Play’den indirilebilir.\n\n<small>(Lütfen daha sonra Conversations’ı yeniden başlatın.)</small></string>
<string name="restart">Yeniden başlat</string>
<string name="install">Kur</string>
<string name="openkeychain_not_installed">Lütfen OpenKeychain’i kur</string>
<string name="offering">sunuluyor…</string>
<string name="waiting">bekliyor…</string>
<string name="no_pgp_key">Herhangi bir OpenPGP anahtarı bulunamadı</string>
- <string name="contact_has_no_pgp_key">Kişi ortak anahtarını yayınlamadığı için Conversations+ iletilerinizi şifreleyemiyor.\n\n<small>Lütfen kişiden OpenPGP’yi ayarlamasını isteyin.</small></string>
+ <string name="contact_has_no_pgp_key">Kişi ortak anahtarını yayınlamadığı için Conversations iletilerinizi şifreleyemiyor.\n\n<small>Lütfen kişiden OpenPGP’yi ayarlamasını isteyin.</small></string>
<string name="no_pgp_keys">Herhangi bir OpenPGP anahtarı bulunamadı</string>
- <string name="contacts_have_no_pgp_keys">Kişiler ortak anahtarlarını yayınlamadığı için Conversations+ iletilerinizi şifreleyemiyor.\n\n<small>Lütfen kişilerden OpenPGP’yi ayarlamalarını isteyin.</small></string>
+ <string name="contacts_have_no_pgp_keys">Kişiler ortak anahtarlarını yayınlamadığı için Conversations iletilerinizi şifreleyemiyor.\n\n<small>Lütfen kişilerden OpenPGP’yi ayarlamalarını isteyin.</small></string>
<string name="pref_general">Genel</string>
<string name="pref_xmpp_resource">XMPP kaynağı</string>
<string name="pref_xmpp_resource_summary">İstemci kimliği</string>
@@ -110,7 +110,7 @@
<string name="pref_notification_grace_period_summary">Karbon kopya alındıktan sonra kısa bir süre için bildirimleri kapa</string>
<string name="pref_advanced_options">Gelişmiş</string>
<string name="pref_never_send_crash">Asla çöküş raporu gönderme</string>
- <string name="pref_never_send_crash_summary">Çöküş raporu göndermeniz Conversations+\n’ın geliştirilmesine katkıda bulunacaktır.</string>
+ <string name="pref_never_send_crash_summary">Çöküş raporu göndermeniz Conversations\n’ın geliştirilmesine katkıda bulunacaktır.</string>
<string name="pref_confirm_messages">İletileri onayla</string>
<string name="pref_confirm_messages_summary">Karşı tarafa ileti alındı ve okundu raporu gönder.</string>
<string name="pref_ui_options">Arabirim</string>
@@ -274,14 +274,14 @@
<string name="without_mutual_presence_updates"><b>Uyarı:</b> Karşılıklı çevrimiçi durum bildirimi güncellemeleri olmaksızın bunu göndermeniz beklenmedik sorunlara sebep olabilir.\n\n\n\n<small>Çevrimiçi durum bildirimi aboneliklerinizi kontrol etmek için kişi bilgilerine gidin.</small></string>
<string name="pref_security_settings">Güvenlik</string>
<string name="pref_force_encryption">Uçtan uca şifrelemeye zorla</string>
- <string name="pref_force_encryption_summary">Her zaman şifrelenmiş ileti gönder (Conversations+ hariç)</string>
+ <string name="pref_force_encryption_summary">Her zaman şifrelenmiş ileti gönder (Conversations hariç)</string>
<string name="pref_allow_message_correction">İleti düzeltmeye izin ver</string>
<string name="pref_allow_message_correction_summary">Kişilerinizin geçmiş iletilerini düzeltmelerine izin ver</string>
<string name="pref_dont_save_encrypted">Şifrelenmiş iletileri kaydetme</string>
<string name="pref_dont_save_encrypted_summary">Uyarı: Bu, iletilerin kaybedilmesine neden olabilir</string>
<string name="pref_expert_options">Uzman seçenekleri</string>
<string name="pref_expert_options_summary">Lütfen dikkatli olun</string>
- <string name="title_activity_about">Conversations+ hakkında</string>
+ <string name="title_activity_about">Conversations hakkında</string>
<string name="pref_about_conversations_summary">Geliştirme ve lisans bilgisi</string>
<string name="title_pref_quiet_hours">Sessiz Saatler</string>
<string name="title_pref_quiet_hours_start_time">Başlangıç zamanı</string>
@@ -340,7 +340,7 @@
<string name="verified">Doğrulandı!</string>
<string name="smp_requested">Kişi SMP doğrulaması istedi</string>
<string name="no_otr_session_found">Geçerli bir OTR oturumu bulunamadı!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Ön planda çalışmaya devam etsin</string>
<string name="pref_keep_foreground_service_summary">İşletim sisteminin bağlantınızı koparmasına engel olur</string>
<string name="pref_export_logs">Kayıtları dışa aktar</string>
@@ -445,7 +445,7 @@
<string name="vcard">Kişi</string>
<string name="received_x_file">%s alındı</string>
<string name="disable_foreground_service">Ön planda çalışmasını devre dışı bırak</string>
- <string name="touch_to_open_conversations">Conversations+’ı başlatmak için dokunun</string>
+ <string name="touch_to_open_conversations">Conversations’ı başlatmak için dokunun</string>
<string name="avatar_has_been_published">Avatar yayınlandı!</string>
<string name="sending_x_file">%s gönderiliyor</string>
<string name="offering_x_file">%s sunuluyor</string>
@@ -533,9 +533,9 @@
</plurals>
<string name="shared_file_with_x">%s ile paylaşılan dosyalar</string>
<string name="shared_image_with_x">%s ile paylaşılan resim</string>
- <string name="no_storage_permission">Conversations+’ın harici depolama alanına erişmesi gerek </string>
+ <string name="no_storage_permission">Conversations’ın harici depolama alanına erişmesi gerek </string>
<string name="sync_with_contacts">Kişilerle senkronize et</string>
- <string name="sync_with_contacts_long">Conversations+ XMPP listenizi telefon rehberinizle eşleştirerek kişilerin tam isimlerini ve avatarlarını göstermek istiyor. \n\n Conversations+ telefon rehberinizi sadece okuyacak ve onları sunucunuza yüklemeden eşleştirecek. \n\n Şimdi telefon rehberinize erişilmesine izin vermeniz istenecek.\n\n</string>
+ <string name="sync_with_contacts_long">Conversations XMPP listenizi telefon rehberinizle eşleştirerek kişilerin tam isimlerini ve avatarlarını göstermek istiyor. \n\n Conversations telefon rehberinizi sadece okuyacak ve onları sunucunuza yüklemeden eşleştirecek. \n\n Şimdi telefon rehberinize erişilmesine izin vermeniz istenecek.\n\n</string>
<string name="certificate_information">Sertifika Bilgisi</string>
<string name="certificate_subject">Konu</string>
<string name="certificate_issuer">Veren</string>
@@ -551,8 +551,8 @@
<string name="always">Her zaman</string>
<string name="automatically">Otomatik olarak</string>
<string name="battery_optimizations_enabled">Pil optimizasyonu devrede</string>
- <string name="battery_optimizations_enabled_explained">Cihazınız Conversations+ üzerinde yoğun pil optimizasyonu yaptığı için bildirimlerde gecikmeler olabilir hatta bazı ileti kayıpları yaşanabilir.\nBu durumla karşılaşamamak için devre dışı bırakmanız önerilir. </string>
- <string name="battery_optimizations_enabled_dialog">Cihazınız Conversations+ üzerinde yoğun pil optimizasyonu yaptığı için bildirimlerde gecikmeler olabilir hatta bazı ileti kayıpları yaşanabilir.\n Şimdi bunları devre dışı bırakmanız istenecek.</string>
+ <string name="battery_optimizations_enabled_explained">Cihazınız Conversations üzerinde yoğun pil optimizasyonu yaptığı için bildirimlerde gecikmeler olabilir hatta bazı ileti kayıpları yaşanabilir.\nBu durumla karşılaşamamak için devre dışı bırakmanız önerilir. </string>
+ <string name="battery_optimizations_enabled_dialog">Cihazınız Conversations üzerinde yoğun pil optimizasyonu yaptığı için bildirimlerde gecikmeler olabilir hatta bazı ileti kayıpları yaşanabilir.\n Şimdi bunları devre dışı bırakmanız istenecek.</string>
<string name="disable">Devre dışı</string>
<string name="selection_too_large">Seçilen alan çok büyük</string>
<string name="no_accounts">(Aktif hesap bulunmuyor)</string>
diff --git a/src/main/res/values-vi/strings.xml b/src/main/res/values-vi/strings.xml
index 0db01a4d..d2ca5940 100644
--- a/src/main/res/values-vi/strings.xml
+++ b/src/main/res/values-vi/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">Bỏ chặn</string>
<string name="save">Lưu</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ đã đột ngột dừng</string>
- <string name="crash_report_message">Bằng việc gửi báo cáo hoạt động, bạn đang hỗ trợ nhóm phát triển của Conversations+\n<b>Cảnh báo:</b> Thao tác này sẽ sử dụng tài khoản XMPP của bạn để gửi báo cáo hoạt động đến nhà phát triển.</string>
+ <string name="crash_report_title">Conversations đã đột ngột dừng</string>
+ <string name="crash_report_message">Bằng việc gửi báo cáo hoạt động, bạn đang hỗ trợ nhóm phát triển của Conversations\n<b>Cảnh báo:</b> Thao tác này sẽ sử dụng tài khoản XMPP của bạn để gửi báo cáo hoạt động đến nhà phát triển.</string>
<string name="send_now">Gửi ngay</string>
<string name="send_never">Đừng hỏi lại nữa</string>
<string name="problem_connecting_to_account">Không thể kết nối đến tài khoản</string>
@@ -86,16 +86,16 @@
<string name="send_unencrypted">Gửi dạng không mã hoá</string>
<string name="decryption_failed">Giải mã thất bại. Có lẽ bạn không có đúng khoá cá nhân.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ dùng ứng dụng bên thứ ba gọi là <b>OpenKeychain</b> để mã hoá và giải mã tin nhắn đồng thời quản lý khoá công cộng của bạn.\n\nOpenKeychain được cấp giấy phép GPLv3 và có thể tải về từ F-Droid cũng như Google Play.\n\n<small>(Xin khởi chạy lại Conversations+ sau đó.)</small></string>
+ <string name="openkeychain_required_long">Conversations dùng ứng dụng bên thứ ba gọi là <b>OpenKeychain</b> để mã hoá và giải mã tin nhắn đồng thời quản lý khoá công cộng của bạn.\n\nOpenKeychain được cấp giấy phép GPLv3 và có thể tải về từ F-Droid cũng như Google Play.\n\n<small>(Xin khởi chạy lại Conversations sau đó.)</small></string>
<string name="restart">Khởi chạy lại</string>
<string name="install">Cài đặt</string>
<string name="openkeychain_not_installed">Xin cài đặt OpenKeychain</string>
<string name="offering">đang đề xuất...</string>
<string name="waiting">đang chờ...</string>
<string name="no_pgp_key">Không tìm thấy khoá OpenPGP</string>
- <string name="contact_has_no_pgp_key">Conversations+ không thể mã hoá tin nhắn vì liên hệ của bạn không thông báo khoá công cộng của anh/chị ấy.\n\n<small>Hãy yêu cầu liên hệ đó cài đặt OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations không thể mã hoá tin nhắn vì liên hệ của bạn không thông báo khoá công cộng của anh/chị ấy.\n\n<small>Hãy yêu cầu liên hệ đó cài đặt OpenPGP.</small></string>
<string name="no_pgp_keys">Không tìm thấy các khoá OpenPGP</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ không thể mã hoá tin nhắn vì các liên hệ của bạn không thông báo khoá công cộng của họ.\n\n<small>Hãy yêu cầu họ cài đặt OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations không thể mã hoá tin nhắn vì các liên hệ của bạn không thông báo khoá công cộng của họ.\n\n<small>Hãy yêu cầu họ cài đặt OpenPGP.</small></string>
<string name="pref_general">Tổng quan</string>
<string name="pref_xmpp_resource">Ứng dụng XMPP</string>
<string name="pref_xmpp_resource_summary">Tên của máy trạm này được tự đặt là</string>
@@ -108,7 +108,7 @@
<string name="pref_notification_grace_period">Thời gian gia hạn thông báo</string>
<string name="pref_notification_grace_period_summary">Tắt thông báo trong một thời gian ngắn sau khi nhận được bản sao giấy than</string>
<string name="pref_never_send_crash">Không bao giờ gửi báo cáo dừng chạy</string>
- <string name="pref_never_send_crash_summary">Bằng việc gửi báo cáo hoạt động, bạn đang hỗ trợ nhóm phát triển của Conversations+</string>
+ <string name="pref_never_send_crash_summary">Bằng việc gửi báo cáo hoạt động, bạn đang hỗ trợ nhóm phát triển của Conversations</string>
<string name="pref_confirm_messages">Xác nhận tin nhắn</string>
<string name="pref_confirm_messages_summary">Báo cho liên hệ của bạn biết khi bạn đã nhận và đọc tin nhắn</string>
<string name="openpgp_error">OpenKeychain đã báo cáo một lỗi</string>
@@ -272,7 +272,7 @@
<string name="pref_dont_save_encrypted">Đừng lưu tin nhắn được mã hoá</string>
<string name="pref_dont_save_encrypted_summary">Cảnh báo: Có thể làm mất tin nhắn</string>
<string name="pref_expert_options_summary">Xin hãy cẩn trọng với chúng</string>
- <string name="title_activity_about">Thông tin về Conversations+</string>
+ <string name="title_activity_about">Thông tin về Conversations</string>
<string name="pref_about_conversations_summary">Thông tin bản dựng và giấy phép</string>
<string name="title_pref_quiet_hours">Giờ yên lặng</string>
<string name="title_pref_quiet_hours_start_time">Thời gian bắt đầu</string>
@@ -326,7 +326,7 @@
<string name="verified">Đã xác minh!</string>
<string name="smp_requested">Liên hệ đã yêu cầu xác minh SMP</string>
<string name="no_otr_session_found">Không tìm thấy phiên OTR hợp lệ nào!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Giữ dịch vụ luôn chạy</string>
<string name="pref_keep_foreground_service_summary">Ngăn hệ điều hành ngắt kết nối của bạn</string>
<string name="pref_export_logs">Xuất nhật ký</string>
@@ -430,7 +430,7 @@
<string name="vcard">Liên hệ</string>
<string name="received_x_file">Đã nhận %s</string>
<string name="disable_foreground_service">Tắt dịch vụ luôn chạy</string>
- <string name="touch_to_open_conversations">Chạm để mở Conversations+</string>
+ <string name="touch_to_open_conversations">Chạm để mở Conversations</string>
<string name="avatar_has_been_published">Đã đăng tải ảnh đại diện!</string>
<string name="sending_x_file">Đang gửi %s</string>
<string name="offering_x_file">Đang đề xuất %s</string>
@@ -506,9 +506,9 @@
</plurals>
<string name="shared_file_with_x">Chia sẻ tập tin với %s</string>
<string name="shared_image_with_x">Chia sẻ hình với %s</string>
- <string name="no_storage_permission">Conversations+ cần quyền truy cập ổ nhớ ngoài</string>
+ <string name="no_storage_permission">Conversations cần quyền truy cập ổ nhớ ngoài</string>
<string name="sync_with_contacts">Đồng bộ với danh bạ</string>
- <string name="sync_with_contacts_long">Conversations+ muốn so sánh danh sách bạn bè XMPP với danh bạ của bạn để hiện tên đầy đủ và ảnh đại diện của họ.\n\nConversations+ sẽ chỉ đọc danh bạ và so sánh trên thiết bị chứ không tải lên máy chủ.\n\nBây giờ, bạn sẽ được hỏi trao quyền truy cập danh bạ.</string>
+ <string name="sync_with_contacts_long">Conversations muốn so sánh danh sách bạn bè XMPP với danh bạ của bạn để hiện tên đầy đủ và ảnh đại diện của họ.\n\nConversations sẽ chỉ đọc danh bạ và so sánh trên thiết bị chứ không tải lên máy chủ.\n\nBây giờ, bạn sẽ được hỏi trao quyền truy cập danh bạ.</string>
<string name="certificate_information">Thông tin chứng nhận</string>
<string name="certificate_subject">Tiêu đề</string>
<string name="certificate_issuer">Nhà phát hành</string>
@@ -523,8 +523,8 @@
<string name="always">Luôn luôn</string>
<string name="automatically">Tự động</string>
<string name="battery_optimizations_enabled">Đã bật tối ưu pin</string>
- <string name="battery_optimizations_enabled_explained">Thiết bị đang thực hiện tối ưu hoá pin trên Conversations+ và nó có thể gây trì hoãn thông báo hay thậm chí làm mất tin nhắn.\nBạn nên tắt chế độ đó đi.</string>
- <string name="battery_optimizations_enabled_dialog">Thiết bị đang thực hiện tối ưu hoá pin trên Conversations+ và nó có thể gây trì hoãn thông báo hay thậm chí làm mất tin nhắn.\n\nBây giờ, bạn sẽ được yêu cầu tắt chế độ đó đi.</string>
+ <string name="battery_optimizations_enabled_explained">Thiết bị đang thực hiện tối ưu hoá pin trên Conversations và nó có thể gây trì hoãn thông báo hay thậm chí làm mất tin nhắn.\nBạn nên tắt chế độ đó đi.</string>
+ <string name="battery_optimizations_enabled_dialog">Thiết bị đang thực hiện tối ưu hoá pin trên Conversations và nó có thể gây trì hoãn thông báo hay thậm chí làm mất tin nhắn.\n\nBây giờ, bạn sẽ được yêu cầu tắt chế độ đó đi.</string>
<string name="disable">Tắt</string>
<string name="selection_too_large">Khu vực chọn quá lớn</string>
</resources>
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index 76f73f06..4c846c8f 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -58,8 +58,8 @@
<string name="unblock">解除屏蔽</string>
<string name="save">保存</string>
<string name="ok">完成</string>
- <string name="crash_report_title">Conversations+ 崩溃</string>
- <string name="crash_report_message">发送堆栈跟踪信息到 Conversations+ 的开发人员\n<b>警告:</b> 该操作将用您的 XMPP 账户发送堆栈跟踪给开发人员。</string>
+ <string name="crash_report_title">Conversations 崩溃</string>
+ <string name="crash_report_message">发送堆栈跟踪信息到 Conversations 的开发人员\n<b>警告:</b> 该操作将用您的 XMPP 账户发送堆栈跟踪给开发人员。</string>
<string name="send_now">现在发送</string>
<string name="send_never">不再询问</string>
<string name="problem_connecting_to_account">无法连接至账户</string>
@@ -88,34 +88,30 @@
<string name="send_unencrypted">不加密发送</string>
<string name="decryption_failed">解密失败,可能是私钥不正确。</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ 使用了第三方app <b>OpenKeychain</b> 来加密、解密信息并管理您的密钥。\n\nOpenKeychain 遵循 GPLv3 并且可以在 F-Droid 和 Google Play 上获取。\n\n<small>(之后请重启 Conversations+)</small></string>
+ <string name="openkeychain_required_long">Conversations 使用了第三方app <b>OpenKeychain</b> 来加密、解密信息并管理您的密钥。\n\nOpenKeychain 遵循 GPLv3 并且可以在 F-Droid 和 Google Play 上获取。\n\n<small>(之后请重启 Conversations)</small></string>
<string name="restart">重启</string>
<string name="install">安装</string>
<string name="openkeychain_not_installed">请安装 OpenKeychain 以解密</string>
<string name="offering">输入…</string>
<string name="waiting">等待…</string>
<string name="no_pgp_key">未发现 OpenPGP 密钥</string>
- <string name="contact_has_no_pgp_key">Conversations+ 无法加密信息,因为联系人未提供他/她的公钥。\n\n<small>请通知联系人设置 OpenPGP。</small></string>
+ <string name="contact_has_no_pgp_key">Conversations 无法加密信息,因为联系人未提供他/她的公钥。\n\n<small>请通知联系人设置 OpenPGP。</small></string>
<string name="no_pgp_keys">未找到 OpenPGP 密钥</string>
- <string name="contacts_have_no_pgp_keys">因您的联系人未公布公钥,Conversations+未能成功加密您的信息.\n\n<small>请通知联系人设置OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">因您的联系人未公布公钥,Conversations未能成功加密您的信息.\n\n<small>请通知联系人设置OpenPGP.</small></string>
<string name="pref_general">常规</string>
<string name="pref_xmpp_resource">XMPP 资源</string>
<string name="pref_xmpp_resource_summary">客户端标识名称</string>
<string name="pref_accept_files">接收文件</string>
<string name="pref_accept_files_summary">自动接收小于 … 的文件</string>
- <string name="pref_accept_files_size_summary">自动接收小于 … 的文件</string>
<string name="pref_notification_settings">通知</string>
<string name="pref_notifications">通知</string>
<string name="pref_notifications_summary">收到新消息时通知</string>
<string name="pref_vibrate">震动</string>
- <string name="pref_vibrate_summary">收到新消息时震动</string>
- <string name="pref_sound">声音</string>
- <string name="pref_sound_summary">收到新消息时的铃声</string>
<string name="pref_notification_grace_period">通知限期</string>
<string name="pref_notification_grace_period_summary">接收副本短时间内关闭通知</string>
<string name="pref_advanced_options">高级</string>
<string name="pref_never_send_crash">总不发送崩溃报告</string>
- <string name="pref_never_send_crash_summary">发送堆栈跟踪帮助 Conversations+ 开发人员</string>
+ <string name="pref_never_send_crash_summary">发送堆栈跟踪帮助 Conversations 开发人员</string>
<string name="pref_confirm_messages">确认消息</string>
<string name="pref_confirm_messages_summary">当你已收到消息并且已阅时通知好友</string>
<string name="pref_ui_options">UI</string>
@@ -286,7 +282,7 @@
<string name="pref_dont_save_encrypted_summary">警告:此操作将会导致信息丢失</string>
<string name="pref_expert_options">高级设置</string>
<string name="pref_expert_options_summary">请谨慎使用</string>
- <string name="title_activity_about">关于 Conversations+</string>
+ <string name="title_activity_about">关于 Conversations</string>
<string name="pref_about_conversations_summary">编译及许可证信息</string>
<string name="title_pref_quiet_hours">静默时间段</string>
<string name="title_pref_quiet_hours_start_time">开始时间</string>
@@ -345,7 +341,7 @@
<string name="verified">验证通过!</string>
<string name="smp_requested">联系人请求 SMP 验证</string>
<string name="no_otr_session_found">没有找到 OTR 会话</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">保持前台服务</string>
<string name="pref_keep_foreground_service_summary">防止操作系统中断你的连接</string>
<string name="pref_export_logs">导出日志</string>
@@ -451,7 +447,7 @@
<string name="vcard">联系人</string>
<string name="received_x_file">已经收到 %s</string>
<string name="disable_foreground_service">禁用前台服务</string>
- <string name="touch_to_open_conversations">轻触打开 Conversations+</string>
+ <string name="touch_to_open_conversations">轻触打开 Conversations</string>
<string name="avatar_has_been_published">头像已经发布!</string>
<string name="sending_x_file">发送中 %s</string>
<string name="offering_x_file">提供中 %s</string>
@@ -540,9 +536,9 @@
<string name="shared_file_with_x">用 %s 分享文件</string>
<string name="shared_image_with_x">用 %s 分享图片</string>
<string name="shared_images_with_x">图片分享自 %s</string>
- <string name="no_storage_permission">Conversations+ 需要访问外部存储</string>
+ <string name="no_storage_permission">Conversations 需要访问外部存储</string>
<string name="sync_with_contacts">与联系人同步</string>
- <string name="sync_with_contacts_long">Conversations+ 会匹配你的 XMPP 花名册与你的联系人,以显示他们的全名和头像。\n\nConversations+ 只会读取你的联系人并在本地匹配,不会上传到你的服务器。\n\n现在将要询问你是否给予访问你联系人的权限。</string>
+ <string name="sync_with_contacts_long">Conversations 会匹配你的 XMPP 花名册与你的联系人,以显示他们的全名和头像。\n\nConversations 只会读取你的联系人并在本地匹配,不会上传到你的服务器。\n\n现在将要询问你是否给予访问你联系人的权限。</string>
<string name="certificate_information">证书详情</string>
<string name="certificate_subject">主题</string>
<string name="certificate_issuer">发行人</string>
@@ -558,9 +554,9 @@
<string name="always">总是</string>
<string name="automatically">自动</string>
<string name="battery_optimizations_enabled">启用节电模式</string>
- <string name="battery_optimizations_enabled_explained">你的设备正在为Conversations+进行电池优化,这可能导致通知的延迟甚至消息的丢失。
+ <string name="battery_optimizations_enabled_explained">你的设备正在为Conversations进行电池优化,这可能导致通知的延迟甚至消息的丢失。
建议不要这样做</string>
- <string name="battery_optimizations_enabled_dialog">你的设备正在为Conversations+进行电池优化,这可能导致通知的延迟甚至消息的丢失。
+ <string name="battery_optimizations_enabled_dialog">你的设备正在为Conversations进行电池优化,这可能导致通知的延迟甚至消息的丢失。
你将会被提示禁用该功能。</string>
<string name="disable">禁用</string>
<string name="selection_too_large">选择区域过大</string>
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 8e9bac60..d42808e1 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -40,8 +40,8 @@
<string name="delete">刪除</string>
<string name="save">儲存</string>
<string name="ok">好的</string>
- <string name="crash_report_title">Conversations+ 停止運行</string>
- <string name="crash_report_message">發送「堆疊追蹤」給 Conversations+ 的開發人員能幫助改進本程式。\n<b>警告:</b> 你的 XMPP 帳戶將被用作發送有關訊息之用。</string>
+ <string name="crash_report_title">Conversations 停止運行</string>
+ <string name="crash_report_message">發送「堆疊追蹤」給 Conversations 的開發人員能幫助改進本程式。\n<b>警告:</b> 你的 XMPP 帳戶將被用作發送有關訊息之用。</string>
<string name="send_now">現在發送</string>
<string name="send_never">不再詢問</string>
<string name="problem_connecting_to_account">無法連接至帳戶</string>
@@ -64,15 +64,15 @@
<string name="send_unencrypted">不加密發送</string>
<string name="decryption_failed">解密失敗,可能是私鑰不正確。</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversations+ 使用一個名為 <b>OpenKeychain</b> 的第三方程式來加密、解碼訊息以及管理您的公鑰。\n\nOpenKeychain 以 GPLv3 釋出,並可在 F-Droid 和 Google Play 上下載。\n\n<small>(之後請重新啟動 Conversations+。)</small></string>
+ <string name="openkeychain_required_long">Conversations 使用一個名為 <b>OpenKeychain</b> 的第三方程式來加密、解碼訊息以及管理您的公鑰。\n\nOpenKeychain 以 GPLv3 釋出,並可在 F-Droid 和 Google Play 上下載。\n\n<small>(之後請重新啟動 Conversations。)</small></string>
<string name="restart">重新啟動</string>
<string name="install">安裝</string>
<string name="offering">提供中…</string>
<string name="waiting">等待中…</string>
<string name="no_pgp_key">找不到 OpenPGP 鑰匙</string>
- <string name="contact_has_no_pgp_key">Conversations+ 不能將你的訊息加密,因為聯絡人沒有公佈他/她的公鑰。\n\n<small>請通知聯絡人設定 OpenPGP。</small></string>
+ <string name="contact_has_no_pgp_key">Conversations 不能將你的訊息加密,因為聯絡人沒有公佈他/她的公鑰。\n\n<small>請通知聯絡人設定 OpenPGP。</small></string>
<string name="no_pgp_keys">找不到多條 OpenPGP 鑰匙</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ 不能將你的訊息加密,因為多位聯絡人沒有公佈他/她的公鑰。\n\n<small>請通知聯絡人設定 OpenPGP。</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations 不能將你的訊息加密,因為多位聯絡人沒有公佈他/她的公鑰。\n\n<small>請通知聯絡人設定 OpenPGP。</small></string>
<string name="pref_general">一般</string>
<string name="pref_xmpp_resource">XMPP 資源</string>
<string name="pref_xmpp_resource_summary">客戶端標示名稱</string>
@@ -86,7 +86,7 @@
<string name="pref_notification_grace_period">通知限期</string>
<string name="pref_notification_grace_period_summary">收到副本後,關閉通知一小段時間</string>
<string name="pref_never_send_crash">總是不發送故障報告</string>
- <string name="pref_never_send_crash_summary">發送「堆疊追蹤」給 Conversations+ 的開發人員能幫助改進本程式</string>
+ <string name="pref_never_send_crash_summary">發送「堆疊追蹤」給 Conversations 的開發人員能幫助改進本程式</string>
<string name="pref_confirm_messages">確認訊息</string>
<string name="pref_confirm_messages_summary">讓你的聯絡人知道你已收到及閱讀訊息</string>
<string name="openpgp_error">OpenKeychain 回報了一個錯誤</string>
diff --git a/src/main/res/values/dimens.xml b/src/main/res/values/dimens.xml
index d5d4aad4..7f20b59b 100644
--- a/src/main/res/values/dimens.xml
+++ b/src/main/res/values/dimens.xml
@@ -9,4 +9,5 @@
<dimen name="ambilwarna_hsvWidth">240dp</dimen>
<dimen name="ambilwarna_hueWidth">30dp</dimen>
<dimen name="ambilwarna_spacer">8dp</dimen>
+ <dimen name="msg_avatar_size">48dp</dimen>
</resources>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index e356a947..5200fcb9 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="app_name" translatable="false">Conversations+</string>
+ <string name="app_name" translatable="false">Conversations</string>
<string name="action_settings">Settings</string>
<string name="action_add">New conversation</string>
<string name="action_accounts">Manage accounts</string>
@@ -59,8 +59,8 @@
<string name="unblock">Unblock</string>
<string name="save">Save</string>
<string name="ok">OK</string>
- <string name="crash_report_title">Conversations+ has crashed</string>
- <string name="crash_report_message">By sending in stack traces you are helping the ongoing development of Conversations+\n<b>Warning:</b> This will use your XMPP account to send the stack trace to the developer.</string>
+ <string name="crash_report_title">Conversations has crashed</string>
+ <string name="crash_report_message">By sending in stack traces you are helping the ongoing development of Conversations\n<b>Warning:</b> This will use your XMPP account to send the stack trace to the developer.</string>
<string name="send_now">Send now</string>
<string name="send_never">Never ask again</string>
<string name="problem_connecting_to_account">Unable to connect to account</string>
@@ -89,21 +89,22 @@
<string name="send_unencrypted">Send unencrypted</string>
<string name="decryption_failed">Decryption failed. Maybe you don’t have the proper private key.</string>
<string name="openkeychain_required">OpenKeychain</string>
- <string name="openkeychain_required_long">Conversation+s utilizes a third party app called <b>OpenKeychain</b> to encrypt and decrypt messages and to manage your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\n<small>(Please restart Conversations+ afterwards.)</small></string>
+ <string name="openkeychain_required_long">Conversations utilizes a third party app called <b>OpenKeychain</b> to encrypt and decrypt messages and to manage your public keys.\n\nOpenKeychain is licensed under GPLv3 and available on F-Droid and Google Play.\n\n<small>(Please restart Conversations afterwards.)</small></string>
<string name="restart">Restart</string>
<string name="install">Install</string>
<string name="openkeychain_not_installed">Please install OpenKeychain</string>
<string name="offering">offering…</string>
<string name="waiting">waiting…</string>
<string name="no_pgp_key">No OpenPGP Key found</string>
- <string name="contact_has_no_pgp_key">Conversations+ is unable to encrypt your messages because your contact is not announcing his or hers public key.\n\n<small>Please ask your contact to setup OpenPGP.</small></string>
+ <string name="contact_has_no_pgp_key">Conversations is unable to encrypt your messages because your contact is not announcing his or hers public key.\n\n<small>Please ask your contact to setup OpenPGP.</small></string>
<string name="no_pgp_keys">No OpenPGP Keys found</string>
- <string name="contacts_have_no_pgp_keys">Conversations+ is unable to encrypt your messages because your contacts are not announcing their public key.\n\n<small>Please ask your contacts to setup OpenPGP.</small></string>
+ <string name="contacts_have_no_pgp_keys">Conversations is unable to encrypt your messages because your contacts are not announcing their public key.\n\n<small>Please ask your contacts to setup OpenPGP.</small></string>
<string name="pref_general">General</string>
<string name="pref_xmpp_resource">XMPP resource</string>
<string name="pref_xmpp_resource_summary">The name this client identifies itself with</string>
<string name="pref_accept_files">Accept files</string>
<string name="pref_accept_files_summary">Automatically accept files smaller than…</string>
+ <string name="pref_attachments">Attachments</string>
<string name="pref_return_to_previous">Quick Sharing</string>
<string name="pref_return_to_previous_summary">Immediately return to previous activity instead of opening the conversation after sharing something</string>
<string name="pref_accept_files_size">Size</string>
@@ -119,13 +120,13 @@
<string name="pref_vibrate_summary">Vibrate when a new message arrives</string>
<string name="pref_led">LED Notification</string>
<string name="pref_led_summary">Blink notification light when a new message arrives</string>
- <string name="pref_sound">Sound</string>
+ <string name="pref_sound">Ringtone</string>
<string name="pref_sound_summary">Play sound when a new message arrives</string>
<string name="pref_notification_grace_period">Notification grace period</string>
<string name="pref_notification_grace_period_summary">Disable notifications for a short time after a carbon copy was received</string>
<string name="pref_advanced_options">Advanced</string>
<string name="pref_never_send_crash">Never send crash reports</string>
- <string name="pref_never_send_crash_summary">By sending in stack traces you are helping the ongoing development of Conversations+</string>
+ <string name="pref_never_send_crash_summary">By sending in stack traces you are helping the ongoing development of Conversations</string>
<string name="pref_confirm_messages">Confirm Messages</string>
<string name="pref_confirm_messages_summary">Let your contact know when you have received and read a message</string>
<string name="pref_confirm_messages_none">No confirmation</string>
@@ -299,7 +300,7 @@
<string name="pref_dont_save_encrypted_summary">Warning: This could lead to message loss</string>
<string name="pref_expert_options">Expert settings</string>
<string name="pref_expert_options_summary">Please be careful with these</string>
- <string name="title_activity_about">About Conversations+</string>
+ <string name="title_activity_about">About Conversations</string>
<string name="pref_about_conversations_summary">Build and licensing information</string>
<string name="pref_about_message" translatable="false">
Conversations+ is the improved version of Conversations.
@@ -392,7 +393,7 @@
<string name="verified">Verified!</string>
<string name="smp_requested">Contact requested SMP verification</string>
<string name="no_otr_session_found">No valid OTR session has been found!</string>
- <string name="conversations_foreground_service">Conversations+</string>
+ <string name="conversations_foreground_service">Conversations</string>
<string name="pref_keep_foreground_service">Keep service in foreground</string>
<string name="pref_keep_foreground_service_summary">Prevents the operating system from killing your connection</string>
<string name="pref_export_logs">Export Logs</string>
@@ -499,7 +500,7 @@
<string name="vcard">Contact</string>
<string name="received_x_file">Received %s</string>
<string name="disable_foreground_service">Disable foreground service</string>
- <string name="touch_to_open_conversations">Touch to open Conversations+</string>
+ <string name="touch_to_open_conversations">Touch to open Conversations</string>
<string name="avatar_has_been_published">Avatar has been published!</string>
<string name="sending_x_file">Sending %s</string>
<string name="offering_x_file">Offering %s</string>
@@ -568,7 +569,7 @@
<string name="pref_resize_picture_ask">ask</string>
<string name="pref_resize_picture_always">always</string>
<string name="pref_resize_picture_never">never</string>
- <string name="pref_resize_picture_summary">Resize pictures before sending?</string>
+ <string name="pref_resize_picture_summary">Whether pictures shall be resized or not</string>
<string name="pref_resize_picture">Resize pictures</string>
<string name="cplus_yes">Yes</string>
<string name="cplus_no">No</string>
@@ -639,9 +640,9 @@
<string name="shared_image_with_x">Shared image with %s</string>
<string name="shared_images_with_x">Shared images with %s</string>
<string name="shared_text_with_x">Shared text with %s</string>
- <string name="no_storage_permission">Conversations+ need access to external storage</string>
+ <string name="no_storage_permission">Conversations need access to external storage</string>
<string name="sync_with_contacts">Synchronize with contacts</string>
- <string name="sync_with_contacts_long">Conversations+ wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nConversations+ will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts.</string>
+ <string name="sync_with_contacts_long">Conversations wants to match your XMPP roster with your contacts to show their full names and avatars.\n\nConversations will only read your contacts and match them locally without uploading them to your server.\n\nYou will now be asked to grant permission to access your contacts.</string>
<string name="certificate_information">Certificate Information</string>
<string name="certificate_subject">Subject</string>
<string name="certificate_issuer">Issuer</string>
@@ -657,13 +658,12 @@
<string name="always">Always</string>
<string name="automatically">Automatically</string>
<string name="battery_optimizations_enabled">Battery optimizations enabled</string>
- <string name="battery_optimizations_enabled_explained">Your device is doing some heavy battery optimizations on Conversations+ that might lead to delayed notifications or even message loss.\nIt is recommended to disable those.</string>
- <string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on Conversations+ that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string>
+ <string name="battery_optimizations_enabled_explained">Your device is doing some heavy battery optimizations on Conversations that might lead to delayed notifications or even message loss.\nIt is recommended to disable those.</string>
+ <string name="battery_optimizations_enabled_dialog">Your device is doing some heavy battery optimizations on Conversations that might lead to delayed notifications or even message loss.\n\nYou will now be asked to disable those.</string>
<string name="disable">Disable</string>
<string name="selection_too_large">The selected area is too large</string>
<string name="no_accounts">(No activated accounts)</string>
<string name="this_field_is_required">This field is required</string>
- <string name="retry_decryption">Retry decryption</string>
<string name="pref_omemo_enabled_summary">Enable OMEMO?</string>
<string name="pref_omemo_enabled_title">Enable OMEMO</string>
<string name="no_keys_just_confirm">You already trust this contact. By selecting \'done\' you are just confirming that %s is part of this conference.</string>
@@ -679,4 +679,7 @@
<string name="remote_filestatus_delete_failed">Failed to delete remote file</string>
<string name="remote_filestatus_delete_success">Remote file deleted</string>
<string name="remote_filestatus_delete_inprogress">Deleting remote file...</string>
+ <string name="file_not_on_remote_host">No file on remote host</string>
+ <string name="dlg_msg_details_original_filename">Original Filename</string>
+ <string name="cplus_open">Open</string>
</resources>
diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml
index 44b66ab7..e4ee8df2 100644
--- a/src/main/res/xml/preferences.xml
+++ b/src/main/res/xml/preferences.xml
@@ -106,13 +106,13 @@
android:key="enable_quiet_hours"
android:summary="@string/pref_quiet_hours_summary"
android:title="@string/title_pref_enable_quiet_hours" />
- <de.thedevstack.conversationsplus.ui.TimePreference
+ <eu.siacs.conversations.ui.TimePreference
android:dependency="enable_quiet_hours"
android:key="quiet_hours_start"
android:negativeButtonText="@string/cancel"
android:positiveButtonText="@string/set"
android:title="@string/title_pref_quiet_hours_start_time" />
- <de.thedevstack.conversationsplus.ui.TimePreference
+ <eu.siacs.conversations.ui.TimePreference
android:dependency="enable_quiet_hours"
android:key="quiet_hours_end"
android:negativeButtonText="@string/cancel"
@@ -256,7 +256,7 @@
android:key="keep_foreground_service"
android:summary="@string/pref_keep_foreground_service_summary"
android:title="@string/pref_keep_foreground_service"/>
- <de.thedevstack.conversationsplus.ui.ExportLogsPreference
+ <eu.siacs.conversations.ui.ExportLogsPreference
android:key="export_logs"
android:summary="@string/pref_export_logs_summary"
android:title="@string/pref_export_logs"/>
@@ -277,7 +277,7 @@
android:summary="@string/pref_never_send_crash_summary"
android:title="@string/pref_never_send_crash"/>
</PreferenceCategory>
- <de.thedevstack.conversationsplus.ui.AboutPreference
+ <eu.siacs.conversations.ui.AboutPreference
android:summary="@string/pref_about_conversations_summary"
android:title="@string/title_activity_about"/>
</PreferenceScreen>