chiark / gitweb /
Human readable permissions texts.
authorHans-Emil Skogh <hansemil@gmail.com>
Wed, 28 Dec 2011 20:39:08 +0000 (21:39 +0100)
committerHans-Emil Skogh <hansemil@gmail.com>
Wed, 28 Dec 2011 20:39:08 +0000 (21:39 +0100)
wp-fdroid/wp-fdroid.php

index 399251dbcc7596d6c01e1dd321f02bff255f713f..6ac7d306703f0a77fb8df9014ed0826d57fcbc70 100644 (file)
@@ -12,6 +12,8 @@ Revision history
 \r
 */\r
 \r
+include('android-permissions.php');\r
+\r
 class FDroid\r
 {\r
 \r
@@ -101,8 +103,9 @@ class FDroid
 \r
 \r
     function get_app($query_vars) {\r
+               $permissions_data = get_android_permissions_array($this->site_path.'/repo/AndroidManifest.xml', $this->site_path.'/repo/strings.xml');\r
 \r
-        $xml = simplexml_load_file($this->site_path."/repo/index.xml");\r
+        $xml = simplexml_load_file($this->site_path.'/repo/index.xml');\r
         foreach($xml->children() as $app) {\r
 \r
             $attrs=$app->attributes();\r
@@ -220,8 +223,42 @@ class FDroid
                                        $out.='<p><a href="javascript:void(0);" onClick="showHidePermissions(\''.$divId.'\');">Permissions</a><br/>';\r
                                        $out.='<div style="display:'.$divStyleDisplay.';" id="'.$divId.'">';\r
                                        $permissions = explode(',',$apk['permissions']);\r
-                                       foreach($permissions as $permission)\r
-                                               $out.=$permission.'<br>';\r
+                                       usort($permissions,\r
+                                       \r
+                                       \r
+                                               function ($a, $b) use (&$permissions_data) {\r
+\r
+                                                       $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel'];\r
+                                                       $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel'];\r
+\r
+                                                       if($aProtectionLevel != $bProtectionLevel) {\r
+                                                               return strcmp($aProtectionLevel, $bProtectionLevel);\r
+                                                       }\r
+                                               \r
+                                                       $aGroup = $permissions_data['permission'][$a]['permissionGroup'];\r
+                                                       $bGroup = $permissions_data['permission'][$b]['permissionGroup'];\r
+                                                       \r
+                                                       return strcmp($aGroup, $bGroup);\r
+                                               }\r
+\r
+                                       \r
+                                       \r
+                                       );\r
+                                       \r
+                                       $permission_group_last = '';\r
+                                       foreach($permissions as $permission) {\r
+                                               $permission_group = $permissions_data['permission'][$permission]['permissionGroup'];\r
+                                               if($permission_group != $permission_group_last) {\r
+                                                       $out.='<strong>'.strtoupper($permissions_data['permission-group'][$permission_group]['label']).'</strong><br/>';\r
+                                                       $permission_group_last = $permission_group;\r
+                                               }\r
+                                       \r
+                                               $out.='('.strtoupper(substr($permissions_data['permission'][$permission]['protectionLevel'],0,1)).') - ';\r
+                                               $out.='<strong>'.$permissions_data['permission'][$permission]['label'].'</strong> [<code>'.$permission.'</code>]<br/>';\r
+                                               $out.=$permissions_data['permission'][$permission]['description'].'<br/>';\r
+                                               //$out.=$permissions_data['permission'][$permission]['comment'].'<br/>';\r
+                                               $out.='<br/>';\r
+                                       }\r
                                        $out.='</div></p>';\r
                                                \r
                     $out.='</p>';\r