]> git.saurik.com Git - cydget.git/commitdiff
Port PhotoExample to iOS 5.0 (almost).
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 29 Feb 2012 05:27:38 +0000 (05:27 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 29 Feb 2012 05:27:38 +0000 (05:27 +0000)
PhotoExample.cydget/index.html

index a1e87113586cae2f3433bf884363d773a280ddcf..f85db225b3dafc27f7eea2c6d41329f8c61f090c 100644 (file)
     <script type="text/cycript">
         dlopen("/System/Library/PrivateFrameworks/PhotoLibrary.framework/PhotoLibrary", RTLD_GLOBAL);
 
     <script type="text/cycript">
         dlopen("/System/Library/PrivateFrameworks/PhotoLibrary.framework/PhotoLibrary", RTLD_GLOBAL);
 
-        var old = [PLCameraAlbum respondsToSelector:@selector(sharedInstance)];
+        var version = [PLCameraAlbum respondsToSelector:@selector(sharedInstance)] ? 0 : 1;
 
         var album;
 
         var album;
-        if (old)
+        if (version == 0)
             album = [[PLCameraAlbum sharedInstance] images];
             album = [[PLCameraAlbum sharedInstance] images];
-        else
-            album = [[[PLPhotoLibrary sharedPhotoLibrary] albums][0] contents];
+        else {
+            album = [[PLPhotoLibrary sharedPhotoLibrary] albums][0];
+
+            version = [album respondsToSelector:@selector(managedObjectContext)] ? 2 : 1;
+            if (version == 1)
+                album = album.contents;
+            else {
+                [album indexOfPosterImage];
+                [album entity];
+                album = album.managedObjectContext.registeredObjects.allObjects;
+            }
+        }
+
+        var getImage = function(index) {
+            var object = album[index];
+
+            if (version == 0)
+                return [[object fileGroup] pathForFullSizeImage];
+            else if (version == 1)
+                return '/var/mobile/Media/' + [object directory].toString() + '/' + [object filename].toString();
+            else if (version == 2)
+                return [object fileURLForLargeDisplayableImage];
+        };
 
         var jpeg = null, length = album.length;
         for (var i = 0; i != 5; ++i) {
 
         var jpeg = null, length = album.length;
         for (var i = 0; i != 5; ++i) {
-            var object = album[Math.floor(Math.random() * length)];
-            if (old)
-                jpeg = [[object fileGroup] pathForFullSizeImage];
-            else
-                jpeg = '/var/mobile/Media/' + [object directory].toString() + '/' + [object filename].toString();
+            jpeg = getImage(Math.floor(Math.random() * length));
             if (jpeg != null)
                 break;
         }
 
         if (jpeg == null)
             for (var i = 0; i != length; ++i) {
             if (jpeg != null)
                 break;
         }
 
         if (jpeg == null)
             for (var i = 0; i != length; ++i) {
-                jpeg = [[album[Math.floor(i)] fileGroup] pathForFullSizeImage];
+                jpeg = getImage(i);
                 if (jpeg != null)
                     break;
             }
 
                 if (jpeg != null)
                     break;
             }
 
-        document.write('<img src="' + jpeg.toString() + '"/>');
+        if (jpeg != null)
+            document.write('<img src="' + jpeg.toString() + '"/>');
     </script></div>
 </body></html>
     </script></div>
 </body></html>