Здравствуйте 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.
Только вот я не джавер совсем, несмотря на похожесть ника
Планирую поставить, и возник вопрос связанный с синхронизацией: инфу о прочитанных сообщениях отправляет на сервер? или нет?
Если Да — отлично!
Если же Нет — то надо ещё раз подумать перед установкой...