diff --git a/qml/components/MessageListViewItem.qml b/qml/components/MessageListViewItem.qml
index 50813ef..a87decc 100644
--- a/qml/components/MessageListViewItem.qml
+++ b/qml/components/MessageListViewItem.qml
@@ -159,15 +159,7 @@ ListItem {
}
onDoubleClicked: {
- if (messageListItem.chatReactions) {
- Debug.log("Using chat reactions")
- messageListItem.messageReactions = chatReactions
- showItemCompletelyTimer.requestedIndex = index;
- showItemCompletelyTimer.start();
- } else {
- Debug.log("Obtaining message reactions")
- tdLibWrapper.getMessageAvailableReactions(messageListItem.chatId, messageListItem.messageId);
- }
+ openReactions();
}
onPressAndHold: {
@@ -719,12 +711,50 @@ ListItem {
textFormat: Text.StyledText
maximumLineCount: 1
elide: Text.ElideRight
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if (messageListItem.messageReactions) {
+ messageListItem.messageReactions = null;
+ selectReactionBubble.visible = false;
+ } else {
+ openReactions();
+ }
+ }
+ }
}
}
}
}
+ Rectangle {
+ id: selectReactionBubble
+ visible: false
+ opacity: visible ? 0.5 : 0.0
+ Behavior on opacity { NumberAnimation {} }
+ anchors {
+ horizontalCenter: messageListItem.isOwnMessage ? messageBackground.left : messageBackground.right
+ verticalCenter: messageBackground.verticalCenter
+ }
+ height: Theme.itemSizeExtraSmall
+ width: Theme.itemSizeExtraSmall
+ color: Theme.primaryColor
+ radius: parent.width / 2
+ }
+
+ IconButton {
+ id: selectReactionButton
+ visible: selectReactionBubble.visible
+ opacity: visible ? 1.0 : 0.0
+ Behavior on opacity { NumberAnimation {} }
+ icon.source: "image://theme/icon-s-favorite"
+ anchors.centerIn: selectReactionBubble
+ onClicked: {
+ openReactions();
+ }
+ }
+
}
}
@@ -733,7 +763,7 @@ ListItem {
id: reactionsColumn
width: parent.width - ( 2 * Theme.horizontalPageMargin )
anchors.top: messageTextRow.bottom
- anchors.topMargin: Theme.paddingSmall
+ anchors.topMargin: Theme.paddingMedium
anchors.horizontalCenter: parent.horizontalCenter
visible: messageListItem.messageReactions ? ( messageListItem.messageReactions.length > 0 ? true : false ) : false
opacity: messageListItem.messageReactions ? ( messageListItem.messageReactions.length > 0 ? 1 : 0 ) : 0
@@ -742,7 +772,7 @@ ListItem {
Flickable {
width: parent.width
- height: reactionsResultRow.height + Theme.paddingSmall
+ height: reactionsResultRow.height + 2 * Theme.paddingMedium
anchors.horizontalCenter: parent.horizontalCenter
contentWidth: reactionsResultRow.width
clip: true
@@ -758,13 +788,14 @@ ListItem {
Row {
id: singleReactionRow
- spacing: Theme.paddingSmall
+ spacing: Theme.paddingMedium
Image {
id: emojiPicture
source: Emoji.getEmojiPath(modelData)
- width: status === Image.Ready ? Theme.fontSizeLarge : 0
- height: Theme.fontSizeLarge
+
+ width: status === Image.Ready ? Theme.fontSizeExtraLarge : 0
+ height: Theme.fontSizeExtraLarge
}
}
@@ -772,12 +803,26 @@ ListItem {
MouseArea {
anchors.fill: parent
onClicked: {
- tdLibWrapper.setMessageReaction(messageListItem.chatId, messageListItem.messageId, modelData);
- messageListItem.messageReactions = null;
+ for (var i = 0; i < reactions.length; i++) {
+ var reaction = reactions[i]
+ var reactionText = reaction.reaction ? reaction.reaction : (reaction.type && reaction.type.emoji) ? reaction.type.emoji : ""
+ if (reactionText === modelData) {
+ if (reaction.is_chosen) {
+ // Reaction is already selected
+ tdLibWrapper.removeMessageReaction(chatId, messageId, reactionText)
+ messageReactions = null
+ return
+ }
+ break
+ }
+ }
+ // Reaction is not yet selected
+ tdLibWrapper.addMessageReaction(chatId, messageId, modelData)
+ messageReactions = null
+ selectReactionBubble.visible = false
}
}
}
-
}
}
}
diff --git a/qml/js/functions.js b/qml/js/functions.js
index 5bdd751..f9454d3 100644
--- a/qml/js/functions.js
+++ b/qml/js/functions.js
@@ -448,7 +448,12 @@ function handleLink(link) {
} else if (link.indexOf(tMePrefixHttp) === 0) {
handleTMeLink(link, tMePrefixHttp);
} else {
- Qt.openUrlExternally(link);
+ Debug.log("Trying to open URL externally: " + link)
+ if (link.indexOf("://") === -1) {
+ Qt.openUrlExternally("https://" + link)
+ } else {
+ Qt.openUrlExternally(link);
+ }
}
}
}
@@ -512,7 +517,7 @@ function handleErrorMessage(code, message) {
}
function getMessagesNeededForwardPermissions(messages) {
- var neededPermissions = ["can_send_messages"]
+ var neededPermissions = ["can_send_basic_messages"]
var mediaMessageTypes = ["messageAudio", "messageDocument", "messagePhoto", "messageVideo", "messageVideoNote", "messageVoiceNote"]
var otherMessageTypes = ["messageAnimation", "messageGame", "messageSticker"]
diff --git a/qml/pages/ChatPage.qml b/qml/pages/ChatPage.qml
index 2c8f522..ea5e25d 100644
--- a/qml/pages/ChatPage.qml
+++ b/qml/pages/ChatPage.qml
@@ -601,6 +601,9 @@ Page {
onSponsoredMessageReceived: {
chatPage.containsSponsoredMessages = true;
}
+ onReactionsUpdated: {
+ availableReactions = tdLibWrapper.getChatReactions(chatInformation.id);
+ }
}
Connections {
@@ -635,6 +638,8 @@ Page {
chatViewCooldownTimer.restart();
chatViewStartupReadTimer.restart();
+ /*
+ // Double-tap for reactions is currently disabled, let's see if we'll ever need it again
var remainingDoubleTapHints = appSettings.remainingDoubleTapHints;
Debug.log("Remaining double tap hints: " + remainingDoubleTapHints);
if (remainingDoubleTapHints > 0) {
@@ -643,6 +648,7 @@ Page {
tapHintLabel.visible = true;
appSettings.remainingDoubleTapHints = remainingDoubleTapHints - 1;
}
+ */
}
onNewMessageReceived: {
if (( chatView.manuallyScrolledToBottom && Qt.application.state === Qt.ApplicationActive ) || message.sender_id.user_id === chatPage.myUserId) {
diff --git a/rpm/harbour-fernschreiber.spec b/rpm/harbour-fernschreiber.spec
index 71e512d..41e8918 100644
--- a/rpm/harbour-fernschreiber.spec
+++ b/rpm/harbour-fernschreiber.spec
@@ -6,9 +6,9 @@
Name: harbour-fernschreiber
# >> macros
+# << macros
%define __provides_exclude_from ^%{_datadir}/.*$
%define __requires_exclude ^lib(tdjson|ssl|crypto).*$
-# << macros
Summary: Fernschreiber is a Telegram client for Aurora OS
Version: 0.17
@@ -70,7 +70,7 @@ desktop-file-install --delete-original \
%files
%defattr(-,root,root,-)
-%{_bindir}
+%{_bindir}/%{name}
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.png
diff --git a/rpm/harbour-fernschreiber.yaml b/rpm/harbour-fernschreiber.yaml
new file mode 100644
index 0000000..82dd0f5
--- /dev/null
+++ b/rpm/harbour-fernschreiber.yaml
@@ -0,0 +1,55 @@
+Name: harbour-fernschreiber
+Summary: Fernschreiber is a Telegram client for Sailfish OS
+Version: 0.17
+Release: 12
+# The contents of the Group field should be one of the groups listed here:
+# https://github.com/mer-tools/spectacle/blob/master/data/GROUPS
+Group: Qt/Qt
+URL: http://werkwolf.eu/
+License: LICENSE
+# This must be generated before uploading a package to a remote build service.
+# Usually this line does not need to be modified.
+Sources:
+- '%{name}-%{version}.tar.bz2'
+Description: |
+ Fernschreiber is a Telegram client for Sailfish OS
+Configure: none
+Builder: qmake5
+
+# This section specifies build dependencies that are resolved using pkgconfig.
+# This is the preferred way of specifying build dependencies for your package.
+PkgConfigBR:
+ - sailfishapp >= 1.0.2
+ - Qt5Core
+ - Qt5Qml
+ - Qt5Quick
+ - Qt5DBus
+ - Qt5Sql
+ - Qt5Multimedia
+ - Qt5Positioning
+ - nemonotifications-qt5
+ - openssl
+
+# NB: spectacle has a bug where it will remove custom "#<< macros" lines, so define them here:
+Macros:
+ - '__provides_exclude_from;^%{_datadir}/.*$'
+ - '__requires_exclude;^libtdjson.*$'
+
+# Build dependencies without a pkgconfig setup can be listed here
+PkgBR:
+ - gperf
+
+# Runtime dependencies which are not automatically detected
+Requires:
+ - sailfishsilica-qt5 >= 0.10.9
+ - nemo-qml-plugin-contacts-qt5
+
+# All installed files
+Files:
+ - '%{_bindir}/%{name}'
+ - '%{_datadir}/%{name}'
+ - '%{_datadir}/applications/%{name}.desktop'
+ - '%{_datadir}/icons/hicolor/*/apps/%{name}.png'
+
+# For more information about yaml and what's supported in Sailfish OS
+# build system, please see https://wiki.merproject.org/wiki/Spectacle
diff --git a/src/appsettings.cpp b/src/appsettings.cpp
index 1a4b376..6df3f38 100644
--- a/src/appsettings.cpp
+++ b/src/appsettings.cpp
@@ -303,7 +303,7 @@ void AppSettings::setDelayMessageRead(bool enable)
bool AppSettings::highlightUnreadConversations() const
{
- return settings.value(KEY_HIGHLIGHT_UNREADCONVS, true).toBool();
+ return settings.value(KEY_HIGHLIGHT_UNREADCONVS, false).toBool();
}
void AppSettings::setHighlightUnreadConversations(bool enable)
diff --git a/src/tdlibwrapper.cpp b/src/tdlibwrapper.cpp
index 7a95e2a..70dcf65 100644
--- a/src/tdlibwrapper.cpp
+++ b/src/tdlibwrapper.cpp
@@ -1464,9 +1464,8 @@ void TDLibWrapper::getPageSource(const QString &address)
connect(reply, SIGNAL(finished()), this, SLOT(handleGetPageSourceFinished()));
}
-void TDLibWrapper::setMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction)
+void TDLibWrapper::addMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction)
{
- LOG("Set message reaction" << chatId << messageId << reaction);
QVariantMap requestObject;
requestObject.insert(CHAT_ID, chatId);
requestObject.insert(MESSAGE_ID, messageId);
@@ -1481,9 +1480,35 @@ void TDLibWrapper::setMessageReaction(qlonglong chatId, qlonglong messageId, con
reactionType.insert(EMOJI, reaction);
requestObject.insert(REACTION_TYPE, reactionType);
requestObject.insert(_TYPE, "addMessageReaction");
+ LOG("Add message reaction" << chatId << messageId << reaction);
} else {
requestObject.insert("reaction", reaction);
requestObject.insert(_TYPE, "setMessageReaction");
+ LOG("Toggle message reaction" << chatId << messageId << reaction);
+ }
+ this->sendRequest(requestObject);
+}
+
+void TDLibWrapper::removeMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction)
+{
+ QVariantMap requestObject;
+ requestObject.insert(CHAT_ID, chatId);
+ requestObject.insert(MESSAGE_ID, messageId);
+ if (versionNumber > VERSION_NUMBER(1,8,5)) {
+ // "reaction_type": {
+ // "@type": "reactionTypeEmoji",
+ // "emoji": "..."
+ // }
+ QVariantMap reactionType;
+ reactionType.insert(_TYPE, REACTION_TYPE_EMOJI);
+ reactionType.insert(EMOJI, reaction);
+ requestObject.insert(REACTION_TYPE, reactionType);
+ requestObject.insert(_TYPE, "removeMessageReaction");
+ LOG("Remove message reaction" << chatId << messageId << reaction);
+ } else {
+ requestObject.insert("reaction", reaction);
+ requestObject.insert(_TYPE, "setMessageReaction");
+ LOG("Toggle message reaction" << chatId << messageId << reaction);
}
this->sendRequest(requestObject);
}
@@ -2087,6 +2112,7 @@ void TDLibWrapper::handleActiveEmojiReactionsUpdated(const QStringList& emojis)
if (activeEmojiReactions != emojis) {
activeEmojiReactions = emojis;
LOG(emojis.count() << "reaction(s) available");
+ emit reactionsUpdated();
}
}
diff --git a/src/tdlibwrapper.h b/src/tdlibwrapper.h
index b03ae10..2487ae5 100644
--- a/src/tdlibwrapper.h
+++ b/src/tdlibwrapper.h
@@ -249,7 +249,8 @@ public:
Q_INVOKABLE void terminateSession(const QString &sessionId);
Q_INVOKABLE void getMessageAvailableReactions(qlonglong chatId, qlonglong messageId);
Q_INVOKABLE void getPageSource(const QString &address);
- Q_INVOKABLE void setMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction);
+ Q_INVOKABLE void addMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction);
+ Q_INVOKABLE void removeMessageReaction(qlonglong chatId, qlonglong messageId, const QString &reaction);
Q_INVOKABLE void setNetworkType(NetworkType networkType);
Q_INVOKABLE void setInactiveSessionTtl(int days);
@@ -340,6 +341,7 @@ signals:
void chatUnreadMentionCountUpdated(qlonglong chatId, int unreadMentionCount);
void chatUnreadReactionCountUpdated(qlonglong chatId, int unreadReactionCount);
void tgUrlFound(const QString &tgUrl);
+ void reactionsUpdated();
public slots:
void handleVersionDetected(const QString &version);
diff --git a/translations/harbour-fernschreiber-es.ts b/translations/harbour-fernschreiber-es.ts
index 6c1578d..d007d14 100644
--- a/translations/harbour-fernschreiber-es.ts
+++ b/translations/harbour-fernschreiber-es.ts
@@ -45,7 +45,7 @@
- Telegram
+ Telegrama
@@ -173,7 +173,7 @@
- Crear conversación secreta
+ Crear Charla Secreta
@@ -193,7 +193,7 @@
chats you have in common with a user
- Cargando conversaciones comunes…
+ Cargando charlas comunes…
@@ -274,11 +274,11 @@
- Desanclar conversación
+ Desanclar charla
- Anclar conversación
+ Anclar charla
@@ -339,7 +339,7 @@
- Esta conversación está vacía.
+ Esta charla está vacía.
@@ -351,7 +351,7 @@
- Saliendo de conversación
+ Saliendo de charla
@@ -405,15 +405,19 @@
+<<<<<<< HEAD
Esta conversación secreta no está lista. El contacto no está conectado.
+=======
+ Esta charla secreta no está lista. El contacto no está conectado.
+>>>>>>> fix_ballons/master
- Cerrando la conversación
+ Cerrando charla
- Cerrar conversación
+ Cerrar charla
@@ -473,11 +477,11 @@
- Borrando la conversación
+ Borrando charla
- Borrar conversación
+ Borrar Charla
@@ -492,11 +496,22 @@
ChatSelectionPage
- Seleccionar conversación
+ Seleccionar Charla
+<<<<<<< HEAD
No hay conversaciones.
+=======
+ No hay charlas.
+
+
+
+ ContactSync
+
+
+ No se puede sincronizar los contactos con Telegrama.
+>>>>>>> fix_ballons/master
@@ -529,7 +544,7 @@
conversación
- conversaciones
+ charlas
@@ -570,7 +585,7 @@
member permission
- Cambiar detalles de conversación
+ Cambiar detalles de Charla
@@ -605,7 +620,7 @@
- Establecer cuánto tiempo debe esperar cada miembro de conversación entre mensajes
+ Establecer cuánto tiempo debe esperar cada miembro de charla entre Mensajes
@@ -662,7 +677,11 @@
myself
+<<<<<<< HEAD
registrado a Telegram
+=======
+ registrado a Telegrama
+>>>>>>> fix_ballons/master
@@ -689,11 +708,11 @@
myself
- dejó esta conversación
+ dejó esta charla
- dejó esta conversación
+ dejó esta charla
@@ -748,7 +767,7 @@
myself
- cambió la foto de la conversación
+ cambió foto de charla
@@ -757,7 +776,11 @@
myself
+<<<<<<< HEAD
borró foto de conversación
+=======
+ borró foto de charla
+>>>>>>> fix_ballons/master
@@ -766,11 +789,19 @@
myself
+<<<<<<< HEAD
cambió ajustes TTL en conversación secreta
cambió ajustes TTL en conversación secreta
+=======
+ cambió ajustes TTL en charla secreta
+
+
+
+ cambió ajustes TTL en charla secreta
+>>>>>>> fix_ballons/master
@@ -789,11 +820,19 @@
myself
+<<<<<<< HEAD
creó pantallazo a esta conversación
creó pantallazo a esta conversación
+=======
+ creó pantallazo a esta charla
+
+
+
+ creó pantallazo a esta charla
+>>>>>>> fix_ballons/master
@@ -846,21 +885,37 @@
+<<<<<<< HEAD
ha añadido %1 a conversación
ha quitado %1 de conversación
+=======
+ ha añadido %1 a charla
+
+
+
+ ha quitado %1 de charla
+>>>>>>> fix_ballons/master
myself
+<<<<<<< HEAD
ha añadido %1 a conversación
+=======
+ ha añadido %1 a charla
+>>>>>>> fix_ballons/master
myself
+<<<<<<< HEAD
ha quitado %1 de conversación
+=======
+ ha quitado %1 de charla
+>>>>>>> fix_ballons/master
@@ -1204,7 +1259,11 @@
+<<<<<<< HEAD
cargando lista de conversación...
+=======
+ cargando lista de charla...
+>>>>>>> fix_ballons/master
@@ -1212,11 +1271,15 @@
+<<<<<<< HEAD
No hay conversaciones.
+=======
+ No hay charlas.
+>>>>>>> fix_ballons/master
- Crear conversación
+ Crear Charla
@@ -1482,7 +1545,7 @@
- Mostrar pegatinas como emoticonos
+ Mostrar pegatinas como Emoticonos
@@ -1490,7 +1553,7 @@
- Mostrar pegatinas como imágenes
+ Mostrar pegatinas como Imágenes
@@ -1498,7 +1561,7 @@
- Mostrar pegatinas animadas
+ Mostrar pegatinas Animadas
@@ -1517,15 +1580,23 @@
+<<<<<<< HEAD
Enfocar entrada de texto a conversación
Enfoca área de entrada de texto al ingresar a conversación
+=======
+ Enfocar entrada de texto de Charla
+
+
+
+ Enfoca área de entrada de texto al ingresar a charla
+>>>>>>> fix_ballons/master
- Enfocar área de entrada de texto
+ Enfocar área de entrada de Texto
@@ -1533,11 +1604,15 @@
- Marcar mensajes como leídos
+ Marcar mensajes como Leídos
+<<<<<<< HEAD
Si esta habilitado, apl espera un segundo hasta que mensaje que está en pantalla se marque como leído. Si deshabilita esta función, mensajes se marcarán inmediatamente como leído una vez que esté en pantalla sin desplazarse a mensaje
+=======
+ Si esta habilitado, Apl espera un segundo hasta que mensaje que está en monitor se marque como leído. Si deshabilita esta función, mensajes se marcarán inmediatamente como leído una vez que esté en monitor sin desplazarse a mensaje
+>>>>>>> fix_ballons/master
@@ -1569,10 +1644,11 @@
- Mostrar notificación por pantalla
+ Mostrar notificación por Monitor
+<<<<<<< HEAD
Habilitar sonidos notificación
@@ -1582,6 +1658,17 @@
Agregar vista previa mensaje a notificaciones
+=======
+ Habilitar sonidos de Notificación
+
+
+
+ Cuando los sonidos están habilitados, Ferni utilizará sonido de notificación actual de Sailfish OS para los grupos, que se puede ajustar a configuración del sistema.
+
+
+
+ Vista previa de mensaje en Notificaciones
+>>>>>>> fix_ballons/master
@@ -1589,6 +1676,7 @@
+<<<<<<< HEAD
Resaltar mensajes no leídos
@@ -1598,6 +1686,17 @@
Ocultar contenido a notificaciones
+=======
+ Resaltar mensajes no Leídos
+
+
+
+ Resalta la charla en mensajes no leídos
+
+
+
+ Ocultar contenido de notificaciones
+>>>>>>> fix_ballons/master
@@ -1623,7 +1722,7 @@
- Permitir invitaciones de grupo
+ Permitir invitaciones de Grupo
@@ -1643,7 +1742,7 @@
- Permitir buscarme por número
+ Permitir buscarme por Número
@@ -1651,7 +1750,11 @@
+<<<<<<< HEAD
Mostrar enlace a mensajes reenviados
+=======
+ Mostrar enlace a mensajes Reenviados
+>>>>>>> fix_ballons/master
@@ -1659,7 +1762,7 @@
- Mostrar número telefónico
+ Mostrar número Telefónico
@@ -1667,7 +1770,7 @@
- Mostrar foto de perfil
+ Mostrar foto de Perfil
@@ -1675,7 +1778,7 @@
- Mostrar estado
+ Mostrar Estado
@@ -1683,7 +1786,7 @@
- Enviar ubicación de Robot enlínea
+ Enviar ubicación de Robot Enlínea
@@ -1760,15 +1863,23 @@
+<<<<<<< HEAD
Modo solo enlínea
Deshabilita almacenamiento en caché sin conexión. Algunas funciones pueden estar limitadas o ausentes en este modo. Se requiere reiniciar Ferni para efecto.
+=======
+ Modo solo Enlínea
+
+
+
+ Deshabilita el almacenamiento en caché sin conexión. Algunas funciones pueden estar limitadas o ausentes en este modo. Se requiere reiniciar Ferni para efecto.
+>>>>>>> fix_ballons/master
- Optimizador de almacenamiento
+ Optimizar Almacenamiento
@@ -1838,7 +1949,11 @@
+<<<<<<< HEAD
Sincronizar Telegram
+=======
+ Sincronizar Telegrama
+>>>>>>> fix_ballons/master
@@ -2219,12 +2334,20 @@
myself; TTL = Time To Live
+<<<<<<< HEAD
cambió ajustes de TTL de conversación secreta
+=======
+ cambió ajustes de TTL de charla secreta
+>>>>>>> fix_ballons/master
TTL = Time To Live
+<<<<<<< HEAD
cambió ajustes de TTL de conversación secreta
+=======
+ cambió ajustes de TTL de charla secreta
+>>>>>>> fix_ballons/master
@@ -2243,11 +2366,19 @@
myself
+<<<<<<< HEAD
creó pantallazo a conversación
creó pantallazo a conversación
+=======
+ creó pantallazo de charla
+
+
+
+ creó pantallazo a charla
+>>>>>>> fix_ballons/master
diff --git a/translations/harbour-fernschreiber-sk.ts b/translations/harbour-fernschreiber-sk.ts
index e8b9dce..6900bb8 100644
--- a/translations/harbour-fernschreiber-sk.ts
+++ b/translations/harbour-fernschreiber-sk.ts
@@ -495,7 +495,11 @@
+<<<<<<< HEAD
+=======
+ Dvojitým klepnutím na správu vybrať reakciu
+>>>>>>> fix_ballons/master
@@ -1580,7 +1584,7 @@
- Pre upozornenia použiť negrafickú reakciu (zvuk, vibrovanie)
+ Pre oznamy použiť negrafickú reakciu (zvuk, vibrovanie)
@@ -1600,11 +1604,39 @@
- Povoliť zvukové upozornenia
+ Povoliť zvukové oznamy
- Keď sú povolené zvukové upozornenia, Fernschreiber použije aktuálne zvukové upozornenia Sailfish OS pre čety, ktoré môžu byť upravené v nastaveniach systému.
+ Keď sú povolené zvukové oznamy, Fernschreiber použije aktuálne zvukové oznamy Sailfish OS pre čety, ktoré môžu byť upravené v nastaveniach systému.
+
+
+
+ K upozorneniam vždy pripojiť ukážku správy
+
+
+
+ Okrem zobrazenia počtu neprečítaných správ pripojiť k upozorneniam aj najnovšiu správu.
+
+
+
+ Zvýrazniť neprečítané správy
+
+
+
+ Zvýrazniť konverzácie s neprečítanými správami
+
+
+
+ V upozorneniach skryť obsah
+
+
+
+ Prejsť na citovanú správu
+
+
+
+ Citovanú správu otvoriť v čete namiesto v náhľade.
@@ -1745,14 +1777,22 @@
+<<<<<<< HEAD
+=======
+
+ %1 deň
+ %1 dni
+ %1 dní
+>>>>>>> fix_ballons/master
+<<<<<<< HEAD
@@ -1778,6 +1818,33 @@
+=======
+ 1 týždeň
+
+
+
+ 1 mesiac
+
+
+
+ 3 mesiace
+
+
+
+ 6 mesiacov
+
+
+
+ 1 rok
+
+
+
+ Časový limit relácie
+
+
+
+ Neaktívne relácie budú po tomto časovom rámci ukončené
+>>>>>>> fix_ballons/master
diff --git a/translations/harbour-fernschreiber-sv.ts b/translations/harbour-fernschreiber-sv.ts
index dc5ce5e..a10ff2e 100644
--- a/translations/harbour-fernschreiber-sv.ts
+++ b/translations/harbour-fernschreiber-sv.ts
@@ -185,7 +185,7 @@
-
+ ID har kopierats till urklipp.
@@ -485,7 +485,11 @@
+<<<<<<< HEAD
+=======
+ Dubbeltryck på ett meddelande för att välja en reaktion
+>>>>>>> fix_ballons/master
@@ -1163,7 +1167,7 @@
-
+ Inga kontakter hittades.
@@ -1581,6 +1585,7 @@
+<<<<<<< HEAD
@@ -1606,6 +1611,33 @@
+=======
+ Visa alltid förhandsgranskning av meddelanden i aviseringar
+
+
+
+ Förutom att visa antalet olästa meddelanden kommer det senaste meddelandet också att visas i aviseringarna.
+
+
+
+ Färgmarkera olästa meddelanden
+
+
+
+ Färgmarkera konversationer med olästa meddelanden
+
+
+
+ Dölj innehåll i aviseringar
+
+
+
+ Gå till citerat meddelande
+
+
+
+ Vid tryck på ett citerat meddelande öppnas det i chatten istället för att visas i ett överlägg.
+>>>>>>> fix_ballons/master
@@ -1718,13 +1750,20 @@
+<<<<<<< HEAD
+=======
+
+ %1 dag
+ %1 dagar
+>>>>>>> fix_ballons/master
+<<<<<<< HEAD
@@ -1750,6 +1789,33 @@
+=======
+ 1 vecka
+
+
+
+ 1 månad
+
+
+
+ 3 månader
+
+
+
+ 6 månader
+
+
+
+ 1 år
+
+
+
+ Tidsgräns för session
+
+
+
+ Inaktiva sessioner avslutas efter den här tidsramen
+>>>>>>> fix_ballons/master