Don't break when updating the Apk table on devices before 3.0

This commit is contained in:
Daniel Martí 2014-03-21 23:22:23 +01:00
parent 9c9ecc5140
commit fc4a96acd8

View File

@ -4,8 +4,12 @@ import android.annotation.TargetApi;
import android.content.*;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.os.Build;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
import java.util.Map.Entry;
public abstract class FDroidProvider extends ContentProvider {
@ -98,9 +102,24 @@ public abstract class FDroidProvider extends ContentProvider {
}
@TargetApi(11)
protected Set<String> getKeySet(ContentValues values) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return values.keySet();
}
Set<String> keySet = new HashSet<String>();
for (Entry<String, Object> item : values.valueSet()) {
String key = item.getKey();
keySet.add(key);
}
return keySet;
}
protected void validateFields(String[] validFields, ContentValues values)
throws IllegalArgumentException {
for (String key : values.keySet()) {
for (String key : getKeySet(values)) {
boolean isValid = false;
for (String validKey : validFields) {
if (validKey.equals(key)) {