Fernschreiber

Rating: 
4.933335
Your rating: None Average: 4.9 (45 votes)

Fernschreiber is a Telegram client for Salifish OS

Fernschreiber (German for teleprinter, teletypewriter, teletype or TTY) connects you with the Telegram network. It's still in an early development phase, but it already supports many of the most popular features such as:

  • Chat list in order of last received message
  • Two-step authentication
  • Read standard text messages, pictures, videos. animated GIFs, animated and non-animated stickers, voice notes, locations, venues, polls and documents
  • Displays web page previews
  • Send text messages, stickers, reply to messages, attachments: images, videos, documents, polls, voice notes, locations (yes, more to come ;))
  • Edit messages
  • Delete messages
  • Search chats and messages
  • Display sent/read state of messages
  • Notifications
  • Contact support and device contacts synchronization
  • Secret chats
  • Mute/unmute chats
  • Join/leave chats
  • Pinned messages
  • Forward messages
  • Chat information page
  • @-mentioning support, use @<username> in the message field to search!
  • Easy emoji selection, use :<keyword> in the new message field to search for them!
  • Open chat from external link (integration in Sailfish OS open-with menu)
  • A lot of eye candy (yes, you get the complete set of emojis for example) ;)

Have fun with Fernschreiber!

Issues and Feature Requests

Known bugs/issues and feature requests are available at https://github.com/Wunderfitz/harbour-fernschreiber/issues. In case you would like to report a bug or post a feature request, please do it there. Be sure to explain the bug or feature request in detail, that makes it easier to sort and prioritize.

Open Source and Contribution

Feedback about Fernschreiber is always appreciated (good, bad, improvement/feature ideas etc.). 

You can contribute with a translation, a new feature or even a bugfix. The sources are on GitHub at https://github.com/Wunderfitz/harbour-fernschreiber. Please acknowledge the GNU GPLv3 before contributing/forking. Thanks to all new and especially to the existing contributors!

Screenshots: 

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-fernschreiber-0.1-6.armv7hl.rpm11.8 MB20/09/2020 - 22:09
File harbour-fernschreiber-0.2-1.armv7hl.rpm6.12 MB30/09/2020 - 22:53
File harbour-fernschreiber-0.2-1.i486.rpm6.29 MB30/09/2020 - 22:53
File harbour-fernschreiber-0.3-2.armv7hl.rpm5.9 MB19/10/2020 - 00:09
File harbour-fernschreiber-0.3-2.i486.rpm6.08 MB19/10/2020 - 00:09
File harbour-fernschreiber-0.4-2.armv7hl.rpm5.93 MB11/11/2020 - 20:19
File harbour-fernschreiber-0.4-2.i486.rpm6.15 MB11/11/2020 - 20:19
File harbour-fernschreiber-0.4.1-1.i486.rpm6.14 MB12/11/2020 - 23:58
File harbour-fernschreiber-0.4.1-1.armv7hl.rpm5.93 MB12/11/2020 - 23:58
File harbour-fernschreiber-0.5-2.armv7hl.rpm5.98 MB01/12/2020 - 01:18
File harbour-fernschreiber-0.5-2.i486.rpm6.19 MB01/12/2020 - 01:18
File harbour-fernschreiber-0.5.1-2.i486.rpm6.2 MB05/12/2020 - 01:00
File harbour-fernschreiber-0.5.1-2.armv7hl.rpm5.99 MB05/12/2020 - 01:00
File harbour-fernschreiber-0.6-66.armv7hl.rpm6.48 MB05/01/2021 - 23:42
File harbour-fernschreiber-0.6-66.i486.rpm6.62 MB05/01/2021 - 23:42
File harbour-fernschreiber-0.6.1-3.i486.rpm6.63 MB06/01/2021 - 23:44
File harbour-fernschreiber-0.6.1-3.armv7hl.rpm6.48 MB06/01/2021 - 23:44
Changelog: 

