public Completable addUnsentLocationRecord(LocationRecord locationRecord) { return Completable.create( subscribe -> { BriteDatabase.Transaction transaction = mBriteDatabase.newTransaction(); try { mBriteDatabase.insert( LocalUnsentLocationRecordTable.NAME, LocalUnsentLocationRecordTable.toContentValues(locationRecord)); transaction.markSuccessful(); subscribe.onCompleted(); } finally { transaction.end(); } }); }
public Observable<Void> saveToSentLocationsTable(List<LocationRecord> locationRecords) { return Observable.create( subscriber -> { BriteDatabase.Transaction transaction = mBriteDatabase.newTransaction(); try { mBriteDatabase.delete(RemoteLocationRecordTable.NAME, null); for (LocationRecord locationRecord : locationRecords) { mBriteDatabase.insert( RemoteLocationRecordTable.NAME, RemoteLocationRecordTable.toContentValues(locationRecord)); } transaction.markSuccessful(); subscriber.onCompleted(); } finally { transaction.end(); } }); }
public Observable<UnsentAndResponseLocationRecordPair> moveLocationRecordToSent( UnsentAndResponseLocationRecordPair unsentAndFromResponse) { return Observable.create( subscriber -> { BriteDatabase.Transaction transaction = mBriteDatabase.newTransaction(); try { mBriteDatabase.delete( LocalUnsentLocationRecordTable.NAME, LocalUnsentLocationRecordTable.COLUMN_ID + "= ?", Integer.toString(unsentAndFromResponse.getUnsentLocationRecord().getId())); mBriteDatabase.insert( RemoteLocationRecordTable.NAME, RemoteLocationRecordTable.toContentValues( unsentAndFromResponse.getLocationRecordFromResponse())); subscriber.onNext(unsentAndFromResponse); transaction.markSuccessful(); subscriber.onCompleted(); } finally { transaction.end(); } }); }