Re[2]: КЫВТ.андроид - pet project
От: ArtemGorikov Австралия жж
Дата: 27.04.12 14:46
Оценка:
Здравствуйте 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'е прописывает окна без заголовков То есть, я ничего против твоего решения не имею, просто интересно.

Есть так и так.
... Отправлено с помощью КЫВТ.андроид 0.1
Re[3]: КЫВТ.андроид - pet project
От: Sergey K  
Дата: 27.04.12 16:54
Оценка:
AG>Я не фанат Идеи. С учетом что deque реализован в list, а создаются об'екты списка, я не вижу проблем. Если будут в 2.1- сразу пофикшу.

Щас проверил, оно на 2.1 эмуляторе таки грузится и работает, но ругается:
04-27 16:47:13.916: I/dalvikvm(213): Could not find method java.io.IOException.<init>, referenced from method com.agorikov.rsdnhome.webclient.model.RsdnWebService$1.call
04-27 16:47:13.916: W/dalvikvm(213): VFY: unable to resolve direct method 1268: Ljava/io/IOException;.<init> (Ljava/lang/Throwable;)V
04-27 16:47:13.916: D/dalvikvm(213): VFY: replacing opcode 0x70 at 0x0128
04-27 16:47:13.916: D/dalvikvm(213): Making a copy of Lcom/agorikov/rsdnhome/webclient/model/RsdnWebService$1;.call code (672 bytes)
04-27 16:47:13.926: W/dalvikvm(213): VFY: unable to find class referenced in signature (Ljava/util/Deque;)
04-27 16:47:13.926: I/dalvikvm(213): Could not find method java.util.Deque.push, referenced from method com.agorikov.rsdnhome.webclient.model.RsdnWebService$2.startElement
04-27 16:47:13.926: W/dalvikvm(213): VFY: unable to resolve interface method 2090: Ljava/util/Deque;.push (Ljava/lang/Object;)V
04-27 16:47:13.926: D/dalvikvm(213): VFY: replacing opcode 0x72 at 0x0011


AG>"Мусор" считает идея.


Мусор вот такой лежит в http://code.google.com/p/anusai-android/source/browse/trunk/webclient/logging.properties

lnfnllkfkdlkdflk ;fdn kdfjn ;kndfk fkd


Или оно кому-то для чего-то нужно?

AG>Шли мылом новые фичи.


ОК, попробую.

SK>>Ну и хотел попробовать доделать тривиальную фичу, чтобы оно на меня не глазело пустым белым окном при первом запуске, а сказало, где его потрогать, чтобы заработало, то есть EmptyView для ListView где-то прописать.

AG>Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича.
SK>>я бы попробовал сделать логин-скрин полноценный, как в фейсбуке, скайпе и пр.
AG>Полноценный- покрасить его в белый с голубым? Что в текущем не устраивает?

А, он есть уже, проглядел, извините. Тогда ты прав, нужно ошибку обрабатывать.
Re[4]: КЫВТ.андроид - pet project
От: ArtemGorikov Австралия жж
Дата: 27.04.12 17:27
Оценка:
Думаю заменю deque на list в след коммите. Ничего в логике не поменяется. Андроид не совсем обычная жава, да.
... Отправлено с помощью КЫВТ.андроид 0.1
Re: КЫВТ.андроид - pet project
От: ArtemGorikov Австралия жж
Дата: 27.04.12 18:48
Оценка:
Новая сборка.