0.6.1

  • Show indicator for pinned chats
  • Use highlightBackgroundColor and align size for all chat attributes (unread messages, secret chat, pinned chat)
  • Fix: Chat list order of sequence was wrong in some circumstances
  • Fix: Make video (fullscreen) page work again
  • Fix: Add build requirements for Qt Multimedia and Qt Positioning
  • Updated translations for Finnish and Swedish - thanks to jorm1s and eson57

0.6

  • Filter chat list (tap on title bar to open search field) - thanks to the entire dev team for the great discussion and contributions to the layout :)
  • Search for public chats (see pulley menu on overview page)
  • Search for chat messages (see pulley menu on chat page)
  • Support sending voice notes
  • Support sending locations
  • Add message draft support - thanks to jgibbon
  • Basic bot messages support (reply markup) - thanks to jgibbon
  • Add 'Mark chat as read/unread' option
  • Add download option to audio messages (voice notes, music...)
  • Introduce proper text if other people added/removed a person from a chat
  • Tweaks to poll layout - thanks to monich
  • New option to keep message input focused after message was sent - thanks to jgibbon
  • Send message button now removed if Send-message-by-enter option is enabled (and no attachment is set) - thanks to santhoshmanikandan
  • Performance and code optimizations (architecture, startup, JS components) - thanks to monich and jgibbon
  • Improve readability in light ambiences
  • Upgrade to TDLib 1.7
  • Fix: Only show reply to option for messages that can be replied to - thanks to monich
  • Fix: Emoji positioning in multi-line texts - thanks to monich
  • Fix: Left-over @-mention notifications when all messages in chat are read
  • Fix: Occasional crashes on opening poll context menu - thanks to monich
  • Fix: Don't display in-reply-to section if message wasn't found
  • Several translations updated - thanks to all contributors

