From: Hans-Emil Skogh Version ".$apk['version']."Packages
";
$i=0;
foreach($apks as $apk) {
+ $first = $i+1==count($apks);
$out.="
";
$out.='download apk ';
$out.=$this->human_readable_size($apk['size']);
@@ -237,36 +246,67 @@ class FDroid
}
if(isset($apk['permissions'])) {
+ // Permissions diff link
+ if($first == false) {
+ $permissionsAddedCount = count($apk['diff']['permissions']['added']);
+ $permissionsRemovedCount = count($apk['diff']['permissions']['removed']);
+ $divIdDiff='permissionsDiff'.$i;
+ if($permissionsAddedCount || $permissionsRemovedCount) {
+ $out.='
permissions diff';
+ $out.=' (';
+ if($permissionsAddedCount)
+ $out.='+'.$permissionsAddedCount;
+ if($permissionsAddedCount && $permissionsRemovedCount)
+ $out.='/';
+ if($permissionsRemovedCount)
+ $out.='-'.$permissionsRemovedCount;
+ $out.=')';
+ }
+ else
+ {
+ $out.='
no permission changes';
+ }
+ }
+
+ // Permissions list link
+ $permissionsListString = $this->get_permission_list_string(explode(',',$apk['permissions']), $permissions_data, $summary);
/*if($i==0)
$divStyleDisplay='block';
else*/
$divStyleDisplay='none';
$divId='permissions'.$i;
- $out.='
view permissions
';
+ $out.='
view permissions';
+ $out.=' ['.$summary.']';
+ $out.='
';
+
+ // Permissions list
$out.='
';
- $permission_group_last = $permission_group;
+ $out.=$permissionsListString;
+ $out.='ADDED
';
+ $out.=$this->get_permission_list_string($apk['diff']['permissions']['added'], $permissions_data, $summary);
}
- $out.=$this->get_permission_protection_level_icon($permissions_data['permission'][$permission]['protectionLevel']).' ';
- $out.=''.$permissions_data['permission'][$permission]['label'].' ['.$permission.'
]
';
- if($permissions_data['permission'][$permission]['description']) $out.=$permissions_data['permission'][$permission]['description'].'
';
- //$out.=$permissions_data['permission'][$permission]['comment'].'
';
- $out.='
';
+ // Removed permissions
+ if($permissionsRemovedCount) {
+ $out.='REMOVED
';
+ $out.=$this->get_permission_list_string($apk['diff']['permissions']['removed'], $permissions_data, $summary);
+ }
+
+ $out.='
no permissions
';
+ $out.='
no extra permissions needed
';
}
$out.='
Application not found
"; } - private function get_permission_protection_level_icon($protection_level) { + private function get_permission_list_string($permissions, $permissions_data, &$summary) { + $out=''; + usort($permissions, "permissions_cmp"); + $permission_group_last = ''; + foreach($permissions as $permission) { + $permission_group = $permissions_data['permission'][$permission]['permissionGroup']; + if($permission_group != $permission_group_last) { + $permission_group_label = $permissions_data['permission-group'][$permission_group]['label']; + if($permission_group_label=='') $permission_group_label = 'Extra/Custom'; + $out.=''.strtoupper($permission_group_label).''.$permission.'
]