stify"> - LONGITUDE_FIELD - константа-ключ, за яким доступна довгота в ІНТЕНТ з геоданих.
- ACCURACY_FIELD - константа-ключ, за яким доступна точність у ІНТЕНТ з геоданих.
- TIMEOUT - таймаут в мілісекундах, після якого видається помилка про неможливістьта отримання координат.
Поля:
- Error Reported - прапор типу boolean, що запобігає повторну відправку ІНТЕНТ з повідомленням про помилку.
Методи:
- void report Error (Context context, Pending Intent pending Intent) - метод здійснює відправку ІНТЕНТ з повідомленням про помилку.
- void get Location (final Context context, final Pending Intent pending Intent) - метод, що дозволяє компоненту context асинхронно отримати годинне за допомогою відкладеного ІНТЕНТ pending Intent.
3.6 Опис класів пакету networking
Даний пакет містить елементи, необхідні для взаємодії з мережею. Всі класи пакету можна розділити на дві групи: класи, що представляють собою структури даних і веб-клієнти.
Класи, що представляють собою структури даних реалізують ряд властивостей у вигляді набору get- і set- методів для отримання полів класу і установки їх нових значень. Важливою особливістю всіх таких класів, є реалізація інтерфейсу Parcelable, необхідного для пересилання примірників даних класів разом з ІНТЕНТ.
Класи веб-клієнти реалізують інтерфейс IWeb Client, що описують програмні еквіваленти веб-методів серверного API. При цьому існує два класи веб-клієнта: робочий Web Client і тестовий Fаke Web Client, використовуваний для емуляції роботи сервера.
Опис класу Web Client
Даний клас являє собою безпосередньо клієнт, який реалізує методи веб-інтерфейсу, що надається сервером і здійснює обмін даний по мережі Інтернет. Клас оголошує набір констант, названих за шаблоном API_ *, які представляють собою назви веб-методів.
Поля:
- client - поле типу Default http Client, що представляє собою об'єкт, який займається комунікацією по протоколу HTTP.
- Auth Header - строкове поле заголовок авторизації.
- Base Url - строкове поле адреса сервера.
Методи:
- Http Response post (String method, Http Entity entity) - метод, що відправляє HTTP POST запит за адресою веб-методу з параметра method з тілом, заданим параметром entity.
- String login (String login, String password) - метод, який здійснює авторизацію із зазначеними логіном і паролем і повертає роль користувача.
- List lt; Store Entity gt; update Stores (int version) - метод, що дозволяє отримати оновлення таблиці магазинів вище версії переданої в параметрі version у вигляді списку структур даних Store Entity.
- List lt; Db Entity gt; update Categories (int version) - метод, що дозволяє отримати оновлення таблиці категорій вище версії переданої в параметрі version у вигляді списку структур даних DbEntity.
- List lt; Store Entity gt; parse Stores List (Json Reader reader) - метод, що дозволяє вважати потоковим парсером reader масив елементів Store Entity.
- List lt; DbEntity gt; parse Categories List (Json Reader reader) - метод, що дозволяє вважати потоковим парсером reader масив елементів Db Entity.
- String parse Common Parameter (Db Entity entity, Json Reader reader) - метод, що дозволяє витягти з потоку з даними у форматі JSON, за допомогою парсера reader, одне з полів об'єкта entity.
- String upload Picture (byte [] picture) - метод завантажує фото в бінарному вигляді на сервер, повертаючи певний сервером GUID.
- boolean send Metadata (Metadata data) - метод, що дозволяє зберегти фото із зазначеними метаданими. Возвращаемое методом значення, показує успішність виконання операції.
4. Розробка програмних модулів
Однією з найважливіших частин додатка є клас Web Client, що відповідає за комунікацію з сервером. Даний клас реалізує інтерфейс IWeb Client, що описує серверне API у вигляді набору Java-методів. Особливістю цих методів є взаємодія з мережею, тому вони всі вони можуть викинути обов'язкове для обробки виключення IO Exception, а також не можу бути викликані в основному потоці, оскільки це викличе виключення Network On Main Thread Exception. Виходячи з цього, методи, визначені в IWeb Client, повинні викликатися в контексті, що забезпечує виконання у відмінному від основного потоці і обробному виключення введення/виводу. Таким конте...