0.5.1

  • Add verification badge to verified chats - thanks to monich
  • Improve preview of wide images - thanks to monich
  • Fix: Editing functionality (was broken with newlines and didn't update correctly)
  • Fix: Show single message in a chat if on receiving side
  • Allow any screen orientation for picker dialogs - thanks to monich
  • Fix: Long tap on image preview items - thanks to monich and jgibbon
  • Press effect for image preview items - thanks to monich
  • Fix: Chat Page flickable misplaced under some circumstances
  • Fix: Short text for 'myself' short messages of channels in chat list
  • Several translations updated - thanks to all contributors

0.5

  • Support secret chats
  • Support Telegram contacts & synchronization with local contacts DB on request
  • Initiate private & secret chats from contact
  • Support pinned messages
  • Always position chat at last read state, even if unread message count is >50
  • Support message forwarding - thanks to jgibbon
  • Support multiple message selection - thanks to jgibbon
  • Support @-mentioning in message input field - simply type '@' followed by the name to properly mention somebody
  • Support video notes
  • Better notification handling - thanks to monich
  • Better chat permission handling - thanks to jgibbon
  • Chat information attached to chat page - thanks to jgibbon
  • Display message sent/received indicator in chat list
  • Display pinned/in-reply-to message on tap as overlay
  • Support for TDLib storage optimizer - thanks to monich
  • Switch from elide truncation mode to fade out
  • Switch to generic file picker for documents
  • Localization improvements (e.g. plural handling) - thanks to jgibbon
  • Logging/debugging improvements - thanks to monich and jgibbon
  • Several performance improvements - thanks to monich and jgibbon
  • Make emojis a little bigger and change alignment to address display issues (only a workaround as it seems to be a QML bug, but we need to use what we have...)
  • Fix: Wrong space allocation for some web page previews
  • Fix: Display correct chat photo - thanks to monich
  • Fix: Message pending indicator though message was sent successfully
  • Fix: Mute chats that have never been muted before
  • Fix: Truncate username correctly if it's very long
  • Several translations updated - thanks to all contributors

0.4.1

  • Several translations updated - thanks to all contributors

0.4

  • Support for animated stickers - thanks to monich
  • Chat information page (members, picture(s), settings...) - thanks to jgibbon
  • Support for polls - thanks to jgibbon
  • Code & performance optimizations - thanks to monich and jgibbon
  • Improve chat scroll position on open - thanks to jgibbon
  • Start chats from @-mention or name
  • Integration in Sailfish OS open with menu
  • Join and leave chats
  • Fixes and improvements to notifications - thanks to monich
  • Differentiate between simple and normal messages in chats - thanks to jgibbon
  • Switch to SVG icons - thanks to jgibbon
  • Mark all messages as read - thanks to jgibbon
  • Copy message to clipboard - thanks to chstem
  • New sticker icon - thanks to jgibbon
  • Fixes to link and HTML entity handling
  • Switch message sent date display on tap (... ago <-> Monday, ...)
  • Many translations updated - thanks to all contributors
  • Swedish translation - thanks to eson57

0.3

  • Support for sending stickers
  • Search for emojis from message input field, use :<keyword> to start searching
  • New icon/logo - thanks to iamnomeutente
  • Option to customize non-graphical notification feedback - thanks to monich
  • Add user registration - thanks to jgibbon
  • Don't show irrelevant groups - thanks to monich
  • Display information about forwarded messages
  • Option to avoid displaying stickers like images - thanks to monich
  • Fix: Don't reset edit/in-reply-to mode after focus change
  • Fix: Display caption for documents
  • Fix: Reserve some space for lazy loaded elements
  • Fix: Don't display error message in case of repeated download of the same file
  • New translations (Finnish, Italian, Russian), thanks to jorm1s, iamnomeutente, arustg and monich
  • That was quite a lot - I hope I didn't forget anything. If I did, big sorry and please let me know!

0.2

  • Support sending images, videos and documents
  • Support receiving locations and venues - thanks to jgibbon
  • Performance improvements for chat list, new sorting algorithm and much more - thanks to monich
  • Performance improvements for chat, lazy loading for most UI elements
  • Cover page improvements - thanks to jgibbon
  • Fix handling of "<>" in messages
  • Differentiate text between other people and current user ("You have..." vs. "Somebody has...")
  • Support for the Jolla Tablet
  • New translations (Chinese, Hungarian, Polish, Spanish) - thanks to dashinfantry, edp17, atlochowski, GNUuser

0.1

  • Initial Release

Comments

Brummkreisel's picture

Nach Eingabe des Codes aus der SMS lädt die App immens lange. Es passiert sonst nix.
Gibt es irgendwelche Voraussetzungen?
XA2 3.4.0.24

WerkWolf's picture

Möglicherweise den Code falsch eingegeben, da hakt es ab und zu nochmal. Im Zweifel die v0.3 ausprobieren...

Brummkreisel's picture

Hui, mit der neuen Version hat es geklappt. Dieses mal brauchte ich kein Code eingeben...
Wo kann ich denn einen Chat beginnen? Im Pully-Menü habe ich nur "Einstellungen und Über"...

WerkWolf's picture

Das geht noch nicht - ist ja auch erst v0.3. Wird aber recht bald nachgereicht...

Brummkreisel's picture

Achso, na dann warte ich natürlich noch. Wie immer bei Ihren Apps fügt sich auch diese optisch hervorragend in das SFOS ein.
Musterbeispiele!
Bitte Donation-Button ergänzen.

Maximilian1st's picture

Hi, thank you for this nice app. It does not update from 0.1 to 0.2 here on SFOS 3.0.3 with a fling something error not found.

yusssufff's picture

Great 0.2 release!

One question: is it in your plans to show on the "first" page of chats if a message is read or not? Its materialized with one of two checks on the official telegram app... Usefull to see at a glance if your messages were recieved from the main chat page...

Thanks for the hard work!

rgsidler's picture

@Cryx Endlich mal eine App, bei welcher man nicht immer geduzt wird. Danke dafür. Offenbar haben viele immer noch nicht verstanden, dass das englische „You“ in keiner Weise dem deutschen Du entspricht, sondern in erster Linie ein respektvolles Sie meint.

velox's picture

Die "offiziellen" Sprachvorgaben von Jolla sehen einen informellen Sprachstil vor, weswegen die meisten Entwickler/Übersetzer (mich eingeschlossen, vielleicht reagiere ich deshalb so ausführlich) dies übernehmen. Mit "verstanden" hat das also nicht unbedingt zwangsweise etwas tun. Vielleicht liegt das auch daran, dass in Finnland sehr viel geduzt wird und sie damit einen Teil ihrer Kommunikationskultur zelebrieren.

Zwar wurde das englische "Du" (thou) ab dem 17. Jhd. abgeschafft, doch heutzutage entspricht "You" durchaus dem "Du". Aber eben auch dem ursprünglichen "Sie" – weil es schlicht nicht mehr differenziert wird.

Davon abgesehen finde ich es aber auch prima, wenn Entwickler persönliche Präferenzen haben und individuell umsetzen. Ich habe gegen beides nichts einzuwenden und kann beides gut nachvollziehen.

(Editiert: In einem Sprachbesserwisserbeitrag etwas falsch geschrieben – na prost Mahlzeit.)

Cryx's picture

Offizielle Sprachvorgaben von Jolla sehen einen informellen Stil vor? Warum hält sich Jolla selbst nicht daran? Klar, ist kein dieser App hier - vielleicht fehlt es im System einfach schon an der Auswahl. Nextcloud zum Beispiel lässt sich umstellen auf persönlich (Du) oder Informell (Sie).

nephros's picture

>  In einem Sprachbesserwisserbeitrag etwas falsch geschrieben

Das ist halt Muphry's Law! :D

Cryx's picture

So unterschiedlich sind die Meinungen... ;-)
Mein Hsndy ist mein bester Kumpel - da mag ich gerne gedutzt werden.

