From: Hans-Emil Skogh Date: Wed, 28 Dec 2011 20:39:08 +0000 (+0100) Subject: Human readable permissions texts. X-Git-Tag: 0.1~1063^2~10^2~7 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bb23e7fd4c13e8c2882175bc4663c4bb90ca94d4;p=fdroidserver.git Human readable permissions texts. --- diff --git a/wp-fdroid/wp-fdroid.php b/wp-fdroid/wp-fdroid.php index 399251db..6ac7d306 100644 --- a/wp-fdroid/wp-fdroid.php +++ b/wp-fdroid/wp-fdroid.php @@ -12,6 +12,8 @@ Revision history */ +include('android-permissions.php'); + class FDroid { @@ -101,8 +103,9 @@ class FDroid function get_app($query_vars) { + $permissions_data = get_android_permissions_array($this->site_path.'/repo/AndroidManifest.xml', $this->site_path.'/repo/strings.xml'); - $xml = simplexml_load_file($this->site_path."/repo/index.xml"); + $xml = simplexml_load_file($this->site_path.'/repo/index.xml'); foreach($xml->children() as $app) { $attrs=$app->attributes(); @@ -220,8 +223,42 @@ class FDroid $out.='

Permissions
'; $out.='

'; $permissions = explode(',',$apk['permissions']); - foreach($permissions as $permission) - $out.=$permission.'
'; + usort($permissions, + + + function ($a, $b) use (&$permissions_data) { + + $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel']; + $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel']; + + if($aProtectionLevel != $bProtectionLevel) { + return strcmp($aProtectionLevel, $bProtectionLevel); + } + + $aGroup = $permissions_data['permission'][$a]['permissionGroup']; + $bGroup = $permissions_data['permission'][$b]['permissionGroup']; + + return strcmp($aGroup, $bGroup); + } + + + + ); + + $permission_group_last = ''; + foreach($permissions as $permission) { + $permission_group = $permissions_data['permission'][$permission]['permissionGroup']; + if($permission_group != $permission_group_last) { + $out.=''.strtoupper($permissions_data['permission-group'][$permission_group]['label']).'
'; + $permission_group_last = $permission_group; + } + + $out.='('.strtoupper(substr($permissions_data['permission'][$permission]['protectionLevel'],0,1)).') - '; + $out.=''.$permissions_data['permission'][$permission]['label'].' ['.$permission.']
'; + $out.=$permissions_data['permission'][$permission]['description'].'
'; + //$out.=$permissions_data['permission'][$permission]['comment'].'
'; + $out.='
'; + } $out.='

'; $out.='

';