Author Topic: [От старых к новым] Список сообщений и переход между сообщениями при чтении  (Read 11512 times)

ruslangaripov

  • Newbie
  • *
  • Posts: 11
Подробное описание проблемы, подтолкнувшей меня к созданию описываемой ниже "хотелки", я написал в теме "Reverse ordering doesn't affect conversation view". Повторяться не буду, просто напишу что именно я хотел бы получить в итоге.

Исходим из того, что список сообщений отображает сообщения от более старых (наверху) к более новым (внизу); при просмотре сообщения переход слева направо также идёт от более старых к более новым сообщениям.

  • Список сообщений. Заголовок группы сообщений ("Conversation") должен отображать дату первого сообщения (самого старого) в группе, не последнего как это делается сейчас. На сортировке сообщений это не должно отражаться: для примера смотрите вложение "tb_message_list.png" (это скриншот из Thunderbird; для информации: свёрнутая группа сообщений в строке (6) начинается первым сообщением от 26.08.2018 в 12:08 и заканчивается сообщением от 27.08.2018 в 7:10). В общем-то, сейчас в AquaMail всё так и есть, за исключением даты, которая отображается в заголовке группы.
  • Просмотр сообщений. Пусть на данный момент на экране отображается "одиночное" сообщение (не в группе) или последнее сообщение в группе. Следом за этим текущим сообщением в списке идёт (другая) группа сообщений. После перехода с текущего отображаемого сообщения (после удаления сообщения, после его сдвига (swipe) справа налево и прочее), необходимо отобразить первое (читай: самое раннее) сообщение в следующей группе. Не последнее, как это происходит сейчас. Соответственно, устранятся все проблемы, описанные в "Reverse ordering doesn't affect conversation view".

Подобное поведение реализовано в Thunderbird. Это на случай, если я непонятно описал процесс.

Kostya Vasilyev

  • Hero Member
  • *****
  • Posts: 12740
Re: Заголовок группы сообщений ("Conversation") должен отображать дату первого сообщения (самого старого) в группе, не последнего как это делается сейчас.

Это вряд ли.

Я просто не понимаю почему дата / время самого старого сообщения вообще важны.

Re:  Пусть на данный момент на экране отображается "одиночное" сообщение (не в группе) или последнее сообщение в группе

Извините не совсем понятно - "последнее" это самое старое или самое новое?

Я попробовал прочитать и осмыслить Ваше сообщение в теме "reverse ordering..." - но просто увяз и потерялся, извините.

Вы можете попробовать сформулировать более коротко?

- Какие именно у Вас настройки (сортировка "старые сначала" это я понял, и "при перелистывании пред. сообщения - старше" выключено это я тоже понял).

- Какие-то ещё?

- Пара простых сценариев что именно делаем, что получаем, что хотим

- Мне было бы проще понять если бы кроме слов "первое", "последнее" (сообщение) Вы бы дублировали также "самое старое" / "самое новое", чтобы я мог хоть как-то ориентироваться.
Creating debug logs for diagnostics: https://www.aqua-mail.com/troubleshooting/

The official FAQ: https://www.aqua-mail.com/faq/

Лог-файлы для диагностики: https://www.aqua-mail.com/ru/troubleshooting/

Вопросы и ответы: https://www.aqua-mail.com/ru/faq/

ruslangaripov

  • Newbie
  • *
  • Posts: 11
Я просто не понимаю почему дата / время самого старого сообщения вообще важны.

Потому что это "старое" сообщение является первоисточником, причиной появления группы сообщений. Если отображение даты первого (самого старого) сообщения в заголовке группы требует масштабного изменения принципов работы и/или переработки кода, то пусть остаётся как есть. Если нет -- буду не против новой настройки в установках.

Quote
Извините не совсем понятно - "последнее" это самое старое или самое новое?

Самое новое, поскольку у меня всё отсортировано от старого к новому.

Quote
Вы можете попробовать сформулировать более коротко?

Попробую :-)

> Какие именно у Вас настройки (сортировка "старые сначала" это я понял, и "при перелистывании пред. сообщения - старше" выключено это я тоже понял)

В общем-то все те, которые вы перечислили. Кроме них, насколько я помню, остальные отношения к сортировке не имеют. Но если нужно, я могу указать свои кокретные настройки.

> Пара простых сценариев что именно делаем, что получаем, что хотим

