Info

Download .APK (62.8 MB)

Source on GitHub

https://github.com/Svechnikov/Telegram/tree/dev-contest

Testing and Issues

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

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

Voting

Comments

Запрет на пересылку сообщений

Сделано:
- добавлен переключатель в настройках согласно дизайну с поддержкой тёмной темы
- убран пункт manage links из настроек типа группы, согласно условиям
- добавлена новая подпись "Private restricted" для приватных групп с запретом пересылки, согласно дизайну
- обновление UI во всех возможных случаях, включая открытые попапы, открытые медиа файлы, медиа в профиле группы
- запрет скриншотов

Не сделано:
- обработка ситуации, когда на попытку пересылки сообщения вернулась ошибка CHAT_FORWARDS_RESTRICTED
Отправка от имени канала

Сделано:
- Попап как в дизайне
- Логика работы, как в условиях
- Поддержка RTL языков и ночного режима
- Обработка ситуации, если мало места для попапа (например, в ландшафтной ориентации) - клавиатура скрывается, освобождая место
- Динамическая высота попапа, в зависимости от доступного места
- Анимации попапа, фона и элементов внутри попапа такие же, как у существующих попапов
- Анимация кнопки с автором такая же, как при добавлении людей в группу
- Радиальный селектор - как при создании голосового чата
Отправка от имени канала

Не сделано:
- Закрытие по кнопке назад. Это было бы более совместимо с поведением текущих попапов. Нажатие кнопки назад либо скрывает клавиатуру, либо переводит на предыдущий экран
- Если вызван попап, то чтобы активировать любой другой элемент на поле ввода, нужно сделать тап 2 раза. Оверлей закрывает часть приложения до поля ввода, поэтому логично было бы обрабатывать события на поле ввода одновременно с закрытием попапа
Удаление сообщений в выбранном диапазоне

Сделано:
- Вызов календаря при тапе на сообщении с датой
- Переход к тому или иному дню при тапе
- Показ превью при долгом тапе на дате в календаре
- Для получения идентификаторов сначала проверяется локальный кэш, потом - делается запрос

Не сделано:
- Удаление сообщений
- Получение первого доступного дня с сообщениями
- Размытие фона при показе превью
You have not added any comments yet...
by rating

Issues

Fair Mammoth Nov 18 at 23:02
Выполнено задач: 2/3
Не завершено: 1 (удаление сообщений в выбранном диапазоне)

В ходе тестирования приложения были выявлены недоработки, в том числе и критические, например, падения приложения при открытии списка каналов и работе с календарем. Общий объём недоработок помешал продвижению работы на более высокое призовое место. 

Из положительных сторон отметим внимание к отдельным деталям при работе над первой и второй задачами. Например, приложение предусматривает изменение элементов интерфейса в реальном времени при изменениях в разрешении на пересылку. Начата работа над анимациями списка каналов, проработаны интерфейсы при изменениях в списке каналов и правах администраторов в реальном времени. 

