private ContentValues[] getContentValuesForThings(ThingResponseGroup2 response) { ContentValues[] thingValues = new ContentValues [response.getThing().size() + response.getUnprocessedThingKeyInfo().size()]; int idx = 0; for (Thing2 thing : response.getThing()) { ContentValues values = new ContentValues(); values.put("thing_id", thing.getThingId().getValue()); values.put("version_stamp", thing.getThingId().getVersionStamp()); values.put("thing_xml", XmlSerializer.safeWrite(thing)); thingValues[idx++] = values; } for (UnprocessedThingKeyInfo keys : response.getUnprocessedThingKeyInfo()) { ContentValues values = new ContentValues(); values.put("thing_id", keys.getThingId().getValue()); values.put("version_stamp", keys.getThingId().getVersionStamp()); thingValues[idx++] = values; } return thingValues; }
public void synchronize() throws Exception { ThingResponseGroup2 response = getThings(); updateContentStore(getContentValuesForThings(response)); int batchSize = 200; List<UnprocessedThingKeyInfo> keys = response.getUnprocessedThingKeyInfo(); for (int i = 0; i < keys.size(); i += batchSize) { updateContentStore( getContentValuesForThings( getThingsForKeys(keys.subList(i, Math.min(i + batchSize, keys.size()))))); } lastSyncDate = new Date(); updateView(); }