Методы класса DBWorker.java

Метод Описание
public void onCreate(SQLiteDatabase db) Создание структуры базы данных
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) Изменение структуры базы данных
public UserContext authUser(String email, String pass) Авторизация пользователя
public UserContext registerUser(UserContext user) Регистрация пользователя
public void Exit() Выход пользователя из системы
public int newTask(TaskContext task) Добавление новой задачи
public void changeTask(TaskContext task) Изменение задачи
public void deleteTask(TaskContext task) Удаление задачи
public ArrayList<TaskContext> getAllTasks(UserContext user) Возвращает список всех задач пользователя
public TaskContext getTaskById (int id) Возвращает задачу по id
public ArrayList<SubtaskContext> getSubTaskListByTaskID (int taskID) Возвращает список подзадач по id задачи
public void addSubTask(SubtaskContext subtask) Добавление подзадачи
public int addContext(ContextContext cnt) Добавление контекста
public ArrayList<ContextContext> getAllContexts(int userID) Возвращает список всех контекстов пользователя
public ContextContext getContextByID(int cntID) Возвращает контекст по id
public void removeContext(int id) Удаление контекста
public void saveTaskContext(ArrayList<String> titles, TaskContext task) Сохранение привязки задачи к контексту
public void updateContext(ContextContext context) Изменение контекста
public ArrayList<ContextContext> getAllUnsyncContexts (UserContext user) Возвращает список всех контекстов, не синхронизированных с сервером
public int addPoint(PointContext point) Добавление координат на карте
public PointContext getPointByID(int id) Получение координат по id
public void removePoint(int id) Удаление координат
public ArrayList<PointContext> getAllPoints() Возвращает список всех координат пользователя
public ArrayList<PointContext> getPointsByContextID(int id) Возвращает список точек, привязанных к определенному контексту по id контекста
public void updatePoint(PointContext point) Обновление координат

 

Работа с сервером

В приложении организован обмен данными с удаленным сервером по протоколу HTTP с использованием HTTP Basic Authentication. Сервер имеет REST-архитектуру [9, c. 481].

Все файлы, необходимые для взаимодействия с сервером, расположены в директории /app/main/com.example.matia.todo/RestAPI/.

Класс RequestContext.java описывает структуру объекта, необходимого для формирования запроса. Атрибуты класса представлены в таблице 9.

Таблица 9.

Атрибуты класса RequestContext.java

Метод Описание
private String method; Метод запроса: GET, POST, PUT, DELETE
private String login; Логин пользователя, для авторизации на сервере
private String pass; Пароль пользователя для авторизации на сервере
private String url; URL запроса
private JSONObject jsonData; Тело запроса в формате JSON

 

Класс ResponseContext.java описывает структуру объекта, представляющего ответ с сервера. Атрибуты класса описаны в таблице 10.

Таблица 10.

Атрибуты класса ResponseContext.java

Метод Описание
private int responseCode; Код ответа
private JSONObject response; Тело ответа в формате JSON

 

Для формирования и отправки запроса используется специальный класс, расширенный от AsyncTask, AsyncRequest.java . Методы этого класса выполняются в отдельном потоке.

В классе WebWorker.java содержатся методы, формирующие запрос, обрабатывающие ответ с сервера и выполняющие процедуру синхронизации. В таблице 11 представлены методы класса.

 

Таблица 11.