Pages: 1 2 3
[#] Парсер ссылок для Цезия
vit01(mira, 1) — All
2016-08-21 20:34:18


Позволит быстро открывать ссылки в браузере в режиме чтения сообщений.
При нажатии V выдаёт список ссылок и спрашивает нужную (Enter - отмена).
Если же нажать v (строчную), то сразу же открывает первую с конца (очень полезно в таких эхах, как lor-opennet, habra, mlp, piratemedia, vk и так далее).

Патч протестирован и готов к работе.

Установка:

1. Скачиваем https://ii-net.tk/ii/files/links-parser.patch и кладём файл в каталог с Цезием
2. Можно сделать git reset, если клавиши стоят андроидовские
3. Набираем git apply links-parser.patch
4. Накладываем патч для клавиш обычным способом
5. Если сидим на Termux, то добавляем в конфиг строку "browser termux-open-url"

// Зачем пишу здесь, а не в Issues?
// 1. Может пригодиться народу заранее, т.к. реально полезная штука
// 2. На гитхаб мало кто смотрит, а так хотя бы видно, что не бездельничаю

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-21 23:03:36


> Патч протестирован и готов к работе.

Спасибо за патч, но он пока требует некоторых доработок. У меня в слаквари при попытке открыть ссылку цезий сругался на отсутствие x-www-browser, потом открыл не тот браузер, который надо, а потом навалял кучу мусора поверх интерфейса. Не хочется пока такое допускать в апстриме. Буду думать и пробовать.

[#] Re: Парсер ссылок для Цезия
vit01(mira, 1) — Andrew Lobanov
2016-08-22 09:53:32


>> Хотя, если в конфиге указать браузер, то начинает нормально работать. Если ничего лучше не придумаю завтра, то пушну в апстрим.

AL> Как можно webbrowser заставить не гадить в stdout?

Ты точно уверен, что это stdout? Может быть, stderr? Вот последний как раз следовало бы подавить. А stdout нужен для работы текстовых браузеров.

Модуль webbrowser импортирует subprocess, поведение которого можно по идее переопределить в рантайме. Копай в эту сторону.

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-21 23:20:19


Хотя, если в конфиге указать браузер, то начинает нормально работать. Если ничего лучше не придумаю завтра, то пушну в апстрим.

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-22 10:40:54


> Ты точно уверен, что это stdout? Может быть, stderr? Вот последний как раз следовало бы подавить. А stdout нужен для работы текстовых браузеров.

Хм. Это я не подумал ага =)

> Модуль webbrowser импортирует subprocess, поведение которого можно по идее переопределить в рантайме. Копай в эту сторону.

Беглое гугление ничего не дало, так что я использовал костыль в виде перерисовки экрана после открытия ссылки.

2All: Фичу запилил по-своему, но спасибо Виктору за патч. Без него я бы ещё долго запиливал это дело.

Принцип работы такой: если в сообщении есть только один URL, то он откроется по V. Если же больше, то откроется менюшка выбора. Правда там пока нет элементарной проверки количества ссылок. Если элементов меню больше, чем высота терминала - 2, то цезий упадёт. Но это в будущем будет исправлено.

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

[#] Re: Парсер ссылок для Цезия
vit01(mira, 1) — Andrew Lobanov
2016-08-22 12:58:12


AL> Вот станет кто-нибудь пихать ссылку на основную новость в начало и тебе снова править клиент?

Хмм, это имеет смысл. Окей.

Но конкретно сейчас в этом плане у новостных эх принцип работы предсказуем.

AL> Суть в том, что если робот постит всё нормально, то одним нажатием ты открываешь единственную ссылку в сообщении. Возьмём, например, забробота. Нафига мне ссылки на картинки в сообщении? Тем более, что не на все. Или ссылки на сторонние ресурсы тем более, что я забуду номера интересующих меня ссылок к концу статьи.

Боты могут постить не только картинки, но и ссылки на другие новости, на Википедию и куда угодно. Увы, но заставить авторов статей публиковать всё в 100% идеальном формате мы не можем. Только если дополнительные фильтры на RSS-обработчик пихать, не более.

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

AL> В качестве примера могу привести пару примеров из Qt-клиента, которые я видел весной: трудночитаемый заголовок сообщения (потому что он визуально плохо отделяется от текста), стена новых сообщений. Это просто на вскидку.

Заголовок сообщения - это сабж? Тогда мог бы пожаловаться, я бы исправил. А "стена новых сообщений" - это как раз вкусная фича, если с моей точки зрения подходить. Опять же, сколько людей, столько и мнений.

AL> P.S.: Появлению форка препятствовать не стану, конечно. Но как уже писал, не лучше ли написать нативный клиент для андроидов?

Вот это как раз самый интересный вопрос. Знаешь, почему я не пишу андроид-клиент? Нет, не угадал, не из-за Java...

Из-за Vim. Да, да! Как представляю себе, что придётся набирать сообщение в стандартном андроидовском TextEdit вместо Вима, сразу такая тоска нападает. Ведь любое неверное нажатие по тачскрину "портит текст". И позиционирование курсора до жути неудобное. Поэтому и пришлось приспосабливать как-то Цезий. Может быть, есть какой-то более удобный вариант?

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-22 11:57:16


> О нет! Придётся мне и вправду форкаться в таком случае.

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

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

В качестве примера могу привести пару примеров из Qt-клиента, которые я видел весной: трудночитаемый заголовок сообщения (потому что он визуально плохо отделяется от текста), стена новых сообщений. Это просто на вскидку.

Все хотят что-либо изменить и никому нельзя угодить на 100%. Поэтому только жёсткая диктатура работает в разработке софта. В качестве примеров могу привести Linux и Instead =)

> 1. Сначала тоже хотел сделать менюшку, но остановился на plaintext-варианте по причине урезания урлов. Да, при твоём варианте длинные ссылки видно не полностью. Уже проверил.

Так оно. Но понять что выбрать можно вполне.

> 2. Ну зачем было убирать возможность открытия последней ссылки? В половине новостных эх именно это экономит время, потому что только она ведёт на оригинальный пост. А теперь мне надо будет открывать меню, скроллить в конец и нажимать Enter.

Потому что не надо подстраиваться под конкретного робота. Вот станет кто-нибудь пихать ссылку на основную новость в начало и тебе снова править клиент? Глупо. К тому же постить ссылки помимо той, что ведёт на статью тоже странно для новости. В случае же использования ссылок человеком, а не роботом, длинные ссылки вставляются редко. Да и хорошим тоном в любой сети является укорачивание ссылок. Лично я не хочу потакать несоблюдению элементарных правил сетевого этикета.

> Хотелось как лучше, а получилось...

А получилось ещё лучше. Не надо лепить костыли, нарушающие целостность интерфейса. Только и всего. Я прекрасно понимаю для чего ты всё это хочешь и внедряешь, но я никогда не заявлял и продолжаю не заявлять андроид как целевую платформу. Возможность использования цезия на андроиде есть, но в любом случае это использование люто неудобное.

> Суть патча была, чтобы одним нажатием перейти на полную версию новости. А если вдруг захотелось на какую-то специфичную ссылку из текста, то чуть больше, чем одним.

Суть в том, что если робот постит всё нормально, то одним нажатием ты открываешь единственную ссылку в сообщении. Возьмём, например, забробота. Нафига мне ссылки на картинки в сообщении? Тем более, что не на все. Или ссылки на сторонние ресурсы тем более, что я забуду номера интересующих меня ссылок к концу статьи.

Мы можем идти разными путями при написании софта. Можем наступать на грабли интернета или делать сразу нормально и подгонять под простое и адекватное поведение роботов.

// Вышесказанное на истину не претендует, а всего лишь является моим скромным мнением.

P.S.: Появлению форка препятствовать не стану, конечно. Но как уже писал, не лучше ли написать нативный клиент для андроидов?

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-21 23:19:13


> Патч протестирован и готов к работе.

Спасибо за патч, но он пока требует некоторых доработок. У меня в слаквари при попытке открыть ссылку цезий сругался на отсутствие x-www-browser, потом открыл не тот браузер, который надо, а потом навалял кучу мусора поверх интерфейса. Не хочется пока такое допускать в апстриме. Буду думать и пробовать.

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — All
2016-08-22 09:28:18


> Хотя, если в конфиге указать браузер, то начинает нормально работать. Если ничего лучше не придумаю завтра, то пушну в апстрим.

Таки иногда рисует мне "В текущем сеансе браузера создано новое окно.", ломая всё отображение. Причём уже после openLink(...) и перерисовке интерфейса. Как можно webbrowser заставить не гадить в stdout?

[#] Re: Парсер ссылок для Цезия
vit01(mira, 1) — Andrew Lobanov
2016-08-22 11:33:57


AL> Принцип работы такой: если в сообщении есть только один URL, то он откроется по V. Если же больше, то откроется менюшка выбора. Правда там пока нет элементарной проверки количества ссылок. Если элементов меню больше, чем высота терминала - 2, то цезий упадёт. Но это в будущем будет исправлено.

О нет! Придётся мне и вправду форкаться в таком случае.

1. Сначала тоже хотел сделать менюшку, но остановился на plaintext-варианте по причине урезания урлов. Да, при твоём варианте длинные ссылки видно не полностью. Уже проверил.

2. Ну зачем было убирать возможность открытия последней ссылки? В половине новостных эх именно это экономит время, потому что только она ведёт на оригинальный пост. А теперь мне надо будет открывать меню, скроллить в конец и нажимать Enter.

Хотелось как лучше, а получилось...

Суть патча была, чтобы одним нажатием перейти на полную версию новости. А если вдруг захотелось на какую-то специфичную ссылку из текста, то чуть больше, чем одним.

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-22 13:16:01


> Боты могут постить не только картинки, но и ссылки на другие новости, на Википедию и куда угодно. Увы, но заставить авторов статей публиковать всё в 100% идеальном формате мы не можем. Только если дополнительные фильтры на RSS-обработчик пихать, не более.

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

> Понимаю твои слова про сетевой этикет, но обходные пути всё равно неизбежны. Ничего, напишу ещё немного кода для этого, пока что такие вещи позволить себе можно.

Можно включить открытие последней ссылки в сообщении, но это выглядит как некий костыль.

> Заголовок сообщения - это сабж? Тогда мог бы пожаловаться, я бы исправил.

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

> А "стена новых сообщений" - это как раз вкусная фича, если с моей точки зрения подходить. Опять же, сколько людей, столько и мнений.

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

> Вот это как раз самый интересный вопрос. Знаешь, почему я не пишу андроид-клиент? Нет, не угадал, не из-за Java...

Я всё на kivy смотрю.

> Из-за Vim. Да, да! Как представляю себе, что придётся набирать сообщение в стандартном андроидовском TextEdit вместо Вима, сразу такая тоска нападает. Ведь любое неверное нажатие по тачскрину "портит текст". И позиционирование курсора до жути неудобное. Поэтому и пришлось приспосабливать как-то Цезий. Может быть, есть какой-то более удобный вариант?

Отчасти согласен. С другой стороны, имею опыт использования HotdogEd (клиент для FidoNET) уже несколько месяцев и вполне меня устраивает такой метод ввода. Хотя, я emacs предпочитаю =)

[#] Android клиент
btimofeev(tavern,13) — vit01
2016-08-22 19:56:23


vit01> Ещё проблема стоит в том, что этим клиентом кроме меня опять никто пользоваться не будет. Поэтому на реальную помощь (пуллреквесты тем более) рассчитывать не приходится.

Я бы поучавствовал. Но тут нужно сначала спроектировать интерфейс для андроида, т.к. вариантов можно придумать много, но не все понравятся каждому.

[#] Re: Android клиент
vit01(mira, 1) — btimofeev
2016-08-22 20:23:20


btimofeev> Я бы поучавствовал. Но тут нужно сначала спроектировать интерфейс для андроида, т.к. вариантов можно придумать много, но не все понравятся каждому.

Лучшие дизайнеры с самыми кривыми руками руками почесали репу, чтобы сделать вот такой макет:

https://ii-net.tk/ii/files/nkNjC4knvbGSn3WAm9HM.jpg

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-22 20:27:34


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

[#] Re: Парсер ссылок для Цезия
Andrew Lobanov(tavern,1) — vit01
2016-08-22 16:26:29


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

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

[#] Re: Парсер ссылок для Цезия
vit01(mira, 1) — Andrew Lobanov
2016-08-22 16:18:06


>> Из-за Vim. Да, да! Как представляю себе, что придётся набирать сообщение в стандартном андроидовском TextEdit вместо Вима, сразу такая тоска нападает. Ведь любое неверное нажатие по тачскрину "портит текст". И позиционирование курсора до жути неудобное. Поэтому и пришлось приспосабливать как-то Цезий. Может быть, есть какой-то более удобный вариант?

AL> Отчасти согласен. С другой стороны, имею опыт использования HotdogEd (клиент для FidoNET) уже несколько месяцев и вполне меня устраивает такой метод ввода. Хотя, я emacs предпочитаю =)

// У меня вот Emacs в связке с CutieFeed на десктопе отлично справляется. На андроиде - только Vim.

Можно вообще сделать так, чтобы исходящие сохранялись во внутреннюю память и открывались в системном редакторе. А на вторую сторону поставить какой-нибудь VimTouch. Но оригинальный Vim в связке с Termux и с небольшим подпилом всё равно удобнее.

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

[#] Re: Клиентописательство
vit01(mira, 1) — geomaster
2016-08-22 19:21:48


geomaster> Господа клиентописатели! Нативный клиент будет востребован владельцами андроида ниже 5-ой версии, т.к. там нет возможности поставить Termux и плюшки.
geomaster> Могу предложить потестировать в таком окружении - Andriod 4.4, MIUI 8, 4.7" экран.

Рано ещё тестировать :)
Во-первых, ещё ни строчки кода не написано, во-вторых, никто пока толком не знает даже, как этот нативный клиент выглядеть будет.
На андроиде удобнее всего реализовать сначала сам UI, а затем уже функционал поверх него.

Продумываю тут, как лучше всего сделать навигацию по эхе и не могу придумать. Хотелось бы сделать как в CutieFeed, чтобы можно было смотреть эху в виде списка. Но с точки зрения пальцетыкания и размеров экрана это не всегда оптимально.

Идеи в виде примерных набросков гуя принимаются.

[#] Re: Парсер ссылок для Цезия
geomaster(mira, 23) — Andrew Lobanov
2016-08-22 16:57:13


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

AL> Нативный клиент под андроид востребован как минимум мной, но я не знаю Java от слова совсем и на серьёзную помощь от меня рассчитывать не стоит. Хотя, может и поуслужит поводом восполнить этот пробел.
Господа клиентописатели! Нативный клиент будет востребован владельцами андроида ниже 5-ой версии, т.к. там нет возможности поставить Termux и плюшки.
Могу предложить потестировать в таком окружении - Andriod 4.4, MIUI 8, 4.7" экран. С линуксом знаком, logcat использовал.

[#] Re: Android клиент
geomaster(mira, 23) — vit01
2016-08-23 08:41:35


У HotdogEd`а позитуринского неплохой дизайн. Можно взять его как основу.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — geomaster
2016-08-23 09:57:06


> У HotdogEd`а позитуринского неплохой дизайн. Можно взять его как основу.

У сосиски очень хороший дизайн. Правда планшетный не тыкал, бо не на чем, но на телефоне вполне себе вещь.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — btimofeev
2016-08-23 11:38:58


> Мне кажется вы издеваетесь. Судя по скринам это какой-то ужас родом из android 2.

Выглядит он действительно как андроид 2 (кстати, на 2.3 запускается). Но юзабилити у него очень хорошее. И вот это меня в его дизайне прельщает. А какого цвета кнопочки меня волнует мало =)

[#] Re: Android клиент
vit01(mira, 1) — btimofeev
2016-08-23 08:42:46


btimofeev> В верхней части переключение между нодами с помощью нажатия на кружки или нажатия на имя ноды и выбора другой из списка.

Кружки здесь совсем не в тему. А если у тебя 5 штук станций, например? Так что лучше второй вариант.

btimofeev> Далее идут список эх с количеством прочтенных/непрочтенных сообщений и опциями

Список эх - слишком жирно для nav drawer'а. Если у человека по 40 эх в подписках, то будет очень неудобно прокручивать.

btimofeev> Тут же можно сделать разделы черновики, отправленные, избранное и т.п. Ну и в конце настройки.

Да, а вот это как раз нужно засунуть именно туда.

Правда, опять же вопрос, как в другие диалоги (а именно эхочиталка) это удобно интегрировать.

btimofeev> сразу попадаем на список сообщений выбранной эхи. По нажатию на элемент списка открывается сообщение. Свайп влево/вправо - переход к предыдущему/следующему сообщению.

Вот подобная фича в стандартном Email-клиенте андроида очень удобная. Как раз предполагал что-то подобное.

[#] Re: Android клиент
btimofeev(tavern,13) — Andrew Lobanov
2016-08-23 11:02:23


>> У HotdogEd`а позитуринского неплохой дизайн. Можно взять его как основу.
AL> У сосиски очень хороший дизайн. Правда планшетный не тыкал, бо не на чем, но на телефоне вполне себе вещь.

Мне кажется вы издеваетесь. Судя по скринам это какой-то ужас родом из android 2.

[#] Re: Android клиент
vit01(mira, 1) — geomaster
2016-08-23 08:57:29


geomaster> У HotdogEd`а позитуринского неплохой дизайн. Можно взять его как основу.

Уже смотрел на скриншоты. Планшетный интерфейс там хорош. Если мы позаботимся о масштабировании, то как раз что-то подобное получится.

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-23 11:02:23


vit01> Кружки здесь совсем не в тему. А если у тебя 5 штук станций, например? Так что лучше второй вариант.

Это является стандартным поведением для material дизайна. Есть эти круги где ты можешь одним тапом переключаться между последними использованными аккаунтами и ниже раскрывающийся список со всеми аккаунтами (но уже в 2 тапа). Вот библиотечка реализующая все это, можешь посмотреть скрины или скачать демо: https://github.com/mikepenz/MaterialDrawer

vit01> Список эх - слишком жирно для nav drawer'а. Если у человека по 40 эх в подписках, то будет очень неудобно прокручивать.

Тут конечно спорный вопрос, нужно сделать пару тестовых демок и опробовать как будет удобнее.

Я к примеру пользуюсь программой для чтения rss FeedMe, в nav drawere у меня 70 подписок всего, но их можно группировать по папкам и отдельной кнопкой скрывать/показывать подписки в которых все сообщения прочитаны. Постоянно у меня отображаются только подписки с непрочитанными сообщениями и это очень удобно. Но там так же сделано, что навдравер открыт сразу при запуске приложения и по нажатию кнопки back так же открывается навдравер, так что поведение не стандартное.

Можно, конечно, список эх вынести на главный экран, это будет более логично. Но потребуется больше переходов: экран со списком эх, по тапу открывается экран со списком сообщений, по тапу открывается сообщение. Но как это будет выглядеть на планшетах? Список сообщений и одно выбранное сообщение можно разместить рядом на одном экране, а список эх куда деть? В варианте с навдравером ты просто открываешь навдравер и вот тебе список эх на том же экране. Более того: тут же у тебя и список нод и черновики и тд и тп. Количество лишних переходов между экранами уменьшается.

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-23 00:15:01


Я предлагаю список нод и эх вынести в navigation drawer. Потипу как это сделано в gmail. Вот такого типа https://www.dropbox.com/s/vempgn7emt19jqe/share_tmp_4452.png

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

Далее идут список эх с количеством прочтенных/непрочтенных сообщений и опциями (типа удалить эху, удалить сообщения в эхе и т.п.). Тут же можно сделать разделы черновики, отправленные, избранное и т.п. Ну и в конце настройки.

По закрытию nav driver'а сразу попадаем на список сообщений выбранной эхи. По нажатию на элемент списка открывается сообщение. Свайп влево/вправо - переход к предыдущему/следующему сообщению.

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-29 16:38:44


Ах да, самое главное - исходники.

https://ii-net.tk/IDECmobile/

На Гитхаб, конечно же, залью, но до первой доступной версии пусть здесь побудет.

[#] Re: Android клиент
vit01(mira, 1) — btimofeev
2016-08-23 11:41:29


btimofeev> Есть эти круги где ты можешь одним тапом переключаться между последними использованными аккаунтами и ниже раскрывающийся список со всеми аккаунтами (но уже в 2 тапа).

Хмм. Посмотрел скрины библиотеки, вроде бы выглядит логично. Правда, вопрос, как это в конфиге хранить.

btimofeev> Можно, конечно, список эх вынести на главный экран, это будет более логично. Но потребуется больше переходов: экран со списком эх, по тапу открывается экран со списком сообщений, по тапу открывается сообщение. Но как это будет выглядеть на планшетах? Список сообщений и одно выбранное сообщение можно разместить рядом на одном экране, а список эх куда деть? В варианте с навдравером ты просто открываешь навдравер и вот тебе список эх на том же экране. Более того: тут же у тебя и список нод и черновики и тд и тп. Количество лишних переходов между экранами уменьшается.

Список эх на планшетах можно разместить в дополнительном navdrawer-е справа, который будет открываться свайпом.
Если человек читает какую-то эху, список эх ему в данный момент не очень-то нужен.

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

Ладно, надо хотя бы что-то попробовать сделать для начала.
Сижу тут в андроид студии и мучаюсь с попытками запихнуть данные в spinner, находящийся внутри navigation drawer. Как-то по-хитрому к нему надо обращаться, не по id.

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-29 16:28:30


Никто ещё не забыл про сабж?

На данный момент сделано:

1. Фетчер (поддерживается /x/c и расширенный /u/e + остальные годные фишки, включая обрезку индекса)
2. API для работы с БД (пока только SQLite) по мотивам транспортов PHP-ноды. Позволит делать кучу крутых штук, включая экспорт/импорт, статистику, очистку базы и прочее, на пару строк кода.

Компилируется нормально, warning'ов почти нет, но пока что ничего из этого не тестировал. Пользоваться клиентом ещё нельзя.

С чем требуется помощь:

1. Система конфигурации и настроек (стандартного SharedPreferences для клиента уже мало, а JSON в джаве очень трудно разгребать)
2. GUI. Как ни крути, но дизайн пишется фрагментами и по большей части вручную (XML).

Sender и прочее, конечно же, реализую, но уже после того, как будут готовы хотя бы базовые возможности.

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-29 19:51:46


vit01> На Гитхаб, конечно же, залью, но до первой доступной версии пусть здесь побудет.

Может лучше сразу на гитхаб? Там все же удобнее.

[#] Re: Android клиент
btimofeev(tavern,13) — btimofeev
2016-08-30 07:35:19


vit01>> На Гитхаб, конечно же, залью, но до первой доступной версии пусть здесь побудет.

btimofeev> Может лучше сразу на гитхаб? Там все же удобнее.

Или хотя бы в архив запакуй, ибо wget мне рекурсивно 10 минут что-то там качал, а в ииоге половины файлов нет и проект не компилируется. Но лучше на гитхаб.

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-23 12:17:23


Что-то вроде такого: https://ii-net.tk/ii/files/xj5tLWbkFw5JevtsTY16.png

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-30 20:45:36


vit01> Готово: https://github.com/vit1-irk/idec-mobile

Спасибо, буду изучать.

vit01> 3. Нужен Custom ListViewAdapter для списка сообщений в эхе.

Здесь лучше через RecyclerView, он не хранит весь список в памяти, а подгружает по необходимости, но работать с ним сложнее и "из коробки" имеет меньше фич.

[#] Re: Android клиент
vit01(mira, 1) — btimofeev
2016-08-31 04:54:58


btimofeev> Я тут накатал демку как я примерно представляю себе nav drawer в этом приложении.

Ага, посмотрел. Представляю себе его как раз так же. Правда, со всякими значками и с дизайном возиться пока лень (лишь бы работало).

Дал тебе RW-доступ в репозиторий; коль желание есть, можешь прикрутить самостоятельно.

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-30 20:39:26


vit01> 1. Система конфигурации и настроек (стандартного SharedPreferences для клиента уже мало, а JSON в джаве очень трудно разгребать)

А в чем проблема с SharedPreferences (я с ними никогда не работал)?

А с json просто работать через библиотеку https://github.com/google/gson Я в одной программе её использовал, она объект конвертирует в json или наоборот - json в объект. Но я смотрю ты и стандартными средствами java примерно так же сделал.

[#] Re: Android клиент
btimofeev(tavern,13) — vit01
2016-08-31 01:56:44


Я тут накатал демку как я примерно представляю себе nav drawer в этом приложении. Apk можно скачать по ссылке https://www.dropbox.com/s/if3winyztues63b/material-drawer-test.apk

Как вариант можно убрать круги и сделать верхнюю часть меньшей высоты.

[#] Re: Android клиент
vit01(mira, 1) — btimofeev
2016-08-30 08:16:50


Готово: https://github.com/vit1-irk/idec-mobile

1. Разобрался, как сделать удобное хранение и подгрузку конфига.
2. Сделал активити настроек с предыдущим пунктом. Вроде работает.
3. MainActivity теперь успешно подгружает все станции и переключает список эх при выборе станции из менюшки.

С чем есть проблемы:

1. Нужен виджет редактирования списка эх. Что-то вроде ListView, только с возможностью править/удалять/добавлять элементы и перемещать их вверх/вниз.
2. Обязательно нужна DebugActivity для работы фетчера
3. Нужен Custom ListViewAdapter для списка сообщений в эхе.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-08-31 06:53:19


Уи-и-и! Какие вы клёвые. Нативный клиент под андроид это ж прям сказка =)

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-31 09:59:10


Итак, текущий прогресс:

1. Появилась DebugActivity
2. Наконец-то работает фетчер!
3. Исправлены кое-какие баги в интерфейсах, связанные с опечатками и с моим незнанием Java

Тем, кто любит смотреть на скриншоты, будет пока только это:

https://ii-net.tk/ii/files/AUgAQ7fULbo1WrXVADm2.png
https://ii-net.tk/ii/files/zQRRcxAASQY7HzSmpCRY.png

На Гитхабе оно уже есть, конечно же.

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-31 17:06:43


А, и ещё четвёртое: теперь можно почистить одним кликом кэш /x/c и всю базу данных сообщений целиком, но это так, мелочи для дебага.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-08-31 10:50:21


AL>> А будет возможность читать по одному сообщению на экран и переключаться между ними свайпом?

> Да, это планируется. Только вот надо сначала базовые вещи до ума довести.

Я на всякий случай спросил. На тему базовых вещей я даже в цезии долго возился. Адекватная прокрутка при выборе конференций, отрисовка сообщений, разбиение на строки по ширине терминала. Вот это вот всё.

> Например, фетчер сохраняет сообщения в чёрт знает каком порядке, поэтому приходится сортировать их по дате.

Кстати, странно. Отпишись как разберёшься с проблемой. Интересно в чём причина.

> Ещё в дебаг-окне без автопрокрутки жизнь очень печальная.

Это да.

> И окно конфига для станций надо реализовать как можно скорее.

Вот это больная мозоль у меня. До сих пор не могу решиться взять и написать это для цезия.

> Если буду писать клиент каждый день, то за месяц, наверное, юзабилити какое-то появится :)

Да не суть. Хоть в подарок на НГ %)

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-08-31 10:21:03


> 1. Появилась DebugActivity
> 2. Наконец-то работает фетчер!
> 3. Исправлены кое-какие баги в интерфейсах, связанные с опечатками и с моим незнанием Java

Круть!

> Тем, кто любит смотреть на скриншоты, будет пока только это:

> https://ii-net.tk/ii/files/zQRRcxAASQY7HzSmpCRY.png

А будет возможность читать по одному сообщению на экран и переключаться между ними свайпом?

[#] Re: Android клиент
vit01(mira, 1) — Andrew Lobanov
2016-08-31 07:07:52


Да ты чего, он ещё настолько сырой, что ни отобразить ничего (кроме списка эх), ни зафетчить пока не может :)

Пока только терпение; может быть, через месяц что-то готово будет.

// прямо сейчас сижу и шаманю над фетчером

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-31 17:01:01


Что нового:

1. Работает настройка таймаута для сетевых соединений
2. Сделал окно настроек станций (пока нельзя добавлять/удалять сами станции и править список эх, но остальное делать можно) как точную копию подобного из CutieFeed
3. Товарищ btimofeev приделал крутой Navigation Drawer с иконками и нескучными обоями. Спасибо за Pull Request!

И снова скриншоты для наглядности:

https://ii-net.tk/ii/files/vSojhORudrzsetuuhmIb.png
https://ii-net.tk/ii/files/z0Wtpy8382zM6QIuXpWB.png

[#] Re: Android клиент
vit01(mira, 1) — Andrew Lobanov
2016-08-31 10:36:47


AL> А будет возможность читать по одному сообщению на экран и переключаться между ними свайпом?

Да, это планируется. Только вот надо сначала базовые вещи до ума довести.

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

Если буду писать клиент каждый день, то за месяц, наверное, юзабилити какое-то появится :)

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-08-31 07:53:17


> Да ты чего, он ещё настолько сырой, что ни отобразить ничего (кроме списка эх), ни зафетчить пока не может :)

Главное, что процесс пошёл =)

> Пока только терпение; может быть, через месяц что-то готово будет.

Месяц это скоро. Есть повод порадоваться, что вообще в обозримом будущем оно будет.

> // прямо сейчас сижу и шаманю над фетчером

А я тут некоторые баги в цезии пофиксил. Правда баг в фетчере/мейлере не могу понять откуда берётся (когда из-за недоступности ноды они решают, что нода ответила msg ok и трут toss-файлы).

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-09-02 18:06:02


Уже соскучились по коммитам? Только что отправил в клиент новую годную фичу - универсальное окошко для редактирования списка эх.

Может править как оффлайн-эхи, так и эхи какой-нибудь станции.

Чтобы поправить список, не надо ходить далеко в настройки: просто делаете долгое нажатие на главном экране и попадаете в этот диалог. Изменения отображаются сразу же, наглядно, прямо как в CutieFeed. Это гораздо удобнее, чем было раньше в клиенте ntkrnlmp.exe из 2014 года.

Скриншот:
https://ii-net.tk/ii/files/nw7vOCKxCpTzoyX9legn.png

На сегодня все возможности конфигурирования полностью готовы, и я могу сосредоточиться на главном функционале клиента.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-08-31 18:18:55


> Что нового:

> 1. Работает настройка таймаута для сетевых соединений
> 2. Сделал окно настроек станций (пока нельзя добавлять/удалять сами станции и править список эх, но остальное делать можно) как точную копию подобного из CutieFeed
> 3. Товарищ btimofeev приделал крутой Navigation Drawer с иконками и нескучными обоями. Спасибо за Pull Request!

Выглядит очумительно. Прямо глаз радуется.

[#] Re: Android клиент
Andrew Lobanov(tavern,1) — vit01
2016-09-06 16:47:34


> 1. Починил баг с неправильной сортировкой и с "пропажей" сообщений. Как оказалось, фетчер здесь совершенно ни при чём. Проблема была из-за логической ошибки при запросе данных из Cursor (смотреть файл SqliteTransport.java). Ошибка очень глупая, и стыдно как-то даже.

Фигня. Все делают ошибки. И все рано или поздно делают глупые ошибки. А я особенно (история коммитов цезия тому доказательство) =)

> 2. Написал фрагмент для просмотра сообщения и сделал то самое офигенное переключение свайпом! (через ViewPager)

Аааа! Переключение свайпом это офигенно да =)

> И самое главное - скриншоты:

Красотень. Где-нить собраднные apk-шки можно глянуть?

[#] Re: Android клиент
vit01(mira, 1) — vit01
2016-08-31 20:31:01


И вдогонку:

1. Причесал и улучшил код для Navigation Drawer'а, вынес некоторые моменты и сделал обновление списка станций по onResume()
2. Теперь можно добавлять и удалять станции!

Дальше надо бы сделать виджет редактирования списка эх. И вот тут-то вряд ли поможет изобретение велосипеда.

Pages: 1 2 3