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.



Feature: roll selected messages

User story: it is hard to realize which messages are selected if they don't fit in one screen. So it would be helpful to have a possibility to check selected messages.

Proposal: roll selected messages one by one clicking the widget showing selected messages amount.

Feature: use navigation back stack for jumping back from replies or pinned messages

User story:
1. If you enter to a chat having unread messages and scroll to a pinned message, you don't have an opportunity going back.
2. If you flow through replies on messages you don't have an opportunity going back the same way.
3. You can combine #1 and #2 in different ways

1. Store all user message jumps and allow going back by clicking page down button.
2. Clear back stack for some reason (scroll to the message list bottom, unordinary jumps, etc).
3. Allow clean stack with scroll to the message list bottom by page down button long click.

Fix: forward to the saved message if chats have been updated

Steps to reproduce:
1. Delete saved messages chat
2. Go to a chat and select a message or messages
3. Click the forward button. You should stay on the chat list with out any actions.
4. Wait before a new message in a chat
5. Select saved messages chat for forwarding
6. Sometimes the saved messages chat goes to the chat list bottom and has got incorrect rendering

Expected behavior:
Saved messages chat should be ordered by time

Feature: camera2 API support

User story: using a new camera API instead of deprecated one

1. Move all calls to explicit types to interfaces
2. Use camera2 API if platform API version high enough (at least 21)
3. Leave all code outside the camera package as the same as possible with the same functionality
4. Easy way to add a new camera API (e.g. CameraX) - just implement 3 interfaces.

1. Time to time a shot takes much time. The reason is long AE/AF converging process (actually google camera app has the same behavior). There should be a timeout for capturing time.

Tested on devices: Pixel 3 (API 30), Samsung Galaxy 8 (API 26), Samsung G350E (API 19)

You have not added any comments yet...
by rating


Fair Quokka Mar 18, 2021 at 19:38
Всего исправлений и улучшений: 4 
Из них корректных: 2

#1: Возможность перехода между непрочитанными сообщениями не учитывает, в какой позиции в данный момент находится скролл.

#2: Смена ориентации устройства перерисовывает интерфейс камеры с задержкой (Nexus 5X). При первой смене ориентации девайса после запуска приложения экран может смаргивать белым. 

#3: Если несколько раз подряд нажать кнопку затвора, он может не активироваться вообще или привести к вылету приложения (Samsung Galaxy J7 Android 9). 

Функциональность записи видеосообщений не работает. 

UPD. Просим прощения за неточность комментария о видеосообщениях — проблема, с которой мы часто сталкивались в ходе тестирования, идентична #issue12026.
Samsung Galaxy S10 (Android 11); Samsung Galaxy J7 (Android 9); Nexus 5X (Android 8).
Dreamy Eagle Mar 18, 2021 at 19:48
#1  это так, был использован существующий функционал перехода между сообщениями, позиция высчитывается так, чтобы выбранное сообщение было в центре экрана

#2 такого устройства нет, не могу сказать почему

#3 почему-то думал, что невозможность двойного захвата изображения обеспечивает внешний юай

Хм, а почему нельзя видео записать? Есть поддержка и в прикреплении видео приложения и непосредственно в чате. Работало на обоих моих устройствах.
1) Works, very useful!
2) Works, very useful!
3) I did not find the change.
Dreamy Eagle Feb 17, 2021 at 10:27
Yeap, changing camera API shouldn't change user experience (at least in worse side). It is mostly technical task for replacing deprecated API. Bit it also give more control of AE/AF/AB features
Deleted Account Feb 17, 2021 at 08:02
The camera is corrupted. If I take a shot in portrait mode it's taking in landscape mode while displaying
Dreamy Eagle Feb 17, 2021 at 10:32
Original tg logic handle some specific devices, so it could be the specific device issue. I've tested on Pixel 3 and SGS 8 and you know (if you are a android dev) that time to time we do additional checks depending on platform api/device/whatever. I wish I could check your case but I just don't have such device :(
Deleted Account Feb 17, 2021 at 10:34
Okay then you could dm me?
Dreamy Eagle Feb 17, 2021 at 10:44
  Sorry, I don't catch what dm is
Deleted Account Feb 17, 2021 at 12:20
I meant that you could direct message me on Telegram for better discussion about the issue if you don't mind
Dreamy Eagle Feb 17, 2021 at 13:29
Np, but I don't know how to find you in tg
Nice camera rework, but found 2 small issues.

1. Sometimes instant video recording output is incorrectly cropped. This can reproduced when the phone is lying horizontally. Also stopping instant recording seem to block UI thread.
2. Usual video recording goes with some UI thread blocks
Samsung A51, Android 11
Dreamy Eagle Feb 17, 2021 at 14:13
Thanks, UI blocks are my bad - forgot to move some operations to background thread.
Bad cropping is interesting because instant recording mostly the same as usual camera, all post processing is doing in the following tg code. I will investigate it
Nobody added any issues yet...