rhodes 2.1.0 → 2.2.0.beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. data/CHANGELOG +7 -0
  2. data/README.textile +4 -5
  3. data/Rakefile +8 -1
  4. data/lib/build/jake.rb +22 -16
  5. data/lib/extensions/rhoxml/rexml/cdata.rb +67 -0
  6. data/lib/extensions/rhoxml/rexml/document.rb +2 -116
  7. data/lib/extensions/rhoxml/rexml/element.rb +1 -1
  8. data/lib/extensions/rhoxml/rexml/text.rb +117 -0
  9. data/lib/framework/rho/render.rb +19 -11
  10. data/lib/framework/rho/rho.rb +17 -10
  11. data/lib/framework/rho/rhobluetooth.rb +103 -0
  12. data/lib/framework/rho/rhocontroller.rb +2 -0
  13. data/lib/framework/rho/rhoevent.rb +43 -0
  14. data/lib/framework/rho/rhoevent_bb.rb +80 -0
  15. data/lib/framework/rho/rhoevent_c.rb +47 -0
  16. data/lib/framework/rhodes.rb +2 -2
  17. data/lib/framework/rhom/rhom_db_adapter.rb +2 -1
  18. data/lib/framework/rhom/rhom_model.rb +9 -3
  19. data/lib/framework/rhom/rhom_object_factory.rb +46 -22
  20. data/lib/framework/rhom/rhom_source.rb +12 -10
  21. data/lib/framework/version.rb +2 -2
  22. data/lib/rhodes.rb +2 -2
  23. data/platform/android/Rhodes/AndroidManifest.xml +23 -2
  24. data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +54 -38
  25. data/platform/android/Rhodes/jni/include/rhodes.h +3 -0
  26. data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +2 -2
  27. data/platform/android/Rhodes/jni/include/rhodes/details/rhojava.inc +4 -0
  28. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +16 -0
  29. data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_bluetooth_RhoBluetoothManager.h +21 -0
  30. data/platform/android/Rhodes/jni/src/bluetooth.cpp +169 -0
  31. data/platform/android/Rhodes/jni/src/callbacks.cpp +10 -0
  32. data/platform/android/Rhodes/jni/src/event.cpp +429 -0
  33. data/platform/android/Rhodes/jni/src/fileapi.cpp +51 -1
  34. data/platform/android/Rhodes/jni/src/rhodes.cpp +16 -0
  35. data/platform/android/Rhodes/jni/src/sslimpl.cpp +3 -0
  36. data/platform/android/Rhodes/res/layout/bt_device_list.xml +42 -0
  37. data/platform/android/Rhodes/res/layout/bt_device_name.xml +7 -0
  38. data/platform/android/Rhodes/res/values/strings.xml +8 -0
  39. data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +14 -0
  40. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +2 -0
  41. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Push.java +7 -0
  42. data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushReceiver.java +58 -0
  43. data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java +53 -0
  44. data/platform/android/Rhodes/src/com/rhomobile/rhodes/Rhodes.java +8 -0
  45. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +144 -3
  46. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/IRhoBluetoothManager.java +66 -0
  47. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothDeviceListActivity.java +201 -0
  48. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManager.java +139 -0
  49. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerNew.java +401 -0
  50. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothManagerOld.java +136 -0
  51. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothSession.java +457 -0
  52. data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/UUIDHelper.java +71 -0
  53. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +12 -7
  54. data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +19 -0
  55. data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +261 -0
  56. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +4 -2
  57. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +2 -2
  58. data/platform/android/Rhodes/src/com/rhomobile/rhodes/uri/MailUriHandler.java +10 -2
  59. data/platform/android/build/RhodesSRC_build.files +33 -22
  60. data/platform/android/build/android.rake +198 -27
  61. data/platform/android/build/librhodes_build.files +3 -1
  62. data/platform/android/build/libruby_build.files +4 -1
  63. data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBResult.java +2 -2
  64. data/platform/bb/Hsqldb/src/com/rho/db/HsqlDBRowResult.java +1 -1
  65. data/platform/bb/Hsqldb/src/org/hsqldb/Expression.java +7 -4
  66. data/platform/bb/Hsqldb/src/org/hsqldb/Like.java +3 -3
  67. data/platform/bb/Hsqldb/src/org/hsqldb/Table.java +3 -1
  68. data/platform/bb/Hsqldb/src/org/hsqldb/Tokenizer.java +1 -1
  69. data/platform/bb/RubyVM/RubyVM.jdp +1 -0
  70. data/platform/bb/RubyVM/src/com/rho/RhoConf.java +108 -1
  71. data/platform/bb/RubyVM/src/com/rho/RhoLogConf.java +7 -1
  72. data/platform/bb/RubyVM/src/com/rho/RhoRuby.java +7 -4
  73. data/platform/bb/RubyVM/src/com/rho/ThreadQueue.java +7 -1
  74. data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +1 -1
  75. data/platform/bb/RubyVM/src/com/rho/net/NetRequest.java +21 -23
  76. data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +19 -10
  77. data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +8 -0
  78. data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +3 -0
  79. data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +14 -17
  80. data/platform/bb/RubyVM/src/com/xruby/runtime/builtin/RubyFile.java +7 -5
  81. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RhoSupport.java +2 -0
  82. data/platform/bb/RubyVM/src/com/xruby/runtime/lang/RubyRuntime.java +10 -1
  83. data/platform/bb/RubyVM/src/j2me/io/File.java +7 -6
  84. data/platform/bb/build/RubyVM_build.files +412 -412
  85. data/platform/bb/build/bb.rake +42 -18
  86. data/platform/bb/build/hsqldb_build.files +151 -151
  87. data/platform/bb/build/rhodes_build.files +44 -40
  88. data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +2 -0
  89. data/platform/bb/rhodes/platform/5.0/com/rho/RhodesApplicationPlatform.java +237 -0
  90. data/platform/bb/rhodes/platform/common/com/rho/RhodesApplicationPlatform.java +14 -0
  91. data/platform/bb/rhodes/rhodes.jdp +6 -1
  92. data/platform/bb/rhodes/src/com/rho/RhoRubyHelper.java +7 -1
  93. data/platform/bb/rhodes/src/com/rho/RhodesApplicationPlatform.java +14 -0
  94. data/platform/bb/rhodes/src/com/rho/net/NetworkAccess.java +62 -76
  95. data/platform/bb/rhodes/src/com/rho/rubyext/RhoCalendar.java +660 -0
  96. data/platform/bb/rhodes/src/{rhomobile → com/rho/rubyext}/RhoPhonebook.java +95 -38
  97. data/platform/bb/rhodes/src/com/rho/rubyext/System.java +22 -1
  98. data/platform/bb/rhodes/src/rhomobile/PushListeningThread.java +26 -6
  99. data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +21 -7
  100. data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothManager.java +528 -0
  101. data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothPort.java +281 -0
  102. data/platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothScreen.java +119 -0
  103. data/platform/bb/rhodes/src/rhomobile/camera/CameraFilesListener.java +2 -2
  104. data/platform/iphone/Classes/AppManager/AppManager.m +70 -7
  105. data/platform/iphone/Classes/Bluetooth/Bluetooth.h +72 -0
  106. data/platform/iphone/Classes/Bluetooth/Bluetooth.m +414 -0
  107. data/platform/iphone/Classes/Event/Event.h +12 -0
  108. data/platform/iphone/Classes/Event/Event.m +300 -0
  109. data/platform/iphone/Classes/LogOptionsController.h +2 -1
  110. data/platform/iphone/Classes/LogOptionsController.m +1 -1
  111. data/platform/iphone/Classes/LogViewController.h +2 -1
  112. data/platform/iphone/Classes/MapView/MapViewController.h +2 -1
  113. data/platform/iphone/Classes/RhoViewController.h +16 -0
  114. data/platform/iphone/Classes/RhoViewController.m +20 -0
  115. data/platform/iphone/Classes/Rhodes.h +12 -0
  116. data/platform/iphone/Classes/Rhodes.m +34 -6
  117. data/platform/iphone/Classes/Signature/SignatureViewController.h +2 -2
  118. data/platform/iphone/Classes/Signature/SignatureViewController.m +0 -10
  119. data/platform/iphone/Classes/SimpleMainView.h +2 -2
  120. data/platform/iphone/Classes/SimpleMainView.m +5 -14
  121. data/platform/iphone/Classes/SplashViewController.h +2 -2
  122. data/platform/iphone/Classes/TabbedMainView.h +2 -2
  123. data/platform/iphone/Classes/TabbedMainView.m +5 -10
  124. data/platform/iphone/Info.plist +5 -5
  125. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +39 -0
  126. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +47 -4
  127. data/platform/osx/Rhodes Debugger/NoodleLineNumberView.m +3 -2
  128. data/platform/shared/common/AutoPointer.h +3 -0
  129. data/platform/shared/common/RhoConf.cpp +2 -1
  130. data/platform/shared/common/RhoThread.h +1 -1
  131. data/platform/shared/common/RhoTime.h +3 -3
  132. data/platform/shared/common/RhodesApp.cpp +75 -23
  133. data/platform/shared/common/RhodesApp.h +4 -0
  134. data/platform/shared/common/RhodesAppBase.h +2 -0
  135. data/platform/shared/common/ThreadQueue.cpp +23 -18
  136. data/platform/shared/common/ThreadQueue.h +2 -0
  137. data/platform/shared/db/res/db/syncdb.schema +39 -39
  138. data/platform/shared/logging/RhoLogConf.cpp +58 -3
  139. data/platform/shared/logging/RhoLogConf.h +3 -1
  140. data/platform/shared/net/CURLNetRequest.cpp +17 -6
  141. data/platform/shared/net/HttpServer.cpp +125 -25
  142. data/platform/shared/net/HttpServer.h +4 -3
  143. data/platform/shared/ruby/ext/bluetooth/bluetooth.i +56 -0
  144. data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +2563 -0
  145. data/platform/shared/ruby/ext/calendar/calendar.i +28 -0
  146. data/platform/shared/ruby/ext/calendar/calendar_wrap.c +2251 -0
  147. data/platform/shared/ruby/ext/calendar/event.h +41 -0
  148. data/platform/shared/ruby/ext/calendar/event.i +28 -0
  149. data/platform/shared/ruby/ext/calendar/event_wrap.c +2151 -0
  150. data/platform/shared/ruby/ext/rho/rhoruby.c +103 -3
  151. data/platform/shared/ruby/ext/rho/rhoruby.h +16 -2
  152. data/platform/shared/ruby/ext/rhoconf/rhoconf.i +12 -0
  153. data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +101 -0
  154. data/platform/shared/ruby/ext/system/system.i +14 -0
  155. data/platform/shared/ruby/ext/system/system_wrap.c +2568 -2208
  156. data/platform/shared/ruby/main.c +8 -0
  157. data/platform/shared/rubyext/GeoLocation.cpp +6 -3
  158. data/platform/shared/rubyext/System.cpp +14 -0
  159. data/platform/shared/sync/SyncEngine.cpp +9 -1
  160. data/platform/shared/sync/SyncNotify.cpp +16 -8
  161. data/platform/shared/sync/SyncNotify.h +1 -0
  162. data/platform/shared/sync/SyncThread.cpp +7 -12
  163. data/platform/shared/sync/SyncThread.h +5 -3
  164. data/platform/wm/build/wm.rake +7 -1
  165. data/platform/wm/rhodes/Alert.cpp +1 -1
  166. data/platform/wm/rhodes/MainWindow.cpp +28 -0
  167. data/platform/wm/rhodes/MainWindow.h +9 -0
  168. data/platform/wm/rhodes/OutlookApp.cpp +72 -0
  169. data/platform/wm/rhodes/OutlookApp.h +22 -0
  170. data/platform/wm/rhodes/Rhodes.cpp +8 -0
  171. data/platform/wm/rhodes/Rhodes.rc +31 -0
  172. data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +1274 -0
  173. data/platform/wm/rhodes/bluetooth/Bluetooth.h +321 -0
  174. data/platform/wm/rhodes/phonebook/NativeAddressBook.cpp +37 -70
  175. data/platform/wm/rhodes/phonebook/NativeAddressBook.h +0 -4
  176. data/platform/wm/rhodes/resource.h +8 -1
  177. data/platform/wm/rhodes/rho/net/NetRequest.cpp +4 -0
  178. data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +6 -4
  179. data/platform/wm/rhodes/rho/rubyext/calendar.cpp +487 -0
  180. data/platform/wm/rhodes/rhodes.vcproj +28 -11
  181. data/platform/wm/rhodes/stdafx.h +1 -0
  182. data/platform/wm/rubylib/rubylib.vcproj +32 -0
  183. data/rakefile.rb +8 -1
  184. data/res/generators/templates/application/Rakefile +1 -1
  185. data/res/generators/templates/application/app/layout.erb +4 -1
  186. data/res/generators/templates/application/build.yml +0 -1
  187. data/res/generators/templates/application/public/css/iphone.css +2 -2
  188. data/res/generators/templates/application/public/jqtouch/jqtouch-iphone.css +9 -0
  189. data/res/generators/templates/application/public/jqtouch/jqtouch.css +1 -5
  190. data/res/generators/templates/application/public/jqtouch/jqtouch.js +3 -2
  191. data/rhodes.gemspec +1 -1
  192. data/spec/perfomance_spec/app/Benchmark/benchmark.rb +4 -0
  193. data/spec/perfomance_spec/app/Benchmark/bulk_results.erb +13 -0
  194. data/spec/perfomance_spec/app/Benchmark/controller.rb +178 -0
  195. data/spec/perfomance_spec/app/Benchmark/create_results.erb +13 -0
  196. data/spec/perfomance_spec/app/Benchmark/customers.erb +35 -0
  197. data/spec/perfomance_spec/app/Benchmark/index.erb +9 -0
  198. data/spec/perfomance_spec/app/Benchmark/products.erb +25 -0
  199. data/spec/perfomance_spec/app/Benchmark/search_results.erb +13 -0
  200. data/spec/perfomance_spec/app/Customer/customer.rb +6 -0
  201. data/spec/perfomance_spec/app/Perftest/index.erb +5 -0
  202. data/spec/perfomance_spec/app/Product/index.erb +25 -0
  203. data/spec/perfomance_spec/app/Product/product.rb +6 -0
  204. data/spec/perfomance_spec/app/helpers/application_helper.rb +126 -0
  205. data/spec/perfomance_spec/app/helpers/browser_helper.rb +18 -0
  206. data/spec/perfomance_spec/rhoconfig.txt +1 -1
  207. data/spec/phone_spec/app/Account_s/account_s.rb +5 -2
  208. data/spec/phone_spec/app/Case/case.rb +1 -0
  209. data/spec/phone_spec/app/Case_s/case_s.rb +2 -0
  210. data/spec/phone_spec/app/Data/perftest.json +35 -0
  211. data/spec/phone_spec/app/Data/testCDATA.xml +11 -0
  212. data/spec/phone_spec/app/Product/product.rb +1 -1
  213. data/spec/phone_spec/app/{Spec → spec}/asynchttp_spec.rb +66 -17
  214. data/spec/phone_spec/app/{Spec → spec}/barcode_spec.rb +0 -0
  215. data/spec/phone_spec/app/{Spec → spec}/blobsync_spec.rb +0 -0
  216. data/spec/phone_spec/app/{Spec → spec}/bsearch_spec.rb +0 -0
  217. data/spec/phone_spec/app/{Spec → spec}/bulksync_spec.rb +0 -0
  218. data/spec/phone_spec/app/{Spec → spec}/contacts_spec.rb +0 -0
  219. data/spec/phone_spec/app/{Spec → spec}/crypt_spec.rb +0 -0
  220. data/spec/phone_spec/app/{Spec → spec}/date_spec.rb +0 -0
  221. data/spec/phone_spec/app/spec/events_spec.rb +199 -0
  222. data/spec/phone_spec/app/{Spec → spec}/fixtures/client_info.txt +0 -0
  223. data/spec/phone_spec/app/{Spec → spec}/fixtures/object_values.txt +0 -0
  224. data/spec/phone_spec/app/{Spec → spec}/json_spec.rb +11 -2
  225. data/spec/phone_spec/app/{Spec → spec}/mapview_spec.rb +0 -0
  226. data/spec/phone_spec/app/{Spec → spec}/nativebar_spec.rb +0 -0
  227. data/spec/phone_spec/app/{Spec → spec}/navbar_spec.rb +0 -0
  228. data/spec/phone_spec/app/{Spec → spec}/pagination/fixtures/object_values.txt +0 -0
  229. data/spec/phone_spec/app/{Spec → spec}/rho_controller_spec.rb +5 -0
  230. data/spec/phone_spec/app/{Spec → spec}/rho_spec.rb +48 -0
  231. data/spec/phone_spec/app/{Spec → spec}/rhofile_spec.rb +9 -6
  232. data/spec/phone_spec/app/{Spec → spec}/rhom_object_spec.rb +188 -9
  233. data/spec/phone_spec/app/{Spec → spec}/syncengine_spec.rb +0 -0
  234. data/spec/phone_spec/app/{Spec → spec}/xml_spec.rb +15 -0
  235. data/spec/phone_spec/app/{Spec → spec}/xruby_spec.rb +0 -0
  236. data/spec/phone_spec/app/spec_runner.rb +4 -1
  237. data/spec/phone_spec/build.yml +2 -1
  238. metadata +95 -31
  239. data/platform/bb/rhodes/platform/5.0/com/rho/RhoMainScreen.java +0 -36
  240. data/platform/bb/rhodes/platform/6.0/com/rho/BrowserAdapter5.java +0 -155
  241. data/platform/bb/rhodes/platform/6.0/com/rho/RhoMainScreen.java +0 -36
