В связи с ожидаемой загрузкой на работе ближайшие 2-3 недели и соответственно отсутствием возможности думать для себя, решил выложить в доступ то, что написано к этому моменту. Добровольные тестеры, критика, пожелания и возгласы одобрения приветствуются. Предлагаю отписываться в этой ветке. И так:
По софтине мое краткое описание:
Требование: приличный андроидофон, от Android 2.1 и с внутренней sdcard на 16гигов. У меня Samsung Galaxy 1 на Android 2.3 и еще x86 VBox тоже A 2.3. Много свободного места на sdcard. Много быстрого и дешевого инета. Первую загрузку от начала времен стоит провести дома с WiFi на анлим канале. Последующие загрузки берут всего по несколько сообщений и живут на 3G.
Первое включение.
Софтина сразу станет грузить юзеров и никак не извещать об их количестве (минут 20-40, зависит от вашего домашнего канала и телефона). В это время можно подписаться на какой-то форум- все равно все юзеры грузятся перед сообщениями форума.
Не важна последовательность выбора форума- можно отписаться от чего-то позже и подписаться через какое-то время, оно докачает сообщения с самого старого в базе, а не сначала. Не уверен, что янус так может, т.к. я с ним плотно не работал. Можно ввести свой логин с паролем- по идее они отсылаются на каждом запросе, но не уверен что это обязательно для только выгрузки сообщений.
Память на /sdcard внутренней нужна. Много гигов. После перезапуска софтина очень долго тупит- это подключается H2, она что-то там проверяет наверно.
Сорцы пока никуда не выкладывал. Закачка apk здесь.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Сорцы пока никуда не выкладывал. Закачка apk здесь.
Лучше сразу положить на github
Тогда есть шанс, что кто-то что-то даже допишет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Сорцы пока никуда не выкладывал. Закачка apk здесь. WH>Лучше сразу положить на github WH>Тогда есть шанс, что кто-то что-то даже допишет.
Присоединяюсь к просьбе выложить исходники на github. Сам искал клиента РСДН для Андроида.
Здравствуйте, Sergey K, Вы писали:
SK>Здравствуйте, WolfHound, Вы писали:
WH>>Здравствуйте, ArtemGorikov, Вы писали:
AG>>>Сорцы пока никуда не выкладывал. Закачка apk здесь. WH>>Лучше сразу положить на github WH>>Тогда есть шанс, что кто-то что-то даже допишет.
SK>Присоединяюсь к просьбе выложить исходники на github. Сам искал клиента РСДН для Андроида.
У меня просьба к желающим иметь клиента на Андроиде- нужна обратная связь и статистика.
-У кого работает, у кого не работает.
-Модель телефона, версия ОС.
-Лог из .rsdn.home, лог (копи-паста) из LogCat.
-Иконка для программы?
-Обсуждение нужных фич.
Вот фичи, что я считаю нужно мне:
— Редактор для ответов WYSIWYG;
— Обратный индекс для мгновенного поиска встречающихся слов по всей базе.
AG>У меня просьба к желающим иметь клиента на Андроиде- нужна обратная связь и статистика. AG>-У кого работает, у кого не работает.
Не работает. Сначала появляется нотификация типа "скачиваю новые сообщения с РСДН", потом белый экран, наверху надпись "Not selected", если ткнуть, то появляется пустое (белое) окно с заголовком "Choose forum".
AG>-Модель телефона, версия ОС.
Samsung Galaxy S2, CyanogenMod9-nightly (Android 4.0.4)
AG>-Лог из .rsdn.home,
Какой .rsdn.home? Объясни для чайников, пожалуйста.
AG>... лог (копи-паста) из LogCat.
Здравствуйте, Sergey K, Вы писали:
SK>Не работает. Сначала появляется нотификация типа "скачиваю новые сообщения с РСДН", потом белый экран, наверху надпись "Not selected", если ткнуть, то появляется пустое (белое) окно с заголовком "Choose forum".
Первый экран- "MessagesActivity", он по идее аналогичен первому окну в gmail. Вверху кнопка- выбор из подписавшихся форумов. Чтобы подписаться, нужно нажать кнопку "меню" и в меню выбрать "форумы". Также в меню не можно выбрать "идентификация" и ввести пароль. Хотя скачивает без пароля. После этого будет скачивать всех юзеров и все сообщения из подписанных форумов. На этом этапе нужно подождать- юзеров много, и первые сообщения начнут появляться только когда всех юзеров закачает.
За лог спасибо. Самая интересная для меня часть- это упоминание исключений и "Sending lastRowVersion : AAAAAAAAAAA=". lastRowVersion- метка на запросе на юзеров. Ему должна соответствовать запись в логе "Received lastRowVersion ........=; Sending lastRowVersion : .<принятая от rsdn метка>.=". Если пары не приходят- похоже что такая же ошибка что у другого чела с HTC Raider 4G : A2.3.7.
У меня androbox 2.3.7 и samsung galaxy 1 : A2.3.3, все закачивается. Возможно есть смысл попробовать с другим androbox.
SK>Какой .rsdn.home? Объясни для чайников, пожалуйста.
База лежит в .../sdcard/.rsdn.home. Чтобы видеть скрытые папки на карточке, надо включить опцию в файл-менеджере телефона.
Да, похоже по логу что после "Sending lastRowVersion : AAAAAAAAAAA=" ответа не приходит никогда. Можете подождать 2 минуты и прислать лог 2 минут полета? В http- запросе я выставил тайм-аут в 1 минуту с учетом нестабильной связи на 3G.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Здравствуйте, Sergey K, Вы писали:
SK>>Не работает. Сначала появляется нотификация типа "скачиваю новые сообщения с РСДН", потом белый экран, наверху надпись "Not selected", если ткнуть, то появляется пустое (белое) окно с заголовком "Choose forum".
AG>Первый экран- "MessagesActivity", он по идее аналогичен первому окну в gmail. Вверху кнопка- выбор из подписавшихся форумов. Чтобы подписаться, нужно нажать кнопку "меню" и в меню выбрать "форумы". Также в меню не можно выбрать "идентификация" и ввести пароль. Хотя скачивает без пароля. После этого будет скачивать всех юзеров и все сообщения из подписанных форумов. На этом этапе нужно подождать- юзеров много, и первые сообщения начнут появляться только когда всех юзеров закачает.
Выделил интересное. Похоже что логин-пароль необходим. Я удалил программу вместе с ее настройками (база с sdcard системой не удаляется), установил опять. И она перестала закачивать новые сообщения. Хотя у меня и есть список форумов- он уже был закачан.
Попробуйте вот что:
1) в первом экране выберите меню->идентификация- логин, пароль, сохранить.
2) опять вернулась в первый экран. Если еще вверху значок синхронизации- убейте процесс. Если нет- переходите к п.3
3) запустите программу, если запущена- меню-> обновить, меню->форумы.
И отпишитесь здесь, что в логах если не работает. Есть ли список в меню->форумы. Есть ли активность в логе пары "Sending lastXXXXXXX -> Received lastXXXXXXX -> Sending lastXXXXXXX -> ....."
Здравствуйте, ArtemGorikov, Вы писали:
AG>Попробуйте вот что: AG>1) в первом экране выберите меню->идентификация- логин, пароль, сохранить. AG>2) опять вернулась в первый экран. Если еще вверху значок синхронизации- убейте процесс. Если нет- переходите к п.3 AG>3) запустите программу, если запущена- меню-> обновить, меню->форумы.
Заработало в принципе, выбрал этот форум (RSDN@Home). Оно пошло скачивать все сообщения, начиная с первобытных времён. Я к такому повороту событий оказался не готов, тем не менее дал ему скачать где-то мегабайтов 300. Потом моё терпение кончилось, и я его убил.
Здравствуйте, Sergey K, Вы писали:
SK>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Попробуйте вот что: AG>>1) в первом экране выберите меню->идентификация- логин, пароль, сохранить. AG>>2) опять вернулась в первый экран. Если еще вверху значок синхронизации- убейте процесс. Если нет- переходите к п.3 AG>>3) запустите программу, если запущена- меню-> обновить, меню->форумы.
SK>Заработало в принципе, выбрал этот форум (RSDN@Home). Оно пошло скачивать все сообщения, начиная с первобытных времён. Я к такому повороту событий оказался не готов, тем не менее дал ему скачать где-то мегабайтов 300. Потом моё терпение кончилось, и я его убил.
Как определил размер трафика? Я трафик не замерял, но оно использует GZip и упирается в скорость упаковки сообщений в базу. Для начальной накачки форумов я выбирал пару крупных на ночь (у меня всегда ночью заряжается и подключен к анлим дом сетке).
Запрос фичи. Лично для меня приложение в текущем виде не подходит совершенно, собственно я его прибил и снес.
Хочется иметь возможность загружать/ хранить только те ветки, активность в которых была, положим, за последнюю неделю. Более старые мне не нужны, а места они жрут огого, особенно, если раздел C++ подписать. А ведь хочется далеко не только на него подписаться.
Здравствуйте, kaa.python, Вы писали:
KP>Запрос фичи. Лично для меня приложение в текущем виде не подходит совершенно, собственно я его прибил и снес. KP>Хочется иметь возможность загружать/ хранить только те ветки, активность в которых была, положим, за последнюю неделю. Более старые мне не нужны, а места они жрут огого, особенно, если раздел C++ подписать. А ведь хочется далеко не только на него подписаться.
Пишу пока из броузера Насчет места я тебе указал, что проблема притянута. У меня меньне 3 гигов сидят самые тяжелые форумы, кроме флуда. Плюсы немного неактуальны для меня но могу их добавить. Активности там очень мало. Делается просто: дома выбираются форумы при подключении по wi fi , ставится на зарядку. Утром все закачано. Это лелается один раз и проблемы кроме как поворчать я в упор не вижу.
Теперь главная фича- возможность писать. Редактор сообщений написан, осталось доделать логику гегерации цитирования и собственно отправку.
Про сорцы. Если так жизненно необходима указанная тобой фича забирать сообщения за месяц- сорцы я выложу на гитхаб как соберусь с мыслями. Желающие смогут дописать нужную им фичу.
Лично мне нужна полная история и еще в планах прикрутить поиск- такой сборник прогерских и жизненных рецептов, велосипедов, зарплат и так далее.
AG>Как определил размер трафика? Я трафик не замерял, но оно использует GZip и упирается в скорость упаковки сообщений в базу. Для начальной накачки форумов я выбирал пару крупных на ночь (у меня всегда ночью заряжается и подключен к анлим дом сетке).
Хм, наверное это не байты были, а какие-нибудь ID сообщений, не знаю, оно просто цифры показывало в районе 289 000 000, которые возрастали потихоньку. А нельзя качать последние 100/200/1000 сообщений, а то мне 2005 год не интересен? Я ж не археолог.
Здравствуйте, Sergey K, Вы писали:
AG>>Как определил размер трафика? Я трафик не замерял, но оно использует GZip и упирается в скорость упаковки сообщений в базу. Для начальной накачки форумов я выбирал пару крупных на ночь (у меня всегда ночью заряжается и подключен к анлим дом сетке).
SK>Хм, наверное это не байты были, а какие-нибудь ID сообщений, не знаю, оно просто цифры показывало в районе 289 000 000, которые возрастали потихоньку. А нельзя качать последние 100/200/1000 сообщений, а то мне 2005 год не интересен? Я ж не археолог.
Цифры показывает число полученных сообщений. Вроде янус показывает число мегабайт сколько он собрался качать, ну у меня оно размером файла не интересуется, а просто указывает rsdn-сервису что готово кушать gzip и читает упакованный поток обычным жавским gzip-стримом, парсит принимаемый поток на ходу и укладывает в базу.
Собственно я сам цифрами смущен- при наполненной базе может показать что принял 90 сообщений. Проверки на наличие этого сообщения в базе нет (по соображениям производительности и просто руки не дошли), возможно стоит реализовать такую проверку. Вообще меня на все фичи не хватает.
SK>И ты бы выложил исходнички-то, а?
Меня бы устроил вариант коллаборации. Но я не могу решиться что выбрать- гуглокод или гитхаб или что? Опыта опенсорца-писания у меня пока что нет.
И да, нужны руки (мозги) для фичи закачки только сообщений за последнюю неделю. Сейчас каждый форум имеет отдельную метку lastRowMessage. Этот lastRowMessage начинается от 0, т.е. от начала его существования. Докачки "поломанных" тем нет- т.к. она при таком раскладе не нужна. Теоретически возможно иметь 2 режима затягивания сообщений- то что сейчас от начала и от даты подписки на форум минус 1 неделя + докачка "поломанных" тем.
SK>>И ты бы выложил исходнички-то, а?
AG>Меня бы устроил вариант коллаборации. Но я не могу решиться что выбрать- гуглокод или гитхаб или что? Опыта опенсорца-писания у меня пока что нет.
А мне интересно для Андроида что-нибудь поделать в свободное время, а одному скучно Куда выкладывать — не принципиально. Выложи на гитхаб, если не понравится, то переложишь на гуглокод. Или наоборот.
AG>И да, нужны руки (мозги) для фичи закачки только сообщений за последнюю неделю. Сейчас каждый форум имеет отдельную метку lastRowMessage. Этот lastRowMessage начинается от 0, т.е. от начала его существования. Докачки "поломанных" тем нет- т.к. она при таком раскладе не нужна. Теоретически возможно иметь 2 режима затягивания сообщений- то что сейчас от начала и от даты подписки на форум минус 1 неделя + докачка "поломанных" тем.
Много можно всякого придумать я бы начал с последних сообщений и шёл каким-то образом назад.
Здравствуйте, ArtemGorikov, Вы писали:
AG>И да, нужны руки (мозги) для фичи закачки только сообщений за последнюю неделю. Сейчас каждый форум имеет отдельную метку lastRowMessage. Этот lastRowMessage начинается от 0, т.е. от начала его существования.
Ты учти, что мы быстро забаним таких любителей качать сообщения от начала времен. Сервер то не резиновый.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, ArtemGorikov, Вы писали:
AG>>И да, нужны руки (мозги) для фичи закачки только сообщений за последнюю неделю. Сейчас каждый форум имеет отдельную метку lastRowMessage. Этот lastRowMessage начинается от 0, т.е. от начала его существования.
AVK>Ты учти, что мы быстро забаним таких любителей качать сообщения от начала времен. Сервер то не резиновый.
1) Почему не резиновый? У вас там не анлим разве?
2) В интерфейсе нельзя попросить lastRowVersion неделю назад от сегодня для сообщений и юзеров. Или можно? Если можно то как?
3) Время на сообщениях проставляется локально московское а не GMT?
SK>Хм, наверное это не байты были, а какие-нибудь ID сообщений, не знаю, оно просто цифры показывало в районе 289 000 000, которые возрастали потихоньку. А нельзя качать последние 100/200/1000 сообщений, а то мне 2005 год не интересен? Я ж не археолог.
В коде нотификации баг- там есть такая переменная типа count, и я вместо того чтобы присваивать ей число полученных, прибавляю. Так что пугаться не надо- правильные цифры это ~1000 сообщений в 30 секунд.
Единственная новая фича- закачка только последних сообщений аналогично как в Янусе. Можно еще поиграться с недописанным редактором ответов.
Если уже есть подписанные форумы и они застряли где-то посредине, то либо дожидайтесь уж до конца, либо удалите весь .rsdn.home (просто удаление приложения базу не затронет), и дождитесь загрузки всех 100к+ юзеров. Любые вновь подписанные форумы будут только с новыми сообщениями. И не забывайте ввести корректный логин/пароль.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Единственная новая фича- закачка только последних сообщений аналогично как в Янусе. Можно еще поиграться с недописанным редактором ответов.
Фича отличная! Как насчет следующих фич (планируешь/нет):
Отображение плоским списком (например по 10-20 постов на "странице);
Какой-то простой способ найти еще не прочитанные сообщения.
Здравствуйте, ArtemGorikov, Вы писали:
AVK>>Ты учти, что мы быстро забаним таких любителей качать сообщения от начала времен. Сервер то не резиновый. AG>1) Почему не резиновый? У вас там не анлим разве?
Анлим чего? Железа? Нет, не анлим.
AG>2) В интерфейсе нельзя попросить lastRowVersion неделю назад от сегодня для сообщений и юзеров. Или можно? Если можно то как?
Можно день назад. В поле isFirstRequest надо передать true. В этом случае RV игнорируется и берется -1 день от текущей даты.
AG>3) Время на сообщениях проставляется локально московское а не GMT?
Глобально московское.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
Здравствуйте, ArtemGorikov, Вы писали:
AG>Да, там про закачку сообщений. Юзеров пока что можно качать всех.
Юзеров и нужно качать всех, иначе проблемы будут с апдейтом их состояния. В отличие от сообщений, по 1000 штук их качать не так долго. Впрочем, надо, наверное, лимит юзеров увеличить — запрос там нетяжелый.
... << RSDN@Home 1.2.0 alpha 5 rev. 31 on Windows 7 6.1.7601.65536>>
Здравствуйте kaa.python, Вы писали:
KP>Фича отличная! Как насчет следующих фич (планируешь/нет):
KP> KP> Отображение плоским списком (например по 10-20 постов на "странице); KP> Какой-то простой способ найти еще не прочитанные сообщения. KP>
Здравствуйте, ArtemGorikov, Вы писали:
AG>И да, нужны руки (мозги) для фичи закачки только сообщений за последнюю неделю. Сейчас каждый форум имеет отдельную метку lastRowMessage. Этот lastRowMessage начинается от 0, т.е. от начала его существования. Докачки "поломанных" тем нет- т.к. она при таком раскладе не нужна. Теоретически возможно иметь 2 режима затягивания сообщений- то что сейчас от начала и от даты подписки на форум минус 1 неделя + докачка "поломанных" тем.
Вызовите метод GetNewData веб-сервиса с параметром IsFirstRequest, установленным в true — получите последние сообщения за сутки (вроде бы). Относительно старые топики будут отсутствовать в этих данных, будут только недавние ответы в них. Топики нужно выкачать отдельно через метод GetTopicByMessageId, куда нужно просто передать id любого сообщения из этого топика, пришедшего в ответе GetNewData. Далее просто сохраняйте поля messageRowVersion и аналогичные и передавайте их снова в очередные вызовы GetNewData. Так вы получите список актуальных топиков за последний день — пользователю приложения их будет достаточно.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Да, там про закачку сообщений. Юзеров пока что можно качать всех.
AVK>Юзеров и нужно качать всех, иначе проблемы будут с апдейтом их состояния. В отличие от сообщений, по 1000 штук их качать не так долго. Впрочем, надо, наверное, лимит юзеров увеличить — запрос там нетяжелый.
Кстати, как опеределить id пользователя, под которым авторизовано мобильное приложение, без выкачки всей базы пользователей?
Добавлено создание новых тем в форуме, удаление неотправленных сообщений с записью об ошибке в лог, пункт меню на просмотре сообщения"к родительскому".
Здравствуйте, Sergey K, Вы писали:
AG>>Но я не могу решиться что выбрать- гуглокод или гитхаб или что? Опыта опенсорца-писания у меня пока что нет.
SK>Куда выкладывать — не принципиально. Выложи на гитхаб, если не понравится, то переложишь на гуглокод. Или наоборот.
Сейчас скачал проект с Гуглокода, спасибо, разбираюсь. Теперь, правда, кажется, что GitHub был бы удобнее, можно проект одной кнопкой к себе форкнуть, а потом тебе только pull-request'ы посылать для отдельных фич.
Что, кстати, наводит на ещё один вопрос: а под какой лицензией ты код выложил?
Здравствуйте Sergey K, Вы писали:
SK>Здравствуйте, Sergey K, Вы писали:
AG>>>Но я не могу решиться что выбрать- гуглокод или гитхаб или что? Опыта опенсорца-писания у меня пока что нет.
SK>>Куда выкладывать — не принципиально. Выложи на гитхаб, если не понравится, то переложишь на гуглокод. Или наоборот.
SK>Сейчас скачал проект с Гуглокода, спасибо, разбираюсь. Теперь, правда, кажется, что GitHub был бы удобнее, можно проект одной кнопкой к себе форкнуть, а потом тебе только pull-request'ы посылать для отдельных фич.
SK>Что, кстати, наводит на ещё один вопрос: а под какой лицензией ты код выложил?
Здравствуйте ArtemGorikov, Вы писали:
AG>Здравствуйте dilmah, Вы писали:
dilmah>>Что-то он у меня не работает (Nexus S, 4.0.3)
dilmah>>Удалось задать credentials и выбрать несколько форумов. Но никаких сообщений не видно
Вспомнил- надо дождаться звгрузки всех юзеров, это 30-40 минут. Если список форумов загрузился, он будкт позже показываться даже если у Вас слетел пароль.
Сделаю чтобы пользовптели грузмлись после сообщений, чтобы не смущать на первом запуске.
А в какой форме тебе контрибутить-то можно? Патчи мылом посылать что ли? Я пока с кодом разбираюсь, ибо в Андроиде ни в зуб ногой, но пару мелочей местами подправляю. Типа минимальной требуемой версии андроида — в 2.1 похоже нет java.util.Deque, которым вовсю пользуется webclient, поэтому скорее всего на 2.1 оно всё равно не взлетит, можно минимальную версию повысить (обнаружил при попытке открыть проект в Идее). Плюс ещё какой-то мусор в logging.properties в вебклиенте.
Ну и хотел попробовать доделать тривиальную фичу, чтобы оно на меня не глазело пустым белым окном при первом запуске, а сказало, где его потрогать, чтобы заработало, то есть EmptyView для ListView где-то прописать.
Ещё я не понял, для того, чтобы вызывать JanusAT.asmx, нужно всегда логиниться, или определённые вызовы работают без пароля? Если логиниться нужно первым делом так и так, то я бы попробовал сделать логин-скрин полноценный, как в фейсбуке, скайпе и пр.
И вопрос андроидный заодно: а почему ты у окон кастомный заголовок делал? Насколько я понял, большинство приложений первым делом в layout'е прописывает окна без заголовков То есть, я ничего против твоего решения не имею, просто интересно.
Здравствуйте Sergey K, Вы писали:
SK>А в какой форме тебе контрибутить-то можно? Патчи мылом посылать что ли? Я пока с кодом разбираюсь, ибо в Андроиде ни в зуб ногой, но пару мелочей местами подправляю. Типа минимальной требуемой версии андроида — в 2.1 похоже нет java.util.Deque, которым вовсю пользуется webclient, поэтому скорее всего на 2.1 оно всё равно не взлетит, можно минимальную версию повысить (обнаружил при попытке открыть проект в Идее). Плюс ещё какой-то мусор в logging.properties в вебклиенте.
Я не фанат Идеи. С учетом что deque реализован в list, а создаются об'екты списка, я не вижу проблем. Если будут в 2.1- сразу пофикшу. "Мусор" считает идея.
Шли мылом новые фичи.
SK>Ну и хотел попробовать доделать тривиальную фичу, чтобы оно на меня не глазело пустым белым окном при первом запуске, а сказало, где его потрогать, чтобы заработало, то есть EmptyView для ListView где-то прописать.
Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича. SK>Ещё я не понял, для того, чтобы вызывать JanusAT.asmx, нужно всегда логиниться, или определённые вызовы работают без пароля? Если логиниться нужно первым делом так и так, то я бы попробовал сделать логин-скрин полноценный, как в фейсбуке, скайпе и пр.
Полноценный- покрасить его в белый с голубым? Что в текущем не устраивает? SK>И вопрос андроидный заодно: а почему ты у окон кастомный заголовок делал? Насколько я понял, большинство приложений первым делом в layout'е прописывает окна без заголовков То есть, я ничего против твоего решения не имею, просто интересно.
Или оно кому-то для чего-то нужно?
AG>Шли мылом новые фичи.
ОК, попробую.
SK>>Ну и хотел попробовать доделать тривиальную фичу, чтобы оно на меня не глазело пустым белым окном при первом запуске, а сказало, где его потрогать, чтобы заработало, то есть EmptyView для ListView где-то прописать. AG>Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича. SK>>я бы попробовал сделать логин-скрин полноценный, как в фейсбуке, скайпе и пр. AG>Полноценный- покрасить его в белый с голубым? Что в текущем не устраивает?
А, он есть уже, проглядел, извините. Тогда ты прав, нужно ошибку обрабатывать.
Удаление успешно отправленного сообщения из базы, не дожидаясь подтверждения от сервиса (в случае ожидания подтверждения получаются дупликаты при разрыве соединения между вызовами)
Устранены упоминания Deque, чтобы работало на Android 2.1.
P.S. Тестил только на 2.3, так что фикс теоретический.
AG> Устранены упоминания Deque, чтобы работало на Android 2.1.
Тогда уж, если по-хорошему, то надо ещё Arrays.copyOfRange убрать (RadixTree) и throw new IOException(e) переписать через IOException io = new IOException(); io.initCause(e); throw io;
AG>P.S. Тестил только на 2.3, так что фикс теоретический.
Компилил в Идее, фиксы тоже только теоретические. Проблема с эклипсом та, что для проекта webclient выставляется стандартный JDK 1.6 или 1.7. А надо бы компилить его с андроидным, тогда всё всплывёт.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича.
Слушай, а как это лучше всего сделать? Что-то я тут пытаюсь прикинуть, и все решения как-то неудовлетворительно выходят:
1) превратить AnusaiAndroid в bound service, чтобы можно было ответ от него получить какой-то — вроде не подходит, так как при автозапуске он должен работать сам по себе
2) где-то иметь какой-то глобальный флаг типа "не смог выполнить запрос, потому что нет пароля/неправильный" — тогда не совсем понятно, как этот флаг хранить, сервис с активити вроде как взаимодействует только через базу, но в базе что-то такое хранить вроде как странно. Да и вообще что-то я интуитивно против такого решения, потому что это будет рассадник race conditions.
Или ты какое-то другое решение имел в виду?
Может всё-таки требовать от пользователя первым делом пароль и не давать ничего делать, пока не введёт? Я попробовал, форумы грузить без пароля вебсервис не позволяет (хотя все данные публичные, но, видно, хотят знать, кого банить, если что .
Здравствуйте Sergey K, Вы писали:
SK>Здравствуйте, ArtemGorikov, Вы писали:
AG>>Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича.
SK>Слушай, а как это лучше всего сделать? Что-то я тут пытаюсь прикинуть, и все решения как-то неудовлетворительно выходят:
Самая первая фича- парсить ошибку. Это есть в KSoap, просто руки не дошли скопи-пастить .
SK>1) превратить AnusaiAndroid в bound service, чтобы можно было ответ от него получить какой-то — вроде не подходит, так как при автозапуске он должен работать сам по себе
Я не совсем понял, зачем выделенное. Можно иметь свойство в RSDNApplication Property<Boolean> badCredentials. Его выставлять при ошибке логина. Далее я бы копал в сторону извещения от системы для Application об активации и деактивации приложения, можно тоже сделать это свойством. Далее- об'единить эти свойства логическим 'и' Binding в одно и навесить слушателя. Слушатель будет вызывать окошко логина при изменении этого Binding в true.
P.S. Свойства и привязки — моя лайт-версия (не все фичи) того что в javafx 2, можно идею как оно работает почитать на сайте оракла.
SK>2) где-то иметь какой-то глобальный флаг типа "не смог выполнить запрос, потому что нет пароля/неправильный" — тогда не совсем понятно, как этот флаг хранить, сервис с активити вроде как взаимодействует только через базу, но в базе что-то такое хранить вроде как странно. Да и вообще что-то я интуитивно против такого решения, потому что это будет рассадник race conditions.
Смотри Handler и что я написал выше. Крутящийся значок прогресса при загрузке тем- это свойство и никаких race conditions там нет. SK>Или ты какое-то другое решение имел в виду?
SK>Может всё-таки требовать от пользователя первым делом пароль и не давать ничего делать, пока не введёт? Я попробовал, форумы грузить без пароля вебсервис не позволяет (хотя все данные публичные, но, видно, хотят знать, кого банить, если что .
Не надо ничего первым делом требовать- само потребует "как бы первым делом".
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Vladek, Вы писали:
V>>Кстати, как опеределить id пользователя, под которым авторизовано мобильное приложение
AVK>В респонсе запроса новых сообщений есть поле selfID.
Нет, не нашёл. Там есть только userId, но вот как выяснить, что он именно тот, который нужен?
Здравствуйте dilmah, Вы писали:
D>И, конечно, главный недостаток— отсутствие плоского режима (или он есть?)
Идея насчет плоского режима: при открытии первого сообщения из списка тем, показывать как сейчас. По смещению экрана влево (как в ифоне и в самсунг-андроиде для ярлыков программ сделано) показывать списком первые 10, смещение вправо- 10-20, дальше- 20-30 и т.д.
Какие есть возражения или улучшения?
D>Второй недостаток— у меня экранная клавиатура (Swype) закрывает текст который я набираю.
Возможно что Вы поворачиваете экран по время набора сообщения. С поворотом проблема- лучше не менять ориентацию в режиме редактирования, т.к. вьюшка и, соответственно, редактор системой пересоздается. Возможно есть какой-то способ это запретить. Простой способ- запретить альбомную вообще, но он мне не нравится. У меня недостаток еще проявляется что от'езжает за экран тулбар. И оказывается невозможно выделить слово и поменять ему стиль (напр сделать жирный шрифт).
Такой вопрос: каким образом можно управлять деятельностью клиента?
Например, разрешить ему апдейтиться только когда вайфай (чтоб не лез в GPRS), или приостановить обновления вообще, но при этом иметь возможность читать то, что уже свалилось?
Здравствуйте, jazzer, Вы писали:
J>Такой вопрос: каким образом можно управлять деятельностью клиента? J>Например, разрешить ему апдейтиться только когда вайфай (чтоб не лез в GPRS), или приостановить обновления вообще, но при этом иметь возможность читать то, что уже свалилось?
Эти фичи можно дописать (вдобавок к плоскому представлению и оптимизации БД) Код свободно доступен на google code.
Здравствуйте, ArtemGorikov, Вы писали:
AG>Эти фичи можно дописать (вдобавок к плоскому представлению и оптимизации БД)
Т.е. планов пока нету?
AG>Код свободно доступен на google code.
Только вот я не джавер совсем, несмотря на похожесть ника
Планирую поставить, и возник вопрос связанный с синхронизацией: инфу о прочитанных сообщениях отправляет на сервер? или нет?
Если Да — отлично!
Если же Нет — то надо ещё раз подумать перед установкой...