Попробую описать всё в "картинках".

  • Исходное состояние: "67940_step_0.png". Сортировка от самого старого наверху к самому новому внизу. Всё так, как я и хотел бы.
  • Открываем первое (самое старое) сообщение "simply awesome stuff": "67940_step_1.png".
  • Переходим к следующему (более старому) сообщению по порядку. В данном случае порядок хронологический, от более старого к более новому. Перейти к следующему сообщению можно удалив текущее сообщение (то есть сообщение, которое отображено на "67940_step_1.png"), либо "сдвинув" его справа налево: "67940_step_2.png".
  • После перехода открывается сообщение "Re: Trying to convert to LRA, running into an ICE (infinite reload loop)", полученное в 7:31 утра: "67940_step_3.png". Как видно на "67940_step_0.png" это сообщение является вторым в группе "Trying to convert to LRA, running into an ICE (infinite reload loop)", то есть самым новым сообщением в группе. Мне же необходимо, чтобы после третьего шага, я видел первое сообщение в группе, то есть самое старое, полученное в 4:41: "67940_step_4.png".
  • Если от сообщения на "67940_step_3.png" на предыдущем шаге перейти (удалив его или "сдвинув" справа налево) на следующее сообщение, то увидим "67940_step_4.png". Поскольку же я на предыдущем шаге хотел бы видеть именно "67940_step_4.png", то на этом этапе (то есть перейдя от "67940_step_4.png") я хотел бы видеть именно "67940_step_3.png", потому что оно более новое относительно "67940_step_4.png".

Теперь у меня получилось объяснить то, что я хочу получить?  :o

Добавлено позже Моё предложение в некоторой степени нарушает хронологический порядок перехода от сообщения к сообщению, но это нарушение допустимо именно из-за пересечения "границы" группы сообщений.

И ещё добавлено Таким образом, текущая реализация не учитывает порядок сортировки "от более старых к более новым" в пределах группы сообщений. Внутри группы сообщений при моих настройках переход идёт от более нового к более старому сообщению (понятие переход "определено" выше, во втором пункте).
« Last Edit: August 29, 2018, 12:49:07 pm by ruslangaripov »

Kostya Vasilyev

  • Hero Member
  • *****
  • Posts: 12740
Руслан,

Спасибо за подробное объяснение. Я завёл задачу чтобы не пропало - но пока что не понимаю, это реальная ошибка или просто работает не так как Вы хотели бы. Сочетание настроек у Вас довольно экзотическое.

Насчёт того чтобы показывать для цепочек в "нераскрытом" виде не самую новую дату а самую старую - это вряд ли, там действительно существующий код работает определённым образом.

Остальное попытаюсь осмыслить. Когда смогу.
Creating debug logs for diagnostics: https://www.aqua-mail.com/troubleshooting/

The official FAQ: https://www.aqua-mail.com/faq/

Лог-файлы для диагностики: https://www.aqua-mail.com/ru/troubleshooting/

Вопросы и ответы: https://www.aqua-mail.com/ru/faq/

ruslangaripov

  • Newbie
  • *
  • Posts: 11
Спасибо, Константин. Буду ждать :-)

Kostya Vasilyev

  • Hero Member
  • *****
  • Posts: 12740
Хмммм... Я сегодня очень старался понять эту проблему, также вот эту, кажется похожей:

https://www.aqua-mail.com/forum/index.php?topic=6818.0

В той теме есть новая сборка, не знаю поможет ли, но думаю стоит попробовать.

Также у меня появилась мысль - что то что Вы описываете, "что не так и чего хочется" - это Вам хочется какого-то "умного" поведения настройки "предыдущее старше", чтобы эта настройка, когда включена, "понимала" также и порядок сортировки (общий) и обратный порядок раскрытия цепочек.

Правильно?

Так вот, проблема в том что "предыдущее - старше" работает сильно проще. Она просто меняет "право / лево" в свайпах. И всё.

И совершенно не смотрит ни на общий порядок сортировки, ни на обратный порядок раскрытых цепочек.

( историческая справка - эти три настройки и код который их учитывает появились в разное время )

И если чтобы смотрела на цепочки ещё можно было бы сделать (хотя не очевидно) - то учитывать порядок сортировки будет сложно, так как порядок бывает не только по дате (обычный или обратный) а ещё несколько штук которые не имеют никакого отношения к датам.

Если мысленно убрать "предыдущее - старше" то у нас и так есть:

Общий порядок сортировки (2) * Прямой или обратный порядок раскрытия цепочек = 4 варианта.

Три из этих четырёх - лично для меня вообще совсем не интуитивны (я использую "новые сверху", по умолчанию).

Далее, эти 4 варианта * "предыдущее - старше" (или нет) = всё равно те же 4 варианта, только перелистывание идёт в другую сторону.

