Конкурс для разработчиков под Android
В этом конкурсе участникам предлагается взять за основу исходный код приложения Telegram для Android и добавить в него новые функции.
Все работы должны в точности следовать предложенному дизайну, который позволяет реализовать три задачи:
- Настройка запрета на пересылку для приватных каналов и групп
- Отправка сообщений от имени канала в публичных группах
- Удаление сообщений по выбранному диапазону дат в календаре
Первые две задачи являются максимально приоритетными.
Ресурсы
- Архив с дизайном всех необходимых экранами приложения можно скачать здесь.
- Подробное описание новой схемы находится здесь.
- Обратите внимание, что необходимая схема поддержана в dev ветке исходного кода.
Задачи
1. Запрет на пересылку и сохранение медиафайлов
Участникам необходимо добавить настройку для приватных групп и каналов, которая позволяет запрещать пересылку сообщений из них, а также сохранение фотографий, видео, файлов и GIF-анимаций на устройство пользователя (Group Actions.png / Channel Actions.png
).
Для администраторов эта настройка располагается в редактировании сообщества в разделе Group Type / Channel Type (Group Settings.png / Channel Settings.png
).
В панели администрирования каналов пункт Manage Invite Links на странице Channel Type может быть убран при условии, что появится пункт Invite Links на странице настроек. (См.
Channel Main.png
)
Данное изменение затронет меню действий с сообщениями, интерфейс просмотра фотографий и GIF, а также действия с медиафайлами в разделе Shared Media. Должны быть исключены следующие действия:
- Forward
- Share
- Save to gallery
- Save to files
- Save to GIFs
- Copy
- Скриншоты (поведение аналогично секретным чатам).
По умолчанию для групп и каналов пересылка сообщений разрешена.
2. Отправка сообщений от имени канала в публичных группах
Во всех публичных группах и группах, привязанных к каналам, добавляется возможность выбирать аккаунт, от которого отправляются сообщения. Для этого пользователь может нажать на миниатюрную фотографию в поле ввода и выбрать один из публичных каналов, где он является создателем (Owner).
В списке может находиться до 10 каналов, при этом максимальная высота меню показана на макете Send Message As Menu.png
. В списке должна поддерживаться вертикальная прокрутка.
С точки зрения отправителя сообщения от имени канала повторяют по верстке сообщения от лица группы в дискуссионных чатах (Send Message As Post.png
). Для получателей они выглядят как обычные сообщения с именем и фотографией канала (Send Message As View.png
).
Общая логика этой функции соответствует вступлению в голосовые чаты. Для пользователей без публичных каналов интерфейс не изменится.
Анимация при нажатии на фотографию в поле ввода с появлением крестика соответствует той, которая используется при выборе человека при добавлении в группу. Радиальный селектор вокруг активной фотографии в слое уже реализован в слое, который возникает при создании голосового чата.
3. Удаление сообщений в выбранном диапазоне
Плашки с датами в чате (November 5, May 4 и т.п.) должны открывать календарь, аналогичный тому, который сейчас реализован в разделе Media профиля (вызывается из меню “три точки”, когда список фотографий развернут на весь экран).
Долгое нажатие по любому дню отображает предпросмотр чата, где первое сообщение — бирка с указанной датой (Range Day Preview.png
). Нажатие на кнопку Select Days переводит календарь в режим выбора диапазона дат. Пользователь может выбрать произвольный диапазон и удалить все сообщения за данный период. При этом пользователю будет показано окно с подтверждением, которое содержит пояснительный текст (Range Select Alert.png
).
После удаления сообщений режим выбора сбрасывается, позволяя вновь переходить к сообщениям в чате по нажатию на даты в календаре.
Вопросы и неполадки
Задать вопросы о конкурсе и сообщить о технических проблемах с заданием можно в официальной группе Конкурсы Telegram