WIP: Making correct apks get found when updating repo.
This commit is contained in:
parent
2cc155355b
commit
3a24d21f59
@ -275,7 +275,7 @@ public class ApkProvider extends FDroidProvider {
|
|||||||
builder.append(',');
|
builder.append(',');
|
||||||
}
|
}
|
||||||
final Apk apk = apks.get(i);
|
final Apk apk = apks.get(i);
|
||||||
builder.append(apk.packageName).append(':').append(apk.versionCode);
|
builder.append(apk.appId).append(':').append(apk.versionCode);
|
||||||
}
|
}
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
@ -428,35 +428,23 @@ public class ApkProvider extends FDroidProvider {
|
|||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (int i = 0; i < apkDetails.length; i++) {
|
for (int i = 0; i < apkDetails.length; i++) {
|
||||||
String[] parts = apkDetails[i].split(":");
|
String[] parts = apkDetails[i].split(":");
|
||||||
String packageName = parts[0];
|
String appId = parts[0];
|
||||||
String versionCode = parts[1];
|
String versionCode = parts[1];
|
||||||
args[i * 2] = packageName;
|
args[i * 2] = appId;
|
||||||
args[i * 2 + 1] = versionCode;
|
args[i * 2 + 1] = versionCode;
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
sb.append(" OR ");
|
sb.append(" OR ");
|
||||||
}
|
}
|
||||||
sb.append(" ( ");
|
|
||||||
|
|
||||||
if (includeAlias) {
|
sb.append(" ( ")
|
||||||
// This is the simpler way to figure out the package name of a row in the apk table.
|
.append(Cols.APP_ID)
|
||||||
// It requires slightly less work for sqlite3 than the alternative below.
|
.append(" = ? ")
|
||||||
sb.append("app.")
|
.append(" AND ")
|
||||||
.append(AppMetadataTable.Cols.PACKAGE_ID)
|
|
||||||
.append(" = (")
|
|
||||||
.append(getPackageIdFromPackageNameQuery())
|
|
||||||
.append(") ");
|
|
||||||
} else {
|
|
||||||
sb.append(Cols.APP_ID)
|
|
||||||
.append(" IN (")
|
|
||||||
.append(getMetadataIdFromPackageNameQuery())
|
|
||||||
.append(")");
|
|
||||||
}
|
|
||||||
|
|
||||||
sb.append(" AND ")
|
|
||||||
.append(alias)
|
.append(alias)
|
||||||
.append(Cols.VERSION_CODE)
|
.append(Cols.VERSION_CODE)
|
||||||
.append(" = ? ) ");
|
.append(" = ? ) ");
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QuerySelection(sb.toString(), args);
|
return new QuerySelection(sb.toString(), args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +178,7 @@ public class RepoPersister {
|
|||||||
Schema.ApkTable.Cols.Package.PACKAGE_NAME,
|
Schema.ApkTable.Cols.Package.PACKAGE_NAME,
|
||||||
Schema.ApkTable.Cols.VERSION_CODE,
|
Schema.ApkTable.Cols.VERSION_CODE,
|
||||||
Schema.ApkTable.Cols.REPO_ID,
|
Schema.ApkTable.Cols.REPO_ID,
|
||||||
|
Schema.ApkTable.Cols.APP_ID,
|
||||||
};
|
};
|
||||||
List<Apk> existingApks = ApkProvider.Helper.knownApks(context, packages, projection);
|
List<Apk> existingApks = ApkProvider.Helper.knownApks(context, packages, projection);
|
||||||
ArrayList<ContentProviderOperation> operations = new ArrayList<>(packages.size());
|
ArrayList<ContentProviderOperation> operations = new ArrayList<>(packages.size());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user