From 5f88bb5700e49555f7e4a59ecee7e308c4b068e0 Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Tue, 22 Jan 2008 14:21:14 +0000 Subject: Added iPhone/Java, fixing dependencies and providing full support for the iPod touch. git-svn-id: http://svn.telesphoreo.org/trunk@17 514c082c-b64e-11dc-b46d-3d985efe055d --- data/iphone-java/HelloScript.app/Default.png | Bin 0 -> 590265 bytes data/iphone-java/HelloScript.app/HelloScript | 5 ++ data/iphone-java/HelloScript.app/HelloScript.js | 115 ++++++++++++++++++++++++ data/iphone-java/HelloScript.app/Info.plist | 34 +++++++ data/iphone-java/HelloScript.app/Java | 1 + data/iphone-java/HelloScript.app/icon.png | Bin 0 -> 2925 bytes data/iphone-java/HelloScript.app/start.wav | Bin 0 -> 80856 bytes 7 files changed, 155 insertions(+) create mode 100644 data/iphone-java/HelloScript.app/Default.png create mode 100755 data/iphone-java/HelloScript.app/HelloScript create mode 100644 data/iphone-java/HelloScript.app/HelloScript.js create mode 100644 data/iphone-java/HelloScript.app/Info.plist create mode 120000 data/iphone-java/HelloScript.app/Java create mode 100644 data/iphone-java/HelloScript.app/icon.png create mode 100644 data/iphone-java/HelloScript.app/start.wav (limited to 'data/iphone-java/HelloScript.app') diff --git a/data/iphone-java/HelloScript.app/Default.png b/data/iphone-java/HelloScript.app/Default.png new file mode 100644 index 000000000..f475d4db7 Binary files /dev/null and b/data/iphone-java/HelloScript.app/Default.png differ diff --git a/data/iphone-java/HelloScript.app/HelloScript b/data/iphone-java/HelloScript.app/HelloScript new file mode 100755 index 000000000..2b4460d41 --- /dev/null +++ b/data/iphone-java/HelloScript.app/HelloScript @@ -0,0 +1,5 @@ +#!/bin/bash +# XXX: -Xbootclasspath is used as JamVM runs 3x faster +# XXX: Java is symlink'd to here so the home button works +cd "$(dirname "$0")" +exec "$(dirname "$0")"/Java -Xmx8M -Xss256K -Xbootclasspath/p:/usr/share/java/jocstrap.jar:/usr/share/java/js.jar -cp /usr/share/java/sqlite.jar:/usr/share/java/uicaboodle.jar com.saurik.uicaboodle.Main com.saurik.uicaboodle.ScriptApplication HelloScript.js "$@" diff --git a/data/iphone-java/HelloScript.app/HelloScript.js b/data/iphone-java/HelloScript.app/HelloScript.js new file mode 100644 index 000000000..976868ec2 --- /dev/null +++ b/data/iphone-java/HelloScript.app/HelloScript.js @@ -0,0 +1,115 @@ +var println = function(s) { java.lang.System.out.println(s); } +var sql = Packages.SQLite; + +var contacts = []; +var sections = []; + +var ab = new sql.Database(); +ab.open("/var/root/Library/AddressBook/AddressBook.sqlitedb", 0666); try { + var st = ab.prepare("select first, last from ABPerson where first is not null order by first"); try { + while (st.step()) + contacts.push({ + first: st.column_string(0), + last: st.column_string(1), + cell: null + }); + } finally { st.close(); } +} finally { ab.close(); } + +function getName(contact) { + var name = contact.first; + if (contact.last != null) + name += " " + contact.last; + return name; +} + +var outer = obc.UIHardware.fullScreenApplicationContentRect(); +var inner = outer.clone(); +inner.origin.x = inner.origin.y = 0; + +var window = new obc.UIWindow().initWithContentRect$(inner); +window.orderFront$(application); +window.makeKey$(application); +window._setHidden$(NO); + +var navsize = obc.UINavigationBar().defaultSize(); +var navbar = new obc.UINavigationBar().initWithFrame$(new obc.CGRect(0, 0, inner.size.width, navsize.height)); +navbar.setBarStyle$(1); +navbar.showButtonsWithLeftTitle$rightTitle$leftBack$("Run GC", null, YES); + +navbar.setDelegate$({ + navigationBar$buttonClicked$: function(navbar, button) { + Packages.java.lang.Runtime.getRuntime().gc(); + } +}); + +var navitem = new obc.UINavigationItem().initWithTitle$("Contact List"); +navbar.pushNavigationItem$(navitem); + +var letter = null; +for (var i = 0; i != contacts.length; ++i) { + var name = getName(contacts[i]); + var now = name[0].toUpperCase(); + if (letter != now) { + letter = now; + sections.push({ + row: i, + title: now + }); + } +} + +var seclist = new obc.UISectionList().initWithFrame$(new obc.CGRect(0, navsize.height, inner.size.width, inner.size.height - navsize.height)); + +seclist.setDataSource$({ + numberOfSectionsInSectionList$: function(list) { + return sections.length; + }, + + sectionList$titleForSection$: function(list, section) { + return sections[section].title; + }, + + sectionList$rowForSection$: function(list, section) { + return sections[section].row; + }, + + numberOfRowsInTable$: function(table) { + return contacts.length; + }, + + table$cellForRow$column$: function(table, row, col) { + var contact = contacts[row]; + if (contact.cell != null) + return contact.cell; + var cell = new obc.UIImageAndTextTableCell().init(); + cell.setTitle$(getName(contact)); + contact.cell = cell; + return cell; + } +}); + +seclist.reloadData(); + +var col = new obc.UITableColumn().initWithTitle$identifier$width$("Name", "name", 320); + +var table = seclist.table(); +table.setSeparatorStyle$(1); +table.addTableColumn$(col); + +var view = new obc.UIView().initWithFrame$(inner); +view.addSubview$(navbar); +view.addSubview$(seclist); + +window.setContentView$(view); + +/* XXX: this works around a VM bug and will be removed */ +java.lang.Class.forName("osx.Celestial"); + +var controller = new obc.AVController().init(); +var wavfile = obc.NSBundle().mainBundle().pathForResource$ofType$("start", "wav") +var wavitem = new obc.AVItem().initWithPath$error$(wavfile, null); +wavitem.setVolume$(100); +controller.setCurrentItem$(wavitem); +controller.setCurrentTime$(0); +controller.play$(null); diff --git a/data/iphone-java/HelloScript.app/Info.plist b/data/iphone-java/HelloScript.app/Info.plist new file mode 100644 index 000000000..75b62f58e --- /dev/null +++ b/data/iphone-java/HelloScript.app/Info.plist @@ -0,0 +1,34 @@ + + + + + + CFBundleDevelopmentRegion + en + + CFBundleExecutable + HelloScript + + CFBundleIdentifier + com.saurik.HelloScript + + CFBundleInfoDictionaryVersion + 6.0 + + CFBundleName + HelloScript + + CFBundlePackageType + APPL + + CFBundleShortVersionString + 1.0 + + CFBundleSignature + ???? + + CFBundleVersion + 1.0 + + + diff --git a/data/iphone-java/HelloScript.app/Java b/data/iphone-java/HelloScript.app/Java new file mode 120000 index 000000000..33b0c18fb --- /dev/null +++ b/data/iphone-java/HelloScript.app/Java @@ -0,0 +1 @@ +/usr/bin/java \ No newline at end of file diff --git a/data/iphone-java/HelloScript.app/icon.png b/data/iphone-java/HelloScript.app/icon.png new file mode 100644 index 000000000..306d0d729 Binary files /dev/null and b/data/iphone-java/HelloScript.app/icon.png differ diff --git a/data/iphone-java/HelloScript.app/start.wav b/data/iphone-java/HelloScript.app/start.wav new file mode 100644 index 000000000..91a65a3f5 Binary files /dev/null and b/data/iphone-java/HelloScript.app/start.wav differ -- cgit v1.2.3