WerkWolf's picture

Ich mag das Geduze von Apps und meinem Handy nicht so wirklich, ich toleriere es aber. Meine eigenen Apps dürfen aber gerne ein wenig Respekt vor mir haben - ich habe auch genug Respekt davor, die zu schreiben. ;)

inta's picture

Man kann viel mögen oder auch nicht, da das Betriebsystem du sagt, würde ich es vorziehen, wenn sich die Anwendungen daran orientieren und sich möglichst gut integrieren.

Cryx's picture

Nachdem es jetzt läuft der Ersteindruck: sehr schön. Wie wäre es bei Deutsch mit "Du" statt "Sie"? Und in einem Gruppenchat steht in der Chatliste "Sie hat ein Bild geschickt" für ein von mir geschicktes Foto. Das sollte natürlich "Sie haben..." (oder schöner halt "Du hast") heißen...
Neuen Chat starten oder Kontakte sehen geht noch nicht, vermute ich (zumindest finde ich das nicht)...? Aber was noch fehlt kommt sicher noch...

yusssufff's picture

hello and thank you for your hard work!

I wonder why, on XA2 (Rokua), after sending a message or when cheching some new chat, the app shows a 'random' area of the chat, slightly above the last message sent and not the last message sent istelf... i recall a similar behaviour with Telegra'me that leads, just after sending a message, the need to immediatly scroll down the chat to be able to see/read it...

WerkWolf's picture

Please see https://github.com/Wunderfitz/harbour-fernschreiber/issues/1 for some additional details about this issue. 0.2 will see some improvements there and if somebody want to contribute improvements themselves: PRs are welcome. :)

yusssufff's picture

true! my bad,i didt see that!

And one question also: will you publish soon the app on the jolla store? that would be fantastic...

