diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 14592a22f66c878f5d9793537fcafa71caf42408..b8f66f4c955fde3ce2c2d5a3b67da701c7dd69f1 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -253,7 +253,8 @@ public class DB { + "vercode int not null," + "apkName text not null, " + "size int not null," + "sig string," + "srcname string," + "minSdkVersion integer," + "permissions string," - + "features string," + "hashType string," + "added string," + + "features string," + "nativecode string," + + "hashType string," + "added string," + "compatible int not null," + "primary key(id,vercode));"; public static class Apk { @@ -282,6 +283,8 @@ public class DB { // unknown public CommaSeparatedList features; // null if empty or unknown + public CommaSeparatedList nativecode; // null if empty or unknown + // ID (md5 sum of public key) of signature. Might be null, in the // transition to this field existing. public String sig; @@ -387,7 +390,7 @@ public class DB { public String lastetag; // last etag we updated from, null forces update } - private final int DBVersion = 22; + private final int DBVersion = 23; private static void createAppApk(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_APP); @@ -775,7 +778,7 @@ public class DB { + (System.currentTimeMillis() - startTime) + " ms)"); cols = new String[] { "id", "version", "vercode", "sig", "srcname", - "apkName", "minSdkVersion", "added", "features", + "apkName", "minSdkVersion", "added", "features", "nativecode", "compatible", "repo" }; c = db.query(TABLE_APK, cols, null, null, null, null, "vercode desc"); @@ -793,8 +796,9 @@ public class DB { apk.added = (sApkAdded == null || sApkAdded.length() == 0) ? null : mDateFormat.parse(sApkAdded); apk.features = CommaSeparatedList.make(c.getString(8)); - apk.compatible = c.getInt(9) == 1; - apk.repo = c.getInt(10); + apk.nativecode = CommaSeparatedList.make(c.getString(9)); + apk.compatible = c.getInt(10) == 1; + apk.repo = c.getInt(11); apps.get(apk.id).apks.add(apk); c.moveToNext(); } @@ -1251,6 +1255,7 @@ public class DB { values.put("permissions", CommaSeparatedList.str(upapk.detail_permissions)); values.put("features", CommaSeparatedList.str(upapk.features)); + values.put("nativecode", CommaSeparatedList.str(upapk.nativecode)); values.put("compatible", upapk.compatible ? 1 : 0); if (oldapk != null) { db.update(TABLE_APK, values, diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index 943e78427f241a826e8a32978067be3d1f4ee567..adcd6452527e2ed78ec1a4913f19379e48e4bfd5 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -178,6 +178,8 @@ public class RepoXMLHandler extends DefaultHandler { curapk.detail_permissions = DB.CommaSeparatedList.make(str); } else if (curel.equals("features")) { curapk.features = DB.CommaSeparatedList.make(str); + } else if (curel.equals("nativecode")) { + curapk.nativecode = DB.CommaSeparatedList.make(str); } } else if (curapp != null && str != null) { if (curel.equals("id")) {