Download .APK (84.7 MB)

Source on GitHub

Testing and Issues

You can test this app and submit issues during the testing period of the Android Contest 2021 contest.

Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.




21. Add the Manage Voice Chats permission shows "- Manage voice chats" in recent actions

22. Remove the Manage Voice Chats permission shows "+ Manage voice chats" in recent actions
commit:[same as above]

23. "Message doesn't exist" error is shown when pressing the link of a message outside the current thread

24. Incorrect order for tracks across several playlists
29. The timestamps of copied messages are not preserved

30. Profile photo's counter is replaced with a non-functional search icon after removing one if there are exactly 21 profile pictures when you're in expanded view

31. Message composer displays external text formatting but does not send it

32. Greeting sticker can be sent to a user whom you blocked
33. Search Filters with most chats archived

34. Setting group type to public without setting a link does not show an error

35. Unpinned/Deleted/Left chats stay in folders, and take up space to the 100 limit 📁
commit:[same as #7]

Also I fixed an issue that had a big impact on users with a slow connection specially when VPNs are involved: When auto download is stopped after user has pressed the cancel on the loading, as soon as a scroll happens, the download resumes.
About issue "mobile notifications when active on desktop":
The strategy I used is to find out the condition that the server considers current user as online but they have not been active on the app recently enough to be considered online on the app. So this will tell me that the user is active on some other client and so the notifications are silenced to prevent annoying the user. To do this I realized that the max value for `user.status.expires` returned by the server is equal to 1200 seconds. So I took it and used it as a **constant** for in-app online recognition. The final result is that if the user has not opened the app in the past 15 minutes AND they are online on some other client, their notifications are silenced.
About issue "Live location user tracking not working in official TG on android":
Live location tracking now is active when the user taps on a live location pin and it has a blinker animation somewhat similar to the iOS app. By moving the map or clicking on other pins, auto tracking turns off or if another live location pin is tapped, the new one will be followed.
You have not added any comments yet...
by rating


Fair Mammoth Mar 18, 2021 at 19:40
Total fixes: 36
Correct fixes: 22

An overall large amount of fixes were implemented. However, a third of them cannot be considered valid due to implementation issues:

#1: "In reply to" preview isn't updated when the message is edited." The chosen approach when the app consequently performs the check of all the messages is non-optimal.

#2: "Notifications receiveng when using a Desktop app simultaneously" – the fix won't work for cases when FCM notifications are used.

#3: "Not possible to copy part of text with the keyboard open" – the interface covers the chat screen while interacting with the text.

#6: "Self-Destruct timer freezes in Secret Chats, Photos don't disappear." – Extending the timer value cannot be considered as a correct solution.

#8: "Voice Messages become jerky when an Animated Emoji with sound is pressed" – this is an ExoPlayer bug and should be fixed on their side.

#9: "The group name should not be in the mention list." – the implemented solution breaks the existing feature of searching anonymous admins' messages in groups.

#12: "Pop-up notification error with several different chats." – A delay of 100ms cannot be considered as a good solution.

#13: "Not possible to see replies of an album if you open the context menu from the right side." – The app hides the button after opening the context menu for the first time.

#14: "Not possible to search members' messages without the Send Message permission." – If a user gets blocked in the group, he may see the mention list above the faded input field.

#17: "Voice chats filter in recent actions of channels should not be visible." – The implemented solution could break the layout or cause the app crash.

#18: "Reply preview not getting deleted automatically." – The chosen approach when the app consequently performs the check of all the messages is non-optimal.

#23: "Message doesn't exist" error is shown when pressing the link of a message outside the current thread." – The proper approach would be to perform a check if those messages exist in the current thread.

#26: "Delete" option should not be visible on "added you" service messages if you are not admin." – Nobody can delete service messages in basic groups now.

#33: "Search Filters with most chats archived." This is the intended behavior that cannot be considered to be a bug.
Samsung Galaxy S10 (Android 11); Samsung Galaxy J7 (Android 9); Nexus 5X (Android 8).
Clever Wasp Mar 18, 2021 at 19:57
#1: It is non-optimal but since the loaded messages can not be more than a few dozen it has less than 2 milliseconds impact on performance. The same approach is taken in the existing code in the same block of code. I followed the pattern.

#6: The timer value is not extended! The existing logic would in some cases finish the timer in less than a second which caused inconsistent state bug. I fixed it to be exactly one second.

#8: I think Telegram is much better off with my fix until it is fixed in exoplayer.

#18: Same as #1

#26: The bug existed in the version that was up for fixing. Or maybe the description of the bug is not read carefully enough?

#33: Why was it in the issues list? No body moderated? Am I responsible for lack of moderation and access to a person who knows the intended behavior?
Nobody added any issues yet...