package by.istin.android.xcore.service;
import android.content.Context;
import android.database.Cursor;
import by.istin.android.xcore.provider.ModelContract;
import by.istin.android.xcore.source.DataSourceRequest;
import by.istin.android.xcore.source.DataSourceRequestEntity;
import by.istin.android.xcore.utils.CursorUtils;
/**
* Created by Uladzimir_Klyshevich on 5/27/2014.
*/
public class CacheRequestHelper {
public static boolean cacheIfNotCached(Context context, DataSourceRequest dataSourceRequest, long requestId) {
Cursor cursor = context.getContentResolver().query(ModelContract.getUri(DataSourceRequestEntity.class, requestId), new String[]{DataSourceRequestEntity.LAST_UPDATE}, null, null, null);
try {
if (cursor == null || !cursor.moveToFirst()) {
context.getContentResolver().insert(ModelContract.getUri(DataSourceRequestEntity.class), DataSourceRequestEntity.prepare(dataSourceRequest));
} else {
Long lastUpdate = CursorUtils.getLong(DataSourceRequestEntity.LAST_UPDATE, cursor);
if (System.currentTimeMillis() - dataSourceRequest.getCacheExpiration() < lastUpdate) {
return true;
} else {
context.getContentResolver().insert(ModelContract.getUri(DataSourceRequestEntity.class), DataSourceRequestEntity.prepare(dataSourceRequest));
}
}
} finally {
CursorUtils.close(cursor);
}
return false;
}
}