@@ -1,40 +1,44 @@
1
- platform\bb\rhodes\src\com\rho\file\Jsr75File.java
2
- platform\bb\rhodes\src\com\rho\file\Jsr75RAFileImpl.java
3
- platform\bb\rhodes\src\com\rho\rubyext\GeoLocation.java
4
- platform\bb\rhodes\src\com\rho\rubyext\System.java
5
- platform\bb\rhodes\src\com\rho\rubyext\XMLParser.java
6
- platform\bb\rhodes\src\com\rho\rubyext\Alert.java
7
- platform\bb\rhodes\src\com\rho\net\BaseSocket.java
8
- platform\bb\rhodes\src\com\rho\net\bb\BBHttpConnection.java
9
- platform\bb\rhodes\src\com\rho\net\bb\NativeBBHttpConnection.java
10
- platform\bb\rhodes\src\com\rho\net\NetworkAccess.java
11
- platform\bb\rhodes\src\com\rho\net\SSLSocket.java
12
- platform\bb\rhodes\src\com\rho\net\TCPSocket.java
13
- platform\bb\rhodes\src\com\rho\RhoRubyHelper.java
14
- platform\bb\rhodes\src\com\rho\Version.java
15
- platform\bb\rhodes\src\com\rho\BrowserAdapter.java
16
- platform\bb\rhodes\src\com\rho\IBrowserAdapter.java
17
- platform\bb\rhodes\src\rhomobile\camera\Camera.java
18
- platform\bb\rhodes\src\rhomobile\camera\CameraScreen.java
19
- platform\bb\rhodes\src\rhomobile\camera\CameraFilesListener.java
20
- platform\bb\rhodes\src\rhomobile\camera\ImageBrowserScreen.java
21
- platform\bb\rhodes\src\rhomobile\LogOptionsScreen.java
22
- platform\bb\rhodes\src\rhomobile\LogScreen.java
23
- platform\bb\rhodes\src\rhomobile\PushListeningThread.java
24
- platform\bb\rhodes\src\rhomobile\RhodesApplication.java
25
- platform\bb\rhodes\src\rhomobile\RhoPhonebook.java
26
- platform\bb\rhodes\src\rhomobile\SecondaryResourceFetchThread.java
27
- platform\bb\rhodes\src\rhomobile\Utilities.java
28
- platform\bb\rhodes\src\com\rho\rubyext\WebView.java
29
- platform\bb\rhodes\src\rhomobile\datetime\DateTimePicker.java
30
- platform\bb\rhodes\src\rhomobile\datetime\DateTimeScreen.java
31
- platform\bb\rhodes\src\rhomobile\RingtoneManager.java
32
- platform\bb\rhodes\src\rhomobile\NativeBar.java
33
- platform\bb\rhodes\src\rhomobile\mapview\Annotation.java
34
- platform\bb\rhodes\src\rhomobile\mapview\GoogleMapField.java
35
- platform\bb\rhodes\src\rhomobile\mapview\GoogleMapProvider.java
36
- platform\bb\rhodes\src\rhomobile\mapview\MapProvider.java
37
- platform\bb\rhodes\src\rhomobile\mapview\MapView.java
38
- platform\bb\rhodes\src\rhomobile\mapview\MapViewParent.java
39
- platform\bb\rhodes\src\rhomobile\mapview\MapViewScreen.java
40
- platform\bb\rhodes\src\rhomobile\mapview\RhoMapField.java
1
+ platform/bb/rhodes/src/com/rho/file/Jsr75File.java
2
+ platform/bb/rhodes/src/com/rho/file/Jsr75RAFileImpl.java
3
+ platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java
4
+ platform/bb/rhodes/src/com/rho/rubyext/System.java
5
+ platform/bb/rhodes/src/com/rho/rubyext/XMLParser.java
6
+ platform/bb/rhodes/src/com/rho/rubyext/Alert.java
7
+ platform/bb/rhodes/src/com/rho/rubyext/RhoPhonebook.java
8
+ platform/bb/rhodes/src/com/rho/rubyext/RhoCalendar.java
9
+ platform/bb/rhodes/src/com/rho/net/BaseSocket.java
10
+ platform/bb/rhodes/src/com/rho/net/bb/BBHttpConnection.java
11
+ platform/bb/rhodes/src/com/rho/net/bb/NativeBBHttpConnection.java
12
+ platform/bb/rhodes/src/com/rho/net/NetworkAccess.java
13
+ platform/bb/rhodes/src/com/rho/net/SSLSocket.java
14
+ platform/bb/rhodes/src/com/rho/net/TCPSocket.java
15
+ platform/bb/rhodes/src/com/rho/RhoRubyHelper.java
16
+ platform/bb/rhodes/src/com/rho/Version.java
17
+ platform/bb/rhodes/src/com/rho/BrowserAdapter.java
18
+ platform/bb/rhodes/src/com/rho/IBrowserAdapter.java
19
+ platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothManager.java
20
+ platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothScreen.java
21
+ platform/bb/rhodes/src/rhomobile/bluetooth/BluetoothPort.java
22
+ platform/bb/rhodes/src/rhomobile/camera/Camera.java
23
+ platform/bb/rhodes/src/rhomobile/camera/CameraScreen.java
24
+ platform/bb/rhodes/src/rhomobile/camera/CameraFilesListener.java
25
+ platform/bb/rhodes/src/rhomobile/camera/ImageBrowserScreen.java
26
+ platform/bb/rhodes/src/rhomobile/LogOptionsScreen.java
27
+ platform/bb/rhodes/src/rhomobile/LogScreen.java
28
+ platform/bb/rhodes/src/rhomobile/PushListeningThread.java
29
+ platform/bb/rhodes/src/rhomobile/RhodesApplication.java
30
+ platform/bb/rhodes/src/rhomobile/SecondaryResourceFetchThread.java
31
+ platform/bb/rhodes/src/rhomobile/Utilities.java
32
+ platform/bb/rhodes/src/com/rho/rubyext/WebView.java
33
+ platform/bb/rhodes/src/rhomobile/datetime/DateTimePicker.java
34
+ platform/bb/rhodes/src/rhomobile/datetime/DateTimeScreen.java
35
+ platform/bb/rhodes/src/rhomobile/RingtoneManager.java
36
+ platform/bb/rhodes/src/rhomobile/NativeBar.java
37
+ platform/bb/rhodes/src/rhomobile/mapview/Annotation.java
38
+ platform/bb/rhodes/src/rhomobile/mapview/GoogleMapField.java
39
+ platform/bb/rhodes/src/rhomobile/mapview/GoogleMapProvider.java
40
+ platform/bb/rhodes/src/rhomobile/mapview/MapProvider.java
41
+ platform/bb/rhodes/src/rhomobile/mapview/MapView.java
42
+ platform/bb/rhodes/src/rhomobile/mapview/MapViewParent.java
43
+ platform/bb/rhodes/src/rhomobile/mapview/MapViewScreen.java
44
+ platform/bb/rhodes/src/rhomobile/mapview/RhoMapField.java
@@ -7,6 +7,7 @@ import net.rim.device.api.system.Application;
7
7
  import javax.microedition.io.HttpConnection;
