вторник, 3 января 2012 г.

Возможность интеграции LazyShopper в другие приложения

Доброго времени суток.
Начиная с версии 2.05 для разработчиков появилась возможность интегрировать данные LazyShopper в свои приложения/виджеты.

URI, возвращающие информацию о списках покупок:
content://com.begemota.lazyshopper/lists/ - все списки покупок
content://com.begemota.lazyshopper/lists/active -  только активные списки покупок
content://com.begemota.lazyshopper/lists/noactive - только неактивные списки покупок
content://com.begemota.lazyshopper/lists/template - только шаблоны
content://com.begemota.lazyshopper/lists/# - список с определенным id
Вышеперечисленные URI возвращают курсоры со следующей структурой:
 - _id (Long) - ID списка
 - purchase_name (String) - наименование списка
 - comments (String) - комментарий списка
 - date_create (Date) - дата создания
 - notification (Long) - установленное время (UNIX time format) для напоминания, 0 - если напоминание не установлено
 - items (Integer) - кол-во товаров в списке
 - items_sum (Float) - общая сумма по списку товаров

URI, возвращающие информацию о содержимом текущего списка покупок
content://com.begemota.lazyshopper/listdetal/# - детали списка с _id=#
content://com.begemota.lazyshopper/listdetal/active - список всех некупленных товаров в активных списках
URI такого типа возвращают курсоры со следующей структурой:
 - _id (Long) - внутренний идентификатор записи
 - goods_name (String) - наименование товара
 - groupgoods_name (String) - наименование группы товаров
 - comments (String) - комментарий
 - quantity (Float) - кол-во товара
 - is_buy (Integer) - признак покупки (0 - не куплено, 1 - куплено)
 - unit_name (String) - наименование еденицы измерения
 - shop_name (String) - наименование магазина
 - person_name (String) - наименование персоны
 - price (Float) - цена товара
 - barcode (Integer) - штрихкод (0 если штрихкод не определен)

И последний URI
content://com.begemota.lazyshopper/events - возвращает кол-во активных напоминаний
возвращает поле num_events (Integer)
  
Также появилась возможность вызывать activity список с определенным _id.
Пример вызова:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(new ComponentName("com.begemota.lazyshopper","com.begemota.lazyshopper.PurchaseDetal"));
intent.putExtra("id_purchase", id);   // id должен быть с типом Long
startActivity(intent);

   
Пример, демонстрирующий все варианты интегрирования данных из LazyShopper вы можете скачать здесь.