Don't break when updating the Apk table on devices before 3.0
This commit is contained in:
parent
9c9ecc5140
commit
fc4a96acd8
@ -4,8 +4,12 @@ import android.annotation.TargetApi;
|
|||||||
import android.content.*;
|
import android.content.*;
|
||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
public abstract class FDroidProvider extends ContentProvider {
|
public abstract class FDroidProvider extends ContentProvider {
|
||||||
|
|
||||||
@ -98,9 +102,24 @@ public abstract class FDroidProvider extends ContentProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@TargetApi(11)
|
@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)
|
protected void validateFields(String[] validFields, ContentValues values)
|
||||||
throws IllegalArgumentException {
|
throws IllegalArgumentException {
|
||||||
for (String key : values.keySet()) {
|
for (String key : getKeySet(values)) {
|
||||||
boolean isValid = false;
|
boolean isValid = false;
|
||||||
for (String validKey : validFields) {
|
for (String validKey : validFields) {
|
||||||
if (validKey.equals(key)) {
|
if (validKey.equals(key)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user