Если "предыдущее - старше" будет учитывать порядок сортировки (два, общий и раскрытых цепочек) - то лично я вообще уже не понимаю что и как там "должно быть", так как не понимаю и текущие 3 из 4 вариантов.

И плюс к этому - что делать если "общий" порядок сортировки скажем "сначала со звёздочкой" или там "вложениями", или даже "по имени отправителя" то есть он не имеет отношения к дате.
« Last Edit: October 05, 2018, 10:28:50 pm by Kostya Vasilyev, Aqua Mail »
Creating debug logs for diagnostics: https://www.aqua-mail.com/troubleshooting/

The official FAQ: https://www.aqua-mail.com/faq/

Лог-файлы для диагностики: https://www.aqua-mail.com/ru/troubleshooting/

Вопросы и ответы: https://www.aqua-mail.com/ru/faq/

ruslangaripov

  • Newbie
  • *
  • Posts: 11
Я сегодня очень старался понять эту проблему, также вот эту, кажется похожей:
https://www.aqua-mail.com/forum/index.php?topic=6818.0

Константин, да: моя проблема и проблема "Пролистывание писем в цепочке при сортировке от старого к новому" -- это одно и тоже.

Мы с Иваном описали одну и ту же историю, но небольшой разницей в наших настройках:

  • Settings / Message list / Default sort order: By date/time (reverse).
  • Settings / Conversations / Reverse when expanded: включено.
  • Settings / Message view / Previous message is older: у меня выключено, у Ивана включено.

† Я прошу прощения, если ошибся с именем.

Если обратиться к сообщению 41146 в указанной теме, то у меня порядок будет такой (листаем "по экрану" справа налево):

Code: [Select] [nofollow]
T1M2 -> T1M1 -> T2M2 -> T2M1 -> T3M3 -> T3M2 -> T3M1
Впрочем, поведение своих настроек я уже описал выше; здесь я их повторил просто для сравнения. Собственно ``Previous message is older'' я выключил только потому, чтобы на "выходе" из группы сообщений попадать в следующую (более новую по времени) группу, а не в предыдущую (более старую). Но за это я "расплачиваюсь" тем, что внутри группы сообщений я теряю сортировку "От более старого к более новому".

Но пока тестировал увидел ошибки подсветки текущего сообщения если используется интерфейс с двумя панелями (список сообщений слева / сообщения справа) при свайпах от одного к другому. Это если включён обратный порядок раскрытых цепочек.

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

Quote
Так вот, проблема в том что "предыдущее - старше" работает сильно проще. Она просто меняет "право / лево" в свайпах. И всё.

Это всё объясняет :-)

Константин, вы всё подробно объяснили, спасибо! Я соглашусь, что в рамках существующей схемы работы программы (я имею в виду эти три отдельные настройки) менять и исправлять ничего не стоит.

"Ноги" моей просьбы растут из почтового клиента Thunderbird, в котором нужная мне сортировка по дате и навигация по сообщениям/группам сообщений как в списке писем, так и в отдельном окне работает именно так, как я описал в своей "хотелке" в этой теме. В принципе, в силу описанной здесь же проблемы я давно пришёл к "разделению труда" между Aqua Mail и Thunderbird, то есть попросту в Aqua Mail избегаю работы с группами сообщений, а в основном использую для отправки заранее заготовленных черновиков и для "коротких" личных переписок. Поэтому выносим вердикт и этой теме, и теме Reverse ordering doesn't affect conversation view: "Закрыть в результате обсуждения" :-)

Kostya Vasilyev

  • Hero Member
  • *****
  • Posts: 12740
Re: Settings / Message view / Previous message is older: у меня выключено, у Ивана включено.

Да, это я видел.

Re: Мы с Иваном† описали одну и ту же историю

Мне кажется не совсем - Иван также описывает "зацикливание" - т.е. "свайп вперёд" и "свайп назад" не симметричны

Перечитал - да, то же самое. Спасибо что помогли разобраться.

Re: выносим вердикт

Отлично (для меня) - спасибо за понимание!

Когда слишком много настроек - то сложность начинает множиться по законам комбинаторики... И я даже не могу чётко представить что именно можно было бы поправить и при этом не сломать какую-то комбинацию которая сейчас работает (пускай неочевидно).

Creating debug logs for diagnostics: https://www.aqua-mail.com/troubleshooting/

The official FAQ: https://www.aqua-mail.com/faq/

Лог-файлы для диагностики: https://www.aqua-mail.com/ru/troubleshooting/

Вопросы и ответы: https://www.aqua-mail.com/ru/faq/