Изменения:

  • Удаление успешно отправленного сообщения из базы, не дожидаясь подтверждения от сервиса (в случае ожидания подтверждения получаются дупликаты при разрыве соединения между вызовами)

  • Устранены упоминания Deque, чтобы работало на Android 2.1.

    P.S. Тестил только на 2.3, так что фикс теоретический.
    ... Отправлено с помощью КЫВТ.андроид 0.1
  • Re[2]: КЫВТ.андроид - pet project
    От: Sergey K  
    Дата: 28.04.12 06:42
    Оценка:
    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. А надо бы компилить его с андроидным, тогда всё всплывёт.
  • Re[3]: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 28.04.12 06:50
    Оценка:
    Так ли это необходимо? webclient не привязан к андроиду сознательно, это независимый пакет.
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re[3]: КЫВТ.андроид - pet project
    От: Sergey K  
    Дата: 29.04.12 13:41
    Оценка:
    Здравствуйте, ArtemGorikov, Вы писали:

    AG>Ну по-хорошему надо обрабатывать ошибку от сервиса и вызывать окно логина с паролем. Это не реализовано- полезная фича.


    Слушай, а как это лучше всего сделать? Что-то я тут пытаюсь прикинуть, и все решения как-то неудовлетворительно выходят:

    1) превратить AnusaiAndroid в bound service, чтобы можно было ответ от него получить какой-то — вроде не подходит, так как при автозапуске он должен работать сам по себе
    2) где-то иметь какой-то глобальный флаг типа "не смог выполнить запрос, потому что нет пароля/неправильный" — тогда не совсем понятно, как этот флаг хранить, сервис с активити вроде как взаимодействует только через базу, но в базе что-то такое хранить вроде как странно. Да и вообще что-то я интуитивно против такого решения, потому что это будет рассадник race conditions.

    Или ты какое-то другое решение имел в виду?

    Может всё-таки требовать от пользователя первым делом пароль и не давать ничего делать, пока не введёт? Я попробовал, форумы грузить без пароля вебсервис не позволяет (хотя все данные публичные, но, видно, хотят знать, кого банить, если что .
    Re[4]: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 29.04.12 14:06
    Оценка:
    Здравствуйте 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>Может всё-таки требовать от пользователя первым делом пароль и не давать ничего делать, пока не введёт? Я попробовал, форумы грузить без пароля вебсервис не позволяет (хотя все данные публичные, но, видно, хотят знать, кого банить, если что .


    Не надо ничего первым делом требовать- само потребует "как бы первым делом".
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re[7]: КЫВТ.андроид - pet project
    От: Vladek Россия Github
    Дата: 01.05.12 01:03
    Оценка:
    Здравствуйте, AndrewVK, Вы писали:

    AVK>Здравствуйте, Vladek, Вы писали:


    V>>Кстати, как опеределить id пользователя, под которым авторизовано мобильное приложение


    AVK>В респонсе запроса новых сообщений есть поле selfID.


    Нет, не нашёл. Там есть только userId, но вот как выяснить, что он именно тот, который нужен?
    Re: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 02.05.12 22:59
    Оценка:
    Сборка 0.1.4.

    Измена генерация инициалов в ответном сообщении.
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re[4]: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 02.05.12 23:16
    Оценка:
    Здравствуйте dilmah, Вы писали:

    D>И, конечно, главный недостаток— отсутствие плоского режима (или он есть?)


    Идея насчет плоского режима: при открытии первого сообщения из списка тем, показывать как сейчас. По смещению экрана влево (как в ифоне и в самсунг-андроиде для ярлыков программ сделано) показывать списком первые 10, смещение вправо- 10-20, дальше- 20-30 и т.д.

    Какие есть возражения или улучшения?


    D>Второй недостаток— у меня экранная клавиатура (Swype) закрывает текст который я набираю.


    Возможно что Вы поворачиваете экран по время набора сообщения. С поворотом проблема- лучше не менять ориентацию в режиме редактирования, т.к. вьюшка и, соответственно, редактор системой пересоздается. Возможно есть какой-то способ это запретить. Простой способ- запретить альбомную вообще, но он мне не нравится. У меня недостаток еще проявляется что от'езжает за экран тулбар. И оказывается невозможно выделить слово и поменять ему стиль (напр сделать жирный шрифт).
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 04.05.12 17:26
    Оценка:
    Сборка 0.1.5.

    ☆Окно композитора сообщений залочено в портретной ориентации. Контрольная панель со смайлами залочена сверху чтобы не от'езжала на длинном сообщении.☆

    ☆Окно показа сообщения обновляет список ответов если получены новые сообщения (как список тем).☆

    ☆Нотификация о новых пользователях☆

    ☆Нотификация о новых сообщениях изменена на показ числа топиков с полученными сообщениями вместо числа полученных сообщений.☆

    ☆Исправления отправки сообщений☆

    ☆Кнопка убить сообщения на отправку как крайняя мера☆
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 07.05.12 17:25
    Оценка:
    Сборка 0.1.7.

    ☆Уменьшены тайм-ауты соединения.
    ☆Обработчик ошибок с RSDN.
    ☆Запуск окна логина при ошибке авторизации.
    ... Отправлено с помощью КЫВТ.андроид 0.1
    Re: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 11.07.12 09:31
    Оценка:
    Сборка 0.1.9.

    ☆Цитирование имени собеседника позаимствовано у Janus здесь
    Автор: ArtemGorikov
    Дата: 11.07.12
    .
    Re: КЫВТ.андроид - pet project
    От: jazzer Россия Skype: enerjazzer
    Дата: 12.09.12 01:37
    Оценка:
    Здравствуйте, ArtemGorikov, Вы писали:

    Спасибо за усилия!

    Такой вопрос: каким образом можно управлять деятельностью клиента?
    Например, разрешить ему апдейтиться только когда вайфай (чтоб не лез в GPRS), или приостановить обновления вообще, но при этом иметь возможность читать то, что уже свалилось?
    jazzer (Skype: enerjazzer) Ночная тема для RSDN
    Автор: jazzer
    Дата: 26.11.09

    You will always get what you always got
      If you always do  what you always did
    Re[2]: КЫВТ.андроид - pet project
    От: ArtemGorikov Австралия жж
    Дата: 12.09.12 01:48
    Оценка:
    Здравствуйте, jazzer, Вы писали:

    J>Такой вопрос: каким образом можно управлять деятельностью клиента?

    J>Например, разрешить ему апдейтиться только когда вайфай (чтоб не лез в GPRS), или приостановить обновления вообще, но при этом иметь возможность читать то, что уже свалилось?

    Эти фичи можно дописать (вдобавок к плоскому представлению и оптимизации БД) Код свободно доступен на google code.
    Re[3]: КЫВТ.андроид - pet project
    От: jazzer Россия Skype: enerjazzer
    Дата: 12.09.12 01:57
    Оценка:
    Здравствуйте, ArtemGorikov, Вы писали:

    AG>Эти фичи можно дописать (вдобавок к плоскому представлению и оптимизации БД)

    Т.е. планов пока нету?

    AG>Код свободно доступен на google code.

    Только вот я не джавер совсем, несмотря на похожесть ника
    jazzer (Skype: enerjazzer) Ночная тема для RSDN
    Автор: jazzer
    Дата: 26.11.09

    You will always get what you always got
      If you always do  what you always did
    Re: КЫВТ.андроид - pet project
    От: soljen Интернет  
    Дата: 05.10.12 06:57
    Оценка:
    Доброго времени суток, ArtemGorikov, Вы писали:

    Планирую поставить, и возник вопрос связанный с синхронизацией: инфу о прочитанных сообщениях отправляет на сервер? или нет?
    Если Да — отлично!
    Если же Нет — то надо ещё раз подумать перед установкой...

    Спасибо...

    Спасибо!
    Тиха украинская ночь, но сало надо перепрятать!!!
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.