8
8
  import javax.microedition.io.InputConnection;
9
9
 
10
+ import com.rho.RhoLogger;
10
11
  import com.rho.RhodesApp;
11
12
  import com.rho.net.URI;
12
13
 
@@ -95,6 +96,7 @@ public class BrowserAdapter5 implements IBrowserAdapter
95
96
 
96
97
  private void createBrowserField()
97
98
  {
99
+ LOG.INFO("Use BrowserField5");
98
100
  m_oBrowserField = new BrowserField(m_oConfig);
99
101
  m_oBrowserField.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, RenderingOptions.ALLOW_POPUPS, true);
100
102
  m_oController = new RhoProtocolController(m_oBrowserField);
@@ -0,0 +1,237 @@
1
+ package com.rho;
2
+
3
+ import java.io.InputStream;
4
+
5
+ import javax.microedition.io.StreamConnection;
6
+
7
+ import com.rho.RhoClassFactory;
8
+ import com.rho.RhoEmptyLogger;
9
+ import com.rho.RhoLogger;
10
+ import com.rho.RhoThread;
11
+ import com.rho.RhodesApp;
12
+ import com.rho.ThreadQueue;
13
+ import com.rho.ThreadQueue.IQueueCommand;
14
+ import com.rho.net.URI;
15
+
16
+ import net.rim.blackberry.api.push.*;
17
+ import net.rim.device.api.io.http.PushInputStream;
18
+ import net.rim.device.api.system.ApplicationDescriptor;
19
+ import net.rim.device.api.ui.UiApplication;
20
+ import net.rim.device.api.util.DataBuffer;
21
+ /**
22
+ *
23
+ */
24
+ public class RhodesApplicationPlatform extends UiApplication implements PushApplication
25
+ {
26
+ private static final RhoLogger LOG = RhoLogger.RHO_STRIP_LOG ? new RhoEmptyLogger() :
27
+ new RhoLogger("RhodesPUSH");
28
+
29
+ private static final int CHUNK_SIZE = 256;
30
+ PushMessageThread m_PushMessageThread;
31
+
32
+ private static class PushStatusCommand implements IQueueCommand
33
+ {
34
+ String m_strStatus;
35
+
36
+ public PushStatusCommand(String strStatus)
37
+ {
38
+ m_strStatus = strStatus;
39
+ }
40
+ public boolean equals(IQueueCommand cmd){return false;}
41
+
42
+ public void execute()
43
+ {
44
+ try
45
+ {
46
+ RhodesApp.getInstance().callPushCallback(m_strStatus);
47
+ }catch(Exception exc)
48
+ {
49
+ LOG.ERROR("callPushCallback failed.", exc);
50
+ }
51
+ }
52
+ }
53
+
54
+ private static class PushMessageCommand implements IQueueCommand
55
+ {
56
+ PushInputStream m_inputStream;
57
+ StreamConnection m_conn;
58
+
59
+ public PushMessageCommand(PushInputStream inputStream, StreamConnection conn)
60
+ {
61
+ m_inputStream = inputStream;
62
+ m_conn = conn;
63
+ }
64
+ public boolean equals(IQueueCommand cmd){return false;}
65
+
66
+ public void execute()
67
+ {
68
+ InputStream input = null;
69
+
70
+ try
71
+ {
72
+ input = m_conn.openInputStream();
73
+ DataBuffer db = new DataBuffer();
74
+ byte[] data = new byte[CHUNK_SIZE];
75
+ int chunk = 0;
76
+
77
+ while ( -1 != (chunk = input.read(data)) )
78
+ {
79
+ db.write(data, 0, chunk);
80
+ }
81
+
82
+ data = db.getArray();
83
+
84
+ try
85
+ {
86
+ rhomobile.PushListeningThread.processPushMessage(data, db.getLength());
87
+ }catch(Exception exc)
88
+ {
89
+ LOG.ERROR("processPushMessage failed.Data: " + new String(data), exc);
90
+ }catch(Throwable th)
91
+ {
92
+ LOG.ERROR("processPushMessage crashed.Data: " + new String(data), th);
93
+ }
94
+ }catch(Exception exc)
95
+ {
96
+ LOG.ERROR("Read PUSH message failed.", exc);
97
+ }catch(Throwable th)
98
+ {
99
+ LOG.ERROR("Read PUSH message crashed.", th);
100
+ }finally
101
+ {
102
+ try
103
+ {
104
+ m_inputStream.accept();
105
+
106
+ if ( input != null)
107
+ input.close();
108
+
109
+ m_inputStream.close();
110
+ m_conn.close();
111
+ }catch(Exception exc)
112
+ {
113
+
114
+ }
115
+ }
116
+ }
117
+
118
+ }
119
+
120
+ private static class PushMessageThread extends ThreadQueue
121
+ {
122
+ public PushMessageThread()
123
+ {
124
+ super(new RhoClassFactory());
125
+
126
+ ThreadQueue.setLogCategory(LOG.getLogCategory());
127
+
128
+ setPollInterval(QUEUE_POLL_INTERVAL_INFINITE);
129
+
130
+ start(epLow);
131
+ }
132
+ }
133
+
134
+ public void onMessage(PushInputStream inputStream, StreamConnection conn)
135
+ {
136
+ LOG.INFO("onMessage");
137
+ m_PushMessageThread.addQueueCommand( new PushMessageCommand(inputStream, conn) );
138
+ }
139
+
140
+ public void onStatusChange(PushApplicationStatus status)
141
+ {
142
+ String strError = status.getError();
143
+
144
+ String strStatus = "", strRegReason = "";
145
+
146
+ switch( status.getStatus() )
147
+ {
148
+ case PushApplicationStatus.STATUS_ACTIVE:
149
+ strStatus = "Active";
150
+ break;
151
+ case PushApplicationStatus.STATUS_FAILED:
152
+ strStatus = "Failed";
153
+ break;
154
+ case PushApplicationStatus.STATUS_NOT_REGISTERED:
155
+ strStatus = "Not Registered";
156
+ break;
157
+ case PushApplicationStatus.STATUS_PENDING:
158
+ strStatus = "Pending";
159
+ break;
160
+ }
161
+
162
+ switch( status.getReason() ) {
163
+ case PushApplicationStatus.REASON_SIM_CHANGE:
164
+ strRegReason = "Status change was initiated by SIM card change";
165
+ break;
166
+ case PushApplicationStatus.REASON_API_CALL:
167
+ strRegReason = "Status change was initiated by API call";
168
+ break;
169
+ case PushApplicationStatus.REASON_REJECTED_BY_SERVER:
170
+ strRegReason = "Registration was rejected by server ";
171
+ break;
172
+ case PushApplicationStatus.REASON_NETWORK_ERROR:
173
+ strRegReason = "Communication failed due to network error ";
174
+ break;
175
+ case PushApplicationStatus.REASON_INVALID_PARAMETERS:
176
+ strRegReason = "Invalid parameters were provided that caused registration failure ";
177
+ break;
178
+ }
179
+
180
+ String strMsg = "status="+URI.urlEncode(strStatus)+"&reason="+URI.urlEncode(strRegReason);
181
+
182
+ if ( strError != null && strError.length() > 0 )
183
+ strMsg += "&error="+URI.urlEncode(strError);
184
+
185
+ LOG.INFO("onStatusChange : " + strMsg);
186
+
187
+ m_PushMessageThread.addQueueCommand( new PushStatusCommand(strMsg) );
188
+ }
189
+
190
+ public void onPlatformActivate()
191
+ {
192
+ if ( com.rho.Capabilities.ENABLE_PUSH )
193
+ {
194
+ if ( !rhomobile.PushListeningThread.isPushServiceEnabled() )
195
+ return;
196
+
197
+ getUiApplication().invokeLater( new Runnable()
198
+ {
199
+ public void run()
200
+ {
201
+
202
+ m_PushMessageThread = new PushMessageThread();
203
+ String strAppName = RhoConf.getInstance().getString("push_service_appname");
204
+ String strUrl = RhoConf.getInstance().getString("push_service_url");
205
+ int nPort = RhoConf.getInstance().getInt("push_service_port");
206
+ byte btServiceType = RhoConf.getInstance().getString("push_service_type").equalsIgnoreCase("BPAS") ?
207
+ PushApplicationDescriptor.SERVER_TYPE_BPAS : PushApplicationDescriptor.SERVER_TYPE_NONE;
208
+
209
+ PushApplicationDescriptor pad = new PushApplicationDescriptor(
210
+ strAppName, nPort, strUrl, btServiceType,
211
+ ApplicationDescriptor.currentApplicationDescriptor());
212
+
213
+ PushApplicationStatus status = PushApplicationRegistry.getStatus(pad);
214
+
215
+ LOG.INFO("registerPushService status : " + status.toString());
216
+
217
+ if (status.getStatus() != PushApplicationStatus.STATUS_ACTIVE && status.getStatus() != PushApplicationStatus.STATUS_PENDING)
218
+ {
219
+
220
+ LOG.INFO("registerPushService registering push");
221
+
222
+ PushApplicationRegistry.registerApplication(pad);
223
+ }
224
+ }
225
+ });
226
+ }
227
+ }
228
+
229
+ public void onPlatformClose()
230
+ {
231
+ if ( m_PushMessageThread != null )
232
+ m_PushMessageThread.stop(3);
233
+
234
+ m_PushMessageThread = null;
235
+ }
236
+
237
+ }
@@ -0,0 +1,14 @@
1
+ package com.rho;
2
+
3
+ import net.rim.device.api.ui.UiApplication;
4
+
5
+ public class RhodesApplicationPlatform extends UiApplication
6
+ {
7
+ public void onPlatformActivate()
8
+ {
9
+ }
10
+
11
+ public void onPlatformClose()
12
+ {
13
+ }
14
+ }
@@ -45,7 +45,13 @@ src\com\rho\rubyext\GeoLocation.java
45
45
  src\com\rho\rubyext\System.java
