@Nonnull
private List<Purchase> loadPurchases(@Nonnull List<String> skus, @Nonnull SQLiteDatabase db) {
Check.isNotEmpty(skus);
final List<Purchase> purchases = new ArrayList<>(skus.size());
final String[] columns = {"_id", "state", "productId", "purchaseTime", "developerPayload"};
final String packageName = mContext.getPackageName();
Cursor c = null;
try {
c = db.query("purchases", columns, "productId in " + makeInClause(skus.size()), skus.toArray(new String[skus.size()]), null, null, null);
if (c.moveToFirst()) {
do {
final String orderId = c.getString(0);
final int state = c.getInt(1);
final String sku = c.getString(2);
final long time = c.getLong(3);
final String payload = c.getString(4);
final Purchase p = new Purchase(sku, orderId, packageName, time, state, payload, "", false, "", "");
purchases.add(p);
} while (c.moveToNext());
}
} finally {
if (c != null) {
c.close();
}
}
return purchases;
}
}