62
6. Далее проверим, соответствует ли содержание этого списка выбранным
настройкам в методе getFilteredList. В зависимости от выбранных
настроек сортировки и фильтрации удалим ненужные элементы.
При тапе по блоку задания произойдет следующее:
Понадобится запросить у сервера данные по конкретному
транслейту – на вход функции запроса getFullTranslateInfo будет
подан идентификатор тапнутого транслейта.
По завершении запроса вызовется метод
onHttpFullTranslateInfoCompleted, где снова произведутся проверки
наличия ответа, проверки формата ответа, парсинг данных ответа.
Более подробно с методами можно ознакомиться в Приложении А.
По завершении проверок, парсинга и наполнения структуры
FullTranslateInfo, состоящей из полей: 1. Int progress (номер текущей
собираемой фразы), string textRu (текст задания), int userTaskId(для
определения задания на стороне сервера), Int
correctPhrasesCount(кол-ва верно собранных фраз), вектора структур
типа WordFullInfo, содержащих информацию о слове или
выражении(слово, перевод, ссылки на озвучки и видео и проч.),
вектора фраз задания, в свою очередь содержащего массив структур
типа FullTranslatePhrasesInfo (см. Приложение А), мы получим
данные, необходимые для дальнейшей корректной работы.
Пользователь, оказавшись на странице задания, сможет увидеть все
предусмотренные элементы.
Далее на сборке после ввода перевода текущей фразы, по нажатию
на кнопку «Отправить ответ» происходит очередной запрос к
серверу типа post: отправляем на сервер строку, введенную
пользователю для сравнения с вариантами ответов, заготовленных
редакторами (requestCheckAnswer, где входными параметрами
являются идентификатор задания, номер фразы, введенная строка).