From: Hans-Emil Skogh Date: Tue, 17 Jan 2012 18:41:22 +0000 (+0100) Subject: Added file size difference indicator for apks. X-Git-Tag: 0.1~1063^2~2^2~7 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=89a6119bd55fde869c3dee2bb88a7b3d930009fc;p=fdroidserver.git Added file size difference indicator for apks. --- diff --git a/wp-fdroid/wp-fdroid.php b/wp-fdroid/wp-fdroid.php index 0ea58d6c..935b4dcc 100644 --- a/wp-fdroid/wp-fdroid.php +++ b/wp-fdroid/wp-fdroid.php @@ -105,6 +105,7 @@ class FDroid $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(); + // Get app data $xml = simplexml_load_file($this->site_path.'/repo/index.xml'); foreach($xml->children() as $app) { @@ -174,7 +175,16 @@ class FDroid } } + + // Generate app diff data + foreach(array_reverse($apks, true) as $key=>$apk) { + if(isset($previous)) { + $apks[$key]['diff']['size'] = $apk['size']-$previous['size']; + } + $previous = $apk; + } + // Output app information $out='
'; $out.='
'; $out.='

'.$name.""; @@ -212,6 +222,12 @@ class FDroid $out.="

Version ".$apk['version']."
"; $out.='download apk '; $out.=$this->human_readable_size($apk['size']); + $diffSize = $apk['diff']['size']; + if(abs($diffSize) > 500) { + $out.=' ('; + $out.=$diffSize>0?'+':''; + $out.=$this->human_readable_size($diffSize, 1).')'; + } if($apk['srcname']) { $out.='
source tarball '; $out.=$this->human_readable_size(filesize($this->site_path.'/repo/'.$apk['srcname'])); @@ -296,11 +312,11 @@ class FDroid } } - private function human_readable_size($size) { + private function human_readable_size($size, $minDiv=0) { $si_prefix = array('bytes','kB','MB'); $div = 1000; - for($i=0;$size > $div && $i < count($si_prefix);$i++) { + for($i=0;(abs($size) > $div && $i < count($si_prefix)) || $i<$minDiv;$i++) { $size /= $div; }