properly gather all requested permissions from index-v1.json

The permissions from uses-permission and uses-permission-sdk-23 should be
combined into a single list of permissions that are being requested for the
current SDK version.  The previous code was overwriting one or the other,
based on the order that Jackson happen to call setRequestedPermissions().

closes #1139
#890
#1394
admin#65
This commit is contained in:
Hans-Christoph Steiner 2018-04-05 21:58:33 +02:00
parent 688057b3e7
commit 661aebb75f

View File

@ -20,6 +20,7 @@ import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.Schema.ApkTable.Cols; import org.fdroid.fdroid.data.Schema.ApkTable.Cols;
import java.io.File; import java.io.File;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
@ -467,6 +468,9 @@ public class Apk extends ValueObject implements Comparable<Apk>, Parcelable {
private void setRequestedPermissions(Object[][] permissions, int minSdk) { private void setRequestedPermissions(Object[][] permissions, int minSdk) {
HashSet<String> set = new HashSet<>(); HashSet<String> set = new HashSet<>();
if (requestedPermissions != null) {
Collections.addAll(set, requestedPermissions);
}
for (Object[] versions : permissions) { for (Object[] versions : permissions) {
int maxSdk = Integer.MAX_VALUE; int maxSdk = Integer.MAX_VALUE;
if (versions[1] != null) { if (versions[1] != null) {