Guest User

Untitled

a guest
Jun 20th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.16 KB | None | 0 0
  1. var println = function(s) { java.lang.System.out.println(s); }
  2. var sql = Packages.SQLite;
  3.  
  4. function getName(contact) {
  5. var name = contact.first;
  6. if (contact.last != null)
  7. name += " " + contact.last;
  8. return name;
  9. }
  10.  
  11. function numberOfSectionsInSectionList$(list) {
  12. return sections_.length;
  13. }
  14.  
  15. function sectionList$titleForSection$(list, section) {
  16. return sections_[section].title;
  17. }
  18.  
  19. function sectionList$rowForSection$(list, section) {
  20. return sections_[section].row;
  21. }
  22.  
  23. function numberOfRowsInTable$(table) {
  24. return contacts_.length;
  25. }
  26.  
  27. function table$cellForRow$column$reusing$(table, row, col, reusing) {
  28. var contact = contacts_[row];
  29.  
  30. var cell;
  31. if (reusing != null)
  32. cell = reusing;
  33. else
  34. cell = new obc.UIImageAndTextTableCell().init();
  35.  
  36. cell.setTitle$(getName(contact));
  37. return cell;
  38. }
  39.  
  40. function table$canSelectRow$(table, row) {
  41. return NO;
  42. }
  43.  
  44. var contacts_ = [];
  45. var sections_ = [];
  46.  
  47. var ab = new sql.Database();
  48. ab.open(application.userHomeDirectory().toString() + "/Library/AddressBook/AddressBook.sqlitedb", 0666); try {
  49. var st = ab.prepare("select first, last from ABPerson where first is not null order by first"); try {
  50. while (st.step())
  51. contacts_.push({
  52. first: st.column_string(0),
  53. last: st.column_string(1)
  54. });
  55. } finally { st.close(); }
  56. } finally { ab.close(); }
  57.  
  58. var outer = obc.UIHardware.fullScreenApplicationContentRect();
  59. var window = new obc.UIWindow().initWithContentRect$(outer);
  60.  
  61. window.orderFront$(application);
  62. window.makeKey$(application);
  63. window._setHidden$(NO);
  64.  
  65. var inner = window.bounds();
  66. var navsize = obc.UINavigationBar().defaultSize();
  67. var navrect = new obc.CGRect(0, 0, inner.size.width, navsize.height);
  68.  
  69. var view = new obc.UIView().initWithFrame$(inner);
  70. window.setContentView$(view);
  71.  
  72. var navbar = new obc.UINavigationBar().initWithFrame$(navrect);
  73. view.addSubview$(navbar);
  74.  
  75. navbar.setBarStyle$(1);
  76.  
  77. var navitem = new obc.UINavigationItem().initWithTitle$("Contact List");
  78. navbar.pushNavigationItem$(navitem);
  79.  
  80. var letter = null;
  81. for (var i = 0; i != contacts_.length; ++i) {
  82. var name = getName(contacts_[i]);
  83. var now = name[0].toUpperCase();
  84. if (letter != now) {
  85. letter = now;
  86. sections_.push({
  87. row: i,
  88. title: now
  89. });
  90. }
  91. }
  92.  
  93. var lower = new obc.CGRect(0, navsize.height, inner.size.width, inner.size.height - navsize.height);
  94. var list = new obc.UISectionList().initWithFrame$(lower);
  95. view.addSubview$(list);
  96.  
  97. var col = new obc.UITableColumn().initWithTitle$identifier$width$("Name", "name", 320);
  98.  
  99. var table = list.table();
  100. table.setSeparatorStyle$(1);
  101. table.addTableColumn$(col);
  102. table.setReusesTableCells$(YES);
  103.  
  104. list.setDataSource$(this);
  105. list.reloadData();
  106.  
  107. var controller = new obc.AVController().init();
  108. var wavfile = obc.NSBundle().mainBundle().pathForResource$ofType$("start", "wav")
  109. var wavitem = new obc.AVItem().initWithPath$error$(wavfile, null);
  110. wavitem.setVolume$(100);
  111. controller.setCurrentItem$(wavitem);
  112. controller.setCurrentTime$(0);
  113. controller.play$(null);
Add Comment
Please, Sign In to add comment