​​​​1. Запрет на пересылку и сохранение медиафайлов:
1.1 Пользователь может обойти запрет на пересылку и копирование в следующих ситуациях:
– В музыкальном плеере отображаются функциональные кнопки Share/Save to music – позволяющие поделиться или сохранить файл.
1.2 Пользователь может обойти запрет на скриншоты через переход в раздел закрепленных или запланированных сообщений с последующим возвращением на экран чата.
1.3 У пользователей теперь нет возможности ответить на служебные сообщения, например, о добавлении кого-то в чат или смене названия группы.
1.4 На сущностях контактов доступна функциональная кнопка Copy.
1.5 Подсказка о запрете на пересылку сообщений отображается в разделе запланированных сообщений. 
1.6 У неактивной кнопки Forward не должно быть эффекта Ripple.
1.7 Приложение выводит некорректный текст подсказки: 
– В супергруппах “Forwards from this channel are restricted” в плашке при тапе по сообщению.1.8 Дизайн плашки с подсказкой не соответствует дизайну предоставленных макетов.
Samsung Galaxy A51 (Android 11); Xiaomi Redmi Note 8 Pro (Android 10); Samsung Galaxy S10 (Android 11).
20
Fair Mammoth Nov 18 at 23:02
2. Отправка сообщений от имени канала в публичных группах:
2.1 Открытие списка каналов может приводить к вылету приложения.
2.2 Окно списка каналов фокусируется в верхней части списка вместо отображения выбранного канала.
2.3 Приложению не достаёт оптимизации при выбора из списка каналов в альбомной ориентации.
2.4 Цвет автора в отправленном сообщении от имени канала некорректен.
2.5 Приложение может некорректно отображать счётчик подписчиков в окне выбора канала.
2.6 Дистанция между иконкой вызова списка каналов и кнопкой панели ESG чересчур велика, что не соответствует дизайну предоставленных макетов.
2.7 При открытом меню клавиатура затемняется, что не соответствует дизайну макетов.
2.8 При выборе каналов может происходить вылет приложения.

3. Удаление сообщений в выбранном диапазоне:
3.1 Работа над заданием в целом не завершена:
– Нажатие на пустую область календаря приводит к вылету приложения.
– Пользователю не доступен выбор дат и возможность удаления сообщений.
– Действия через предпросмотр дня не реализованы. 
– При нажатии на дату без медиа ничего не происходит.
– При нажатии на крестик с активированным режимом выбора даты календарь скрывается целиком.
Samsung Galaxy A51 (Android 11); Xiaomi Redmi Note 8 Pro (Android 10); Samsung Galaxy S10 (Android 11).
20
Anton Stafeev (Android) Nov 17 at 05:44
1) ui
Samsung A51/Android 11
Fluffy Sheep Nov 17 at 07:09
Спасибо! Да, не предусмотрел изменения темы здесь, только сейчас заметил
Anton Stafeev (Android) Nov 17 at 05:49
2) В музыке не поддержан запрет на форвардинг.
Samsung A51/Android 11
Fluffy Sheep Nov 17 at 07:10
Эх, тоже не успел рассмотреть эту ситуацию
Anton Stafeev (Android) Nov 17 at 05:54
3) верстка не соответствует предоставленному дизайну. Не понятно зачем такой большой отступ снизу.
Samsung A51/Android 11
Fluffy Sheep Nov 17 at 07:12
Высота контейнера была взята из дизайна. Логика такая - есть базовая высота и, если свободного места достаточно, применяем её. Если места меньше, то уменьшаем высоту. Если места меньше половины от базовой высоты, скрываем клавиатуру, если она есть.
Но согласен, можно делать высоту более динамической, чтобы не оставалось пустых мест.
Anton Stafeev (Android) Nov 17 at 06:01
4) Кейс: текущая группа является private restricted юзер является владельцем группы. Проверяем что работает запрет на форвардинг например через выделение сообщения. Все ок. Далее идем в настройки и меняем группу на публичную. Возвращаемся обратно в чат, а там все еще действует запрет. И только после переоткрытия группы все ок.
Samsung A51/Android 11
Fluffy Sheep Nov 17 at 07:23
хм, да, действительно. Проблема в том, что при изменении переключателя я записывал изменения в локальный кэш, а при изменении типа группы - нет.
Anton Stafeev (Android) Nov 17 at 06:07
5) Превью в календаре не полноценное: Нет менюшки с действиями. Скрывается когда палец поднимаешь(долгое нажатие). Выбор дней для удаления нет.
Samsung A51/Android 11
Fluffy Sheep Nov 17 at 07:24
Да, согласен, делал календарь в последний день, всё, что успел - запустить его и выводить превьюшки
В превью если сделать запрет на фото, то иконка рисования будет показываться и на видео
Если сделать запрет на видео, то все иконки внизу пропадут, в том числе и для рисования на фото
SGS S9
Не получается открыть календарь по тапу на дате
SGS S9
Nobody added any issues yet...