summaryrefslogtreecommitdiffstats
path: root/common/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'common/java/com')
-rw-r--r--common/java/com/android/common/content/SQLiteContentProvider.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/common/java/com/android/common/content/SQLiteContentProvider.java b/common/java/com/android/common/content/SQLiteContentProvider.java
index 02f1835..fb86c14 100644
--- a/common/java/com/android/common/content/SQLiteContentProvider.java
+++ b/common/java/com/android/common/content/SQLiteContentProvider.java
@@ -49,6 +49,13 @@ public abstract class SQLiteContentProvider extends ContentProvider
*/
private static final int MAX_OPERATIONS_PER_YIELD_POINT = 500;
+ /**
+ * @return Number of operations that can be applied at once without a yield point.
+ */
+ public int getMaxOperationsPerYield() {
+ return MAX_OPERATIONS_PER_YIELD_POINT;
+ }
+
@Override
public boolean onCreate() {
Context context = getContext();
@@ -204,7 +211,7 @@ public abstract class SQLiteContentProvider extends ContentProvider
final int numOperations = operations.size();
final ContentProviderResult[] results = new ContentProviderResult[numOperations];
for (int i = 0; i < numOperations; i++) {
- if (++opCount >= MAX_OPERATIONS_PER_YIELD_POINT) {
+ if (++opCount > getMaxOperationsPerYield()) {
throw new OperationApplicationException(
"Too many content provider operations between yield points. "
+ "The maximum number of operations per yield point is "
@@ -232,14 +239,17 @@ public abstract class SQLiteContentProvider extends ContentProvider
}
}
+ @Override
public void onBegin() {
onBeginTransaction();
}
+ @Override
public void onCommit() {
beforeTransactionCommit();
}
+ @Override
public void onRollback() {
// not used
}