WerkWolf's picture

Jolla Store is currently quite unlikely. The app uses some features that are not released for the Store...

slava's picture

Which features, by the way? I'm pretty good at getting around jolla store restrictions :)

WerkWolf's picture

At the moment, it's definitely ngfutils for non-visual feedback of notifications. In addition, the Harbour Validator is complaining about path strings in the TDLib binary. I suppose ngfutils can directly be compiled into the project itself to remove that dependency. No idea about the path strings in the binary though. Any idea is appreciated. :)

slava's picture

I'm curious, what's the point in not checking in tdlibsecrets.h? That just makes it slightly harder to build your app, and yet your TDLIB_API_ID and TDLIB_API_HASH values are easy enough to figure out by setting a breakpoint in td_json_client_send, so they are not really secret. I would say the more developers can build your app, the more meaningful contributions you can expect. Or is it some sort of legal requirement, to force people to make this extra step?

WerkWolf's picture

As far as I know it's not a requirement for Telegram, at least I haven't found anything in the docs. I simply don't check in any API keys for any of my apps. Of course, if you want to retrieve it, you can get it from the binary, but you can also easily get your own one as documented in the README.

slava's picture

I'm building your app, not mine - why would I need a different app id? Anyway, like I said it's not much of a problem to fetch those. A much bigger problem is that your git repo is not self-sufficient and the build requires certain manual manipulations, which is inconvenient, to say the least, when you try to build the app from scratch in an unattended build environment, such as OBS.

WerkWolf's picture

Because the ID and the corresponding hash value are tied to my personal account at Telegram. If anybody does strange things with this data, all instances of Fernschreiber might be blocked, or even worse: my account could be locked or even banned completely. It would be great if you didn't disclose ID and hash to anybody else. Yes, I know it's in the binary, and yes I know that everybody who is able to use a debugger or hex editor can possible obtain them, but it should at least not be as easy as reading public configuration files on a build server ot in a public code repository on GitHub. Compared to my efforts in writing the app, it's really not a big deal to get your own credentials and to set up your own build environment if you really need it especially as everything is documented. Thanks for your understanding.

slava's picture

Oh, Telegram requires you to distribute your credentials in plaintext? That's silly. I didn't expect that from a company involved in an encryption/privacy/security business. I'm starting to doubt that everything else in Telegram is as secure as they claim :|

Sure, I won't post your "credentials" to github or any other place where they can be indexed by search engines.

WerkWolf's picture

Maybe they should integrate your Foil functionality into TDLib - or I should do it to protect these "credentials". ;)

slava's picture

Hmm, why are these static libraries being installed?

[root@Sailfish ~]# ls -la `rpm -ql harbour-fernschreiber | grep 'a$'`
-rw-r--r--    1 root     root        198354 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdactor.a
-rw-r--r--    1 root     root        130292 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdclient.a
-rw-r--r--    1 root     root      36924996 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdcore.a
-rw-r--r--    1 root     root        463938 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtddb.a
-rw-r--r--    1 root     root       2049692 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdjson_private.a
-rw-r--r--    1 root     root          5596 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdjson_static.a
-rw-r--r--    1 root     root        886524 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdnet.a
-rw-r--r--    1 root     root       1044752 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdsqlite.a
-rw-r--r--    1 root     root       1277968 Sep 20 19:34 /usr/share/harbour-fernschreiber/lib/libtdutils.a
[root@Sailfish ~]#
WerkWolf's picture

They all belong to TDLib. I simply integrated the result of a standard TDLib build to the lib directory. If you have any tips if some of them can be omitted, I'm always open to feedback.

slava's picture

Another option would be to link tdlib statically and not bundle any libs at all. That's what I would try first, actually. The purpose of shared libraries is.... egh... to share them, right? If you're not sharing it, then there's no point in making it shared. Linking it statically gives the linker a much better chance to drop unused and duplicate code.

Pages