rhodes 2.1.0 → 2.2.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
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;