From fc4a96acd85340581a7c35e4940fab75ad4f1324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Fri, 21 Mar 2014 23:22:23 +0100 Subject: [PATCH] Don't break when updating the Apk table on devices before 3.0 --- .../fdroid/fdroid/data/FDroidProvider.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/org/fdroid/fdroid/data/FDroidProvider.java b/src/org/fdroid/fdroid/data/FDroidProvider.java index e056eef3e..7ae36ff51 100644 --- a/src/org/fdroid/fdroid/data/FDroidProvider.java +++ b/src/org/fdroid/fdroid/data/FDroidProvider.java @@ -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 getKeySet(ContentValues values) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + return values.keySet(); + } + + Set keySet = new HashSet(); + for (Entry 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)) {