chiark / gitweb /
Replaced the nifty anonymous permissions sorting comparison function with inherited...
authorHans-Emil Skogh <hansemil@gmail.com>
Tue, 17 Jan 2012 20:48:48 +0000 (21:48 +0100)
committerHans-Emil Skogh <hansemil@gmail.com>
Tue, 17 Jan 2012 20:48:48 +0000 (21:48 +0100)
Now the code should work with PHP versions prior to 5.3.0 as well...

wp-fdroid/wp-fdroid.php

index 0ea58d6ced9c1412cbea8ee632bc0f18d9be6007..6c981d838116e351673cc6439723842789cf9bda 100644 (file)
@@ -102,6 +102,7 @@ class FDroid
 
 
        function get_app($query_vars) {
+               global $permissions_data;
                $permissions_object = new AndroidPermissions($this->site_path.'/repo/AndroidManifest.xml', $this->site_path.'/repo/strings.xml', $this->site_path.'/repo/android-permissions.cache');
                $permissions_data = $permissions_object->get_permissions_array();
 
@@ -226,29 +227,7 @@ class FDroid
                                                $out.='<br /><a href="javascript:void(0);" onClick="showHidePermissions(\''.$divId.'\');">view permissions</a><br/>';
                                                $out.='<div style="display:'.$divStyleDisplay.';" id="'.$divId.'">';
                                                $permissions = explode(',',$apk['permissions']);
-                                               usort($permissions,
-                                                       function ($a, $b) use (&$permissions_data) {
-
-                                                               $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel'];
-                                                               $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel'];
-
-                                                               if($aProtectionLevel != $bProtectionLevel) {
-                                                                       if(strlen($aProtectionLevel)==0) return 1;
-                                                                       if(strlen($bProtectionLevel)==0) return -1;
-
-                                                                       return strcmp($aProtectionLevel, $bProtectionLevel);
-                                                               }
-
-                                                               $aGroup = $permissions_data['permission'][$a]['permissionGroup'];
-                                                               $bGroup = $permissions_data['permission'][$b]['permissionGroup'];
-
-                                                               if($aGroup != $bGroup) {
-                                                                       return strcmp($aGroup, $bGroup);
-                                                               }
-
-                                                               return strcmp($a, $b);
-                                                       }
-                                               );
+                                               usort($permissions, "permissions_cmp");
 
                                                $permission_group_last = '';
                                                foreach($permissions as $permission) {
@@ -536,6 +515,29 @@ class FDOutGrid
        }
 }
 
+function permissions_cmp($a, $b) {
+       global $permissions_data;
+
+       $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel'];
+       $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel'];
+
+       if($aProtectionLevel != $bProtectionLevel) {
+               if(strlen($aProtectionLevel)==0) return 1;
+               if(strlen($bProtectionLevel)==0) return -1;
+
+               return strcmp($aProtectionLevel, $bProtectionLevel);
+       }
+
+       $aGroup = $permissions_data['permission'][$a]['permissionGroup'];
+       $bGroup = $permissions_data['permission'][$b]['permissionGroup'];
+
+       if($aGroup != $bGroup) {
+               return strcmp($aGroup, $bGroup);
+       }
+
+       return strcmp($a, $b);
+}
+
 // Make a link to this page, with the current query vars attached and desired params added/modified
 function makelink($query_vars, $params=array()) {
        $link=get_permalink();