46
46
  src\com\rho\rubyext\WebView.java
47
47
  src\com\rho\rubyext\XMLParser.java
48
+ src\com\rho\rubyext\RhoPhonebook.java
49
+ src\com\rho\rubyext\RhoCalendar.java
48
50
  src\com\rho\Version.java
51
+ src\com\rho\RhodesApplicationPlatform.java
52
+ src\rhomobile\bluetooth\BluetoothManager.java
53
+ src\rhomobile\bluetooth\BluetoothScreen.java
54
+ src\rhomobile\bluetooth\BluetoothPort.java
49
55
  src\rhomobile\camera\Camera.java
50
56
  src\rhomobile\camera\CameraFilesListener.java
51
57
  src\rhomobile\camera\CameraScreen.java
@@ -65,7 +71,6 @@ src\rhomobile\mapview\RhoMapField.java
65
71
  src\rhomobile\NativeBar.java
66
72
  src\rhomobile\PushListeningThread.java
67
73
  src\rhomobile\RhodesApplication.java
68
- src\rhomobile\RhoPhonebook.java
69
74
  src\rhomobile\RingtoneManager.java
70
75
  src\rhomobile\SecondaryResourceFetchThread.java
71
76
  src\rhomobile\Utilities.java
@@ -8,10 +8,13 @@ import net.rim.device.api.system.DeviceInfo;
8
8
  import net.rim.device.api.io.http.HttpHeaders;
9
9
  import com.rho.rubyext.Alert;
10
10
  import rhomobile.NativeBar;
11
- import rhomobile.RhoPhonebook;
11
+ import com.rho.rubyext.RhoPhonebook;
12
+ import com.rho.rubyext.RhoCalendar;
12
13
  import rhomobile.RhodesApplication;
13
14
  import rhomobile.RingtoneManager;
14
15
  import com.rho.rubyext.WebView;
16
+
17
+ import rhomobile.bluetooth.BluetoothManager;
15
18
  import rhomobile.camera.Camera;
16
19
  import rhomobile.datetime.DateTimePicker;
17
20
  import rhomobile.mapview.MapView;
@@ -38,7 +41,10 @@ public class RhoRubyHelper implements IRhoRubyHelper {
38
41
 
39
42
  public void initRubyExtensions(){
40
43
  RhoPhonebook.initMethods(RubyRuntime.PhonebookClass);
44
+ RhoCalendar.initConstants(RubyRuntime.EventModule);
45
+ RhoCalendar.initMethods(RubyRuntime.CalendarClass);
41
46
  Camera.initMethods(RubyRuntime.CameraClass);
47
+ BluetoothManager.initMethods(RubyRuntime.RhoBluetoothClass);
42
48
  WebView.initMethods(RubyRuntime.WebViewClass);
43
49
  RhoConf.initMethods(RubyRuntime.RhoConfClass);
44
50
  Alert.initMethods(RubyRuntime.AlertClass);
@@ -0,0 +1,14 @@
1
+ package com.rho;
2
+
3
+ import net.rim.device.api.ui.UiApplication;
4
+
5
+ public class RhodesApplicationPlatform extends UiApplication
6
+ {
7
+ public void onPlatformActivate()
8
+ {
9
+ }
10
+
11
+ public void onPlatformClose()
12
+ {
13
+ }
14
+ }
@@ -24,7 +24,7 @@ public class NetworkAccess implements INetworkAccess {
24
24
  new RhoLogger("NetworkAccess");
25
25
 
26
26
  private static String URLsuffix = "";
27
- private static String WIFIsuffix;
27
+ private static String WIFIsuffix = "";
28
28
  private static boolean networkConfigured = false;
29
29
  private static boolean bes = true;
30
30
  private static long m_nMaxPacketSize = 0;
@@ -33,22 +33,20 @@ public class NetworkAccess implements INetworkAccess {
33
33
  {
34
34
  networkConfigured = false;
35
35
  bes = false;
36
- URLsuffix = null;
37
-
36
+ URLsuffix = "";
37
+ WIFIsuffix = "";
38
+
38
39
  String strDeviceside = ";deviceside=true";
39
40
  if ( com.rho.RhoConf.getInstance().getInt("no_deviceside_postfix") == 1 )
40
41
  strDeviceside = "";
41
42
 
42
- if (DeviceInfo.isSimulator()) {
43
- if (com.rho.RhoConf.getInstance().getInt("no_deviceside_postfix") == 1) {
44
- URLsuffix = "";
45
- WIFIsuffix = ";interface=wifi";
46
- } else {
47
- URLsuffix = ";deviceside=true";
48
- WIFIsuffix = ";interface=wifi;deviceside=true";
49
- }
43
+ if (DeviceInfo.isSimulator())
44
+ {
45
+ URLsuffix = strDeviceside;
46
+ WIFIsuffix = ";interface=wifi";
50
47
  networkConfigured = true;
51
- }else{
48
+ }else
49
+ {
52
50
  ServiceBook sb = ServiceBook.getSB();
53
51
  if (sb != null) {
54
52
  ServiceRecord[] wifis = sb.findRecordsByCid("WPTCP");
@@ -56,7 +54,7 @@ public class NetworkAccess implements INetworkAccess {
56
54
  if (/*srs[i].isDisabled() ||*/ !wifis[i].isValid())
57
55
  continue;
58
56
 
59
- WIFIsuffix = ";interface=wifi" + strDeviceside;
57
+ WIFIsuffix = ";interface=wifi";// + strDeviceside;
60
58
  //";deviceside=true;ConnectionUID=" +
61
59
  //wifis[i].getUid();
62
60
 
@@ -114,7 +112,7 @@ public class NetworkAccess implements INetworkAccess {
114
112
  networkConfigured = true;
115
113
  }
116
114
 
117
- LOG.INFO("Postfix: " + URLsuffix);
115
+ LOG.INFO("Postfix: " + URLsuffix + ";Wifi: " + WIFIsuffix);
118
116
  }
119
117
 
120
118
  /*public IHttpConnection doLocalRequest(String strUrl, String strBody)
@@ -183,75 +181,63 @@ public class NetworkAccess implements INetworkAccess {
183
181
  return (SocketConnection)baseConnect(strUrl, ignoreSuffix);
184
182
  }
185
183
 
184
+ private Connection doConnect(String urlArg, boolean bThrowIOException) throws IOException
185
+ {
186
+ Connection conn = null;
187
+ try
188
+ {
189
+ String url = new String(urlArg);
190
+ if (url.startsWith("https"))
191
+ url += ";EndToEndDesired;RdHTTPS";
192
+
193
+ LOG.INFO("Connect to url: " + url);
194
+ conn = Connector.open(url, Connector.READ_WRITE, true);
195
+ } catch (java.io.InterruptedIOException ioe)
196
+ {
197
+ LOG.ERROR("Connector.open InterruptedIOException", ioe );
198
+ if (conn != null)
199
+ conn.close();
200
+ conn = null;
201
+ throw ioe;
202
+ } catch (IOException ioe)
203
+ {
204
+ LOG.ERROR("Connector.open exception", ioe );
205
+
206
+ String strMsg = ioe.getMessage();
207
+ boolean bTimeout = strMsg != null && (strMsg.indexOf("timed out") >= 0 || strMsg.indexOf("Timed out") >= 0);
208
+
209
+ if ( bTimeout || bThrowIOException )
210
+ {
211
+ if (conn != null)
212
+ conn.close();
213
+ conn = null;
214
+ throw ioe;
215
+ }
216
+ }catch(Exception exc)
217
+ {
218
+ throw new IOException("Could not open network connection.");
219
+ }
220
+
221
+ return conn;
222
+ }
223
+
186
224
  public Connection baseConnect(String strUrl, boolean ignoreSuffix) throws IOException
187
225
  {
188
226
  Connection conn = null;
189
227
 
190
228
  //Try wifi first
191
- if ( WIFIsuffix != null && isWifiActive() ){
192
- try {
193
- LOG.INFO(strUrl + WIFIsuffix);
194
- conn = Connector.open(strUrl + WIFIsuffix);
195
- } catch (IOException ioe) {
196
- LOG.INFO("WIFI connection failed: " + ioe.getMessage() );
197
- }
229
+ if ( WIFIsuffix != null && isWifiActive() )
230
+ {
231
+ conn = doConnect(strUrl + WIFIsuffix + URLsuffix, false);
232
+ if ( conn == null )
233
+ conn = doConnect(strUrl + WIFIsuffix, false);
198
234
  }
199
235
 
200
- if ( conn == null ){
201
- /*int nStatus = net.rim.device.api.system.RadioInfo.getNetworkService();
202
- if ( ( nStatus & net.rim.device.api.system.RadioInfo.NETWORK_SERVICE_DATA) == 0) {
203
- throw new IOException("Network Data Service Not Available");
204
- }*/
205
-
206
- try {
207
- String url = strUrl;
208
- //if ( RhoConf.getInstance().getBool("bb_sim_use_deviceside") || !ignoreSuffix )
209
- url += URLsuffix;
210
- if (url.startsWith("https"))
211
- url += ";EndToEndDesired;RdHTTPS";
212
-
213
- LOG.INFO(url);
214
- conn = Connector.open(url, Connector.READ_WRITE, true);
215
- } catch (java.io.InterruptedIOException ioe) {
216
- LOG.ERROR("Connector.open InterruptedIOException", ioe );
217
- if (conn != null)
218
- conn.close();
219
- conn = null;
220
- throw ioe;
221
- } catch (IOException ioe) {
222
- String strMsg = ioe.getMessage();
223
-
224
- boolean bTimeout = strMsg != null && (strMsg.indexOf("timed out") >= 0 || strMsg.indexOf("Timed out") >= 0);
225
-
226
- if ( !bTimeout && URLsuffix.length() > 0 ) {
227
- LOG.ERROR("Connector.open exception", ioe );
228
-
229
- try{
230
- String url = strUrl;
231
- if (url.startsWith("https"))
232
- url += ";EndToEndDesired;RdHTTPS";
233
-
234
- LOG.INFO(url);
235
- conn = Connector.open(url, Connector.READ_WRITE, true);
236
- } catch (IOException ioe2) {
237
- LOG.ERROR("Connector.open exception", ioe2 );
238
- if (conn != null)
239
- conn.close();
240
- conn = null;
241
- throw ioe2;
242
- }
243
- }else
244
- {
245
- LOG.ERROR("Connector.open exception", ioe );
246
- if (conn != null)
247
- conn.close();
248
- conn = null;
249
- throw ioe;
250
- }
251
- }catch(Exception exc)
252
- {
253
- throw new IOException("Could not open network connection.");
254
- }
236
+ if ( conn == null )
237
+ {
238
+ conn = doConnect(strUrl + URLsuffix, false);
239
+ if ( conn == null )
240
+ conn = doConnect(strUrl, true);
255
241
  }
256
242
 
257
243
  return conn;